tocco-devcon 0.4.0 → 1.0.0-hotfix30.4

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 (439) hide show
  1. package/changelog.md +73 -0
  2. package/dist/00280aae09f2a71c1ab46c7cfb9f491c.js +1 -0
  3. package/dist/01ac8e05b621fce247d8d553656903c6.js +1 -0
  4. package/dist/02703e133100c3be64cfec414d4db706.js +1 -0
  5. package/dist/03276b6288c255cf1682f53ec11bb5a2.js +1 -0
  6. package/dist/036680d9c1d332cf478c5823cd2a47db.js +1 -0
  7. package/dist/0536af8c74f6fdf2d45e5e8990ee60cc.js +1 -0
  8. package/dist/06d453ace473034cd357edb758d539ab.js +1 -0
  9. package/dist/0768225f873adf5f103dcb714f17783d.js +1 -0
  10. package/dist/07c0a60b390501dfbb57219d5c8fbc1a.js +1 -0
  11. package/dist/07c26a67fe6aa27f701c6fb03a7bbafd.js +1 -0
  12. package/dist/0870bcf868f8d64dc9a6226a6c8b341d.js +1 -0
  13. package/dist/09195a75bcf8a7ac579281ac2ed5954a.js +1 -0
  14. package/dist/09ec1e19429e9349a4f69e00cdc89509.js +1 -0
  15. package/dist/0a4b12234fd7cba4d7c62207e4835f4c.js +1 -0
  16. package/dist/0a5adf8110dfa37b8a75edf8cafb1dd7.js +1 -0
  17. package/dist/0b56e82ae05b7ec2022e1cb35b8b6e10.js +1 -0
  18. package/dist/0bd6d25a3183a767309cd45cd8b8f347.js +1 -0
  19. package/dist/0c125a87d8efb9ce303b6b91783eb165.js +1 -0
  20. package/dist/0c2b3b3b66a73e289e2ca47cf22ef150.js +1 -0
  21. package/dist/0cbaf3ecc6b20dbc83c2164e9a1eac02.js +1 -0
  22. package/dist/0dc486b4415f7cbd7ddde8f32b6f12f1.js +1 -0
  23. package/dist/0dd0f45c3dde9af3fcf9706e6a2a1edd.js +1 -0
  24. package/dist/0f908578998bc65a3c374078edd4d880.js +1 -0
  25. package/dist/100f9b1846c1e1ecae19e0ca2fc8224c.js +1 -0
  26. package/dist/1084edaced97872890c9d87a9944cdcd.js +1 -0
  27. package/dist/119d8ff08e82b0f391f59f1fe657130f.js +1 -0
  28. package/dist/1295d4470d348d3ff8ea442b1dcef3d3.js +1 -0
  29. package/dist/1365ff3d277ebdab408e6aeec886cf08.js +1 -0
  30. package/dist/13b157cfddcb9a76ae0800b47a8f0122.js +1 -0
  31. package/dist/142d258626093a8c3187029538e32bbc.js +1 -0
  32. package/dist/144991c48dbba89bfe10e886aaaed32a.js +1 -0
  33. package/dist/155500be4d3113e94dca99f997defb7a.js +1 -0
  34. package/dist/1570e695c448e6a4f3a6bdf0372b58f0.js +1 -0
  35. package/dist/15abe309c5ecbc579dccc79beb041fd8.js +1 -0
  36. package/dist/167a62ec377adafbeb4bbb1cef73250d.js +1 -0
  37. package/dist/17c85759d562794da4d2ff11f1b9b3bd.js +1 -0
  38. package/dist/1840080076c4078d157a5b05d0d95551.js +1 -0
  39. package/dist/18a893070398343ab529fdb7b62f1b6d.js +1 -0
  40. package/dist/19a2b55271f405d0b97fad53c9d5ec2d.js +1 -0
  41. package/dist/1afe87852eca4b28294075c659ff8c45.js +1 -0
  42. package/dist/1c9874850164cfdaa7e1d212d09124a7.js +1 -0
  43. package/dist/1cb8df3a3416707163473b1ee9268faf.js +1 -0
  44. package/dist/1d837e2c9de35cbb09a85208da4a0d8a.js +1 -0
  45. package/dist/1de3569bf4cf2463628d69ecd92150ca.js +1 -0
  46. package/dist/1e33cb44dfab039b4a7e88a3ee1bbfe7.js +1 -0
  47. package/dist/1f03c9a69a8b9f79bcb7a338963f80c8.js +1 -0
  48. package/dist/1f1abd5e247cf6b2e9a3db6303277572.js +1 -0
  49. package/dist/1f7235986d23e6842cc54ba78816f16d.js +1 -0
  50. package/dist/2031467f3d02be43b638c5e3ccba3996.js +1 -0
  51. package/dist/20b003ac07f216a490981c397b91a117.js +1 -0
  52. package/dist/20f8061729d26f9786679bbf7af0b87a.js +1 -0
  53. package/dist/214a729dcea91ee8a56f8ef43e17243a.js +1 -0
  54. package/dist/219db9db1df39ce8cf197c72cb643801.js +1 -0
  55. package/dist/21c12c627149bdfc030e3de47acde151.js +1 -0
  56. package/dist/21dca974f7343f200597e43a55766c6e.js +1 -0
  57. package/dist/21e63141d475afcb7d4fd1fac1da934b.js +1 -0
  58. package/dist/223593fe8dd78b83f22808f9aad86ae9.js +1 -0
  59. package/dist/22812e27a1f54c0a4ff744a444a32d6c.js +1 -0
  60. package/dist/22b1c8bf4c2bdd7e438f832b888c75e4.js +1 -0
  61. package/dist/22d4f336d4fbe548273812e6e4cd345e.js +1 -0
  62. package/dist/2334a9d0e81f9aa6df36e30a4158e213.js +1 -0
  63. package/dist/242fb5a92733d151e9ca303fcd3ae7ff.js +1 -0
  64. package/dist/243d8101969c933d25388b5287bb3425.js +1 -0
  65. package/dist/2681042a598b029b51d51f7669b81c4d.js +1 -0
  66. package/dist/2839e845bd0cf60f35f3a8ca90a5ee22.js +1 -0
  67. package/dist/28f7c5b28bbad7b0bac0cc3cc5b89bad.js +1 -0
  68. package/dist/294fbc5b00264d6215dd8ff838dc2999.js +1 -0
  69. package/dist/29a4e3548d286388c4d5e8f0670a4381.js +1 -0
  70. package/dist/2a7b2ac7dc47105609001b93c25190b8.js +1 -0
  71. package/dist/2ac58492ad5a1b5244deb0fef1e5a773.js +1 -0
  72. package/dist/2bba99eb717e1aa22e45284a964ca73f.js +1 -0
  73. package/dist/2dea096a03cd8f864db5f06e9f0113e5.js +1 -0
  74. package/dist/2e6b449c270c4420523a24d1a806eb47.js +1 -0
  75. package/dist/2f1b71c04ca88bae69f1798880dbc985.js +1 -0
  76. package/dist/2fe13737434324ed67582ac97d484c54.js +1 -0
  77. package/dist/30314e1b4a51b1aed3766eadecde2a42.js +1 -0
  78. package/dist/3045404d52d03253c81822bdf760cfd1.js +1 -0
  79. package/dist/31459a657ac30dcaa54765c6d76d8c81.js +1 -0
  80. package/dist/318f90759f2ff0d2a437350e87578172.js +1 -0
  81. package/dist/31bcb02e59d84ce2e38b85616a0b44db.js +1 -0
  82. package/dist/31f3f1c32b27587832d28b634351325c.js +1 -0
  83. package/dist/330543be2120b9dcc9bec41ba5e05805.js +1 -0
  84. package/dist/33856f6eaf3444eaff9e4e5d3fe810c8.js +1 -0
  85. package/dist/34f05dc84111ffe37a1d5b5aacff7488.js +1 -0
  86. package/dist/35858a47038a7be957df49854e8e5eea.js +1 -0
  87. package/dist/35dc4119f9e28cb9baba1475537460bb.js +1 -0
  88. package/dist/37bc2ca46b9a9d40678a3cd05d50e397.js +1 -0
  89. package/dist/37e37aa178d97ffcd94eeee1e1a25967.js +1 -0
  90. package/dist/38528de2a5c097da375fd0a076667441.js +1 -0
  91. package/dist/38a696bcfe6021b6442e70b6d3017b93.js +1 -0
  92. package/dist/398b591b6e9b2ae73dde100bca36f84a.js +1 -0
  93. package/dist/3a969f15f742add3d383e55d0ceb3d25.js +1 -0
  94. package/dist/3baeab62d681338ba3287f0a50e5dad1.js +1 -0
  95. package/dist/3c58f68d787710c79906a2cd6d248295.js +1 -0
  96. package/dist/3cab7110c6a090f72c540dcc1cfbe3b5.js +1 -0
  97. package/dist/3cce0c7e1a8e1148f97de59a4b1ee73f.js +1 -0
  98. package/dist/3cd86defa6e36c165ae673afab6b5eab.js +1 -0
  99. package/dist/3cf64ec91a700bfa1dece0957c49c7dc.js +1 -0
  100. package/dist/3e6808cd6eefd1be1040403985581374.js +1 -0
  101. package/dist/3e6cde7f6a3d84c5cff5127be1c019f3.js +1 -0
  102. package/dist/3f9e3ae9d4ee540b9fb067b6fd29d529.js +1 -0
  103. package/dist/4037e6d4b18e3e286dec455cc63c1d17.js +1 -0
  104. package/dist/40505d6c2f34fc08502d3e596573c7f8.js +1 -0
  105. package/dist/40ba797ae7e4433f9847cd2c68bfbdf7.js +1 -0
  106. package/dist/413ec783ae29da56e8bdabae45457f91.js +1 -0
  107. package/dist/4190490a8257bdfcce6e2bd4f0634086.js +1 -0
  108. package/dist/41f85ea0c545f0539b6ae2753eb1f79c.js +1 -0
  109. package/dist/4263ed179f5b2268965e1157074583e8.js +1 -0
  110. package/dist/4339a83a0599fb43f59642dffbdbe8f5.js +1 -0
  111. package/dist/434a5902436fc0f4bac913f7ae1471c6.js +1 -0
  112. package/dist/43a9bcfc200d80676bc68fe9a3c8ab6d.js +1 -0
  113. package/dist/43bd62d6b50d1253f782c9ae5be1593d.js +1 -0
  114. package/dist/43dab3876e6402fc9ae359a033683cc4.js +1 -0
  115. package/dist/446ad37d55a836cf56e5417fcc9b986f.js +1 -0
  116. package/dist/4474c9775d04684871043fae3501ec66.js +1 -0
  117. package/dist/44e6d883ecccba28d8adf592cb83e01b.js +1 -0
  118. package/dist/451c3753fb6dfc1f2de25cb7524f4bb2.js +1 -0
  119. package/dist/46bac1e89f220258537c533035a6e263.js +1 -0
  120. package/dist/4705b919138245a5b454d25f8e418435.js +1 -0
  121. package/dist/4750f0ff62cbd59f35aac31b996194e6.js +1 -0
  122. package/dist/47bc1cf488af29738e21d8b5f4c8766b.js +1 -0
  123. package/dist/47cd5c7d174e6b624e55510c4e503600.js +1 -0
  124. package/dist/47ecd829f86e48857a05b2189ee9c097.js +1 -0
  125. package/dist/4ab6dffb1b7255cc39ef77a35eb53293.js +1 -0
  126. package/dist/4c23cecd95c406d71cbe8fe49ad3ab6c.js +1 -0
  127. package/dist/4cbd6f8a4f52821c1d3476139078797d.js +1 -0
  128. package/dist/4d694d41a0c1b3eaad752a8352c5661c.js +1 -0
  129. package/dist/4e4d407bd6bf0ce7bfc869f7eb6e93d3.js +1 -0
  130. package/dist/4e9e0e943cacfdf9d350ba0c59bfb53b.js +1 -0
  131. package/dist/4ee6db42bdfd31631aaa20c2a02cf90e.js +1 -0
  132. package/dist/4f30f5432d9bfb925c918a6870451fef.js +1 -0
  133. package/dist/5094b30d2471cc7312746173d8a4bb25.js +1 -0
  134. package/dist/51e6918f996813eafa4b1491d9dd343b.js +1 -0
  135. package/dist/51e6ccd3ea9d7443949b155b113eebd5.js +1 -0
  136. package/dist/51fd63020e12665fab2b755ae7a901d4.js +1 -0
  137. package/dist/540bba54b49ea7a6ec513270449132db.js +1 -0
  138. package/dist/553aa6bb3b625428f4df57f5885d50f3.js +1 -0
  139. package/dist/5540bb93f39dcb670a0f9b4e4b793d02.js +1 -0
  140. package/dist/57c2d2eb6a844a8c9ecd932c6d4067b0.js +1 -0
  141. package/dist/57c7c145c720f31f3749b658e3769833.js +1 -0
  142. package/dist/587c674b536ffaf75df5db37c7b67c4a.js +1 -0
  143. package/dist/58d885ab56201085ce55e8eb5d3f2ac2.js +1 -0
  144. package/dist/58f38fb5c5d8da84e75bd48f7d501d59.js +1 -0
  145. package/dist/59457eef0e0be735680874d74c13e469.js +1 -0
  146. package/dist/5a8b5a01cd9dadacb661063269f44c66.js +1 -0
  147. package/dist/5bd58f2ebad7e63ff72a891fb43e2b38.js +1 -0
  148. package/dist/5c5f571e7b4ac9500fa21c5abd909c27.js +1 -0
  149. package/dist/5ce9c9a26cf28c9ccdcf82388efacf29.js +1 -0
  150. package/dist/5d2589bbfd66894e296ec080a28d70e1.js +1 -0
  151. package/dist/5e4dd0452f14cf5dbb02a7dc7d9dda76.js +1 -0
  152. package/dist/5e62ca244220154bbcae2a7eb2c50e0f.js +1 -0
  153. package/dist/5e9314c1c0d4e5f4cb7a3f80fc01530c.js +1 -0
  154. package/dist/5eeee1acc01b04328cf42db0715bb7f5.js +1 -0
  155. package/dist/5f6f5026d13b2a9b884a8144a119cf9e.js +1 -0
  156. package/dist/60fc15a66fa7ba74ccd248f85b50fbe5.js +1 -0
  157. package/dist/611cab878498fbf52880d2323991f3d7.js +1 -0
  158. package/dist/61cc56da80a76731283878abc3b13761.js +1 -0
  159. package/dist/628b24103fca421515ec8724d12f026f.js +1 -0
  160. package/dist/63ccb1f1a27a2bf6271f40d3082186f4.js +1 -0
  161. package/dist/642f5bce034554539cc93a5b965e730a.js +1 -0
  162. package/dist/646323ed2e6bfb9e711785e109cf8d5f.js +1 -0
  163. package/dist/646c9322233a0ba128268dee916e5719.js +1 -0
  164. package/dist/6477e8f75e2259e66e943bdef7b9e4a7.js +1 -0
  165. package/dist/64a7727963416cd27ab100d1dfff8168.js +1 -0
  166. package/dist/64f93b6b093bba4147485023263cf65f.js +1 -0
  167. package/dist/66670f2c1f5e7c4e531007e89bb85355.js +1 -0
  168. package/dist/66fb250b0cba71f9e58d9c94c4d7341a.js +1 -0
  169. package/dist/68cf9a0e1eaff7cc991e970a855108f8.js +1 -0
  170. package/dist/697c2df91bf7c729d317c620a3cd77bd.js +1 -0
  171. package/dist/6d9ca7a980db8fa74e39b1ff3b0c75cd.js +1 -0
  172. package/dist/6dafd4eb9102ea47229a42a24d40f457.js +1 -0
  173. package/dist/6ddf5e6270865af626321055852c6cb5.js +1 -0
  174. package/dist/6e4d1075690c1f17775f02251592ac60.js +1 -0
  175. package/dist/6e88d3943f4c3a068493aad131cd4898.js +1 -0
  176. package/dist/6e9ca56e0fa3e784eab3da45f8d0d8ac.js +1 -0
  177. package/dist/6ed72418f4fa5f71dee7780ac5bb95e0.js +1 -0
  178. package/dist/6f0543453c605ea6d673a3bd31dd1090.js +1 -0
  179. package/dist/6f783ca6efdcb90ccde9175312f6558d.js +1 -0
  180. package/dist/70647aa39b1179b9db672c874eaf3a9e.js +1 -0
  181. package/dist/7074e18e67a10875c827b6cfe2665b83.js +1 -0
  182. package/dist/7150c52abe226d317116208cfe9fdc88.js +1 -0
  183. package/dist/727184c92f9da8d8b0c013fd79cf32fe.js +1 -0
  184. package/dist/72d23326220bc76ce06b4c1c68efb378.js +1 -0
  185. package/dist/72d2343e3b39f8b214aa614fea10c9ab.js +1 -0
  186. package/dist/740ff6a6e968e50d530fde5e13064fd7.js +1 -0
  187. package/dist/74973bbb728e661679e49a16773535a4.js +1 -0
  188. package/dist/749b5fd2f9c2f584602aae4564fa1400.js +1 -0
  189. package/dist/781aab91bdb94039619a5d6086109f80.js +1 -0
  190. package/dist/78999d905693a14a2c4677977ba222fb.js +1 -0
  191. package/dist/79701bbf8c5436771916d9af708ae8ec.js +1 -0
  192. package/dist/7982ae381c10e501e9a46d8693deddf6.js +1 -0
  193. package/dist/7a679adc4e97aa2dab36bf2b4f37b6d3.js +1 -0
  194. package/dist/7af5865535fb306e7d0364a9ff81f389.js +1 -0
  195. package/dist/7bdb2e4d3bc51d15863aa7be6e0a23a9.js +1 -0
  196. package/dist/7cef38946c33fa981d6d2c86c62428e0.js +1 -0
  197. package/dist/7d46cd8e5efaac33d5bf823ed4268841.js +1 -0
  198. package/dist/7e89c064ec09f955a6c3ffbfb96908a2.js +1 -0
  199. package/dist/7e98c4d98664d6f7bcc52a07f21a1f9f.js +1 -0
  200. package/dist/7f10fe526aec57bd522af77ea6ac2b62.js +1 -0
  201. package/dist/7f63b670b51e07bd9a30869b68ada191.js +1 -0
  202. package/dist/8043595ccf704fc61e7e3e4c7c7e77a5.js +1 -0
  203. package/dist/81096321488be75b81be9dbd40d9bb24.js +1 -0
  204. package/dist/8120c57dbca7501da3ecf702c811f16f.js +1 -0
  205. package/dist/81350551f7c2ff74244535aaff56dd11.js +1 -0
  206. package/dist/817d52a47a4657b8a4dab79e057f5fb0.js +1 -0
  207. package/dist/81be1aff3c1cfa0531037ebab355abbb.js +1 -0
  208. package/dist/82ce99851e7fc39e91603bc3320fe6d2.js +1 -0
  209. package/dist/833b242747fd7b098d46011e4289bc3f.js +1 -0
  210. package/dist/83ea78d42f1a8e5f7346f3a30140ebfb.js +1 -0
  211. package/dist/84f75bf9ddb5400925d2a043a2013cec.js +1 -0
  212. package/dist/852f3a4ec9ee58d75bd55c85161bb68f.js +1 -0
  213. package/dist/85f71b723441bcf428b8abed1fc8f56f.js +1 -0
  214. package/dist/85fe85850b026b668c10d2c9e0e5e8c6.js +1 -0
  215. package/dist/867fb2b26eef123915aff8634c0bbf4a.js +1 -0
  216. package/dist/8681f562786fa45bebe8ee7ed2461026.js +1 -0
  217. package/dist/86dfc095a8bb97b2b6d94b798ebcdc61.js +1 -0
  218. package/dist/8770a939f7943a9fc6ef55f01bbf58b4.js +1 -0
  219. package/dist/8833a126ef9d8892bfb372d227f7f088.js +1 -0
  220. package/dist/8870430db332faf22d90e12f1620ee84.js +1 -0
  221. package/dist/88d5efab68c7526ad2ad4196932adb03.js +1 -0
  222. package/dist/88f2b86b79781364b99947d07d3c3469.js +1 -0
  223. package/dist/89859a411a50c90f1e669deaf8a6775f.js +1 -0
  224. package/dist/89a47a0051ac0b3885ef8af2476526f0.js +1 -0
  225. package/dist/8a50c9e16faa7bc5e88b7261601fbea3.js +1 -0
  226. package/dist/8a7d1e82245ba58033df533faadfbaf4.js +1 -0
  227. package/dist/8afcf3a037a7f37f9c0bbad01507d73b.js +1 -0
  228. package/dist/8bdbab2f0d58195a7d509ad6fbe02966.js +1 -0
  229. package/dist/8c8877c66a2c6404ed17f0f364f2f229.js +1 -0
  230. package/dist/8dec848a9d34e3804976ae4a589fbc4f.js +1 -0
  231. package/dist/8e6a809082edab0aaf90b9eb118ae571.js +1 -0
  232. package/dist/8e7a3ed0365cf37663cd6432382b9f87.js +1 -0
  233. package/dist/8e81f51d2e7be98e9e45fe93239c7e99.js +1 -0
  234. package/dist/8e9de0496ec7e61744c335d3156e3e91.js +1 -0
  235. package/dist/8ee6948d963e299de55144b3c7a60c0a.js +1 -0
  236. package/dist/8f69fc81a83ba318eca7dbae6c6eba75.js +1 -0
  237. package/dist/902223f10df9241dca67a311e6be82d2.js +1 -0
  238. package/dist/90643b9da87302fef490f3f48af806e2.js +1 -0
  239. package/dist/908119c25a234151c8c7c1a97005c866.js +1 -0
  240. package/dist/91832748c8f066b07af2341ccc6dd5b1.js +1 -0
  241. package/dist/91c0f3f78f13aefc3168b4ef28ff49db.js +1 -0
  242. package/dist/92cf63e9a949f08d97a74d9ed17392ed.js +1 -0
  243. package/dist/9360974ffacadb05145e2f6c1458f35b.js +1 -0
  244. package/dist/94a0179602c94d55621a35e41c97ed5c.js +1 -0
  245. package/dist/94a5c40baab0f2df8b43889ed5fb6b8a.js +1 -0
  246. package/dist/957cecf7fe593e179b14e2cb8795819c.js +1 -0
  247. package/dist/983ddc3115fae8e0dfd108d799662892.js +1 -0
  248. package/dist/985b400088bf5e23fb83e70d9948eccb.js +1 -0
  249. package/dist/998c5f13555e18b42e9bf826578b2e16.js +1 -0
  250. package/dist/99b756405f919e9022e6a4e3579dd5ee.js +1 -0
  251. package/dist/99f6bcba35fb277563c6362f3caab715.js +1 -0
  252. package/dist/9abcc804fa38b6d05e62a10cb8dbb668.js +1 -0
  253. package/dist/9c202aefac35a5ff49d3d3795e9932bc.js +1 -0
  254. package/dist/9c2b91bc7cd844308f5a746886a7d573.js +1 -0
  255. package/dist/9cf3be7669b89ac4036cd07c9baf7e13.js +1 -0
  256. package/dist/9d0f4f65be2f50ad54488089f126feda.js +1 -0
  257. package/dist/9e357a97da26127713394684a51946b8.js +1 -0
  258. package/dist/9e69cb39701c3578226b39536edd4dd7.js +1 -0
  259. package/dist/9e875d25eb6d80340adac0cfc35700c1.js +1 -0
  260. package/dist/a026164ca1f6f157fcb0f5f6bfd4abce.js +1 -0
  261. package/dist/a036e6a0313d9a77375018f2ac758d6b.js +1 -0
  262. package/dist/a06ea1f6e485f67413d6cb34d7cc3515.js +1 -0
  263. package/dist/a07f2b025030bd4f277803aea0e6a539.js +1 -0
  264. package/dist/a26463d029a2515171748a1ebcca53c3.js +1 -0
  265. package/dist/a28e3425f856992a4e5e4b0d448316cd.js +1 -0
  266. package/dist/a311e02008e0f00a37305a12d479159a.js +1 -0
  267. package/dist/a33f52a5f1ea0162305f99d63235f807.js +1 -0
  268. package/dist/a477d7b35783dd10040a243a84c86a0c.js +1 -0
  269. package/dist/a5cb31cfb4711ef14999198f0d35eaf3.js +1 -0
  270. package/dist/a65a0bae3e5b73407d15ea6bbb08e515.js +1 -0
  271. package/dist/a71d8ecb9a2a4b35fcd828bb970e7e84.js +1 -0
  272. package/dist/a84f565fc5473f112281550ea6c2ccf4.js +1 -0
  273. package/dist/a93bbe4d82b7f6cc642b7ebc38f4df5d.js +1 -0
  274. package/dist/aa1233d5e8262d6c87d7e17025479ac1.js +1 -0
  275. package/dist/aa2f98073a8d9f266f3928b5d9c457d1.js +1 -0
  276. package/dist/ab16c1237e6e04bbf0024ee2bae42130.js +1 -0
  277. package/dist/acc30207efba7ab5b7b509b599f37e6f.js +1 -0
  278. package/dist/acc4ded8b9debce27f884c9cce5bf63c.js +1 -0
  279. package/dist/acc7448b80728a73c9a4046b3ec4407f.js +1 -0
  280. package/dist/adbb57fa182dce548204311d3be6dffa.js +1 -0
  281. package/dist/af45a0eba37254fde00bc0845dc16954.js +1 -0
  282. package/dist/b02513e1d0cc664936e1ba9cb5a923af.js +1 -0
  283. package/dist/b02e760aa00b054a6e53138426bd9411.js +1 -0
  284. package/dist/b048c40cfb4768fc6b65a121049f0b9e.js +1 -0
  285. package/dist/b0ae5887d5b545dcdd5db18846651f7f.js +1 -0
  286. package/dist/b0fc54e0e936c84253a30c9b39cfd9bf.js +1 -0
  287. package/dist/b111a00f8f22708140c6fdbc26963155.js +1 -0
  288. package/dist/b131314d1ea62fa7bba91a4da8360298.js +1 -0
  289. package/dist/b26738d581e044c69f7a4392906e6843.js +1 -0
  290. package/dist/b435aebcb57d65080cfd510e0a9d5d9d.js +1 -0
  291. package/dist/b49c9a9ab619e46a7ba6f9f89c800589.js +1 -0
  292. package/dist/b4bd28ac3a7935d0c52a6cb19c89aced.js +1 -0
  293. package/dist/b518725b1ee5b4ba27eec173687966f0.js +1 -0
  294. package/dist/b69a91688637c9acd4bcce30598faeee.js +1 -0
  295. package/dist/b830d88aa22a866a208be27af90526a7.js +1 -0
  296. package/dist/ba07c8c1ca6ea903fd0f0379db66ea1e.js +1 -0
  297. package/dist/bae95bdb1bbcc0969e0e40fb72539df3.js +1 -0
  298. package/dist/bb3e0098a11d21ca01d6e44c2e39f90b.js +1 -0
  299. package/dist/bb48e1051c32d32d425681e9200706bc.js +1 -0
  300. package/dist/bb9282d93d3ae9d53870a66627f8c797.js +1 -0
  301. package/dist/bbd62124f6d03e01eb4332f55ead999d.js +1 -0
  302. package/dist/bc26ab0797e975ba01e701683935864b.js +1 -0
  303. package/dist/bd33197d8c34bf6387e39130c28f8342.js +1 -0
  304. package/dist/bd98610e395f3b4c7915cf3fbe854f6f.js +1 -0
  305. package/dist/bd9ff502ba460f402b4e2005689402a7.js +1 -0
  306. package/dist/be267e990e45f420b52971b942b6cd36.js +1 -0
  307. package/dist/be2fbe775b19bdc18e4f78de18beb433.js +1 -0
  308. package/dist/bef8dd4d998c8a971c0c8a9eb298470d.js +1 -0
  309. package/dist/bf06f353bf67ef497b65afe567e7f294.js +1 -0
  310. package/dist/bffad0f26b7a14d73f338aefa2d2f9e5.js +1 -0
  311. package/dist/c02d976c2c838a2b5ad0e5dfd1facb75.js +1 -0
  312. package/dist/c0b4241b59cd6750a7d6ad4f3d019d84.js +1 -0
  313. package/dist/c0b4cd50c3fcc1292b34cedf813a16dd.js +1 -0
  314. package/dist/c0f91d067bd4f665ec7b85a632e3168d.js +1 -0
  315. package/dist/c23b1f80ab9746b425f3848bdaacc144.js +1 -0
  316. package/dist/c24de6963d7d00c269db34091059e06d.js +1 -0
  317. package/dist/c2b469d0ddb280bda5f621563579725d.js +1 -0
  318. package/dist/c2c0e5fa8323e2c5c1f54f20afda51b8.js +1 -0
  319. package/dist/c38a3226f3858a47ba9fb788dc7b44fc.js +1 -0
  320. package/dist/c3b0cd15adcc12a549e7ac5d165ac1f4.js +1 -0
  321. package/dist/c56ad0a02cde76fcd540a7f7db5eca1e.js +1 -0
  322. package/dist/c5d7c4a345a7bb4c84ee8ced7322a8db.js +1 -0
  323. package/dist/c6d4a590e14107a8a5ad505d66241032.js +1 -0
  324. package/dist/c6f608398c43e25821557ee65cda5e58.js +1 -0
  325. package/dist/c755e7fc08446566ee8dd3a8aa8fe43f.js +1 -0
  326. package/dist/c7d3b0afe7600a632fbf44ee8d84996e.js +1 -0
  327. package/dist/c7fb0ccebacccfb5c2f7b2f6023ebe4a.js +1 -0
  328. package/dist/c806ba4f0026195e7907bfb62d00b502.js +1 -0
  329. package/dist/c8bdb139ff462c0e7dc4ba2f56a49318.js +1 -0
  330. package/dist/c95085763daaf58802818ae50c902db8.js +1 -0
  331. package/dist/c98e5722b508d4eb3afcea637246de33.js +1 -0
  332. package/dist/c9e10cf9c0a5a1dee23414b7bc709a11.js +1 -0
  333. package/dist/ca1483809659f6c87cc6f588891d2bd4.js +1 -0
  334. package/dist/cb5e8b8ede9cae0b8fb986da038763e3.js +1 -0
  335. package/dist/ce73c3243f61524d76000c4ace94f2bb.js +1 -0
  336. package/dist/ceadf1677ee2a5b133bac039155145ec.js +1 -0
  337. package/dist/cf0a04afa21ac9ba23a1de0416a03105.js +1 -0
  338. package/dist/cf1f6c842a1ec0af6b00ce1859dce6d5.js +1 -0
  339. package/dist/cf6e250c7df1f6206ad0330880821dca.js +1 -0
  340. package/dist/chunk-215.e9e287572d296e0473ce.js +1 -0
  341. package/dist/{chunk-vendor-flatpickr.471144c8a9d203eb3d0d.js → chunk-669.b0ccab14fa902fac7178.js} +2 -2
  342. package/dist/chunk-683.59b5398dc41d58d5c53a.js +1 -0
  343. package/dist/chunk-696.d0011c1c4be3ff8608e0.js +1 -0
  344. package/dist/chunk-759.c894f2cb2220cf98eaca.js +1 -0
  345. package/dist/chunk-82.236e66c7f01a1140043d.js +1 -0
  346. package/dist/chunk-code-editor.2fc4c7b43f21057ca54b.js +1 -0
  347. package/dist/chunk-vendor-fontawesome.9a03993f19f95f6a4794.js +6 -0
  348. package/dist/chunk-vendor-libphonenumber-js.678b6b3f0100b115843d.js +1 -0
  349. package/dist/{chunk-vendor-quill.235bb42d4d6c831477f1.js → chunk-vendor-quill.e594c608e5d07809a7c1.js} +5 -5
  350. package/dist/d04b75913eb7152475e4db038e643095.js +1 -0
  351. package/dist/d08030a8f6057b63643bacf4cee162b0.js +1 -0
  352. package/dist/d08daa8e673c585e1311729dbcb63eb4.js +1 -0
  353. package/dist/d27d5c5480c14bffe9ffc07fec3a806d.js +1 -0
  354. package/dist/d2e30554e6939a2542e5135fff541daa.js +1 -0
  355. package/dist/d345689433789d4b690fa2d03b1d83ee.js +1 -0
  356. package/dist/d465c0a35c6ef244bf587b0e6bdb4019.js +1 -0
  357. package/dist/d47938906a471dea833a3b57991c7124.js +1 -0
  358. package/dist/d70ab0885fcc546aaf5eee0c5fca6278.js +1 -0
  359. package/dist/d750a8dbf9dd09c0a33b9986e79e3c8c.js +1 -0
  360. package/dist/d754905fe54aac6f3c350df34f51a0b6.js +1 -0
  361. package/dist/d7889907dbb51f58ceadb3e1eec03a5d.js +1 -0
  362. package/dist/d7cdf8e31755f70cd564c742feec3be0.js +1 -0
  363. package/dist/d7f9c3bcea90f112bc7cac6559dcb00c.js +1 -0
  364. package/dist/d9a00ccd64f554cd458b3d6f6c66f465.js +1 -0
  365. package/dist/da06d4429e8bccd9ef90b16ebe49354b.js +1 -0
  366. package/dist/da1719655627488c0c1afaa1379e2c1d.js +1 -0
  367. package/dist/dad7909925cdea4ce193d5c14a13abf3.js +1 -0
  368. package/dist/db7eff370e6f80152653db4bc1c65285.js +1 -0
  369. package/dist/dc5f6600785254887cbe9c35ce55e769.js +1 -0
  370. package/dist/dcb084d6aacfa517923dd3a94e3b9af5.js +1 -0
  371. package/dist/dcf8b9b721cab79d285ab33fe2154a58.js +1 -0
  372. package/dist/dd40dfc7840568927fdef65087a233ed.js +1 -0
  373. package/dist/dde12e6c2c05d17c95ed0a94da234b3b.js +1 -0
  374. package/dist/de385e48e4b7a8c5837c9a2fd07ede3e.js +1 -0
  375. package/dist/de581fe10be3ac282fa6abc2f8171551.js +1 -0
  376. package/dist/e0476257d7657264e527f7a1f1ecbece.js +1 -0
  377. package/dist/e0e2b1267a5d4acb4dda3a4a598cd8a5.js +1 -0
  378. package/dist/e1cbafb3a5880cd8e5532e2acf8b6998.js +1 -0
  379. package/dist/e1dbe800b2d3f5d74b2b5480ea2b897a.js +1 -0
  380. package/dist/e2792218bae78a6aef6764de4e61fd82.js +1 -0
  381. package/dist/e337fbde626a0753b0b7f6caf3208266.js +1 -0
  382. package/dist/e393bf5358fc198ca07e518900b24311.js +1 -0
  383. package/dist/e4d51c8b4202d444cb39db4e7642d7d9.js +1 -0
  384. package/dist/e53ab2ed7040ddd0541d4795f8d224e9.js +1 -0
  385. package/dist/e6c2b11f457b5aa71fd08de4ae738c3f.js +1 -0
  386. package/dist/e745f8fb4f054a3f5b66ccad100a1217.js +1 -0
  387. package/dist/e8250271e7641960341ae2ac170af4ac.js +1 -0
  388. package/dist/e9f63cc0a627466e1096f848ff476ca5.js +1 -0
  389. package/dist/ea5c101c16108be8cf1522aae5736f5f.js +1 -0
  390. package/dist/eb6f00b565c6441d02346354a0ef64ce.js +1 -0
  391. package/dist/ee0650a4d7fd0181d898e58648474a26.js +1 -0
  392. package/dist/ef2640638453d7df3e7e1659d1f67105.js +1 -0
  393. package/dist/efa2aae8c65855514b0ca66c4fe1cc68.js +1 -0
  394. package/dist/efc508c36f4e417ec6bd5ec72989443b.js +1 -0
  395. package/dist/f102c542cd35eef623ab82b087af2f14.js +1 -0
  396. package/dist/f120c3f4e008f9abcd3a576bd66dd315.js +1 -0
  397. package/dist/f2195d2eae3dbef7e3798e115209dcd7.js +1 -0
  398. package/dist/f2cfc0e604350e23bfcd7c78165b1411.js +1 -0
  399. package/dist/f35e34e60520cef0b0dbba2bc2931941.js +1 -0
  400. package/dist/f3a0f6e7e442de2ae51eddbf4eb98d97.js +1 -0
  401. package/dist/f3b6993cd8f9bbdd1d5ad68a5e1cdf70.js +1 -0
  402. package/dist/f457edce8a9809fa16aab3c8e695bf38.js +1 -0
  403. package/dist/f4ee92824c023ab7278694588c9c40f1.js +1 -0
  404. package/dist/f50d7c4ce743ce495230d19bd33fefab.js +1 -0
  405. package/dist/f5292be525fc36a337ce7bfb792070de.js +1 -0
  406. package/dist/f52e2798c3b260592cf35f3a20958d87.js +1 -0
  407. package/dist/f5dda2fc10c4a825f922a439633d70ea.js +1 -0
  408. package/dist/f61f1aaed3f32a7dabd977a6f47ecd5f.js +1 -0
  409. package/dist/f7443e8232a7e4289b9f2ed4a512750c.js +1 -0
  410. package/dist/f7b04f07406ef16d88688a7ffb81ce3f.js +1 -0
  411. package/dist/f80c6eb0f52a68464b21211240e3d6e6.js +1 -0
  412. package/dist/f88127ad8950e3c94c3af6c65a7120fa.js +1 -0
  413. package/dist/f913332fa21973f354fcb5b680811e56.js +1 -0
  414. package/dist/f95dc04dc50d90d0555ca3561e75c4c2.js +1 -0
  415. package/dist/fa1618cda4da7d5362c381ea2d5f7321.js +1 -0
  416. package/dist/faf460076b3383fdc3ecc224068964cf.js +1 -0
  417. package/dist/fb41d9c741510992c10cc1deb4e9f269.js +1 -0
  418. package/dist/fb4580529d9585e912b7142f6b62cae4.js +1 -0
  419. package/dist/fe4de7aeda3abed04c238956a8565de4.js +1 -0
  420. package/dist/fe51d45583c0425b00c9a784727072e0.js +1 -0
  421. package/dist/fe56e099960b1f5a3ac7143e245f7ce1.js +1 -0
  422. package/dist/fe58209a4ef163863b95ab289a69cdaf.js +1 -0
  423. package/dist/fe5fd32b764aa22fde63925ac549a9c9.js +1 -0
  424. package/dist/fffbc895129cdb3efeafa5b234743aa0.js +1 -0
  425. package/dist/index.js +10 -9
  426. package/package.json +1 -1
  427. package/dist/chunk-593.3a42fa8104f24913259c.js +0 -2
  428. package/dist/chunk-593.3a42fa8104f24913259c.js.map +0 -1
  429. package/dist/chunk-696.73bd51158a248c4ffee8.js +0 -2
  430. package/dist/chunk-696.73bd51158a248c4ffee8.js.map +0 -1
  431. package/dist/chunk-82.9dfe483e3e7ed309f77a.js +0 -2
  432. package/dist/chunk-82.9dfe483e3e7ed309f77a.js.map +0 -1
  433. package/dist/chunk-916.c9ae660779a79e83474e.js +0 -2
  434. package/dist/chunk-916.c9ae660779a79e83474e.js.map +0 -1
  435. package/dist/chunk-939.7d3cdd20efdbef867c5a.js +0 -2
  436. package/dist/chunk-939.7d3cdd20efdbef867c5a.js.map +0 -1
  437. package/dist/chunk-vendor-icons.ec3d1d73f1477d060622.js +0 -6
  438. package/dist/chunk-vendor-libphonenumber-js.2dc19e3049a89d6f98e4.js +0 -1
  439. package/dist/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./packages/devcon/src/routes/dbrefactoring/components/StyledInput/StyledInput.js","webpack:///./packages/devcon/src/routes/dbrefactoring/components/DbRefactoringForm/Fragments.js","webpack:///./packages/devcon/src/routes/dbrefactoring/components/DbRefactoringForm/DbRefactoringForm.js","webpack:///./packages/devcon/src/routes/dbrefactoring/modules/actions.js","webpack:///./packages/devcon/src/routes/dbrefactoring/components/DbRefactoringForm/DbRefactoringFormContainer.js","webpack:///./packages/devcon/src/routes/dbrefactoring/components/UpgradeLanguageForm/UpgradeLanguageForm.js","webpack:///./packages/devcon/src/routes/dbrefactoring/components/UpgradeLanguageForm/UpgradeLanguageFormContainer.js","webpack:///./packages/devcon/src/routes/dbrefactoring/components/DbRefactoring/DbRefactoring.js","webpack:///./packages/devcon/src/routes/dbrefactoring/modules/reducer.js","webpack:///./packages/devcon/src/routes/dbrefactoring/modules/sagas.js","webpack:///./packages/devcon/src/routes/dbrefactoring/route.js","webpack:///./packages/devcon/src/routes/sqllog/modules/actions.js","webpack:///./packages/tocco-ui/src/Range/StyledRange.js","webpack:///./packages/tocco-ui/src/Range/rangeTypeMappings.js","webpack:///./packages/tocco-ui/src/Range/Range.js","webpack:///./packages/devcon/src/routes/sqllog/components/LogForm/LogForm.js","webpack:///./packages/devcon/src/routes/sqllog/components/LogForm/LogFormContainer.js","webpack:///./packages/devcon/src/routes/sqllog/components/LogTable/StyledLogEntry.js","webpack:///./packages/devcon/src/routes/sqllog/components/LogTable/LogEntry.js","webpack:///./packages/devcon/src/routes/sqllog/components/LogTable/LogTable.js","webpack:///./packages/devcon/src/routes/sqllog/components/LogTable/LogTableContainer.js","webpack:///./packages/devcon/src/routes/sqllog/components/LogView/LogView.js","webpack:///./packages/devcon/src/routes/sqllog/modules/reducer.js","webpack:///./packages/devcon/src/routes/sqllog/modules/sagas.js","webpack:///./packages/devcon/src/routes/sqllog/route.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/SingleSelect.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/MultiSelect.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StyledStringEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StringEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StyledTextEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/TextEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StyledDateAbstract.js","webpack:///./packages/tocco-ui/src/DatePicker/GlobalDatePickerStyles.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/DateAbstract.js","webpack:///./packages/tocco-ui/src/EditableValue/utils.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/DateEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/DateTimeEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StyledTimeEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/TimeEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/BoolEdit.js","webpack:///./packages/tocco-ui/src/Upload/StyledView.js","webpack:///./packages/tocco-ui/src/Upload/View.js","webpack:///./packages/tocco-ui/src/Upload/helpers.js","webpack:///./packages/tocco-ui/src/Upload/StyledUploadProgress.js","webpack:///./packages/tocco-ui/src/Upload/UploadProgress.js","webpack:///./packages/tocco-ui/src/Upload/StyledUploadInput.js","webpack:///./packages/tocco-ui/src/Upload/SyledUploadInput.js","webpack:///./packages/tocco-ui/src/Upload/UploadInput.js","webpack:///./packages/tocco-ui/src/Upload/Upload.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/Document.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/HtmlEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/RemoteSelect.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/MultiRemoteSelect.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/SearchFilterEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StyledUrlEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/UrlEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StyledPhoneEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/PhoneEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StyledDurationEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/DurationEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StyledNumberEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/NumberEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/IntegerEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StyledLocationEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/LocationEdit.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditorFactory.js","webpack:///./packages/tocco-ui/src/EditableValue/EditableValue.js","webpack:///./packages/tocco-ui/src/EditableValue/StyledEditableValue.js","webpack:///./packages/tocco-ui/src/Select/ClearIndicator.js","webpack:///./packages/tocco-ui/src/Select/DropdownIndicator.js","webpack:///./packages/tocco-ui/src/Select/IndicatorsContainer.js","webpack:///./packages/tocco-ui/src/Select/LoadingIndicator.js","webpack:///./packages/tocco-ui/src/Select/Menu.js","webpack:///./packages/tocco-ui/src/Select/MenuList.js","webpack:///./packages/tocco-ui/src/Select/ClickableWrapper.js","webpack:///./packages/tocco-ui/src/Select/MultiValueLabel.js","webpack:///./packages/tocco-ui/src/Select/SingleValue.js","webpack:///./packages/tocco-ui/src/Select/Select.js","webpack:///./packages/tocco-ui/src/SignalList/StyledSignalList.js","webpack:///./packages/tocco-ui/src/SignalList/SignalList.js","webpack:///./packages/tocco-ui/src/SignalList/StyledSignalListItem.js","webpack:///./packages/tocco-ui/src/SignalList/SignalListItem.js","webpack:///./packages/tocco-ui/src/SignalList/index.js","webpack:///./packages/tocco-ui/src/StatedValue/ErrorList.js","webpack:///./packages/tocco-ui/src/StatedValue/StyledStatedValue.js","webpack:///./packages/tocco-ui/src/StatedValue/StatedValue.js","webpack:///./packages/tocco-ui/src/utilStyles/colorMap.js"],"names":["StyledInput","styled","StyledInputCss","StyledInputWrapper","StyledEditableWrapperCss","fragments","selectedFragments","disabled","setFragmentSelected","map","fragment","key","id","type","checked","includes","onChange","e","target","Typography","for","label","version","modules","selectedModules","ignoreErrors","running","executeDbRefactoring","loadModules","loadFragments","setSelectedModules","setVersion","setIgnoreErrors","useEffect","length","onSubmit","preventDefault","StatedValue","hasValue","Select","options","value","isMulti","immutable","fixLabel","versionStr","replaceAll","Button","look","pending","unsetRunning","path","payload","mapActionCreators","selected","connect","state","dbRefactoring","languageUpgrade","DbRefactoringForm","language","executeLanguageUpgrade","setLanguage","UpgradeLanguageForm","setRunning","action","ACTION_HANDLERS","reducerUtil","filter","_","i","indexOf","initialState","mainSagas","requestExecution","pollExecution","dbRefactoringSelector","languageUpgradeSelector","all","takeLatest","call","rest","response","put","body","module","display","select","requestBody","statePath","method","spawn","headers","get","consoleLogger","notification","title","location","delay","toLowerCase","actions","container","DbRefactoring","reducers","handler","sagas","receiveEntry","data","StyledInputItemWrapper","StyledIconWrapper","scale","StyledRange","StyledExtender","datetimeFormat","datetime","toRange","from","moment","utc","format","to","add","isRangeValue","fromRange","local","getToOptions","fromValue","flatpickrOptions","minDate","getFromOptions","toValue","maxDate","date","icon","props","events","readOnly","hasRangeValue","exactEvents","useMemo","toEvents","fromEvents","typeMapping","rangeTypeMappings","baseType","EditableValue","_omit","Ball","onClick","getFromOrTo","getRangeValue","active","elapsed","setActive","setElapsed","fromText","toText","postPointDigits","fixedDecimalScale","sqlLog","LogForm","BORDER_COLOR","ERROR","StyledLogTable","StyledLogEntry","level","StyledStatementHeader","expandable","declareFont","StyledStatement","StyledTime","StyledElapsedContainer","StyledElapsed","entry","useState","expanded","setExpanded","truncate","sql","header","substr","Date","timestamp","iMillis","toLocaleString","filteredEntries","entries","filterEntries","LogTable","uuid","initSocket","params","name","messageReceivedAction","socket","LogView","openMenuOnClick","react","maxRows","rows","StyledDateAbstractInput","StyledDateAbstractOuterWrapper","StyledDateAbstractWrapper","secondaryLight","theme","secondary","paper","regular","baseSpace","GlobalDatePickerStyles","createGlobalStyle","DateAbstract","intl","formatMessage","flatpickr","locale","localeMap","wrap","handleOnChange","altInput","altInputClass","clickOpens","defaultDate","Flatpickr","wrapper","current","calendarContainer","classList","style","fontFamily","addEventListener","handleConfirmKey","initialized","setState","localeCode","l10ns","en","selectedDates","isoStrings","toISOString","every","v","onBlur","altValue","r","setDate","contains","shiftKey","focusInput","handleOnBlur","setTimeout","close","stopPropagation","React","Promise","then","componentIsUnmounted","German","French","Italian","initializeFlatPickr","prevProps","prevState","snapshot","this","optionsDiff","js","Object","keys","forEach","set","redraw","_isEqual","getLocale","localize","destroy","inputElement","querySelector","focus","tabIndex","onFocus","open","onKeyDown","data-wrap","ref","data-input","placeholder","placeholderText","aria-label","msg","onMouseDown","withTheme","injectIntl","atMostOne","array","Error","join","momentJStoToFlatpickrFormat","_forOwn","d","m","Y","K","H","h","k","replace","useIntl","getLocalizedAltFormat","_locale","longDateFormat","parseDate","s","momentDate","isValid","toDate","altFormat","dateFormat","allowInput","dateString","values","setValue","parsed","dates","dateTime","dateObj","year","getFullYear","month","getMonth","day","getDate","toLocalDateString","momentDateFormat","momentTimeFormat","altDateFormat","altTimeFormat","enableTime","time_24hr","isFirefox","window","sidebar","showClearButton","StyledBoolEdit","StyledView","StyledButtonsWrapper","StyledButton","binaryLink","downloadTitle","onUpload","deleteTitle","isNotUploadedFile","startsWith","className","Preview","alt","fileName","caption","maxDimensionX","maxDimensionY","srcUrl","thumbnailUrl","thumbnailLink","Link","neutral","download","href","StyledUploadProgress","StyledUploadProgressText","StyledSpan","fontSize","StyledUploadProgressIconAndText","file","preview","position","design","text","bytes","size","Math","floor","log","pow","toFixed","colorizeText","StyledDropzone","Dropzone","onDropProp","onDrop","multiple","files","Upload","textResources","isUploading","previewFile","states","setStates","uploading","setUploadingState","defaultProps","Document","upload","uploadText","uploadingText","delete","deleteText","downloadText","StyledHtmlEdit","declareTypograhpy","HtmlEdit","delta","source","lazyQuill","lazy","dangerouslySetInnerHTML","__html","Suspense","fallback","handleChange","defaultValue","clipboard","matchVisual","url","test","PhoneEdit","str","caretPosition","spaces","substring","match","previousValue","previousFormatted","libPhoneImport","AsYouType","defaultCountry","input","currentFormatted","spacesPrevious","amountOfSpacesBeforeCaret","offset","requestAnimationFrame","start","setSelectionRange","bind","newValue","parsedNumber","parseNumber","valueNormalized","_isEmpty","removeSpaces","formatNumber","currentCaretPosition","selectionStart","repositionCaret","_get","FALLBACK_DEFAULT_COUNTRY","importLibPhoneNumber","displayValue","determineDisplayValue","StyledDurationEdit","StyledDurationEditFocusable","generateDisabledShade","StyledDurationEditShadow","DurationEdit","milliSeconds","hours","minutes","parseInt","hoursWidth","hoursShadow","offsetWidth","minutesWidth","minutesShadow","validity","valid","slice","getDesiredInputInMinutes","toString","minutesValue","hoursValue","calculateMilliseconds","showUnits","event","charCode","millisecondsToDuration","overflowX","min","handleOnFocus","onInput","handleHourChange","onKeyPress","preventNonNumeric","pattern","step","width","hoursLabel","handleMinutesChange","minutesLabel","getPreDecimalPositions","number","ceil","log10","abs","isNumber","isNaN","parseFloat","checkValueRange","minValue","maxValue","isAllowedValue","floatValue","countryCode","thousandSeparator","decimalSeparator","prePointDigits","allowNegative","suffix","prefix","calculatedMaxValue","calculateMaxValue","numberFormatOptions","isAllowed","decimalScale","isNumericString","onValueChange","undefined","stringValue","valueBeforeBlur","allowLeadingZeros","StyledLocationEdit","shadeColor","BoolEdit","DateEdit","DateTimeEdit","IntegerEdit","LocationEdit","attr","suggestion","cantonString","countryString","country","postcode","city","field","fetchSuggestions","inputPropsZip","inputPropsCity","locationInput","queryParams","focused","getRef","suggestions","onSuggestionsFetchRequested","returnOnSuggestionFetchRequested","getSuggestionValue","returnGetSuggestion","renderSuggestion","onSuggestionsClearRequested","inputProps","onSuggestionSelected","focusInputOnSuggestionClick","shouldRenderSuggestions","isLoading","showGoogleMaps","dense","mapButtonTitle","MultiRemoteSelect","MultiSelect","NumberEdit","RemoteSelect","SearchFilterEdit","SingleSelect","StringEdit","TextEdit","UrlEdit","TimeEdit","blurValue","Component","data-cy","console","StyledEditableValue","css","StyledEditableWrapper","color","StyledEditableControlCss","StyledEditableControl","innerProps","selectProps","isDisabled","c","menuIsOpen","handleAdvancedSearch","openAdvancedSearch","openCreate","openRemoteCreate","createPermission","children","onTouchEnd","onMouseUp","TetherPosition","attachment","targetAttachment","constraints","wrapperWidth","wrapperHeight","moreOptionsAvailable","moreOptionsAvailableText","reactSelectTheme","tooltips","loadTooltip","DetailLink","tooltip","content","ClickableWrapper","entityKey","Popover","onMouseOver","StyledSingleValueWrapper","fetchOptions","noResultsText","searchOptions","selectComponent","useRef","selectWrapper","debouncedSearchOptions","_debounce","clientWidth","clientHeight","outlineStyle","cursor","getOptionLabel","option","getOptionValue","components","ClearIndicator","LoadingIndicator","DropdownIndicator","IndicatorsContainer","IndicatorSeparator","Menu","MenuList","MultiValueLabel","SingleValue","noOptionsMessage","closeMenuOnSelect","isSearchable","filterOption","isClearable","loadingMessage","menuShouldScrollIntoView","autoFocus","onInputChange","searchTerm","onMenuOpen","styles","reactSelectStyles","themeSelect","blurInputOnSelect","StyledUl","as","child","COLORS","StyledSignalListItem","StyledLi","condition","getColor","propTypes","ICONS","SignalListItem","getIcon","List","Item","error","errorValues","push","idx","declareCursor","isDisplay","StyledLabelWrapper","StyledStatedValueLabel","fontWeight","dirty","lineHeight","secondaryPosition","signal","getTextColor","StyledStatedValueBox","colorizeBorder","isDirty","declareFocus","StyledHtmlFormatter","StyledStatedValueDescription","fadeIn","keyframes","StyledStatedValueError","StyledStatedValueWrapper","description","mandatory","mandatoryTitle","touched","signalProp","showError","labelAlt","hasError","detectSignal","htmlFor","shade0","shade1","shade2","transparent"],"mappings":"4aAMO,IAAMA,EAAcC,WAAH,IAElBC,MAIOC,EAAqBF,SAAH,IAEzBG,MCuBN,QAjCkB,SAAC,GAAkE,IAAjEC,EAAiE,EAAjEA,UAAWC,EAAsD,EAAtDA,kBAAmBC,EAAmC,EAAnCA,SAAUC,EAAyB,EAAzBA,oBAK1D,OACE,oCACGH,EAAUI,KAAI,SAAAC,GAAQ,OACrB,yBAAKC,IAAKD,EAASE,IACjB,2BACEC,KAAK,WACLD,GAAIF,EAASE,GACbE,QAASR,EAAkBS,SAASL,EAASE,IAC7CI,UAZWJ,EAYYF,EAASE,GAZf,SAAAK,GACzBT,EAAoBI,EAAIK,EAAEC,OAAOJ,WAYzBP,SAAUA,IAEZ,kBAACY,EAAA,SAAD,CAAkBC,IAAKV,EAASE,IAAKF,EAASW,QAfjC,IAAAT,OC+FvB,QA7F0B,SAAC,GAgBrB,IAfJU,EAeI,EAfJA,QACAC,EAcI,EAdJA,QACAC,EAaI,EAbJA,gBACAnB,EAYI,EAZJA,UACAC,EAWI,EAXJA,kBACAmB,EAUI,EAVJA,aACAC,EASI,EATJA,QACAnB,EAQI,EARJA,SACAoB,EAOI,EAPJA,qBACAC,EAMI,EANJA,YACAC,EAKI,EALJA,cACAC,EAII,EAJJA,mBACAtB,EAGI,EAHJA,oBACAuB,EAEI,EAFJA,WACAC,EACI,EADJA,iBAEAC,gBAAU,WACe,IAAnBV,EAAQW,QACVN,IAEuB,IAArBvB,EAAU6B,QACZL,MAED,IAgBH,OACE,0BAAMM,SANa,SAAAlB,GACnBA,EAAEmB,iBACFT,MAKE,kBAACU,EAAA,EAAD,CAAahB,MAAM,iCAAiCiB,SAAUd,EAAgBU,OAAS,GACnF,kBAACK,EAAA,EAAD,CAAQC,QAASjB,EAASkB,MAAOjB,EAAiBR,SAAUc,EAAoBY,SAAO,EAACC,UAAWpC,KAEvG,kBAAC8B,EAAA,EAAD,CAAahB,MAAM,YAAYuB,UAAQ,GACrC,kBAAC,EAAD,CACEvC,UAAWA,EACXC,kBAAmBA,EACnBC,SAAUA,EACVC,oBAAqBA,KAGzB,kBAAC6B,EAAA,EAAD,CAAahB,MAAM,UAAUiB,SAAUhB,EAAQY,OAAS,GACtD,kBAAC/B,EAAD,KACE,kBAACH,EAAD,CAAayC,MAAOnB,EAASN,SA7BT,SAAAC,GAC1B,IAAM4B,EAAa5B,EAAEC,OAAOuB,MAAMK,WAAW,YAAa,IAC1Df,EAAWc,IA2BuDtC,SAAUA,MAG1E,kBAAC8B,EAAA,EAAD,CAAahB,MAAM,gBAAgBuB,UAAQ,GACzC,2BAAO/B,KAAK,WAAWC,QAASW,EAAcT,SA5BnB,SAAAC,GAC/Be,EAAgBf,EAAEC,OAAOJ,UA2B6DP,SAAUA,KAE9F,kBAACwC,EAAA,EAAD,CAAQlC,KAAK,SAASQ,MAAM,UAAU2B,KAAK,SAASC,QAASvB,EAASnB,SAAUA,MCpE/E,IA8EM2C,EAAe,SAAAC,GAAI,MAAK,CACnCtC,KApE2B,8BAqE3BuC,QAAS,CACPD,UCnDEE,EAAoB,CACxBzB,YDlByB,iBAAO,CAChCf,KAd0B,+BCgC1BgB,cDhB2B,iBAAO,CAClChB,KAhB4B,iCCgC5BiB,mBDQgC,SAAAN,GAAe,MAAK,CACpDX,KArCkC,qCAsClCuC,QAAS,CACP5B,qBCVFhB,oBDciC,SAACE,EAAU4C,GAAX,MAAyB,CAC1DzC,KA3CmC,sCA4CnCuC,QAAS,CACP1C,WACA4C,cCjBFvB,WDfwB,SAAAT,GAAO,MAAK,CACpCT,KAnByB,4BAoBzBuC,QAAS,CACP9B,aCaFU,gBDoB6B,SAAAP,GAAY,MAAK,CAC9CZ,KAlD+B,kCAmD/BuC,QAAS,CACP3B,kBCtBFE,qBD0BkC,iBAAO,CACzCd,KAxDoC,0CCgCtC,SAAe0C,cA3BS,SAAAC,GAAS,MAG3BA,EAAMC,cADRA,EAF6B,EAE7BA,cAAeC,EAFc,EAEdA,gBAGjB,MAAO,CACLpC,QAASmC,EAAcnC,QACvBC,QAASkC,EAAclC,QACvBC,gBAAiBiC,EAAcjC,gBAC/BnB,UAAWoD,EAAcpD,UACzBC,kBAAmBmD,EAAcnD,kBACjCmB,aAAcgC,EAAchC,aAC5BC,QAAS+B,EAAc/B,QACvBnB,SAAUkD,EAAc/B,SAAWgC,EAAgBhC,WAcf2B,EAAxC,CAA2DM,GCE3D,QApC4B,SAAC,GAMvB,IALJC,EAKI,EALJA,SACAlC,EAII,EAJJA,QACAnB,EAGI,EAHJA,SACAsD,EAEI,EAFJA,uBACAC,EACI,EADJA,YAWA,OACE,0BAAM3B,SANa,SAAAlB,GACnBA,EAAEmB,iBACFyB,MAKE,kBAACxB,EAAA,EAAD,CAAahB,MAAM,WAAWiB,SAAUsB,EAAS1B,OAAS,GACxD,kBAAC/B,EAAD,KACE,kBAACH,EAAD,CAAayC,MAAOmB,EAAU5C,SAbT,SAAAC,GAC3B6C,EAAY7C,EAAEC,OAAOuB,QAY+ClC,SAAUA,MAG5E,kBAACwC,EAAA,EAAD,CAAQlC,KAAK,SAASQ,MAAM,2BAA2B2B,KAAK,SAASC,QAASvB,EAASnB,SAAUA,MCrBvG,IAYM8C,EAAoB,CACxBS,YH8CyB,SAAAF,GAAQ,MAAK,CACtC/C,KA3D0B,6BA4D1BuC,QAAS,CACPQ,cGhDFC,uBHoDoC,iBAAO,CAC3ChD,KAjEsC,4CGexC,SAAe0C,cAjBS,SAAAC,GAAS,MAG3BA,EAAMC,cADRA,EAF6B,EAE7BA,cAAeC,EAFc,EAEdA,gBAGjB,MAAO,CACLE,SAAUF,EAAgBE,SAC1BlC,QAASgC,EAAgBhC,QACzBnB,SAAUmD,EAAgBhC,SAAW+B,EAAc/B,WASf2B,EAAxC,CAA2DU,G,MCjBvD,kBAAC5C,EAAA,MAAD,6B,EACA,kBAAC,EAAD,M,EACA,kBAACA,EAAA,MAAD,yB,EACA,kBAAC,EAAD,MAIJ,QATsB,kBACpB,8C,qnBCHF,IAwBM6C,EAAa,SAACtC,EAASyB,GAAV,OAAmB,SAACK,EAAOS,GAAR,cACjCT,GADiC,UAEnCL,GAAQc,EAAOb,QAAQD,KAFY,OAG/BK,EAAML,GAAQc,EAAOb,QAAQD,OAHE,IAIlCzB,gBAIEwC,GAAe,WLlCM,4BKmCFC,0BAAkC,UAAW,kBADjD,MLhCM,4BKkCFA,0BAAkC,UAAW,kBAFjD,ML/Be,qCKkCFA,0BAAkC,kBAAmB,kBAHlE,ML7BY,kCKiCFA,0BAAkC,eAAgB,kBAJ5D,MLjCQ,+BKCF,SAACX,EAAOS,GAAR,cACtBT,GADsB,IAEzBC,cAAe,EAAF,KACRD,EAAMC,eADE,IAEXpD,UAAW4D,EAAOb,QAAQ/C,UAC1BC,kBACE2D,EAAOb,QAAQ/C,UACZ+D,QAAO,SAAA1D,GAAQ,OAA0B,IAAtBA,EAAS4C,YAC5B7C,KAAI,SAAAC,GAAQ,OAAIA,EAASE,aAwBb,ML9BgB,uCKUH,SAAC4C,EAAOS,GAAR,cAC7BT,GAD6B,IAEhCC,cAAe,EAAF,KACRD,EAAMC,eADE,IAEXnD,mBAC8B,IAA5B2D,EAAOb,QAAQE,SAAf,cACQE,EAAMC,cAAcnD,mBAD5B,CAC+C2D,EAAOb,QAAQ1C,WAC1D8C,EAAMC,cAAcnD,kBACnB8D,QAAO,SAACC,EAAGC,GAAJ,OAAUA,IAAMd,EAAMC,cAAcnD,kBAAkBiE,QAAQN,EAAOb,QAAQ1C,oBAY1E,ML5BiB,uCKmCFsD,GAAW,EAAM,kBAPhC,MLzBQ,8BKiCFA,GAAW,IARjB,ML3BO,6BKoCFG,0BAAkC,WAAY,oBATnD,ML1BmB,yCKoCFH,GAAW,EAAM,oBAVlC,GAafQ,EAAe,CACnBf,cAAe,CACbnC,QAAS,GACTC,QAAS,GACTC,gBAAiB,GACjBnB,UAAW,GACXC,kBAAmB,GACnBmB,cAAc,EACdC,SAAS,GAEXgC,gBAAiB,CACfE,SAAU,GACVlC,SAAS,I,0ECpDY+C,I,WASR7C,I,WAQAC,I,WAKAF,I,WAaAkC,I,WAUAa,I,YAkBAC,IAlEXC,GAAwB,SAAApB,GAAK,OAAIA,EAAMC,cAAcA,eACrDoB,GAA0B,SAAArB,GAAK,OAAIA,EAAMC,cAAcC,iBAE9C,SAAUe,KAAV,iEACb,OADa,UACPK,QAAI,EACRC,QNXwB,6BMWSnD,KACjCmD,QNX0B,+BMWSlD,KACnCkD,QNLkC,uCMKSpD,KAC3CoD,QNJoC,yCMISlB,MALlC,uCASR,SAAUjC,KAAV,uEACY,OADZ,UACkBoD,QAAKC,gBAAkB,gCADzC,OAEL,OADMC,EADD,iBAECC,QNc8B,CACpCtE,KA/ByB,4BAgCzBuC,QAAS,CACP7B,QMjB2B2D,EAASE,KAAK3E,KAAI,SAAA4E,GAAM,MAAK,CACxD1E,IAAK0E,EACLC,QAASD,SAJN,uCAQA,SAAUxD,KAAV,uEACY,OADZ,UACkBmD,QAAKC,gBAAkB,kCADzC,OAEL,OADMC,EADD,iBAECC,QNDkC,CACxCtE,KAzB2B,8BA0B3BuC,QAAS,CACP/C,UMF6B6E,EAASE,QAFnC,uCAKA,SAAUzD,KAAV,iFAC+D,OAD/D,UACqE4D,QAAOX,IAD5E,OAUL,OAVK,SACEpD,EADF,EACEA,gBAAiBlB,EADnB,EACmBA,kBAAmBgB,EADtC,EACsCA,QAASG,EAD/C,EAC+CA,aAE9C+D,EAAc,CAClBjE,QAASC,EAAgBf,KAAI,SAAA4E,GAAM,OAAIA,EAAO1E,OAC9CN,UAAWC,EACXgB,UACAG,gBAPG,WAUCuD,QAAKN,GAAkBc,EAAa,iBAVrC,wCAaA,SAAU3B,KAAV,2EACc,OADd,UACoB0B,QAAOV,IAD3B,OAOL,OAPK,SACEjB,EADF,EACEA,SAED4B,EAAc,CAClB5B,YAJG,UAOCoB,QAAKN,GAAkBc,EAAa,mBAPrC,uCAUA,SAAUd,GAAiBc,EAAaC,GAAxC,yEAOc,OANbjD,EAAU,CACdkD,OAAQ,OACRN,KAAMI,GAHH,mBAOoBR,QAAKC,gBAAkB,kCAAmCzC,GAP9E,OAQH,OADM0C,EAPH,iBAQGS,QAAMhB,GAAeO,EAASU,QAAQC,IAAI,YAAaJ,GAR1D,8BAWH,OAXG,yBAUHK,aAAuB,kCAAvB,MAVG,WAWGX,QAAIY,YAAqB,CAC7BlF,KAAM,QACNmF,MAAO,qCAbN,qDAkBA,SAAUrB,GAAcsB,EAAUR,GAAlC,yEACL,OADK,UACCS,QAAM,KADP,OAEY,OAFZ,UAEkBlB,QAAKC,gBAAkBgB,GAFzC,UAECf,EAFD,OAIS,eADR1B,EAAQ0B,EAASE,KAAK5B,MAAM2C,eAH7B,iBAKH,OALG,UAKGhB,QAAIiB,EAAqBX,IAL5B,OAMH,OANG,WAMGN,QAAIY,YAAqB,CAC7BlF,KAAM,UACNmF,MAAO,wCARN,mCAUgB,WAAVxC,EAVN,iBAWH,OAXG,WAWG2B,QAAIiB,EAAqBX,IAX5B,QAYH,OAZG,WAYGN,QAAIY,YAAqB,CAC7BlF,KAAM,QACNmF,MAAO,qCAdN,gCAiBH,OAjBG,WAiBGhB,QAAKL,GAAesB,GAjBvB,yCCpEP,UACEI,UAAWC,EACXC,SAAU,CACR9C,cF0DW,WAA+C,IAA9BD,EAA8B,uDAAtBgB,EAAcP,EAAQ,uCACtDuC,EAAUtC,EAAgBD,EAAOpD,MACvC,OAAO2F,EAAUA,EAAQhD,EAAOS,GAAUT,IE1D1CiD,MAAO,CAACA,M,yFCLGC,EAAe,SAAAC,GAAI,MAAK,CACnC9F,KAL2B,uBAM3BuC,QAAS,CACPuD,U,+8BCHG,IAAMxG,EAAqBF,SAAH,KAGlB2G,EAAyB3G,SAAH,KAUtB4G,EAAoB5G,SAAH,IACf6G,UAAY,MAKdC,EAAc9G,SAAH,KAIXD,EAAcC,SAAH,KAQX+G,EAAiB/G,SAAH,K,inBCjC3B,IAAMgH,EAAiB,+BA6BvB,QA1B0B,CACxBC,SAAU,CACRrG,KAAM,OACNsG,QAAS,SAAA1E,GAGP,MAAO,CAAC2E,KAFU3E,EAAQ4E,IAAO5E,GAAO6E,MAAMC,OAAON,GAAkB,KAE9CO,GADT/E,EAAQ4E,IAAO5E,GAAO6E,MAAMG,IAAI,EAAG,KAAKF,OAAON,GAAkB,KAC3CS,cAAc,IAEtDC,UAAW,SAAAlF,GACT,OAAIA,GAASA,EAAM2E,KACVC,QAAW5E,EAAM2E,KAAMH,GAAgBW,QAAQL,OAZ3C,cAcT9E,GAASA,EAAM+E,GACVH,QAAW5E,EAAM+E,GAAIP,GAAgBW,QAAQL,OAfzC,cAiBN,MAETM,aAAc,SAACrF,EAASsF,GAAV,cAA6BtF,GAA7B,IAAsCuF,iBAAkB,CAACC,QAASF,MAChFG,eAAgB,SAACzF,EAAS0F,GAAV,cAA2B1F,GAA3B,IAAoCuF,iBAAkB,CAACI,QAASD,OAElFE,KAAM,CACJP,aAAc,SAACrF,EAASsF,GAAV,cAA6BtF,GAA7B,IAAsCuF,iBAAkB,CAACC,QAASF,MAChFG,eAAgB,SAACzF,EAAS0F,GAAV,cAA2B1F,GAA3B,IAAoCuF,iBAAkB,CAACI,QAASD,Q,ukBC+D1E,kBAACrB,EAAD,KACE,kBAAC,IAAD,CAAMwB,KAAK,qBAiEvB,QAxIc,SAAAC,GAAS,IACd7F,EAA0C6F,EAA1C7F,MAAO8F,EAAmCD,EAAnCC,OAAQC,EAA2BF,EAA3BE,SAAU3H,EAAiByH,EAAjBzH,KAAM2B,EAAW8F,EAAX9F,QAChCiG,EAAiC,WAAjB,IAAOhG,IAAsBA,GAASA,EAAMiF,aAE5DgB,GAAcC,cAAQ,oBAAC,KACxBJ,GADuB,IAE1BvH,SAAU,SAAAyB,GACR8F,EAAOvH,SAASyB,SAIdmG,GAAWD,cAAQ,iBAAO,CAC9B3H,SAAU,SAAAkH,GACRK,EAAOvH,SAAP,OACKyB,GADL,IAEE+E,GAAIU,UAKJW,GAAaF,cAAQ,iBAAO,CAChC3H,SAAU,SAAA8G,GACRS,EAAOvH,SAAP,OACKyB,GADL,IAEE2E,KAAMU,UAKNgB,EAAcC,EAAkBlI,GAsBhCmI,EAAWF,GAAeA,EAAYjI,KAAOiI,EAAYjI,KAAOA,EAEtE,OAAO,kBAACkG,EAAD,KACL,kBAAC5G,EAAD,KACIsI,EAME,kBAACzI,EAAD,KACA,kBAAC4G,EAAD,KACE,kBAACqC,EAAA,EAAD,OACMX,EADN,CAEE9F,QA7BW,SAACA,EAAS0F,GAAV,OACrBY,GAAeA,EAAYb,eACvBa,EAAYb,eAAezF,EAAS0F,GACpC1F,EA0BeyF,CAAezF,EAASC,EAAM+E,IACvC/E,MAAOA,GAASA,EAAM2E,KAAO3E,EAAM2E,KAAO,KAC1CmB,OAAQM,MANZ,EAYA,kBAACjC,EAAD,KACE,kBAACqC,EAAA,EAAD,OACMX,EADN,CAEE9F,QA7CS,SAACA,EAASsF,GAAV,OACnBgB,GAAeA,EAAYjB,aACvBiB,EAAYjB,aAAarF,EAASsF,GAClCtF,EA0CeqF,CAAarF,EAASC,EAAM2E,MACrC3E,MAAOA,GAASA,EAAM+E,GAAK/E,EAAM+E,GAAK,KACtCe,OAAQK,OAtBZ,kBAACK,EAAA,EAAD,KACApI,KAAMmI,GACFE,IAAMZ,EAAO,CAAC,SAFlB,CAGAC,OAAQG,MAwBd,kBAAC1B,EAAD,KACE,kBAACmC,EAAA,EAAD,CAAM5I,SAAUiI,EAAUH,KAAMI,EAAgB,eAAiB,eAAgBW,QAAS,WACpFX,EACFF,EAAOvH,SA7CK,SAAAyB,GAAK,OACvBqG,GAAeA,EAAYnB,UACvBmB,EAAYnB,UAAUlF,GACtBA,GAASA,EAAM2E,KAAO3E,EAAM2E,KAAO3E,GAASA,EAAM+E,GAAK/E,EAAM+E,GAAK,KA0ChD6B,CAAY5G,IAE5B8F,EAAOvH,SA1CO,SAAAyB,GAAK,OACzBqG,GAAeA,EAAY3B,QACvB2B,EAAY3B,QAAQ1E,GACpB,CAAC2E,KAAM3E,EAAO+E,GAAI/E,EAAOiF,cAAc,GAuCrB4B,CAAc7G,UCzDxC,QA9CgB,SAAC,GAA6C,IAA5C8G,EAA4C,EAA5CA,OAAQC,EAAoC,EAApCA,QAASC,EAA2B,EAA3BA,UAAWC,EAAgB,EAAhBA,WAS5C,OACE,6BACE,kBAACrH,EAAA,EAAD,CAAahB,MAAM,SAASuB,UAAQ,GAClC,2BAAO/B,KAAK,WAAWC,QAASyI,EAAQvI,SAXnB,SAAAC,GACzBwI,EAAUxI,EAAEC,OAAOJ,aAYjB,kBAACuB,EAAA,EAAD,CAAahB,MAAM,UAAUiB,WAAYkH,GACvC,kBAAC,EAAD,CACAG,SAAS,OACTC,OAAO,KACP/I,KAAK,SACL4B,MAAO+G,EACPhH,QAAS,CACPqH,gBAAiB,EACjBC,mBAAmB,GAErBvB,OAAQ,CACNvH,SApBoB,SAAAyB,GAC1BiH,EAAWjH,UCNf,IAKMY,EAAoB,CACxBoG,ULAuB,SAAAF,GAAM,MAAK,CAClC1I,KAXwB,oBAYxBuC,QAAS,CACPmG,YKFFG,WLMwB,SAAAF,GAAO,MAAK,CACpC3I,KAjByB,qBAkBzBuC,QAAS,CACPoG,cKNJ,SAAejG,cAVS,SAAAC,GAAK,MAAK,CAChC+F,OAAQ/F,EAAMuG,OAAOR,OACrBC,QAAShG,EAAMuG,OAAOP,WAQgBnG,EAAxC,CAA2D2G,G,y/BCZ3D,IAAMC,GAAe,CACnBC,MAAO,QAGIC,GAAiBlK,SAAH,MAKdmK,GAAiBnK,SAAH,MAKvB,SAAAqI,GAAK,kCAAyB2B,GAAa3B,EAAM+B,QAAU,OAAtD,QAGIC,GAAwBrK,UAAH,MAE9B,SAAAqI,GAAK,OAAIA,EAAMiC,YAAc,sBAG3BC,UAIOC,GAAkBxK,UAAH,MAKtBuK,UAIOE,GAAazK,UAAH,MAMjBuK,UAIOG,GAAyB1K,UAAH,MAM7BuK,UAiBOI,GAAgB3K,UAAH,MACJ,SAAAqI,GAAK,OAdAkB,EAcuBlB,EAAMkB,UAbvC,IACN,OAELA,GAAW,IACN,UAELA,GAAW,IACN,OAEF,UAVkB,IAAAA,KCX3B,SAnCiB,SAAC,GAAY,IAAXqB,EAAW,EAAXA,MAAW,GACIC,eAAS,GADb,WACrBC,EADqB,KACXC,EADW,KAGtBC,EAAWJ,EAAMK,IAAIhJ,OAAS,IAQ9BiJ,EAASF,EAAWJ,EAAMK,IAAIE,OAAO,EAAG,KAAO,MAAQP,EAAMK,IAEnE,OACE,kBAACd,GAAD,KACE,kBAACE,GAAD,CAAuBC,WAAYU,EAAU7B,QAV7B,WACd6B,GACFD,GAAaD,KAQuDI,GACnEJ,GAAY,kBAACN,GAAD,KAAkBI,EAAMK,KACrC,kBAACR,GAAD,KAAa,IAAIW,KAAKR,EAAMS,UAAUC,SAASC,kBAC/C,kBAACb,GAAD,KACE,kBAACC,GAAD,CAAepB,QAASqB,EAAMrB,SAAUqB,EAAMrB,QAA9C,UCxBR,I,GAkBU,kBAACrI,EAAA,QAAD,2BAuBV,SA7BiB,SAAC,GAAuB,IACjCsK,EAbc,SAACC,EAASlC,GAC9B,OAAKA,EAGEkC,EAAQtH,QAAO,SAAAyG,GACpB,OAA6B,IAAzBrB,EAAQ9B,aACHmD,EAAMrB,SAAWA,EAAQpC,MAAQyD,EAAMrB,SAAWA,EAAQhC,GAE5DqD,EAAMrB,SAAWA,KANjBkC,EAWeC,CADe,EAAtBD,QAAsB,EAAblC,SAE1B,OACE,kBAACW,GAAD,KACGsB,EAAgBvJ,OAAS,EACtBuJ,EAAgBhL,KAAI,SAAAoK,GAAK,OAAI,kBAAC,GAAD,CAAUlK,IAAKkK,EAAMlK,IAAKkK,MAAOA,OADjE,KCXP,UAAetH,cARS,SAAAC,GAAK,MAAK,CAChCkI,QAASlI,EAAMuG,OAAO2B,QACtBlC,QAAShG,EAAMuG,OAAOP,WAGE,GAG1B,CAA2DoC,I,OCJvD,kBAACzK,EAAA,MAAD,gB,GACA,kBAAC,EAAD,M,GACA,kBAAC,GAAD,MAIJ,SARgB,kBACd,+C,6oBCFF,IAYM+C,IAAe,cXjBQ,wBWKF,SAACV,EAAD,OAASJ,EAAT,EAASA,QAAT,OACzBI,EAAM+F,OAAN,SAES/F,GAFT,IAGMkI,QAAS,CAAC,SACLtI,EAAQuD,MADN,IAELhG,KAAKkL,aAFA,YAIJrI,EAAMkI,YAEXlI,KAEe,QXhBK,oBWkBFW,2BAAkC,WAFrC,QXfM,qBWkBFA,2BAAkC,YAHtC,IAMfK,GAAe,CACnBkH,QAAS,GACTnC,QAAQ,EACRC,QAAS,M,6DCrBc/E,I,aAMRqH,IANF,SAAUrH,KAAV,kEACb,OADa,UACPK,SAAI,EACRE,SAAK8G,MAFM,wCAMR,SAAUA,KAAV,wEAKL,OAJMC,EAAS,CACbC,KAAM,aACNC,sBAAuB7F,GAHpB,UAKCpB,SAAKkH,mBAAsBH,GAL5B,wCCPP,UACE1F,UAAW8F,GACX5F,SAAU,CACRwD,OFsBW,WAA+C,IAA9BvG,EAA8B,uDAAtBgB,GAAcP,EAAQ,uCACtDuC,EAAUtC,GAAgBD,EAAOpD,MACvC,OAAO2F,EAAUA,EAAQhD,EAAOS,GAAUT,IEtB1CiD,MAAO,CAACA,M,kICgCV,QApCqB,SAAA6B,GAAK,OACxB,kBAAC/F,EAAA,EAAD,KACE3B,GAAI0H,EAAM1H,GACV+B,UAAW2F,EAAM3F,UACjBD,SAAS,EACT1B,SAAUsH,EAAMtH,SAChByB,MAAO6F,EAAM7F,MACb2J,iBAAe,GACX9D,EAAM9F,WCuBd,QA/BoB,SAAA8F,GAAK,OACvB,kBAAC/F,EAAA,EAAD,KACE3B,GAAI0H,EAAM1H,GACV8B,SAAS,EACTC,UAAW2F,EAAM3F,UACjB3B,SAAUsH,EAAMtH,SAChByB,MAAO6F,EAAM7F,MACb2J,iBAAe,GACX9D,EAAM9F,W,uICDd,QARyBvC,kBAAmB,SAAAqI,GAAK,MAAK,CACpDzH,KAAM,UADiBZ,CAAH,IAIhBC,MCmBN,QAAemM,eApBI,SAAA/D,GAAK,OACtB,kBAAC,KAAD,CAAuB3F,UAAW2F,EAAM3F,WACtC,kBAAC,EAAD,CACEpC,SAAU+H,EAAM3F,UAChB/B,GAAI0H,EAAM1H,GACVoL,KAAM1D,EAAM0D,KACZhL,SAAU,SAAAC,GAAC,OAAIqH,EAAMtH,SAASC,EAAEC,OAAOuB,QACvCE,UAAW2F,EAAM3F,UACjBF,MAAO6F,EAAM7F,OAAS,S,uKCD5B,SAR+BxC,SAAO,cAAE0C,UAAF,IAAgBsC,EAAhB,4BAA0B,kBAAC,IAAqBA,KAAvDhF,CAAH,IAEtBC,MCqBN,QAAemM,eAtBE,SAAA/D,GAAK,OACpB,kBAAC,KAAD,CAAuB3F,UAAW2F,EAAM3F,WACtC,kBAAC,EAAD,CACE/B,GAAI0H,EAAM1H,GACV+B,UAAW2F,EAAM3F,UACjB2J,QAAS,GACTN,KAAM1D,EAAM0D,KACZhL,SAAU,SAAAC,GAAC,OAAIqH,EAAMtH,SAASC,EAAEC,OAAOuB,QACvClC,SAAU+H,EAAM3F,UAChB4J,KAAM,EACN9J,MAAO6F,EAAM7F,Y,2kBCVZ,IAAM+J,GAA0BvM,WAAH,KAE9BC,MAIOuM,GAAiCxM,SAAH,KAC9B,qBAAE0C,UAA2B,EAAI,aAGjC+J,GAA4BzM,SAAH,IAEhCG,MAGW,qBAAEuC,UAA2B,OAAS,WAGpC,qBAAEA,UAA2B,QAAU,U,mlGCrB1D,IACMgK,GAAiBC,UAAY,kBAC7BC,GAAYD,UAAY,aACxBE,GAAQF,UAAY,SACpBG,GAAUH,eAAiB,WAC3BI,GAAYlG,YAAa,GAElBmG,IAAyBC,QAAH,MAG3B1C,UAVc,IAYImC,GAMGA,GAKHA,GAQLK,GACEA,GACCA,GAjCF,YAyCDD,GAKUD,GAIHA,GAKThG,WAAY,GACViG,GAxDC,IAgEAF,GACDD,eAAiB,QAOfI,GACFD,GAUKJ,GACXG,GAuBWD,GACJA,GAeIF,GACJA,GACPG,GAKAA,GACDA,GAGGD,GACDA,I,ggCCwBR,kBAACI,GAAD,MAnJFE,e,qBAIJ,WAAY7E,GAAO,yBACjB,cAAMA,GADW,uBAHP,MAGO,mCAFI,GAEJ,kBA6Bb,SAAA1H,GAAE,OAAI,EAAK0H,MAAM8E,KAAKC,cAAc,CAACzM,UA7BxB,kCA+BG,SAAA0M,GACpB,IAAMC,EAAS,EAAKC,UAAU,EAAKlF,MAAM8E,KAAKG,QAE9C,EAAK/K,QAAL,OACEiL,MAAM,EACNzM,SAAU,EAAK0M,eACfC,UAAU,EACVC,cAAe,GACfC,YAAa,EAAKvF,MAAM3F,UACxBmL,YAAa,EAAKxF,MAAM7F,OACpB8K,EAAS,CAACA,UAAU,IACpB,EAAKjF,MAAM9F,QAAU,EAAK8F,MAAM9F,QAAQuF,iBAAmB,IAGjE,EAAKuF,UAAY,IAAI,EAAKS,UAAU,EAAKC,QAAQC,QAAS,EAAKzL,SAC/D,EAAK8K,UAAUY,kBAAkBC,UAAU1G,IAAI,kBAC/C,EAAK6F,UAAUY,kBAAkBE,MAAMC,WAAazB,eAAiB,UAAjBA,CAA4B,EAAKtE,OACrF,EAAKgF,UAAUY,kBAAkBI,iBAAiB,UAAW,EAAKC,kBAE9D,EAAKjG,MAAMkG,aACb,EAAKlG,MAAMkG,cAEb,EAAKC,SAAS,CAACd,SAAU,EAAKL,UAAUK,SAASlL,WArDhC,wBAwDP,SAAAiM,GACV,GAAI,EAAKlB,UAAW,CAClB,IAAID,EAAS,EAAKC,UAAUkB,GAM5B,OAHKnB,GAAU,EAAKQ,YAClBR,EAAS,EAAKQ,UAAUY,MAAMC,IAEzBrB,EAET,OAAO,QAlEU,6BAmGF,SAAAsB,GACf,IAAMC,EAAaD,EAAcpO,KAAI,SAAA2H,GAAI,OAAIA,EAAK2G,iBAClD,EAAKN,SAAS,CAACd,SAAU,EAAKL,UAAUK,SAASlL,SAC7C,EAAKH,YAAoC,IAAtBwM,EAAW5M,SAChC,EAAKoG,MAAMtH,SAAS8N,MAvGL,uBA2GR,WACT,OAAO,EAAKxG,MAAM7F,OAAS,EAAK6F,MAAM7F,MAAMP,OAAS,GAAK,EAAKoG,MAAM7F,MAAMuM,OAAM,SAAAC,GAAC,OAAIA,QA5GrE,2BA+GJ,WACb,GAAI,EAAK3G,MAAM4G,OAAQ,CACrB,IAAMC,EAAW,EAAK7B,UAAUK,SAASlL,MACzC,EAAK6F,MAAM4G,OAAOC,EAAU,EAAK7B,UAAUuB,eAAe,SAAAO,GAAC,OAAI,EAAK9B,UAAU+B,QAAQD,GAAG,UAlH1E,+BA8HA,SAAAnO,IACXA,EAAEC,OAAOiN,UAAUmB,SAAS,mBAA+B,QAAVrO,EAAEN,KAAkBM,EAAEsO,WAAuB,UAAVtO,EAAEN,MAC1F,EAAK6O,aACL,EAAKC,eACLC,YAAW,WACT,EAAKpC,UAAUqC,YAGL,UAAV1O,EAAEN,MACJM,EAAEmB,iBACFnB,EAAE2O,sBAtIJ,EAAK5B,QAAU6B,gBAEf,EAAKrM,MAAQ,CAACmK,SAAU,IAGxB,iCAEAmC,QAAQhL,IAAI,CACV,iCACA,iCACA,iCACA,mCACCiL,MAAK,SAAA7K,GACD,EAAK8K,uBACR,EAAKjC,UAAY7I,EAAS,GAAT,QACjB,EAAKsI,UAAY,CACf,QAAStI,EAAS,GAAG+K,OACrB,GAAM/K,EAAS,GAAG+K,OAClB,GAAM/K,EAAS,GAAGgL,OAClB,GAAMhL,EAAS,GAAGiL,SAGpB,EAAKC,0BAxBQ,E,uDAqEAC,EAAWC,EAAWC,GAAU,WACjD,GAAIC,KAAKzC,WAAayC,KAAKlD,UAAW,CACpC,IAAMmD,EAAcC,eAAcF,KAAKlI,MAAM9F,QAAQuF,iBAAkBsI,EAAU7N,QAAQuF,kBAQzF,GAPI4I,OAAOC,KAAKH,GAAavO,OAAS,IACpCyO,OAAOjF,QAAQ+E,GAAaI,SAAQ,YAAkB,eAAhBlQ,EAAgB,KAAX8B,EAAW,KACpD,EAAK6K,UAAUwD,IAAInQ,EAAK8B,MAE1B+N,KAAKlD,UAAUyD,WAGZC,IAASX,EAAUjD,KAAKG,OAAQiD,KAAKlI,MAAM8E,KAAKG,QAAS,CAC5D,IAAMA,EAASiD,KAAKS,UAAUT,KAAKlI,MAAM8E,KAAKG,QAC9CiD,KAAKzC,UAAUmD,SAAS3D,GACxBiD,KAAKlD,UAAUwD,IAAI,SAAUvD,GAC7BiD,KAAKlD,UAAUyD,SAEZC,IAASX,EAAU5N,MAAO+N,KAAKlI,MAAM7F,SACxC+N,KAAKlD,UAAU+B,QAAQmB,KAAKlI,MAAM7F,OAAO,GACzC+N,KAAKlD,UAAUyD,a,6CAMnBP,KAAKR,sBAAuB,EACxBQ,KAAKlD,WACPkD,KAAKlD,UAAU6D,Y,mCAyBjB,IAAMC,EAAeZ,KAAKxC,QAAQC,QAAQoD,cAAc,8CACpDD,GACFA,EAAaE,U,+BAkBR,WACP,OACE,uCAEE,kBAAC7E,GAAD,CACE9J,UAAW6N,KAAKlI,MAAM3F,UACtB/B,GAAI4P,KAAKlI,MAAM1H,GACf2Q,SAAS,KACTC,QAAS,WACP,EAAKhC,aACLE,YAAW,WACL,EAAKpC,WACP,EAAKA,UAAUmE,WAIrBC,UAAWlB,KAAKjC,kBAEhB,kBAAC7B,GAAD,CACEiF,aAAA,EACAzC,OAAQsB,KAAKf,aACb9M,UAAW6N,KAAKlI,MAAM3F,UACtBiP,IAAKpB,KAAKxC,SAEV,kBAACxB,GAAD,OACMgE,KAAKlI,MAAM3F,UAAY,CAACpC,SAAU,YAAc,GADtD,CAEEM,KAAK,OACLgR,cAAA,EACAlP,UAAW6N,KAAKlI,MAAM3F,WACjB6N,KAAKlI,MAAM9F,QAAU,CAACsP,YAAatB,KAAKlI,MAAM9F,QAAQuP,iBAAmB,KAEhF,kBAACvF,GAAD,CACEjM,UAAQ,EACRoC,UAAW6N,KAAKlI,MAAM3F,UACtBF,MAAO+N,KAAKhN,MAAMmK,YAElB6C,KAAKlI,MAAM3F,WAAa6N,KAAKlI,MAAM7F,MAAM2B,QAAO,SAAAE,GAAC,OAAIA,KAAGpC,OAAS,GAAK,kBAACiH,GAAA,EAAD,CACtEd,KAAK,QACLkJ,UAAW,EACXS,aAAYxB,KAAKyB,IAAI,gDACrBC,YAAa,SAAAjR,GACXA,EAAEmB,iBACF,EAAKkG,MAAMtH,SAAS,gB,EA1L9BmM,CAAqB0C,eAoN3B,UAAesC,SAAUC,QAAWjF,K,0BClOvBkF,GAAY,SAAAC,GACvB,GAAKA,GAA0B,IAAjBA,EAAMpQ,OAEb,IAAqB,IAAjBoQ,EAAMpQ,OACf,OAAOoQ,EAAM,GAEb,MAAM,IAAIC,MAAJ,8CAAiDD,EAAME,KAAK,QAJlE,OAAO,MAsCEC,GAA8B,SAAAlL,GAazC,OAHAmL,KATsB,CACpBC,EAAG,KACHC,EAAG,KACHC,EAAG,OACHC,EAAG,IACHC,EAAG,KACHC,EAAG,IACH1O,EAAG,OAEkB,SAAC2K,EAAGgE,GACzB1L,EAASA,EAAO2L,QAAQjE,EAAGgE,MAEtB1L,G,qkBCYT,SA3DwB,SAAC,GAAsD,IAArDvG,EAAqD,EAArDA,SAAUwB,EAA2C,EAA3CA,QAAS5B,EAAkC,EAAlCA,GAAI6B,EAA8B,EAA9BA,MAAOE,EAAuB,EAAvBA,UAAW4F,EAAY,EAAZA,OAE3D6E,GAAO+F,SAEPC,EAAwB,kBAAM/L,MAASkG,OAAOH,EAAKG,QAAQ8F,QAAQC,eAAe,MAElFC,EAAY,SAAAC,GAChB,IAAMC,EAAapM,IAAOmM,EAAG,CAACJ,IANZ,eAOlB,OAAOK,EAAWC,UAAYD,EAAWE,SAAW,MAgBhD5L,EAAmB,IACvB6L,UAAWnB,GAA4BW,KACvCS,WAAYpB,GAzBM,cA0BlBqB,YAAY,EACZP,UAAWA,GACP/Q,EAAUA,EAAQuF,iBAAmB,IAG3C,OACE,kBAAC,GAAD,CACEnH,GAAIA,EACJ6B,MAAO,CAACA,GACRyM,OAnBW,SAAC6E,EAAYC,EAAQC,GAClC,IAAMC,EAASX,EAAUQ,GACrBC,EAAO,GAAKE,GAAW,GACzBD,EAASC,IAiBTlT,SA1BiB,SAAAmT,GACnB,IAAMC,EAAW/B,GAAU8B,GACrB/L,EAAOgM,EDHgB,SAAAhM,GAC/B,GAAY,MAARA,EACF,OAAO,KAGT,IAAMiM,EAAU,IAAIhJ,KAAKjD,GAEnBkM,EAAOD,EAAQE,cACfC,EAAQH,EAAQI,WAAa,EAC7BC,EAAML,EAAQM,UAEpB,MAAO,CACLL,GACCE,EAAQ,EAAI,GAAK,KAAOA,GACxBE,EAAM,EAAI,GAAK,KAAOA,GACvBlC,KAAK,KCZmBoC,CAAkBR,GAAY,KACtDpT,EAASoH,IAwBP5F,QAAO,SAAMA,GAAN,IAAeuF,qBACtBpF,UAAWA,EACX4F,OAAQA,K,qkBCgBd,UAAe6J,SAxDa,SAAA9J,GAC1B,IAAMuM,EAAmBxN,MAASkG,OAAOjF,EAAM8E,KAAKG,QAAQ8F,QAAQC,eAAe,KAC7EwB,EAAmBzN,MAASkG,OAAOjF,EAAM8E,KAAKG,QAAQ8F,QAAQC,eAAe,MAC7EyB,EAAgBtC,GAA4BoC,GAC5CG,EAAgBvC,GAA4BqC,GAE5CvB,GAAY5K,cAAQ,kBAAM,SAAA6K,GAC9B,IAAMC,EAAapM,IAAOmM,EAAG,CAAC,eAAgBqB,EAAkBC,IAChE,OAAOrB,EAAWC,UAAYD,EAAWE,SAAW,QACnD,IASG5L,EAAmB,IACvBkN,YAAY,EACZC,WAAW,EACXpB,YAAY,EACZP,UAAWA,EACXK,UAAW,GAAF,OAAKmB,EAAL,YAAsBC,GAC/BnB,WAAY,wBACRvL,EAAM9F,QAAU8F,EAAM9F,QAAQuF,iBAAmB,IAKvD,OACE,kBAAC,GAAD,CACEtF,MAAO,CAAC6F,EAAM7F,OACdzB,SALiB,SAAAmT,GAAK,OAAI7L,EAAMtH,SAASqR,GAAU8B,KAMnDjF,OAvBW,SAAC6E,EAAYC,EAAQC,GAClC,IAAMC,EAASX,EAAUQ,GACrBC,EAAO,GAAKE,GAAW,GACzBD,EAASC,IAqBTvR,UAAW2F,EAAM3F,UACjBH,QAAO,SAAM8F,EAAM9F,SAAZ,IAAqBuF,qBAC5BQ,OAAQD,EAAMC,Y,uFCjCpB,SARuBtI,kBAAmB,SAAAqI,GAAK,MAAK,CAClDzH,KAAM,UADeZ,CAAH,KAIdC,MC8CN,SA5CiB,SAAAoI,GACf,IAQM6M,IAAcC,OAAOC,QAErBC,EAAkBhN,EAAM7F,QAAU6F,EAAM3F,YAAcwS,EAEtD1S,EAAQ6F,EAAM7F,OAAS,GAE7B,OACE,kBAAC,KAAD,CAAuBE,UAAW2F,EAAM3F,WACtC,kBAAC,GAAD,CACEpC,SAAU+H,EAAM3F,UAChB/B,GAAI0H,EAAM1H,GACV+B,UAAW2F,EAAM3F,UACjBqJ,KAAM1D,EAAM0D,KACZhL,SArBe,SAAAC,GACnBqH,EAAMtH,SAASC,EAAEC,OAAOuB,QAqBpBA,MAAOA,IAER6S,GAAmB,kBAAC,KAAD,KAClB,kBAACnM,GAAA,EAAD,CACEd,KAAK,QACLe,QAvBW,WACjBd,EAAMtH,SAAS,OAuBTuQ,UAAW,O,mFCnCrB,IAAMgE,GAAiBtV,SAAH,MAiCpB,SA7BiB,SAAAqI,GAOf,OACE,kBAACiN,GAAD,KACE,2BACE1U,KAAK,WACLC,QAASwH,EAAM7F,QAAS,EACxBuJ,KAAM1D,EAAM0D,KACZhL,SAZe,SAAAC,GACfqH,EAAMtH,UACRsH,EAAMtH,SAASC,EAAEC,OAAOJ,UAWtBF,GAAI0H,EAAM1H,GACVL,SAAU+H,EAAM3F,c,0aClBjB,IAAM6S,GAAavV,SAAH,KAGN6G,YAAa,IAGjB2O,GAAuBxV,SAAH,KAI7ByV,KAGW5O,YAAa,IC6C5B,SAnDa,SAAC,GAA6D,IAH7C6O,EAGflT,EAA4D,EAA5DA,MAAOmT,EAAqD,EAArDA,cAAejT,EAAsC,EAAtCA,UAAWkT,EAA2B,EAA3BA,SAAUC,EAAiB,EAAjBA,YAClDC,EAAoBtT,EAAMkT,YAAclT,EAAMkT,WAAWK,WAAW,SAE1E,OACE,kBAACR,GAAD,CAAYS,UAAU,cACpB,kBAACC,GAAA,EAAD,KACEC,IAAK1T,EAAM2T,UACPL,GAAqB,CAACM,QAAS5T,EAAM2T,UAF3C,CAGEA,SAAU3T,EAAM2T,SAChBE,cAAc,OACdC,cAAc,OACdC,OAAQ/T,EAAMkT,WACdc,aAAchU,EAAMiU,iBAEtB,kBAACjB,GAAD,MACI9S,GACC,kBAACI,GAAA,EAAD,CACDsF,KAAK,QACLe,QAAS,kBAAMyM,EAAS,OACxBtE,UAAW,EACXvL,MAAO8P,GAAe,WAGxB,kBAAC/S,GAAA,EAAD,KACE,kBAAC4T,GAAA,EAAD,CACEC,SAAO,EACPvO,KAAK,kBACLwO,SAAUpU,EAAM2T,SAChBU,MA/BkBnB,EA+BGlT,EAAMkT,WA9BrCkB,uBAA2BlB,EAAY,YAAY,IA+BzCpE,UAAW,EACXvL,MAAO4P,GAAiB,iBC1C7B,I,0dCKA,IAAMmB,GAAuB9W,SAAH,KAEd6G,YAAa,IAMnBkQ,IAA2B/W,QAAOgX,MAAPhX,CAAH,MAE/BuK,QAAY,CAAC0M,SAAUpQ,WAAY,MAI5BqQ,GAAkClX,SAAH,KAOvB6G,YAAa,ICalC,SA1BuB,SAAAwB,GAAK,OAC1B,kBAACyO,GAAD,KACE,kBAACb,GAAA,EAAD,CACEG,QAAS/N,EAAM8O,KAAKpL,KACpBsK,cAAc,OACdC,cAAc,OACdC,OAAQlO,EAAM8O,KAAKC,QACnBZ,aAAcnO,EAAM8O,KAAKvW,KAAKmV,WAAW,SAAW1N,EAAM8O,KAAKC,QAAU,OAE3E,kBAACF,GAAD,KACE,kBAAC,KAAD,CAAgBG,SAAUC,wBAC1B,kBAACP,GAAD,KAA2B1O,EAAMkP,MAAQ,YAAzC,MFxBqBC,EEwB+CnP,EAAM8O,KAAKM,KFtB7EpT,EAAIqT,KAAKC,MAAMD,KAAKE,IAAIJ,GAASE,KAAKE,IAAI,OAChD,UAAmD,GAAxCJ,EAAQE,KAAKG,IAAI,KAAMxT,IAAIyT,QAAQ,GAA9C,YAFc,CAAC,QAAS,KAAM,KAAM,KAAM,MAEoBzT,KEqB1D,OFxBqB,IAAAmT,EAEnBnT,G,kLGeR,SAR0BrE,SAAH,MACnBuK,WACQ,SAAAlC,GAAK,OAAIA,EAAM3F,UAAY,cAAgB,YACjCiK,UAAY,UACvB,SAAAtE,GAAK,OAAIA,EAAM3F,UAAYqV,YAAoB1P,GAAS0P,YAAoB1P,KAC1ExB,YAAa,I,+UCRnB,IAAMD,GAAoB5G,SAAH,KAC1ByV,KAEQ5O,YAAa,KAGVA,YAAa,KAAQA,YAAa,IAIpCmR,IAAiBhY,QAAOiY,KAAPjY,CAAH,MCuB3B,SA9BoB,SAAC,GAA0C,IAAjCkY,EAAiC,EAAzCC,OAAoBzV,EAAqB,EAArBA,UAAW6U,EAAU,EAAVA,KAGnD,OACE,kBAAC,GAAD,CAAmB7U,UAAWA,GAC5B,kBAACsV,GAAD,CACE1X,SAAUoC,EACV0V,UAAU,EACVD,OAPS,SAAAE,GAAK,OAAIH,EAAWG,EAAM,KAQnCtS,MAAOwR,GAAQ,0BAEf,kBAAC3Q,GAAD,KACE,kBAAC9D,GAAA,EAAD,KACE,kBAAC,KAAD,CACEsF,KAAK,eACLiP,SAAUC,6BCbjB,IAAMgB,GAAS,SAAAjQ,GAAS,IAE3B7F,EAGE6F,EAHF7F,MACA+V,EAEElQ,EAFFkQ,cACA3C,EACEvN,EADFuN,SAJ2B,GAMD/K,cAAS,CACnC2N,aAAa,EACbC,YAAa,OARc,WAMtBC,EANsB,KAMdC,EANc,KA8B7B,OANA3W,gBAAU,WACH+O,IAASvO,IATdmW,EAAU,CAACH,aAAa,EAAOC,YAAa,SAY3C,CAACjW,IAEAA,GAASA,EAAMkT,WACV,kBAAC,GAAD,OAAUrN,EAAV,CAAiBwN,YAAa0C,EAAa,OAAS5C,cAAe4C,EAAc3B,YAC/E8B,EAAOF,YACT,kBAAC,GAAD,KAAgBrB,KAAMuB,EAAOD,YAAalB,KAAMgB,EAAcK,WAAevQ,IAE/E,kBAAC,GAAD,OAAiBA,EAAjB,CAAwB8P,OAhBhB,SAAAhB,IARW,SAAAA,GACxBwB,EAAU,CAACH,aAAa,EAAMC,YAAatB,IAQ3C0B,CAAkB1B,GAClBvB,EAASuB,QAiBbmB,GAAOQ,aAAe,CACpBP,cAAe,IA8BjB,YC3EA,IAAMQ,GAAW,SAAA1Q,GAaf,OACE,kBAAC,GAAD,CACEuN,SAda,SAAAuB,GACF,OAATA,EACE9O,EAAMtH,UACRsH,EAAMtH,SAAS,MAGbsH,EAAM9F,QAAQyW,QAChB3Q,EAAM9F,QAAQyW,OAAO7B,IAQvBzU,UAAW2F,EAAM3F,UACjB6V,cAAe,CACbS,OAAQ3Q,EAAM9F,QAAQ0W,WACtBL,UAAWvQ,EAAM9F,QAAQ2W,cACzBC,OAAQ9Q,EAAM9F,QAAQ6W,WACtBxC,SAAUvO,EAAM9F,QAAQ8W,cAE1B7W,MAAO6F,EAAM7F,MAAQ6F,EAAM7F,MAAQ,QAKzCuW,GAASD,aAAe,CACtBvW,QAAS,IAgBX,Y,krBC5CA,IAAM+W,GAAiBtZ,SAAH,MAOZ,SAAAqI,GAAK,OAAIkR,QAAkBlR,EAAO,Y,GAuCd,4BA9BtBmR,e,qBAGJ,WAAYnR,GAAO,yBACjB,cAAMA,GADW,uBAFP,MAEO,2BAWJ,SAAC7F,EAAOiX,EAAOC,GAC5B,GAAI,EAAKrR,MAAMtH,UAAuB,SAAX2Y,EAAmB,CAC5C,IAAM1K,EAAc,gBAAVxM,EAA0B,GAAKA,EACzC,EAAK6F,MAAMtH,SAASiO,OAVtB,mCAEA,mCAEA,EAAK2K,WAAYC,WAAK,kBAAM,qCARX,E,6CAmBjB,OAAIrJ,KAAKlI,MAAM3F,UACN,kBAACxB,GAAA,QAAD,KACL,yBAAK2Y,wBAAyB,CAACC,OAAQvJ,KAAKlI,MAAM7F,UAKpD,kBAAC8W,GAAD,KACE,kBAAC,EAAAS,SAAD,CAAUC,SAAQ,IAChB,uBAAML,UAAN,CACE5N,KAAMwE,KAAKlI,MAAM0D,KACjBhL,SAAUwP,KAAK0J,aACftZ,GAAI4P,KAAKlI,MAAM1H,GACfgM,MAAM,OACNuN,aAAc3J,KAAKlI,MAAM7F,MACzBlB,QAAS,CACP6Y,UAAW,CACTC,aAAa,Y,EAvCvBZ,CAAiB5J,eAiDvB4J,GAASV,aAAe,CACtBtW,MAAO,IAWT,YCtCA,SAxCqB,SAAA6F,GAAK,OACxB,kBAAC/F,EAAA,EAAD,KACE3B,GAAI0H,EAAM1H,GACV8B,SAAS,EACTC,UAAW2F,EAAM3F,UACjB3B,SAAUsH,EAAMtH,SAChByB,MAAO6F,EAAM7F,OACT6F,EAAM9F,WCkCd,SAzC0B,SAAA8F,GAAK,OAC7B,kBAAC/F,EAAA,EAAD,KACE3B,GAAI0H,EAAM1H,GACV8B,SAAO,EACPC,UAAW2F,EAAM3F,UACjB3B,SAAUsH,EAAMtH,SAChByB,MAAO6F,EAAM7F,OACT6F,EAAM9F,WC4Bd,SAnCyB,SAAA8F,GAAK,OAC5B,kBAAC/F,EAAA,EAAD,KACEI,UAAW2F,EAAM3F,UACjB3B,SAAUsH,EAAMtH,SAChByB,MAAO6F,EAAM7F,OACT6F,EAAM9F,W,uFCEd,SARsBvC,kBAAmB,SAAAqI,GAAK,MAAK,CACjDzH,KAAM,SADcZ,CAAH,KAIbC,MC0CN,SAAemM,eA9BC,SAAA/D,GAAK,OACnB,kBAAC,KAAD,CAAuB3F,UAAW2F,EAAM3F,WACtC,kBAAC,GAAD,CACEpC,SAAU+H,EAAM3F,UAChB/B,GAAI0H,EAAM1H,GACV+B,UAAW2F,EAAM3F,UACjBqJ,KAAM1D,EAAM0D,KACZhL,SAAU,SAAAC,GAAC,OAAIqH,EAAMtH,WAfzBsZ,GADmBA,EAgB4BrZ,EAAEC,OAAOuB,OAf9C0D,eACF5B,QAAQ,KAAO,IAAM,kBAAkBgW,KAAKD,KAClDA,EAAM,WAAH,OAAcA,IAGZA,IANY,IAAAA,GAiBf7X,MAAO6F,EAAM7F,QAEd6F,EAAM7F,OAAS,kBAAC,KAAD,KACd,kBAACkU,GAAA,EAAD,CACEG,KAAMxO,EAAM7F,MACZ4F,KAAK,gBACLrF,KAAK,OACLuO,UAAW,EACXrQ,OAAO,SACP0V,SAAO,S,6JCzBf,SARwB3W,kBAAmB,SAAAqI,GAAK,MAAK,CACnDzH,KAAM,SADgBZ,CAAH,KAIfC,M,8+BCiHN,SA7GMsa,Y,uBAIJ,WAAYlS,GAAO,kBACjB,cAAMA,GADW,mCAHI,GAGJ,sCAFQ,MAER,wCAmBS,SAACmS,EAAKC,GAChC,IAAMC,EAASF,EAAIG,UAAU,EAAGF,EAAgB,GAAGG,MAAM,OACzD,OAAOF,EAASA,EAAOzY,OAAS,KArBf,8BAwBD,SAACO,EAAOqY,EAAeJ,GACvC,GAAIA,GAAiBjY,EAAMP,SAAWwY,EAAe,CACnD,IAAMK,EAAoB,IAAI,EAAKvX,MAAMwX,eAAeC,UAAU,EAAKzX,MAAM0X,gBAAgBC,MAAML,GAC7FM,EAAmB,IAAI,EAAK5X,MAAMwX,eAAeC,UAAU,EAAKzX,MAAM0X,gBAAgBC,MAAM1Y,GAE5F4Y,EAAiB,EAAKC,0BAA0BP,EAAmBL,GAGnEa,EAFgB,EAAKD,0BAA0BF,EAAkBV,GAExCW,EAE/BjG,OAAOoG,sBAAsB,WAC3B,IAAMC,EAAQf,EAAgBa,EAC9B/K,KAAKkL,kBAAkBD,EAAOA,IAC9BE,KAAK,EAAKvK,aAAanD,cArCV,2BAyCJ,SAAAwM,GAAG,OAAIA,EAAIvH,QAAQ,MAAO,OAzCtB,2BA2CJ,SAAAjS,GACb,IAAM2a,EAAW3a,EAAEC,OAAOuB,MACnBuY,EAAkB,EAAKxX,MAAvBwX,eACDa,EAAeb,EAAiBA,EAAec,YAAYF,EAAU,EAAKpY,MAAM0X,gBAAkBU,EAElGG,EAAkBC,IAASH,GAC7B,EAAKI,aAAa,IAAI,EAAKzY,MAAMwX,eAAeC,UAAU,EAAKzX,MAAM0X,gBAAgBC,MAAMS,IAC3FZ,EAAekB,aAAaL,EAAc,SAE9C,EAAKvT,MAAMtH,SAAS+a,GAEpB,IAAMI,EAAuBlb,EAAEC,OAAOkb,eACtC,EAAKC,gBAAgBT,EAAU,EAAKtT,MAAM7F,MAAO0Z,MAvDhC,oCA0DK,WACtB,OAAI,EAAK7T,MAAM7F,OAAS,EAAKe,MAAMwX,gBAAkB,EAAKxX,MAAMwX,eAAeC,UACtE,IAAI,EAAKzX,MAAMwX,eAAeC,UAAU,EAAKzX,MAAM0X,gBAAgBC,MAAM,EAAK7S,MAAM7F,OAGtF,EAAK6F,MAAM7F,OAAS,MA7D3B,IAAMyY,EAAiBoB,KAAKhU,EAAO,2BAA6B,EAAKiU,yBAFpD,OAGjB,EAAK/Y,MAAQ,CAACwX,eAAgB,KAAME,kBACpC,EAAKsB,uBACL,EAAKpL,aAAevB,gBALH,E,wKASY,6B,OAAvBmL,EAAiBA,EAAjBA,KACDxK,KAAKR,sBACRQ,KAAK/B,SAAL,SAAkB+B,KAAKhN,OAAvB,IAA8BwX,oB,0IAKhCxK,KAAKR,sBAAuB,I,+BAmD5B,IAAMyM,EAAejM,KAAKkM,wBAE1B,OACE,kBAAC,KAAD,CAAuB/Z,UAAW6N,KAAKlI,MAAM3F,WAC3C,kBAAC,GAAD,CACEpC,SAAUiQ,KAAKlI,MAAM3F,YAAc6N,KAAKhN,MAAMwX,eAC9Cpa,GAAI4P,KAAKlI,MAAM1H,GACfoL,KAAMA,KACNhL,SAAUwP,KAAK0J,aACfvX,UAAW6N,KAAKlI,MAAM3F,YAAc6N,KAAKhN,MAAMwX,eAC/CpJ,IAAKpB,KAAKY,aACV3O,MAAOga,IAERA,GAAgB,kBAAC,KAAD,KACf,kBAAC9F,GAAA,EAAD,CACEG,KAAI,cAAStG,KAAKlI,MAAM7F,OACxB4F,KAAK,QACLkJ,UAAW,EACXqF,SAAO,U,EAzFb4D,CAAkB3K,e,urBCFxB,IAAM8M,GAAqB1c,WAAH,KAElBC,MAMA0c,GAA8B3c,WAAH,KAQX6G,YAAa,IAIpB,SAAAwB,GAAK,OAAIA,EAAM3F,WACZka,SAAsBP,KAAKhU,EAAMsE,MAAO,gBACxCA,UAAY,WACd,SAAAtE,GAAK,OAAIA,EAAM3F,UAAY,cAAgB,aAKrDma,GAA2B7c,UAAH,M,k/BC1BxB8c,e,qBACJ,WAAYzU,GAAO,yBACjB,cAAMA,GADW,qCAUM,SAAA0U,GACvB,IAAKA,GAAiC,IAAjBA,EACnB,MAAO,CAACC,MAAO,GAAIC,QAAS,IAG9B,IAAMA,EAAUC,SAAUH,EAAe,IAAe,IAExD,MAAO,CAACC,MADME,SAAUH,EAAe,KAAoB,IAC5CE,cAjBE,gCAoBC,WAClB,EAAKzO,SAAS,CACZ2O,WAAY,EAAKC,YAAYpP,QAAQqP,YACrCC,aAAc,EAAKC,cAAcvP,QAAQqP,iBAvB1B,iCA2BE,SAACjN,EAAWC,GAC3B,EAAK9M,MAAMyZ,QAAU3M,EAAU2M,OACjC,EAAKxO,SAAS,CAAC2O,WAAY,EAAKC,YAAYpP,QAAQqP,cAElD,EAAK9Z,MAAM0Z,UAAY5M,EAAU4M,SACnC,EAAKzO,SAAS,CAAC8O,aAAc,EAAKC,cAAcvP,QAAQqP,iBAhCzC,+BAoCA,SAAArc,GACjB,IAAMgc,EAAQhc,EAAEC,OAAOuB,MAAMyQ,QAAQ,UAAW,IAChD,EAAKzE,SAAL,SAAkB,EAAKjL,OAAvB,IAA8ByZ,WAC9B,EAAK/C,aAAa+C,EAAO,SAvCR,uCA0CQ,SAAA/b,GACzB,IAAIgc,EAAUhc,EAAOuB,MAAMyQ,QAAQ,UAAW,IAkB9C,OAhBKhS,EAAOuc,SAASC,QACnBR,EAAU,GAGR,UAAGA,GAAUhb,OAAS,IACxBgb,EAAU,UAAGA,GAAUS,MAAM,EAAG,IAG9BT,EAAU,KACZA,EAAU,GAGRA,EAAU,IACZA,EAAU,IAGLA,KA7DU,kCAgEG,SAAAjc,GACpB,IAAMic,EAAU,EAAKU,yBAAyB3c,EAAEC,QAChD,EAAKuN,SAAL,SAAkB,EAAKjL,OAAvB,IAA8B0Z,aAE9B,EAAKhD,aAAa,KAAMgD,GAEU,IAA9BA,EAAQW,WAAW3b,QAA4B,IAAZgb,GACrCjc,EAAEC,OAAOqE,YAvEM,2BA2EJ,SAAC0X,EAAOC,GACrB,IAAMY,EAA2B,OAAZZ,EAAmBA,EAAU,EAAK1Z,MAAM0Z,QACvDa,EAAwB,OAAVd,EAAiBA,EAAQ,EAAKzZ,MAAMyZ,MACnC,KAAjBa,GAAsC,KAAfC,EAI3B,EAAKzV,MAAMtH,SzBjBsB,SAACic,EAAOC,GAC3C,OAAKD,GAAUC,EAG0B,IAAdD,GAAS,GAAU,IACD,KAAhBC,GAAW,GAH/B,KyBeac,CAAsBD,EAAYD,IAHpD,EAAKxV,MAAMtH,SAAS,SA/EL,2BAqFJ,kBAAM,EAAKyN,SAAS,CACjCwP,UACC,EAAKza,MAAMyZ,MAAMY,WAAW3b,QAAU,GAAK,EAAKsB,MAAM0Z,QAAQW,WAAW3b,QAAU,OAvFnE,4BA0FH,kBAAM,EAAKuM,SAAS,CAACwP,WAAW,OA1F7B,gCA4FC,SAAAC,GACZA,EAAMC,UAAY,IAAMD,EAAMC,UAAY,IAC9CD,EAAM9b,oBA5FR,EAAKib,YAAcxN,gBACnB,EAAK2N,cAAgB3N,gBACrB,EAAKrM,MAAL,SACK,EAAK4a,uBAAuB9V,EAAM7F,QADvC,IAEEwb,UAAW3V,EAAM7F,OAAS,IANX,E,6CAmGjB,OACE,kBAAC,KAAD,CACEyM,OAAQsB,KAAKf,aACb9M,UAAW6N,KAAKlI,MAAM3F,UACtByL,MAAO,CAACiQ,UAAW,SACnB,kBAACzB,GAAD,CAA6Bja,UAAW6N,KAAKlI,MAAM3F,WACjD,kBAACga,GAAD,CACEpc,SAAUiQ,KAAKlI,MAAM3F,UACrBA,UAAW6N,KAAKlI,MAAM3F,UACtB2b,IAAK,EACLtd,SAAU,aACVwQ,QAAShB,KAAK+N,cACdC,QAAShO,KAAKiO,iBACdC,WAAYlO,KAAKmO,kBACjBC,QAAQ,OACRC,KAAM,EACNzQ,MAAO,CAAC0Q,MAAOtO,KAAKhN,MAAM4Z,YAC1Bvc,KAAK,SACL4B,MAAO+N,KAAKhN,MAAMyZ,QAEnBzM,KAAKhN,MAAMya,WAAa,kBAAC9c,GAAA,QAAD,KAAkBqP,KAAKlI,MAAM9F,QAAQuc,aAEhE,kBAACnC,GAAD,CAA6Bja,UAAW6N,KAAKlI,MAAM3F,WACjD,kBAACga,GAAD,CACEpc,SAAUiQ,KAAKlI,MAAM3F,UACrBA,UAAW6N,KAAKlI,MAAM3F,UACtB3B,SAAU,aACVwQ,QAAShB,KAAK+N,cACdC,QAAShO,KAAKwO,oBACdN,WAAYlO,KAAKmO,kBACjBC,QAAQ,OACRC,KAAM,EACNzQ,MAAO,CAAC0Q,MAAOtO,KAAKhN,MAAM+Z,cAC1B1c,KAAK,SACL4B,MAAO+N,KAAKhN,MAAM0Z,UAEnB1M,KAAKhN,MAAMya,WAAa,kBAAC9c,GAAA,QAAD,KAAkBqP,KAAKlI,MAAM9F,QAAQyc,eAEhE,kBAACnC,GAAD,CAA0BlL,IAAKpB,KAAK6M,aAAc7M,KAAKhN,MAAMyZ,OAC7D,kBAACH,GAAD,CAA0BlL,IAAKpB,KAAKgN,eAAgBhN,KAAKhN,MAAM0Z,c,EA3IjEH,CAAqBlN,eAiJ3BkN,GAAahE,aAAe,CAC1BvW,QAAS,CACPuc,WAAY,MACZE,aAAc,QAgBlB,Y,qGCpKA,UANyBhf,SAAO,cAAE0C,UAAF,IAAgBsC,EAAhB,4BAA0B,kBAAC,KAAiBA,KAAnDhF,CAAH,KAEhBC,M,qkBCCC,IASDgf,GAAyB,SAAAC,GAAM,OAAe,IAAXA,EAAexH,KAAKyH,KAAKzH,KAAK0H,MAAM1H,KAAK2H,IAAIH,GAAU,IAAM,GAEhGI,GAAW,SAAAJ,GAAM,OAAIA,UAA4CK,MAAMC,WAAWN,KAElFO,GAAkB,SAACC,EAAUC,EAAUnd,GAC3C,OAAK8c,GAAS9c,MAIV8c,GAASK,IAAand,EAAQmd,MAI9BL,GAASI,IAAald,EAAQkd,IAOvBE,GAAiB,SAACF,EAAUC,GAAX,OAAwB,YAAkB,IAAhBE,EAAgB,EAAhBA,WACtD,OAAIZ,GAAuBY,GAAcZ,GAAuBS,IAIzDD,GAAgBC,EAAUC,EAAUE,KAiF7C,UAAe1N,QAAW/F,eA9EP,SAAA/D,GAAS,I3BeUyX,E2BfV,G3BeUA,E2BdiCzX,EAAM8E,KAAKG,O3BkBzE,CAACyS,kBAHmB,MAAMxU,eAAeuU,GAAa7M,QAAQ,KAAM,IAGhD+M,iBAFD,IAAKzU,eAAeuU,GAAa7M,QAAQ,KAAM,M2BhBlE8M,EADmB,EACnBA,kBAAmBC,EADA,EACAA,iBADA,EAYtB3X,EAAM9F,SAAW,GATnB0d,EAHwB,EAGxBA,eACArW,EAJwB,EAIxBA,gBACA8V,EALwB,EAKxBA,SACAC,EANwB,EAMxBA,SACAO,EAPwB,EAOxBA,cACArW,EARwB,EAQxBA,kBACAsW,EATwB,EASxBA,OACAC,EAVwB,EAUxBA,OACA9Y,EAXwB,EAWxBA,OAGI+Y,EAnDyB,SAACJ,EAAgBrW,EAAiB+V,GACjE,GAAIM,EAAgB,CAClB,IAAMI,EAAqB,SAAC,GAAMJ,IAAmBrW,EAAmB,EAAI,KAAJ,IAAK,GAAMA,GAAoB,GACvG,OAAO+V,GAAYA,EAAWU,EAAqBV,EAAWU,EAGhE,OAAOV,EA6CoBW,CAAkBL,EAAgBrW,EAAiB+V,GACxEY,EAAsB,OAC1BC,UAAWZ,GAAeF,EAAUW,GACpCH,gBAAiBA,GACZX,MAAM3V,GAAqD,GAAlC,CAAC6W,aAAc7W,IAHtB,IAIvBC,oBAAqBA,IAiBvB,OACE,kBAAC,KAAD,CAAuBnH,UAAW2F,EAAM3F,WACtC,kBAAC,GAAD,KACEsd,iBAAkBA,EAClB1f,SAAU+H,EAAM3F,UAChB/B,GAAI0H,EAAM1H,GACV+f,iBAAiB,EACjB3U,KAAM1D,EAAM0D,KACZ4U,cAtBe,SAAA5M,GACf1L,EAAMtH,UAAY0e,GAAgBC,EAAUW,EAAoBtM,EAAO8L,aACzExX,EAAMtH,cAA+B6f,IAAtB7M,EAAO8L,WAA2B9L,EAAO8L,WAAa,OAqBnEnd,UAAW2F,EAAM3F,UACjBqd,kBAAmBA,EACnBvd,MAAO6F,EAAM7F,MACb2d,OAAQA,EACRC,OAAQA,GACJG,EAZN,CAaEjZ,OAAQA,EACR2H,OAxBa,SAAAgP,GACjB,I3BJiC4C,E2BI3BC,I3BJ2BD,E2BIa5C,EAAMhd,OAAOuB,Q3BH7C+c,MAAMsB,GAAe,KAAOrB,WAAWqB,G2BIjDxY,EAAMtH,WAAa0e,GAAgBC,EAAUW,EAAoBS,KAEnE7C,EAAMhd,OAAOuB,MAAQ,aA8C2B,MCjEtD,SAAe4J,eApDK,SAAC,GAAoD,IAAnD5J,EAAmD,EAAnDA,MAAOzB,EAA4C,EAA5CA,SAAUwB,EAAkC,EAAlCA,QAASG,EAAyB,EAAzBA,UAAWqJ,EAAc,EAAdA,KAAMpL,EAAQ,EAARA,GAAQ,EAMnE4B,GAAW,GAJbmd,EAFqE,EAErEA,SACAC,EAHqE,EAGrEA,SACArY,EAJqE,EAIrEA,OACAyZ,EALqE,EAKrEA,kBAcF,OACE,kBAAC,KAAD,CAAuBre,UAAWA,GAChC,kBAAC,GAAD,CACE8d,UANY,SAAC,GAAD,IAAEX,EAAF,EAAEA,WAAF,QACbF,GAAYE,EAAaF,GAAcD,GAAYG,EAAaH,IAM/DQ,eAAe,EACfO,aAAc,EACdngB,SAAUoC,EACV/B,GAAIA,EACJoL,KAAMA,EACN4U,cApBe,SAAC,GAAwB,IAAvBne,EAAuB,EAAvBA,MAAOqd,EAAgB,EAAhBA,WACxBlE,EAAWoF,EAAoBve,EAAQqd,OAC1Be,IAAbjF,IACFA,EAAW,MAEb5a,EAAS4a,IAgBLnZ,MAAOA,EACPue,kBAAmBA,EACnBzZ,OAAQA,OAqB4B,K,ssCC7CrC,IAAM0Z,GAAqBhhB,SAAH,KAEzBG,KAMkB0G,YAAa,GAUfA,YAAa,IACpB,gBAAEnE,EAAF,EAAEA,UAAWiK,EAAb,EAAaA,MAAb,OAAwBjK,GACrBka,SAAsBP,KAAK1P,EAAO,gBAClC0P,KAAK1P,EAAO,iBAItB1M,KAMkB0M,UAAY,SACVA,UAAY,oBACdA,UAAY,mBAsBZ,gBAAEA,EAAF,EAAEA,MAAF,OAAasU,SAAW5E,KAAK1P,EAAO,gBAAiB,M,yaC1DxE,I,GAwEyE,kBAACzL,GAAA,QAAD,U,GAajC,kBAAC,KAAD,CAAgBuW,KAAK,WCvE7D,IAAMjX,GAAM,CACjB,QAAW0gB,GACX,KAAQC,GACR,SAAYC,GACZ,SAAYrI,GACZ,SAAY+D,GACZ,KAAQtD,GACR,QAAW6H,GACX,SDTIC,Y,wMACkB,SAAAC,GAAI,OAAI,SAAAC,GAAU,OAAIA,EAAWD,O,+BAEpC,SAAAC,GACjB,IAAMC,EAAeD,EAAWje,MAAX,YAAwBie,EAAWje,OAAU,GAC5Dme,EAAgBF,EAAWG,QAAX,YAA0BH,EAAWG,QAAQtc,SAAY,GAE/E,OAAO,kBAACnE,GAAA,QAAD,KAAkBsgB,EAAWI,SAA7B,IAAwCJ,EAAWK,KAAnD,IAA0DJ,EAA1D,IAAyEC,M,uBAGvE,SAAAI,GAAK,OAAI,SAAC7D,EAAD,GAAuB,IAAdtC,EAAc,EAAdA,SAC3B,EAAKtT,MAAMtH,SAAX,OAAsB+gB,EAAQnG,Q,mCAGT,SAACsC,EAAD,GAAyB,IAAhBuD,EAAgB,EAAhBA,WAC9B,EAAKnZ,MAAMtH,SAASygB,M,+CAGa,SAAAM,GAAK,OAAI,YAAa,IAAXtf,EAAW,EAAXA,MAC5C,EAAK6F,MAAM9F,QAAQwf,iBAAnB,OAAsCD,EAAQtf,GAAQ,EAAK6F,MAAM7F,MAAMmf,a,0CAG3C,e,6BAEb,SAAAnf,GAAK,SAAOA,EAAMqf,OAAQrf,EAAMof,a,+CAExC,WACDI,EAAgB,CACpBrhB,GAAI4P,KAAKlI,MAAM1H,GACf6B,MAAO+N,KAAKlI,MAAM7F,MAAMof,UAAY,GACpC7gB,SAAUwP,KAAKxP,SAAS,YACxBT,SAAUiQ,KAAKlI,MAAM3F,WAGjBuf,EAAiB,CACrBzf,MAAO+N,KAAKlI,MAAM7F,MAAMqf,MAAQ,GAChC9gB,SAAUwP,KAAKxP,SAAS,QACxBT,SAAUiQ,KAAKlI,MAAM3F,WAGvB,OACE,kBAAC,KAAD,MACG,YAAuB,IAvDIwf,EAG5BC,EAoDGC,EAAqB,EAArBA,QAASC,EAAY,EAAZA,OACV,OAAO,kBAACrB,GAAD,CACLte,UAAW,EAAK2F,MAAM3F,UACtBqJ,KAAM,EAAK1D,MAAM0D,KACjB4F,IAAK0Q,GAEL,kBAAC,KAAD,CACEC,YAAa,EAAKja,MAAM9F,QAAQ+f,aAAe,GAC/CC,4BAA6B,EAAKC,iCAAiC,YACnEC,mBAAoB,EAAKC,oBAAoB,YAC7CC,iBAAkB,EAAKA,iBACvBC,4BAA6B,EAAKA,4BAClCC,WAAYb,EACZc,qBAAsB,EAAKA,qBAC3BC,6BAA6B,EAC7BC,wBAAyB,SAAAhU,GAAC,OAAIA,IAAM,EAAK3G,MAAM3F,cAE/C0f,GAAW,EAAK/Z,MAAM7F,MAAMqf,MAAQ,EAAKxZ,MAAM7F,MAAMof,WAAtD,GACD,kBAAC,KAAD,CACEU,YAAa,EAAKja,MAAM9F,QAAQ+f,aAAe,GAC/CC,4BAA6B,EAAKC,iCAAiC,QACnEC,mBAAoB,EAAKC,oBAAoB,QAC7CC,iBAAkB,EAAKA,iBACvBC,4BAA6B,EAAKA,4BAClCC,WAAYZ,EACZa,qBAAsB,EAAKA,qBAC3BC,6BAA6B,EAC7BC,wBAAyB,SAAAhU,GAAC,OAAIA,IAAM,EAAK3G,MAAM3F,aAEjD,kBAAC,KAAD,KACG,EAAK2F,MAAM9F,QAAQ0gB,WAAnB,GACA,EAAKC,eAAe,EAAK7a,MAAM7F,QAC3B,kBAACkU,GAAA,EAAD,CACDG,MAxFkBqL,EAwFS,EAAK7Z,MAAM7F,MArFhD2f,EAAcD,EAChBxR,OAAOqD,OAAOmO,GACX/d,QAAO,SAAA3B,GAAK,OAAIA,KAChBhC,KAAI,SAAAgC,GAAK,MAAsB,WAAjB,KAAOA,IAAsBA,EAAM6C,QAAW7C,EAAM6C,QAAU7C,KAC5E+P,KAAK,KACR,GAEJ,UATwB,oDASxB,OAA4B4P,IA+EZ/Z,KAAK,aACLkJ,UAAW,EACXrQ,OAAO,SACPkiB,OAAO,EACPpd,MAAO,EAAKsC,MAAM9F,QAAQ6gB,gBAAkB,cAC5CzM,SAAO,a,EAjFnB2K,CAAqB1R,eCUzB,eAAgByT,GAChB,eAAgBC,EAChB,OAAUC,GACV,MAAShJ,GACT,OAAUiJ,GACV,gBAAiBC,GACjB,gBAAiBC,EACjB,OAAUC,EACV,KAAQC,EACR,IAAOC,GACP,KAAQC,IAkDV,SA/C0B,SAAC,GAAyD,IAAxDljB,EAAwD,EAAxDA,KAAM4B,EAAkD,EAAlDA,MAAOD,EAA2C,EAA3CA,QAAS5B,EAAkC,EAAlCA,GAAI2H,EAA8B,EAA9BA,OAA8B,IAAtBC,gBAAsB,SAClF,GAAI/H,GAAII,GAAO,CACb,IAIImjB,EAJEC,EAAYxjB,GAAII,GAKtB,GAAI0H,GAAUA,EAAO2G,OAAQ,CAC3B,IAAMA,EAAS3G,EAAO2G,OACtB3G,EAAO2G,OAAS,WACd,OAAOA,OAAqB2R,IAAdmD,EAA0BA,EAAYvhB,IAIxD,OACE,+BAASyG,IAAMX,EAAQ,YAAvB,CAAoC2b,UAAQ,eAC1C,kBAACD,EAAD,KACExhB,MAAOA,EACPzB,SAAU,SAAAiO,GACR+U,EAAY/U,EACZ1G,EAAOvH,SAASiO,KAEb+M,IAASxZ,GAAW,GAAK,CAACA,WANjC,CAOE5B,GAAIA,EACJ+B,UAAW6F,EACXD,OAAQA,MAQhB,OADA4b,QAAQtM,IAAI,kCAAmChX,GACxC,MCpCT,SAnCsB,SAAAyH,GAAK,OACzB,kBAAC8b,EAAA,GAAD,KACE,kBAAC,GAAsB9b,M,4sGCJ3B,IAAMlI,GAA2BikB,QAAH,KAElB,qBAAE1hB,UAA2B,cAAgB,aAInD2hB,EAAwBrkB,WAAH,IAIrBG,GAIAF,GAAiBmkB,QAAH,KAGR,qBAAE1hB,UAA2B,cAAgB,aAMrD,kBAAM6H,OAAY,CAClB+Z,MAAO3X,UAAY,YAuBQA,UAAY,SAenC,qBAAEjK,WAA4B,oBAMhB,qBAAEA,UAA2B,OAAS,UAItD6hB,GAA2BH,QAAH,KAKxBI,EAAwBxkB,SAAH,IAErBukB,GAIOJ,EAAsBnkB,UAAH,IA+Ef2M,UAAY,wB,gKChJ7B,SAAewF,SAnBQ,SAAA9J,GACrB,IAAY1H,EAEZ,OACE,yBAAU0H,EAAMoc,WACd,kBAACvb,EAAA,EAAD,CACEd,KAAK,QACLkJ,UAAW,EACXS,cAPMpR,EAOU,0CAPJ0H,EAAM8E,KAAKC,cAAc,CAACzM,c,cCgB9C,QAjB0B,SAAA0H,GACxB,OAAQA,EAAMqc,YAAYC,YAAc,kBAAC,EAAAC,EAAA,kBAAiCvc,EACxE,kBAACa,EAAA,EAAD,CACEd,KAAMC,EAAMqc,YAAYG,WAAa,aAAe,eACpDvT,UAAW,M,cCHXwT,EAAuB,SAACC,EAAoBviB,GAArB,OAA+B,SAAAyb,GAC1D8G,EAAmBviB,GACnByb,EAAMtO,oB,EAqBA,kBAACzG,EAAA,EAAD,CACEd,KAAK,SACLkJ,UAAW,I,EASb,kBAACpI,EAAA,EAAD,CACEd,KAAK,OACLkJ,UAAW,IA8BrB,QAxD4B,SAAAjJ,GAAS,IALhB2c,EAKgB,EAC0C3c,EAAMqc,YAA5EK,EAD4B,EAC5BA,mBAAoBE,EADQ,EACRA,iBAAkBN,EADV,EACUA,WAAYO,EADtB,EACsBA,iBAEzD,OACE,kBAAC,KAAD,KACE,kBAAC,EAAAN,EAAA,oBAAmCvc,EACjCA,EAAM8c,SACNJ,IACCJ,GACD,0BACDS,WAAY,SAAApkB,GAAC,OAAIA,EAAE2O,mBACnBsC,YAAa,SAAAjR,GAAC,OAAIA,EAAE2O,mBACpB0V,UAAWP,EAAqBC,EAAoB1c,EAAM7F,QAHzD,GASA0iB,IACGP,GACD,0BACDS,WAAY,SAAApkB,GAAC,OAAIA,EAAE2O,mBACnBsC,YAAa,SAAAjR,GAAC,OAAIA,EAAE2O,mBACpB0V,WA5BWL,EA4BaC,EA5BC,SAAAhH,GACjC+G,IACA/G,EAAMtO,qBAuBG,M,gBCjCoB,8BAAM,kBAAC,IAAD,CAAgB8H,KAAK,YAE1D,QAFyB,qB,wBCEI,8BAAvB6N,EAAiB,qB,EAWnB,kBAACA,EAAD,MAoBJ,QA7Ba,SAAAjd,GAAK,OAChB,kBAAC,KAAD,CACEkd,WAAW,WACXC,iBAAiB,cACjBC,YAAa,CAAC,CACZle,GAAI,SACJge,WAAY,cALhB,EASE,6BACE,kBAAC,KAAD,OACOtc,IAAMZ,EAAO,CAAC,aADrB,CAEEqd,aAAcrd,EAAMqc,YAAYgB,aAChCC,cAAetd,EAAMqc,YAAYiB,gBAChCtd,EAAM8c,aCOf,QAxBiB,SAAA9c,GAAS,IACjBqc,EAAgCrc,EAAhCqc,YAAaS,EAAmB9c,EAAnB8c,SAAUxY,EAAStE,EAATsE,MACvBiZ,EAAkDlB,EAAlDkB,qBAAsBC,EAA4BnB,EAA5BmB,yBAC7B,OACE,kBAAC,EAAAjB,EAAA,SAAwBvc,EACtB8c,EACAS,GACE,kBAAC,KAAD,CAA4BE,iBAAkBnZ,GAC9CkZ,K,8JCZT,QAAe7lB,UAAf,KCsCA,QAhC+B,SAAAqI,GAAS,IAC/B3B,EAAQ2B,EAAR3B,KAD+B,EAEM2B,EAAMqc,YAA3CqB,EAF+B,EAE/BA,SAAUC,EAFqB,EAErBA,YAAaC,EAFQ,EAERA,WACxBC,EAAU7J,IAAK0J,EAAUrf,EAAKhG,IAAK,MAEnCylB,EAAUF,EACZ,kBAACG,EAAD,CAAkBnU,YAAa,SAAAjR,GAC/BA,EAAE2O,kBACF3O,EAAEmB,mBAEF,kBAAC8jB,EAAD,CAAYI,UAAW3f,EAAKhG,KAAK,kBAAC,EAAAkkB,EAAA,gBAA+Bvc,KAEjE,kBAAC,EAAAuc,EAAA,gBAA+Bvc,GAEpC,OACE,kBAACie,EAAA,EAAD,CAASH,QAASD,EAAU,yBAAKrM,wBAAyB,CAACC,OAAQoM,KAAc,MAC/E,0BAAMK,YAAa,kBAAMP,IAAgBE,GAAWF,EAAYtf,EAAKhG,OAClEylB,K,mHCfT,IAAMK,EAA2BxmB,SAAH,KAEnB,qBAAE2kB,WAA6BhY,UAAY,QAAU,aAyChE,QAtC2B,SAAAtE,GAAS,IAC3B3B,EAA2C2B,EAA3C3B,KAAMge,EAAqCrc,EAArCqc,YAAaC,EAAwBtc,EAAxBsc,WAAYQ,EAAY9c,EAAZ8c,SAC/BY,EAAqCrB,EAArCqB,SAAUC,EAA2BtB,EAA3BsB,YAAaC,EAAcvB,EAAduB,WACxBC,EAAU7J,IAAK0J,EAAUrf,EAAKhG,IAAK,MACnCylB,EAAUF,EACZ,kBAACG,EAAD,CAAkBnU,YAAa,SAAAjR,GAC/BA,EAAE2O,kBACF3O,EAAEmB,mBAEF,kBAAC8jB,EAAD,CAAYI,UAAW3f,EAAKhG,KAAMykB,IAElCA,EAEJ,OAAO,kBAAC,EAAAP,EAAA,YAA2Bvc,EACjC,kBAACme,EAAD,CACED,YAAa,kBAAMP,IAAgBE,GAAWF,EAAYtf,EAAKhG,MAC/DikB,WAAYA,GAEZ,kBAAC2B,EAAA,EAAD,CAASH,QAASD,EACd,yBAAKrM,wBAAyB,CAACC,OAAQoM,KACvC,MACDC,MCiMT,SAAejU,SAhNA,SAAC,GAoBV,IAnBJuU,EAmBI,EAnBJA,aACA9lB,EAkBI,EAlBJA,GACA+B,EAiBI,EAjBJA,UACAugB,EAgBI,EAhBJA,UACAxgB,EAeI,EAfJA,QACAujB,EAcI,EAdJA,YACAJ,EAaI,EAbJA,qBACAC,EAYI,EAZJA,yBACAa,EAWI,EAXJA,cACA3lB,EAUI,EAVJA,SACAgkB,EASI,EATJA,mBACAxiB,EAQI,EARJA,QACAokB,EAOI,EAPJA,cACAha,EAMI,EANJA,MACAoZ,EAKI,EALJA,SACAvjB,EAII,EAJJA,MACAyjB,EAGI,EAHJA,WACAf,EAEI,EAFJA,iBACAD,EACI,EADJA,iBAEM2B,GAAkBC,YAAO,MACzBC,GAAgBD,YAAO,MAmBvBE,EACFJ,EAAgBK,IAAUL,EA/CR,KA+C0C,aAE1DjB,EAAeoB,EAAc9Y,QAAU8Y,EAAc9Y,QAAQiZ,YAAc,IAC3EtB,EAAgBmB,EAAc9Y,QAAU8Y,EAAc9Y,QAAQkZ,aAAe,GAEnF,OACE,yBACE5V,SAAS,KACT3Q,GAAIA,EACJ4Q,QAAS,WACPqV,EAAgB5Y,QAAQqD,SAE1BlD,MAAO,CACLgZ,aAAc,OACdC,OAAQ1kB,EAAY,cAAgB,YAEtC,yBAAKiP,IAAKmV,EAAe3Y,MAAO,CAACgZ,aAAc,SAC7C,kBAAC,KAAD,KACEE,eAAgB,SAAAC,GAAM,OAAIA,EAAOjiB,SACjCkiB,eAAgB,SAAAD,GAAM,OAAIA,EAAO5mB,KACjCglB,aAAcA,EACdC,cAAeA,EACf6B,WAAY,CACVC,iBACAC,mBACAC,kBAAmBA,EACnBC,oBAAqBA,EACrBC,mBAAoB,KACpBC,KAAMA,EACNC,SAAUA,EACVC,kBACAC,eAEFC,iBAAkB,kBAAOxB,GAAiB,OAC1CjkB,QAASA,EACT0lB,mBAAoB1lB,EACpB2lB,cAAY,GACPzB,EAAgB,CAAC0B,aAAc,kBAAO,IAAS,GApBtD,CAqBEC,aAAW,EACXC,eAAgB,kBAAM,MACtB1W,YAAY,GACZ2W,0BAA0B,EAC1BC,WAAW,EACXjmB,MAAOA,GAAS,KAChBzB,SAAUA,EACV2nB,cA7DkB,SAACC,EAAY1K,GACjC0I,GAAiBgC,GACnB5B,EAAuB4B,GAEN,KAAfA,GAAsC,iBAAjB1K,EAAMja,QAC7ByiB,KAyDIlkB,QAhEW,IAAWA,GAAW,IAiEjC0gB,UAAWA,EACX0B,WAAYjiB,EACZiP,IAAKiV,EACLgC,WAzDe,WACjBnC,GACFA,KAwDIoC,QAAQC,QAAkBnc,GAC1BA,MAAO,SAAAoc,GAAW,OAAIjD,QAAiBiD,EAAapc,IACpDqZ,YAAaA,EACbD,SAAUA,EACVE,WAAYA,EACZlB,mBAAoBA,EACpBa,qBAAsBA,EACtBC,yBAA0BA,EAC1BmD,mBAAmB,EACnB9D,iBAAkBA,EAClBD,iBAAkBA,W,yQClH5B,SANyBjlB,QAAOipB,KAAPjpB,CAAH,KCatB,QAT0B,SAAAqI,GAAK,OAC7B,kBAAC,EAAD,CAAkB6gB,GAAG,MAClBtZ,iBAAmBvH,EAAM8c,UAAU,SAAAgE,GAAK,OAAIvZ,iBAAmBuZ,Q,4VCApE,IAAMC,GAAM,WACT9R,mBAAwB,WADf,MAETA,qBAA0B3K,UAAY,uBAF7B,MAGT2K,uBAA2B,SAAAjP,GAAK,OAAI4Y,QAAW5E,IAAKhU,EAAMsE,MAAO,kBAAmB,MAH3E,MAIT2K,sBAA2B3K,UAAY,wBAJ9B,MAKT2K,sBAA2B3K,UAAY,wBAL9B,MAMT2K,mBAAwB3K,UAAY,qBAN3B,GAcN0c,GAAuBrpB,QAAOspB,KAAPtpB,CAAH,KAEb,SAAAqI,GAAK,OAPD,SAAAA,GAEf,OADc+gB,EAAO/gB,EAAMkhB,YACX,UAKIC,CAASnhB,MAgB/BghB,EAAqBI,UAAY,CAC/BF,UAAWjS,uBAA0B8R,IAGvC,U,MCvCMM,GAAK,WACRpS,oBAAwB,GADhB,MAERA,uBAA2B,GAFnB,MAGRA,qBAA0B,SAHlB,MAIRA,sBAA2B,SAJnB,MAKRA,sBAA2B,wBALnB,MAMRA,mBAAwB,QANhB,G,EAcA,2BAAI,KAOTqS,EAAiB,SAAAthB,GAAK,OAC1B,kBAAC,EAAD,CAAsBkhB,UAAWlhB,EAAMkhB,WAbzB,SAAAlhB,GACd,IAAMD,EAAOshB,EAAMrhB,EAAMkhB,WACzB,OAAInhB,EACK,kBAAC,IAAD,CAAMA,KAAMA,EAAMiP,SAAUC,oBAEnC,EASCsS,CAAQvhB,GACRA,EAAMjH,MACNwO,iBAAmBvH,EAAM8c,UAAU,SAAAgE,GAAK,OAAIvZ,iBAAmBuZ,QAGpEQ,EAAe7Q,aAAe,CAC5ByQ,UAAWjS,oBAmBb,MC7CA,GACEuS,OACAC,KD2CF,GErBA,QA7BkB,SAAAzhB,GAChB,IAAKA,EAAM0hB,MACT,OAAO,KAGT,IAAMC,EAAc,GAKpB,OAJAtZ,OAAOC,KAAKtI,EAAM0hB,OAAOnZ,SAAQ,SAAAlQ,GAC/BspB,EAAYC,KAAZ,MAAAD,EAAW,IAAS3hB,EAAM0hB,MAAMrpB,QAIhC,kBAAC,OAAD,KACGspB,EAAYxpB,KAAI,SAACgC,EAAO0nB,GAAR,OACf,kBAAC,OAAD,CACEX,UAAU,SACV7oB,IAAKwpB,EACL9oB,MAAOoB,S,ooECTjB,IAiDM2nB,EAAgB,SAAC,GAAD,IAAEC,EAAF,EAAEA,UAAW1nB,EAAb,EAAaA,UAAb,yBAAyC0nB,GAAa1nB,EAAa,cAAgB,OAAnF,MAET2nB,EAAqBrqB,SAAH,IACR6G,UAAY,KAG7ByjB,EAAyBtqB,WAAH,KAEtBuK,OAAY,CACZ0M,SAAUpQ,SAAW,GACrB0jB,WAAY,qBAAEC,MAAmB7d,eAAiB,QAAUA,eAAiB,YAC7E8d,WAAY,IAEM9d,UAAY,UACvB,SAAAtE,GAAK,OAAI0P,IA5DD,SAAC,GAAgE,IAA/DqS,EAA+D,EAA/DA,UAAWM,EAAoD,EAApDA,kBAAmBhoB,EAAiC,EAAjCA,UAAWioB,EAAsB,EAAtBA,OAAQtoB,EAAc,EAAdA,SACtE,OAAOsoB,EACH,SACAtoB,EACE,WACA+nB,GAAaM,GAAqBhoB,IAAcioB,EAC9C,SACAP,EACEM,EACI,SACA,SACJA,EACE,SACAhoB,EACE,SACAioB,EACE,SACA,SA2CiBC,CAAaviB,IAAQA,KAC5CxB,WAAa,GACNA,SAAW,GACXA,WAAa,IAGnB,qBAAE6jB,kBAA2C,OAAS,YAChD7jB,SAAW,IAExB,SAAAwB,GAAK,OAvCcqiB,EAuCKriB,EAvCLqiB,mBAAuBtG,QAAxB,IAhCE,wCAwCpBsG,IAAqBtG,QAAJ,IAEJvd,UAAY,IACVA,UAAY,MAXV,IAAE6jB,KAwCnB,SAAAriB,GAAK,OAAI8hB,EAAc9hB,MACP,qBAAEqiB,kBAA2C,OAAS,UACxD,qBAAEhoB,WAA4B,OAQ5CmoB,EAAuB7qB,SAAH,IAnFN,SAqFe,SAAAqI,GAAK,OAAIyiB,KA9DpB,EA8DkDziB,EA9DjD3F,EAA2C,EAA3CA,UAAW0nB,EAAgC,EAAhCA,UAAWO,EAAqB,EAArBA,OAAqB,EAAbI,QAEjD,UACAX,GAAa1nB,EACX,cACAioB,EACE,SACA,WAuDwEtiB,GA9D3D,IAAC,EAAC3F,EAAW0nB,EAAWO,IA+DhC9jB,WAAa,GAAMA,WAAa,GAAMA,WAAa,GAAOA,WAAa,IAEhF,SAAAwB,GAAK,OAAKA,EAAM3F,YAAasoB,QAAa3iB,MAC1C,SAAAA,GAAK,OAAI8hB,EAAc9hB,KAxFH,SA2FR,qBAAE+hB,WAA4BvjB,WAAa,MACzC,qBAAEnE,WAA4BmE,WAAa,MAC5C,gBAAEujB,EAAF,EAAEA,UAAW1nB,EAAb,EAAaA,UAAb,OAA4B0nB,GAAa1nB,GAAamE,WAAa,MAGhE,qBAAEujB,WAA4B,MAI5Ca,KACa,qBAAEb,WAA4BvjB,WAAa,MAW1DqkB,GAA+BlrB,OAAH,KAE5BuK,OAAY,CACZ0M,SAAUpQ,UAAY,MAKtBskB,IAASC,QAAH,KAUNC,GAAyBrrB,SAAH,IACbmrB,IAGTG,GAA2BtrB,SAAH,IAET6G,WAAa,GACfA,WAAa,GAETgkB,EACAK,GACAG,GACAxkB,WAAa,GAObqkB,GACAG,GACGxkB,WAAa,GAxJnB,SCiJpB,SA/HoB,SAAAwB,GAAS,IAEzB8c,EAcE9c,EAdF8c,SACAoG,EAaEljB,EAbFkjB,YACAf,EAYEniB,EAZFmiB,MACA7nB,EAWE0F,EAXF1F,SACAynB,EAUE/hB,EAVF+hB,UACAL,EASE1hB,EATF0hB,MACA1nB,EAQEgG,EARFhG,SACA1B,EAOE0H,EAPF1H,GACAS,EAMEiH,EANFjH,MACAoqB,EAKEnjB,EALFmjB,UACAC,EAIEpjB,EAJFojB,eACA/oB,EAGE2F,EAHF3F,UACAgpB,EAEErjB,EAFFqjB,QACQC,EACNtjB,EADFsiB,OAGIiB,GAAalpB,GAAagpB,GAAW3B,GAASrZ,OAAOC,KAAKoZ,GAAO9nB,OAAS,EAC1E4pB,EAAW,GAAH,OAAMpb,uBAAsBrP,IAA5B,OAAqCoqB,GAAaC,EAAb,YAAmCA,GAAmB,IACnGd,EAASgB,GAlCI,SAACnB,EAAOsB,EAAUN,EAAWnpB,GAChD,OAAIypB,EACKxU,qBACEkT,EACFlT,mBACEkU,IAAcnpB,EAChBiV,2BADF,EA6BsByU,CAAavB,EAAOoB,EAAWJ,EAAWnpB,GApB5C,EAsDZ,kBAAC6oB,GAAD,KAA+BK,GAtDnB,EAuDH,kBAACF,GAAD,KACZ,kBAAC,EAAD,CAAWtB,MAAOA,KAlC9B,OACE,kBAAC,IAAD,MACG,YAAuB,IAArB3H,EAAqB,EAArBA,QAASC,EAAY,EAAZA,OACJqI,GAAsBhoB,GAAa0f,GAAY/f,GAAY+nB,GAAaznB,EAC9E,OACE,kBAAC2oB,GAAD,CACE3Z,IAAK0Q,EACLqI,kBAAmBA,GACnB,kBAACG,EAAD,CACE7U,UAAU,uBACV3T,SAAUA,EACVK,UAAWA,EACX0nB,UAAWA,EACXO,OAAQA,GACPxF,EACA/jB,GAAS,kBAACipB,EAAD,KACR,kBAACC,EAAD,QACOF,IAAc1nB,GAAa,CAACspB,QAASrrB,GAD5C,CAEE0B,SAAUA,EACVmoB,MAAOA,EACPzkB,MAAO8lB,EACPnB,kBAAmBA,EACnBhoB,UAAWA,EACX0nB,UAAWA,EACXO,OAAQA,IAER,0BAAM9Q,wBAAyB,CAACC,OAAQ,GAAF,OAAK1Y,GAAL,OAAaoqB,EAAY,KAAO,UAK3ED,GAAW,EAEXK,GAAa,Q,yECjFpB7T,EAAe,CACnBkU,OAAQ,gBAAEtf,EAAF,EAAEA,MAAF,OAAa0P,IAAK1P,EAAO,gBACjCuf,OAAQ,gBAAEvf,EAAF,EAAEA,MAAF,OAAasU,QAAW5E,IAAK1P,EAAO,eAAgB,MAC5Dwf,OAAQ,gBAAExf,EAAF,EAAEA,MAAF,OAAasU,QAAW5E,IAAK1P,EAAO,eAAgB,MAC5Dge,OAAQ,gBAAEhe,EAAF,EAAEA,MAAOge,EAAT,EAASA,OAAT,OAAqBtO,IAAK1P,EAAD,wBAAyBge,EAAzB,WACjCtoB,SAAU,gBAAEsK,EAAF,EAAEA,MAAF,OAAa0P,IAAK1P,EAAO,6BAG/Bme,EAAiB,CACrBmB,OAAQ,gBAAEtf,EAAF,EAAEA,MAAF,OAAa0P,IAAK1P,EAAO,iBACjCuf,OAAQ,gBAAEvf,EAAF,EAAEA,MAAF,OAAasU,QAAW5E,IAAK1P,EAAO,gBAAiB,IAC7Dwf,OAAQ,gBAAExf,EAAF,EAAEA,MAAF,OAAasU,QAAW5E,IAAK1P,EAAO,gBAAiB,IAC7Dge,OAAQ,gBAAEhe,EAAF,EAAEA,MAAOge,EAAT,EAASA,OAAT,OAAqBtO,IAAK1P,EAAD,wBAAyBge,EAAzB,WACjCI,QAAS,gBAAEpe,EAAF,EAAEA,MAAF,OAAa0P,IAAK1P,EAAO,0BAClCyf,YAAa,iBAAM","file":"chunk-916.c9ae660779a79e83474e.js","sourcesContent":["import styled from 'styled-components'\nimport {\n StyledInputCss,\n StyledEditableWrapperCss\n} from 'tocco-ui'\n\nexport const StyledInput = styled.input`\n && {\n ${StyledInputCss}\n }\n`\n\nexport const StyledInputWrapper = styled.div`\n && {\n ${StyledEditableWrapperCss}\n }\n`\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {Typography} from 'tocco-ui'\n\nconst Fragments = ({fragments, selectedFragments, disabled, setFragmentSelected}) => {\n const handleChange = id => e => {\n setFragmentSelected(id, e.target.checked)\n }\n\n return (\n <>\n {fragments.map(fragment => (\n <div key={fragment.id}>\n <input\n type=\"checkbox\"\n id={fragment.id}\n checked={selectedFragments.includes(fragment.id)}\n onChange={handleChange(fragment.id)}\n disabled={disabled}\n />\n <Typography.Label for={fragment.id}>{fragment.label}</Typography.Label>\n </div>\n ))}\n </>\n )\n}\n\nFragments.propTypes = {\n fragments: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string\n })).isRequired,\n selectedFragments: PropTypes.arrayOf(PropTypes.string).isRequired,\n disabled: PropTypes.bool,\n setFragmentSelected: PropTypes.func.isRequired\n}\n\nexport default Fragments\n","import React, {useEffect} from 'react'\nimport PropTypes from 'prop-types'\nimport {StatedValue, Select, Button} from 'tocco-ui'\n\nimport {StyledInput, StyledInputWrapper} from '../StyledInput'\nimport Fragments from './Fragments'\n\nconst DbRefactoringForm = ({\n version,\n modules,\n selectedModules,\n fragments,\n selectedFragments,\n ignoreErrors,\n running,\n disabled,\n executeDbRefactoring,\n loadModules,\n loadFragments,\n setSelectedModules,\n setFragmentSelected,\n setVersion,\n setIgnoreErrors\n}) => {\n useEffect(() => {\n if (modules.length === 0) {\n loadModules()\n }\n if (fragments.length === 0) {\n loadFragments()\n }\n }, [])\n\n const handleVersionChange = e => {\n const versionStr = e.target.value.replaceAll(/[^\\d\\\\.]/g, '')\n setVersion(versionStr)\n }\n\n const handleIgnoreErrorsChange = e => {\n setIgnoreErrors(e.target.checked)\n }\n\n const handleSubmit = e => {\n e.preventDefault()\n executeDbRefactoring()\n }\n\n return (\n <form onSubmit={handleSubmit}>\n <StatedValue label=\"Modules (none selected => all)\" hasValue={selectedModules.length > 0}>\n <Select options={modules} value={selectedModules} onChange={setSelectedModules} isMulti immutable={disabled}/>\n </StatedValue>\n <StatedValue label=\"Fragments\" fixLabel>\n <Fragments\n fragments={fragments}\n selectedFragments={selectedFragments}\n disabled={disabled}\n setFragmentSelected={setFragmentSelected}\n />\n </StatedValue>\n <StatedValue label=\"Version\" hasValue={version.length > 0}>\n <StyledInputWrapper>\n <StyledInput value={version} onChange={handleVersionChange} disabled={disabled}/>\n </StyledInputWrapper>\n </StatedValue>\n <StatedValue label=\"Ignore errors\" fixLabel>\n <input type=\"checkbox\" checked={ignoreErrors} onChange={handleIgnoreErrorsChange} disabled={disabled}/>\n </StatedValue>\n <Button type=\"submit\" label=\"Execute\" look=\"raised\" pending={running} disabled={disabled}/>\n </form>\n )\n}\n\nDbRefactoringForm.propTypes = {\n version: PropTypes.string.isRequired,\n modules: PropTypes.arrayOf(PropTypes.shape({\n key: PropTypes.string,\n display: PropTypes.string\n })).isRequired,\n selectedModules: PropTypes.arrayOf(PropTypes.shape({\n key: PropTypes.string,\n display: PropTypes.string\n })).isRequired,\n fragments: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string\n })).isRequired,\n selectedFragments: PropTypes.arrayOf(PropTypes.string).isRequired,\n ignoreErrors: PropTypes.bool.isRequired,\n running: PropTypes.bool.isRequired,\n disabled: PropTypes.bool.isRequired,\n executeDbRefactoring: PropTypes.func.isRequired,\n loadModules: PropTypes.func.isRequired,\n loadFragments: PropTypes.func.isRequired,\n setSelectedModules: PropTypes.func.isRequired,\n setFragmentSelected: PropTypes.func.isRequired,\n setVersion: PropTypes.func.isRequired,\n setIgnoreErrors: PropTypes.func.isRequired\n}\n\nexport default DbRefactoringForm\n","export const LOAD_MODULES = 'dbrefactoring/LOAD_MODULES'\nexport const LOAD_FRAGMENTS = 'dbrefactoring/LOAD_FRAGMENTS'\nexport const SET_VERSION = 'dbrefactoring/SET_VERSION'\nexport const SET_FRAGMENTS = 'dbrefactoring/SET_FRAGMENTS'\nexport const SET_MODULES = 'dbrefactoring/SET_MODULES'\nexport const SET_SELECTED_MODULES = 'dbrefactoring/SET_SELECTED_MODULES'\nexport const SET_FRAGMENT_SELECTED = 'dbrefactoring/SET_FRAGMENT_SELECTED'\nexport const SET_IGNORE_ERRORS = 'dbrefactoring/SET_IGNORE_ERRORS'\nexport const EXECUTE_DB_REFACTORING = 'dbrefactoring/EXECUTE_DB_REFACTORING'\nexport const SET_LANGUAGE = 'dbrefactoring/SET_LANGUAGE'\nexport const EXECUTE_LANGUAGE_UPGRADE = 'dbrefactoring/EXECUTE_LANGUAGE_UPGRADE'\nexport const UNSET_RUNNING = 'dbrefactoring/UNSET_RUNNING'\n\nexport const loadModules = () => ({\n type: LOAD_MODULES\n})\nexport const loadFragments = () => ({\n type: LOAD_FRAGMENTS\n})\n\nexport const setVersion = version => ({\n type: SET_VERSION,\n payload: {\n version\n }\n})\n\nexport const setFragments = fragments => ({\n type: SET_FRAGMENTS,\n payload: {\n fragments\n }\n})\n\nexport const setModules = modules => ({\n type: SET_MODULES,\n payload: {\n modules\n }\n})\n\nexport const setSelectedModules = selectedModules => ({\n type: SET_SELECTED_MODULES,\n payload: {\n selectedModules\n }\n})\n\nexport const setFragmentSelected = (fragment, selected) => ({\n type: SET_FRAGMENT_SELECTED,\n payload: {\n fragment,\n selected\n }\n})\n\nexport const setIgnoreErrors = ignoreErrors => ({\n type: SET_IGNORE_ERRORS,\n payload: {\n ignoreErrors\n }\n})\n\nexport const executeDbRefactoring = () => ({\n type: EXECUTE_DB_REFACTORING\n})\n\nexport const setLanguage = language => ({\n type: SET_LANGUAGE,\n payload: {\n language\n }\n})\n\nexport const executeLanguageUpgrade = () => ({\n type: EXECUTE_LANGUAGE_UPGRADE\n})\n\nexport const unsetRunning = path => ({\n type: UNSET_RUNNING,\n payload: {\n path\n }\n})\n","import {connect} from 'react-redux'\n\nimport DbRefactoringForm from './DbRefactoringForm'\nimport {\n loadModules,\n loadFragments,\n setSelectedModules,\n setFragmentSelected,\n setVersion,\n setIgnoreErrors,\n executeDbRefactoring\n} from '../../modules/actions'\n\nconst mapStateToProps = state => {\n const {\n dbRefactoring, languageUpgrade\n } = state.dbRefactoring\n\n return {\n version: dbRefactoring.version,\n modules: dbRefactoring.modules,\n selectedModules: dbRefactoring.selectedModules,\n fragments: dbRefactoring.fragments,\n selectedFragments: dbRefactoring.selectedFragments,\n ignoreErrors: dbRefactoring.ignoreErrors,\n running: dbRefactoring.running,\n disabled: dbRefactoring.running || languageUpgrade.running\n }\n}\n\nconst mapActionCreators = {\n loadModules,\n loadFragments,\n setSelectedModules,\n setFragmentSelected,\n setVersion,\n setIgnoreErrors,\n executeDbRefactoring\n}\n\nexport default connect(mapStateToProps, mapActionCreators)(DbRefactoringForm)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {StatedValue, Button} from 'tocco-ui'\n\nimport {StyledInput, StyledInputWrapper} from '../StyledInput'\n\nconst UpgradeLanguageForm = ({\n language,\n running,\n disabled,\n executeLanguageUpgrade,\n setLanguage\n}) => {\n const handleLanguageChange = e => {\n setLanguage(e.target.value)\n }\n\n const handleSubmit = e => {\n e.preventDefault()\n executeLanguageUpgrade()\n }\n\n return (\n <form onSubmit={handleSubmit}>\n <StatedValue label=\"Language\" hasValue={language.length > 0}>\n <StyledInputWrapper>\n <StyledInput value={language} onChange={handleLanguageChange} disabled={disabled}/>\n </StyledInputWrapper>\n </StatedValue>\n <Button type=\"submit\" label=\"Execute language upgrade\" look=\"raised\" pending={running} disabled={disabled}/>\n </form>\n )\n}\n\nUpgradeLanguageForm.propTypes = {\n language: PropTypes.string.isRequired,\n running: PropTypes.bool.isRequired,\n disabled: PropTypes.bool.isRequired,\n executeLanguageUpgrade: PropTypes.func.isRequired,\n setLanguage: PropTypes.func.isRequired\n}\n\nexport default UpgradeLanguageForm\n","import {connect} from 'react-redux'\n\nimport UpgradeLanguageForm from './UpgradeLanguageForm'\nimport {\n setLanguage,\n executeLanguageUpgrade\n} from '../../modules/actions'\n\nconst mapStateToProps = state => {\n const {\n dbRefactoring, languageUpgrade\n } = state.dbRefactoring\n\n return {\n language: languageUpgrade.language,\n running: languageUpgrade.running,\n disabled: languageUpgrade.running || dbRefactoring.running\n }\n}\n\nconst mapActionCreators = {\n setLanguage,\n executeLanguageUpgrade\n}\n\nexport default connect(mapStateToProps, mapActionCreators)(UpgradeLanguageForm)\n","import React from 'react'\nimport {Typography} from 'tocco-ui'\n\nimport DbRefactoringForm from '../DbRefactoringForm'\nimport UpgradeLanguageForm from '../UpgradeLanguageForm'\n\nconst DbRefactoring = () => (\n <>\n <Typography.H1>Database Refactoring</Typography.H1>\n <DbRefactoringForm/>\n <Typography.H1>Language Upgrade</Typography.H1>\n <UpgradeLanguageForm/>\n </>\n)\n\nexport default DbRefactoring\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst handleSetFragments = (state, action) => ({\n ...state,\n dbRefactoring: {\n ...state.dbRefactoring,\n fragments: action.payload.fragments,\n selectedFragments:\n action.payload.fragments\n .filter(fragment => fragment.selected === true)\n .map(fragment => fragment.id)\n }\n})\n\nconst handleSetFragmentSelected = (state, action) => ({\n ...state,\n dbRefactoring: {\n ...state.dbRefactoring,\n selectedFragments:\n action.payload.selected === true\n ? [...state.dbRefactoring.selectedFragments, action.payload.fragment]\n : state.dbRefactoring.selectedFragments\n .filter((_, i) => i !== state.dbRefactoring.selectedFragments.indexOf(action.payload.fragment))\n }\n})\n\nconst setRunning = (running, path) => (state, action) => ({\n ...state,\n [path || action.payload.path]: {\n ...state[path || action.payload.path],\n running\n }\n})\n\nconst ACTION_HANDLERS = {\n [actions.SET_VERSION]: reducerUtil.singleTransferReducer('version', 'dbRefactoring'),\n [actions.SET_MODULES]: reducerUtil.singleTransferReducer('modules', 'dbRefactoring'),\n [actions.SET_SELECTED_MODULES]: reducerUtil.singleTransferReducer('selectedModules', 'dbRefactoring'),\n [actions.SET_IGNORE_ERRORS]: reducerUtil.singleTransferReducer('ignoreErrors', 'dbRefactoring'),\n [actions.SET_FRAGMENTS]: handleSetFragments,\n [actions.SET_FRAGMENT_SELECTED]: handleSetFragmentSelected,\n [actions.EXECUTE_DB_REFACTORING]: setRunning(true, 'dbRefactoring'),\n [actions.UNSET_RUNNING]: setRunning(false),\n [actions.SET_LANGUAGE]: reducerUtil.singleTransferReducer('language', 'languageUpgrade'),\n [actions.EXECUTE_LANGUAGE_UPGRADE]: setRunning(true, 'languageUpgrade')\n}\n\nconst initialState = {\n dbRefactoring: {\n version: '',\n modules: [],\n selectedModules: [],\n fragments: [],\n selectedFragments: [],\n ignoreErrors: false,\n running: false\n },\n languageUpgrade: {\n language: '',\n running: false\n }\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import {rest, notification} from 'tocco-app-extensions'\nimport {takeLatest, all, call, put, select, delay, spawn} from 'redux-saga/effects'\nimport {consoleLogger} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst dbRefactoringSelector = state => state.dbRefactoring.dbRefactoring\nconst languageUpgradeSelector = state => state.dbRefactoring.languageUpgrade\n\nexport default function* mainSagas() {\n yield all([\n takeLatest(actions.LOAD_MODULES, loadModules),\n takeLatest(actions.LOAD_FRAGMENTS, loadFragments),\n takeLatest(actions.EXECUTE_DB_REFACTORING, executeDbRefactoring),\n takeLatest(actions.EXECUTE_LANGUAGE_UPGRADE, executeLanguageUpgrade)\n ])\n}\n\nexport function* loadModules() {\n const response = yield call(rest.requestSaga, 'devcon/dbrefactoring/modules')\n yield put(actions.setModules(response.body.map(module => ({\n key: module,\n display: module\n }))))\n}\n\nexport function* loadFragments() {\n const response = yield call(rest.requestSaga, 'devcon/dbrefactoring/fragments')\n yield put(actions.setFragments(response.body))\n}\n\nexport function* executeDbRefactoring() {\n const {selectedModules, selectedFragments, version, ignoreErrors} = yield select(dbRefactoringSelector)\n\n const requestBody = {\n modules: selectedModules.map(module => module.key),\n fragments: selectedFragments,\n version,\n ignoreErrors\n }\n\n yield call(requestExecution, requestBody, 'dbRefactoring')\n}\n\nexport function* executeLanguageUpgrade() {\n const {language} = yield select(languageUpgradeSelector)\n\n const requestBody = {\n language\n }\n\n yield call(requestExecution, requestBody, 'languageUpgrade')\n}\n\nexport function* requestExecution(requestBody, statePath) {\n const options = {\n method: 'POST',\n body: requestBody\n }\n\n try {\n const response = yield call(rest.requestSaga, 'devcon/dbrefactoring/executions', options)\n yield spawn(pollExecution, response.headers.get('Location'), statePath)\n } catch (e) {\n consoleLogger.logError('DB refactoring execution failed', e)\n yield put(notification.toaster({\n type: 'error',\n title: 'DB refactoring execution failed'\n }))\n }\n}\n\nexport function* pollExecution(location, statePath) {\n yield delay(3000)\n const response = yield call(rest.requestSaga, location)\n const state = response.body.state.toLowerCase()\n if (state === 'completed') {\n yield put(actions.unsetRunning(statePath))\n yield put(notification.toaster({\n type: 'success',\n title: 'DB refactoring execution completed'\n }))\n } else if (state === 'failed') {\n yield put(actions.unsetRunning(statePath))\n yield put(notification.toaster({\n type: 'error',\n title: 'DB refactoring execution failed'\n }))\n } else {\n yield call(pollExecution, location)\n }\n}\n","import DbRefactoring from './components/DbRefactoring'\nimport dbRefactoring from './modules'\nimport sagas from './modules/sagas'\n\nexport default {\n container: DbRefactoring,\n reducers: {\n dbRefactoring\n },\n sagas: [sagas]\n}\n","export const RECEIVE_ENTRY = 'sqllog/RECEIVE_ENTRY'\nexport const SET_ACTIVE = 'sqllog/SET_ACTIVE'\nexport const SET_ELAPSED = 'sqllog/SET_ELAPSED'\n\nexport const receiveEntry = data => ({\n type: RECEIVE_ENTRY,\n payload: {\n data\n }\n})\n\nexport const setActive = active => ({\n type: SET_ACTIVE,\n payload: {\n active\n }\n})\n\nexport const setElapsed = elapsed => ({\n type: SET_ELAPSED,\n payload: {\n elapsed\n }\n})\n","import styled from 'styled-components'\n\nimport {scale} from '../utilStyles'\n\nexport const StyledInputWrapper = styled.div`\n width: calc(100% - 20px); // subtract extender width\n`\nexport const StyledInputItemWrapper = styled.div`\n display: inline-block;\n width: 50%;\n\n * {\n line-height: unset !important;\n text-align: center;\n }\n`\n\nexport const StyledIconWrapper = styled.div`\n font-size: ${scale.font(-2.7)};\n display: flex;\n align-items: center;\n`\n\nexport const StyledRange = styled.div`\n display: flex;\n`\n\nexport const StyledInput = styled.div`\n flex: 1;\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n width: inherit;\n`\n\nexport const StyledExtender = styled.div`\n display: flex;\n align-items: center;\n position: relative;\n left: 2px;\n z-index: 1;\n`\n","import moment from 'moment'\n\nconst datetimeFormat = 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\nconst dateFormat = 'YYYY-MM-DD'\n\nconst rangeTypeMappings = {\n datetime: {\n type: 'date',\n toRange: value => {\n const fromValue = value ? moment(value).utc().format(datetimeFormat) : null\n const toValue = value ? moment(value).utc().add(1, 'd').format(datetimeFormat) : null\n return {from: fromValue, to: toValue, isRangeValue: true}\n },\n fromRange: value => {\n if (value && value.from) {\n return moment.utc(value.from, datetimeFormat).local().format(dateFormat)\n }\n if (value && value.to) {\n return moment.utc(value.to, datetimeFormat).local().format(dateFormat)\n }\n return null\n },\n getToOptions: (options, fromValue) => ({...options, flatpickrOptions: {minDate: fromValue}}),\n getFromOptions: (options, toValue) => ({...options, flatpickrOptions: {maxDate: toValue}})\n },\n date: {\n getToOptions: (options, fromValue) => ({...options, flatpickrOptions: {minDate: fromValue}}),\n getFromOptions: (options, toValue) => ({...options, flatpickrOptions: {maxDate: toValue}})\n }\n}\n\nexport default rangeTypeMappings\n","import PropTypes from 'prop-types'\nimport React, {useMemo} from 'react'\nimport _omit from 'lodash/omit'\n\nimport {\n StyledRange,\n StyledInputWrapper,\n StyledInputItemWrapper,\n StyledIconWrapper,\n StyledInput,\n StyledExtender\n} from './StyledRange'\nimport EditableValue from '../EditableValue'\nimport Ball from '../Ball'\nimport Icon from '../Icon'\nimport rangeTypeMappings from './rangeTypeMappings'\n\n/**\n * Allows to render EditableValues as a range. The value can be switched between a range or single value.\n */\nconst Range = props => {\n const {value, events, readOnly, type, options} = props\n const hasRangeValue = typeof value === 'object' && value && value.isRangeValue\n\n const exactEvents = useMemo(() => ({\n ...events,\n onChange: value => {\n events.onChange(value)\n }\n }))\n\n const toEvents = useMemo(() => ({\n onChange: toValue => {\n events.onChange({\n ...value,\n to: toValue\n })\n }\n }))\n\n const fromEvents = useMemo(() => ({\n onChange: fromValue => {\n events.onChange({\n ...value,\n from: fromValue\n })\n }\n }))\n\n const typeMapping = rangeTypeMappings[type]\n\n const getToOptions = (options, fromValue) =>\n typeMapping && typeMapping.getToOptions\n ? typeMapping.getToOptions(options, fromValue)\n : options\n\n const getFromOptions = (options, toValue) =>\n typeMapping && typeMapping.getFromOptions\n ? typeMapping.getFromOptions(options, toValue)\n : options\n\n const getFromOrTo = value =>\n typeMapping && typeMapping.fromRange\n ? typeMapping.fromRange(value)\n : value && value.from ? value.from : value && value.to ? value.to : null\n\n const getRangeValue = value =>\n typeMapping && typeMapping.toRange\n ? typeMapping.toRange(value)\n : {from: value, to: value, isRangeValue: true}\n\n const baseType = typeMapping && typeMapping.type ? typeMapping.type : type\n\n return <StyledRange>\n <StyledInputWrapper>\n {!hasRangeValue\n ? <EditableValue\n type={baseType}\n {..._omit(props, ['type'])}\n events={exactEvents}\n />\n : <StyledInput>\n <StyledInputItemWrapper>\n <EditableValue\n {...props}\n options={getFromOptions(options, value.to)}\n value={value && value.from ? value.from : null}\n events={fromEvents}\n />\n </StyledInputItemWrapper>\n <StyledIconWrapper>\n <Icon icon=\"horizontal-rule\"/>\n </StyledIconWrapper>\n <StyledInputItemWrapper>\n <EditableValue\n {...props}\n options={getToOptions(options, value.from)}\n value={value && value.to ? value.to : null}\n events={toEvents}\n />\n </StyledInputItemWrapper>\n </StyledInput>}\n </StyledInputWrapper>\n <StyledExtender>\n <Ball disabled={readOnly} icon={hasRangeValue ? 'chevron-left' : 'chevron-down'} onClick={() => {\n if (hasRangeValue) {\n events.onChange(getFromOrTo(value))\n } else {\n events.onChange(getRangeValue(value))\n }\n }}>\n </Ball>\n </StyledExtender>\n </StyledRange>\n}\n\nRange.propTypes = {\n /**\n * EditableValue type\n */\n type: PropTypes.string,\n /**\n * The Range Component can either handle a single value or and object with the following three\n * attributes: isRangeValue (true), from, to. The later two are single values.\n * example:\n * {\n * isRangeValue: true,\n * from: 1,\n * to: 2\n * }\n */\n value: PropTypes.any,\n /**\n * See EditableValue\n */\n events: PropTypes.shape({\n onChange: PropTypes.func\n }).isRequired,\n /**\n * See EditableValue\n */\n readOnly: PropTypes.bool,\n /**\n * See EditableValue\n */\n options: PropTypes.object,\n /**\n * Shown above \"from\" input\n */\n fromText: PropTypes.string,\n /**\n * Shown above \"to\" input\n */\n toText: PropTypes.string\n}\n\nexport default Range\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {StatedValue} from 'tocco-ui'\nimport Range from 'tocco-ui/src/Range'\n\nconst LogForm = ({active, elapsed, setActive, setElapsed}) => {\n const handleActiveChange = e => {\n setActive(e.target.checked)\n }\n\n const handleElapsedChange = value => {\n setElapsed(value)\n }\n\n return (\n <div>\n <StatedValue label=\"Active\" fixLabel>\n <input type=\"checkbox\" checked={active} onChange={handleActiveChange}/>\n </StatedValue>\n <StatedValue label=\"Elapsed\" hasValue={!!elapsed}>\n <Range\n fromText=\"from\"\n toText=\"to\"\n type=\"number\"\n value={elapsed}\n options={{\n postPointDigits: 0,\n fixedDecimalScale: true\n }}\n events={{\n onChange: handleElapsedChange\n }}\n />\n </StatedValue>\n </div>\n )\n}\n\nLogForm.propTypes = {\n active: PropTypes.bool.isRequired,\n elapsed: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.shape({\n from: PropTypes.number,\n to: PropTypes.number\n })\n ]),\n setActive: PropTypes.func.isRequired,\n setElapsed: PropTypes.func.isRequired\n}\n\nexport default LogForm\n","import {connect} from 'react-redux'\n\nimport {setActive, setElapsed} from '../../modules/actions'\nimport LogForm from './LogForm'\n\nconst mapStateToProps = state => ({\n active: state.sqlLog.active,\n elapsed: state.sqlLog.elapsed\n})\n\nconst mapActionCreators = {\n setActive,\n setElapsed\n}\n\nexport default connect(mapStateToProps, mapActionCreators)(LogForm)\n","import styled from 'styled-components'\nimport {declareFont} from 'tocco-ui'\n\nconst BORDER_COLOR = {\n ERROR: '#a00'\n}\n\nexport const StyledLogTable = styled.div`\n display: grid;\n gap: 1px;\n`\n\nexport const StyledLogEntry = styled.div`\n display: grid;\n height: fit-content;\n grid-template-columns: repeat(3, 1fr);\n padding: 1em;\n ${props => `border: 1px solid ${BORDER_COLOR[props.level] || '#ddd'};`}\n`\n\nexport const StyledStatementHeader = styled.span`\n grid-column: 1 / 3;\n ${props => props.expandable && 'cursor: pointer;'}\n\n && {\n ${declareFont()}\n }\n`\n\nexport const StyledStatement = styled.span`\n grid-column: 1 / 3;\n margin-top: 1em;\n\n && {\n ${declareFont()}\n }\n`\n\nexport const StyledTime = styled.span`\n grid-row-start: 1;\n grid-column-start: 3;\n text-align: right;\n\n && {\n ${declareFont()}\n }\n`\n\nexport const StyledElapsedContainer = styled.span`\n grid-column-start: 3;\n text-align: right;\n margin-top: 1em;\n\n && {\n ${declareFont()}\n }\n`\n\nconst getBackgroundColor = elapsed => {\n if (elapsed >= 1000) {\n return '#f00'\n }\n if (elapsed >= 500) {\n return '#ff8c00'\n }\n if (elapsed >= 100) {\n return '#ff0'\n }\n return '#dedede'\n}\n\nexport const StyledElapsed = styled.span`\n background-color: ${props => getBackgroundColor(props.elapsed)};\n border-radius: 5px;\n padding: .5em;\n`\n","import React, {useState} from 'react'\nimport PropTypes from 'prop-types'\n\nimport {\n StyledLogEntry,\n StyledStatementHeader,\n StyledStatement,\n StyledTime,\n StyledElapsedContainer,\n StyledElapsed\n} from './StyledLogEntry'\n\nconst LogEntry = ({entry}) => {\n const [expanded, setExpanded] = useState(false)\n\n const truncate = entry.sql.length > 100\n\n const handleClick = () => {\n if (truncate) {\n setExpanded(!expanded)\n }\n }\n\n const header = truncate ? entry.sql.substr(0, 100) + '...' : entry.sql\n\n return (\n <StyledLogEntry>\n <StyledStatementHeader expandable={truncate} onClick={handleClick}>{header}</StyledStatementHeader>\n {expanded && <StyledStatement>{entry.sql}</StyledStatement>}\n <StyledTime>{new Date(entry.timestamp.iMillis).toLocaleString()}</StyledTime>\n <StyledElapsedContainer>\n <StyledElapsed elapsed={entry.elapsed}>{entry.elapsed} ms</StyledElapsed>\n </StyledElapsedContainer>\n </StyledLogEntry>\n )\n}\n\nLogEntry.propTypes = {\n entry: PropTypes.shape({\n sql: PropTypes.string.isRequired,\n timestamp: PropTypes.shape({\n iMillis: PropTypes.number.isRequired\n }).isRequired,\n elapsed: PropTypes.number.isRequired\n }).isRequired\n}\n\nexport default LogEntry\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {Typography} from 'tocco-ui'\n\nimport LogEntry from './LogEntry'\nimport {StyledLogTable} from './StyledLogEntry'\n\nconst filterEntries = (entries, elapsed) => {\n if (!elapsed) {\n return entries\n }\n return entries.filter(entry => {\n if (elapsed.isRangeValue === true) {\n return entry.elapsed >= elapsed.from && entry.elapsed <= elapsed.to\n }\n return entry.elapsed >= elapsed\n })\n}\n\nconst LogTable = ({entries, elapsed}) => {\n const filteredEntries = filterEntries(entries, elapsed)\n return (\n <StyledLogTable>\n {filteredEntries.length > 0\n ? filteredEntries.map(entry => <LogEntry key={entry.key} entry={entry}/>)\n : <Typography.Span>No entries so far.</Typography.Span>\n }\n </StyledLogTable>\n )\n}\n\nLogTable.propTypes = {\n entries: PropTypes.arrayOf(PropTypes.shape({\n sql: PropTypes.string.isRequired,\n elapsed: PropTypes.number.isRequired,\n timestamp: PropTypes.shape({\n iMillis: PropTypes.number.isRequired\n }).isRequired\n })).isRequired,\n elapsed: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.shape({\n from: PropTypes.number,\n to: PropTypes.number\n })\n ])\n}\n\nexport default LogTable\n","import {connect} from 'react-redux'\n\nimport LogTable from './LogTable'\n\nconst mapStateToProps = state => ({\n entries: state.sqlLog.entries,\n elapsed: state.sqlLog.elapsed\n})\n\nconst mapActionCreators = {\n}\n\nexport default connect(mapStateToProps, mapActionCreators)(LogTable)\n","import React from 'react'\nimport {Typography} from 'tocco-ui'\n\nimport LogForm from '../LogForm'\nimport LogTable from '../LogTable'\n\nconst LogView = () => (\n <>\n <Typography.H1>SQL Log</Typography.H1>\n <LogForm/>\n <LogTable/>\n </>\n)\n\nexport default LogView\n","import {v4 as uuid} from 'uuid'\nimport {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst handleReceiveEntry = (state, {payload}) =>\n state.active\n ? {\n ...state,\n entries: [{\n ...payload.data,\n key: uuid()\n },\n ...state.entries]\n }\n : state\n\nconst ACTION_HANDLERS = {\n [actions.RECEIVE_ENTRY]: handleReceiveEntry,\n [actions.SET_ACTIVE]: reducerUtil.singleTransferReducer('active'),\n [actions.SET_ELAPSED]: reducerUtil.singleTransferReducer('elapsed')\n}\n\nconst initialState = {\n entries: [],\n active: false,\n elapsed: null\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import {socket} from 'tocco-app-extensions'\nimport {all, call} from 'redux-saga/effects'\n\nimport * as actions from './actions'\n\nexport default function* mainSagas() {\n yield all([\n call(initSocket)\n ])\n}\n\nexport function* initSocket() {\n const params = {\n name: 'sqllogging',\n messageReceivedAction: actions.receiveEntry\n }\n yield call(socket.connectSocket, params)\n}\n","import LogView from './components/LogView'\nimport sqlLog from './modules'\nimport sagas from './modules/sagas'\n\nexport default {\n container: LogView,\n reducers: {\n sqlLog\n },\n sagas: [sagas]\n}\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport Select from '../../Select'\n\nconst SingleSelect = props => (\n <Select\n id={props.id}\n immutable={props.immutable}\n isMulti={false}\n onChange={props.onChange}\n value={props.value}\n openMenuOnClick\n {...props.options}\n />\n)\n\nSingleSelect.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.shape({\n key: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ])\n }),\n options: PropTypes.shape({\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.any,\n label: PropTypes.string\n })),\n fetchOptions: PropTypes.func,\n noResultsText: PropTypes.string,\n isLoading: PropTypes.bool,\n tooltips: PropTypes.objectOf(PropTypes.string),\n loadTooltip: PropTypes.func\n }),\n immutable: PropTypes.bool,\n id: PropTypes.string\n}\n\nexport default SingleSelect\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport Select from '../../Select'\n\nconst MultiSelect = props => (\n <Select\n id={props.id}\n isMulti={true}\n immutable={props.immutable}\n onChange={props.onChange}\n value={props.value}\n openMenuOnClick\n {...props.options}\n />\n)\n\nMultiSelect.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.array,\n options: PropTypes.shape({\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.any,\n label: PropTypes.string\n })),\n fetchOptions: PropTypes.func,\n isLoading: PropTypes.bool,\n noResultsText: PropTypes.string,\n tooltips: PropTypes.objectOf(PropTypes.string),\n loadTooltip: PropTypes.func\n }),\n immutable: PropTypes.bool,\n id: PropTypes.string\n}\n\nexport default MultiSelect\n","import styled from 'styled-components'\n\nimport {StyledInputCss} from '../StyledEditableValue'\n\nconst StyledStringEdit = styled.input.attrs(props => ({\n type: 'text'\n}))`\n && {\n ${StyledInputCss}\n }\n`\n\nexport default StyledStringEdit\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {react} from 'tocco-util'\n\nimport {StyledEditableWrapper} from '../StyledEditableValue'\nimport StyledStringEdit from './StyledStringEdit'\n\nconst StringEdit = props =>\n <StyledEditableWrapper immutable={props.immutable}>\n <StyledStringEdit\n disabled={props.immutable}\n id={props.id}\n name={props.name}\n onChange={e => props.onChange(e.target.value)}\n immutable={props.immutable}\n value={props.value || ''}\n />\n </StyledEditableWrapper>\n\nStringEdit.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.node,\n name: PropTypes.string,\n id: PropTypes.string,\n immutable: PropTypes.bool\n}\n\nexport default react.Debouncer(StringEdit)\n","import React from 'react'\nimport TextareaAutosize from 'react-textarea-autosize'\nimport styled from 'styled-components'\n\nimport {StyledInputCss} from '../StyledEditableValue'\n\nconst StyledTextareaAutosize = styled(({immutable, ...rest}) => <TextareaAutosize {...rest}/>)`\n && {\n ${StyledInputCss}\n padding-top: 2px;\n padding-bottom: 2px;\n }\n`\n\nexport default StyledTextareaAutosize\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {react} from 'tocco-util'\n\nimport {StyledEditableWrapper} from '../StyledEditableValue'\nimport StyledTextareaAutosize from './StyledTextEdit'\n\nconst TextEdit = props =>\n <StyledEditableWrapper immutable={props.immutable}>\n <StyledTextareaAutosize\n id={props.id}\n immutable={props.immutable}\n maxRows={20}\n name={props.name}\n onChange={e => props.onChange(e.target.value)}\n disabled={props.immutable}\n rows={2}\n value={props.value}\n />\n </StyledEditableWrapper>\n\nTextEdit.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.node,\n name: PropTypes.string,\n id: PropTypes.string,\n immutable: PropTypes.bool\n}\n\nexport default react.Debouncer(TextEdit)\n","import styled from 'styled-components'\n\nimport {\n StyledEditableWrapperCss,\n StyledInputCss\n} from '../StyledEditableValue'\n\nexport const StyledDateAbstractInput = styled.input`\n &&& {\n ${StyledInputCss}\n }\n`\n\nexport const StyledDateAbstractOuterWrapper = styled.div`\n outline: ${({immutable}) => immutable ? 0 : 'initial'};\n`\n\nexport const StyledDateAbstractWrapper = styled.div`\n && {\n ${StyledEditableWrapperCss}\n\n input {\n display: ${({immutable}) => immutable ? 'none' : 'block'};\n\n &:last-of-type {\n display: ${({immutable}) => immutable ? 'block' : 'none'};\n }\n }\n }\n`\n","import {createGlobalStyle} from 'styled-components'\n\nimport {theme, declareFont, scale} from '../utilStyles'\n\nconst calendarWidth = 270\nconst secondaryLight = theme.color('secondaryLight')\nconst secondary = theme.color('secondary')\nconst paper = theme.color('paper')\nconst regular = theme.fontWeight('regular')\nconst baseSpace = scale.space(-2)\n\nexport const GlobalDatePickerStyles = createGlobalStyle`\n .flatpickr-calendar {\n && {\n ${declareFont()}\n width: ${calendarWidth}px;\n border: 1px solid ${secondaryLight};\n border-radius: 0;\n }\n\n &.arrowTop:before,\n &.arrowTop:after {\n border-bottom-color: ${secondaryLight} !important;\n }\n\n &.arrowBottom:before,\n &.arrowBottom:after {\n border-top-color: ${secondaryLight} !important;\n }\n\n .flatpickr-rContainer {\n width: 100%;\n }\n\n .dayContainer {\n padding-top: ${baseSpace};\n padding-right: ${baseSpace};\n padding-bottom: ${baseSpace};\n width: ${calendarWidth}px;\n min-width: ${calendarWidth}px;\n max-width: ${calendarWidth}px;\n }\n\n .numInput.cur-year,\n .flatpickr-current-month span.cur-month{\n font-weight: ${regular};\n }\n\n .flatpickr-current-month .numInputWrapper {\n span.arrowUp:after {\n border-bottom-color: ${paper};\n }\n\n span.arrowDown:after {\n border-top-color: ${paper};\n }\n }\n\n .flatpickr-weekday {\n font-size: ${scale.font(-2)};\n font-weight: ${regular};\n }\n\n .flatpickr-days {\n width: ${calendarWidth}px;\n }\n\n .flatpickr-day.today {\n border-color: ${secondary};\n font-weight: ${theme.fontWeight('bold')};\n }\n\n .flatpickr-day {\n max-width: 34px;\n height: 34px;\n line-height: 34px;\n margin-bottom: ${baseSpace};\n font-weight: ${regular};\n }\n\n .flatpickr-months .flatpickr-month {\n border-radius: 0;\n }\n\n .flatpickr-months .flatpickr-month,\n .flatpickr-weekdays,\n .flatpickr-weekday {\n background-color: ${secondaryLight};\n color: ${paper};\n }\n\n .flatpickr-day.selected,\n .flatpickr-day.startRange,\n .flatpickr-day.endRange,\n .flatpickr-day.selected.inRange,\n .flatpickr-day.startRange.inRange,\n .flatpickr-day.endRange.inRange,\n .flatpickr-day.selected:focus,\n .flatpickr-day.startRange:focus,\n .flatpickr-day.endRange:focus,\n .flatpickr-day.selected:hover,\n .flatpickr-day.startRange:hover,\n .flatpickr-day.endRange:hover,\n .flatpickr-day.selected.prevMonthDay,\n .flatpickr-day.startRange.prevMonthDay,\n .flatpickr-day.endRange.prevMonthDay,\n .flatpickr-day.selected.nextMonthDay,\n .flatpickr-day.startRange.nextMonthDay,\n .flatpickr-day.endRange.nextMonthDay,\n .flatpickr-day.today:hover,\n .flatpickr-day.today:focus {\n background-color: ${secondary};\n border-color: ${secondary};\n }\n\n .flatpickr-day.inRange,\n .flatpickr-day.prevMonthDay.inRange,\n .flatpickr-day.nextMonthDay.inRange,\n .flatpickr-day.today.inRange,\n .flatpickr-day.prevMonthDay.today.inRange,\n .flatpickr-day.nextMonthDay.today.inRange,\n .flatpickr-day:hover,\n .flatpickr-day.prevMonthDay:hover,\n .flatpickr-day.nextMonthDay:hover,\n .flatpickr-day:focus,\n .flatpickr-day.prevMonthDay:focus,\n .flatpickr-day.nextMonthDay:focus {\n background-color: ${secondaryLight};\n border-color: ${secondaryLight};\n color: ${paper};\n }\n\n .flatpickr-months .flatpickr-prev-month,\n .flatpickr-months .flatpickr-next-month {\n color: ${paper};\n fill: ${paper};\n\n &:hover svg {\n color: ${secondary};\n fill: ${secondary};\n }\n }\n }\n`\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {injectIntl} from 'react-intl'\nimport _isEqual from 'lodash/isEqual'\nimport {withTheme} from 'styled-components'\nimport {js} from 'tocco-util'\n\nimport {theme} from '../../utilStyles'\nimport {\n StyledDateAbstractInput,\n StyledDateAbstractWrapper,\n StyledDateAbstractOuterWrapper\n} from './StyledDateAbstract'\nimport {GlobalDatePickerStyles} from '../../DatePicker/GlobalDatePickerStyles'\nimport Ball from '../../Ball'\n\nclass DateAbstract extends React.Component {\n Flatpickr = null\n componentIsUnmounted = false\n\n constructor(props) {\n super(props)\n this.wrapper = React.createRef()\n\n this.state = {altInput: ''}\n\n // eslint-disable-next-line chai-friendly/no-unused-expressions\n import(/* webpackChunkName: \"vendor-flatpickr\" */ '!style-loader!css-loader!flatpickr/dist/themes/light.css')\n\n Promise.all([\n import(/* webpackChunkName: \"vendor-flatpickr\" */ 'flatpickr'),\n import(/* webpackChunkName: \"vendor-flatpickr\" */ 'flatpickr/dist/l10n/de.js'),\n import(/* webpackChunkName: \"vendor-flatpickr\" */ 'flatpickr/dist/l10n/fr.js'),\n import(/* webpackChunkName: \"vendor-flatpickr\" */ 'flatpickr/dist/l10n/it.js')\n ]).then(response => {\n if (!this.componentIsUnmounted) {\n this.Flatpickr = response[0].default\n this.localeMap = {\n 'de-CH': response[1].German,\n 'de': response[1].German,\n 'fr': response[2].French,\n 'it': response[3].Italian\n }\n\n this.initializeFlatPickr()\n }\n })\n }\n\n msg = id => this.props.intl.formatMessage({id})\n\n initializeFlatPickr = flatpickr => {\n const locale = this.localeMap[this.props.intl.locale]\n\n this.options = {\n wrap: true,\n onChange: this.handleOnChange,\n altInput: true,\n altInputClass: '',\n clickOpens: !this.props.immutable,\n defaultDate: this.props.value,\n ...(locale ? {locale} : {}),\n ...(this.props.options ? this.props.options.flatpickrOptions : {})\n }\n\n this.flatpickr = new this.Flatpickr(this.wrapper.current, this.options)\n this.flatpickr.calendarContainer.classList.add('tocco-ui-theme')\n this.flatpickr.calendarContainer.style.fontFamily = theme.fontFamily('regular')(this.props)\n this.flatpickr.calendarContainer.addEventListener('keydown', this.handleConfirmKey)\n\n if (this.props.initialized) {\n this.props.initialized()\n }\n this.setState({altInput: this.flatpickr.altInput.value})\n }\n\n getLocale = localeCode => {\n if (this.localeMap) {\n let locale = this.localeMap[localeCode]\n\n // Fallback english\n if (!locale && this.Flatpickr) {\n locale = this.Flatpickr.l10ns.en\n }\n return locale\n }\n return null\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.Flatpickr && this.flatpickr) {\n const optionsDiff = js.difference(this.props.options.flatpickrOptions, prevProps.options.flatpickrOptions)\n if (Object.keys(optionsDiff).length > 0) {\n Object.entries(optionsDiff).forEach(([key, value]) => {\n this.flatpickr.set(key, value)\n })\n this.flatpickr.redraw()\n }\n\n if (!_isEqual(prevProps.intl.locale, this.props.intl.locale)) {\n const locale = this.getLocale(this.props.intl.locale)\n this.Flatpickr.localize(locale)\n this.flatpickr.set('locale', locale)\n this.flatpickr.redraw()\n }\n if (!_isEqual(prevProps.value, this.props.value)) {\n this.flatpickr.setDate(this.props.value, false)\n this.flatpickr.redraw()\n }\n }\n }\n\n componentWillUnmount() {\n this.componentIsUnmounted = true\n if (this.flatpickr) {\n this.flatpickr.destroy()\n }\n }\n\n handleOnChange = selectedDates => {\n const isoStrings = selectedDates.map(date => date.toISOString())\n this.setState({altInput: this.flatpickr.altInput.value})\n if (this.hasValue() || isoStrings.length !== 0) {\n this.props.onChange(isoStrings)\n }\n }\n\n hasValue = () => {\n return this.props.value && this.props.value.length > 0 && this.props.value.every(v => v)\n }\n\n handleOnBlur = () => {\n if (this.props.onBlur) {\n const altValue = this.flatpickr.altInput.value\n this.props.onBlur(altValue, this.flatpickr.selectedDates, r => this.flatpickr.setDate(r, true))\n }\n }\n\n focusInput() {\n // flatpickr add two input in the DOM. One for the actual value (hidden) and one for the altInput\n const inputElement = this.wrapper.current.querySelector('input.flatpickr-input:not([type=\"hidden\"])')\n if (inputElement) {\n inputElement.focus()\n }\n }\n\n handleConfirmKey = e => {\n if ((!e.target.classList.contains('flatpickr-hour') && e.key === 'Tab' && !e.shiftKey) || e.key === 'Enter') {\n this.focusInput()\n this.handleOnBlur()\n setTimeout(() => {\n this.flatpickr.close()\n })\n }\n if (e.key === 'Enter') {\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n render() {\n return (\n <>\n <GlobalDatePickerStyles/>\n <StyledDateAbstractOuterWrapper\n immutable={this.props.immutable}\n id={this.props.id}\n tabIndex=\"-1\"\n onFocus={() => {\n this.focusInput()\n setTimeout(() => {\n if (this.flatpickr) {\n this.flatpickr.open()\n }\n })\n }}\n onKeyDown={this.handleConfirmKey}\n >\n <StyledDateAbstractWrapper\n data-wrap\n onBlur={this.handleOnBlur}\n immutable={this.props.immutable}\n ref={this.wrapper}\n >\n <StyledDateAbstractInput\n {...this.props.immutable ? {disabled: 'disabled'} : {}}\n type=\"text\"\n data-input\n immutable={this.props.immutable}\n {...(this.props.options ? {placeholder: this.props.options.placeholderText} : {})}\n />\n <StyledDateAbstractInput\n disabled\n immutable={this.props.immutable}\n value={this.state.altInput}\n />\n {!this.props.immutable && this.props.value.filter(i => i).length > 0 && <Ball\n icon=\"times\"\n tabIndex={-1}\n aria-label={this.msg('client.component.dateAbstract.clearDateLabel')}\n onMouseDown={e => {\n e.preventDefault()\n this.props.onChange(null)\n }}/>}\n </StyledDateAbstractWrapper>\n </StyledDateAbstractOuterWrapper>\n </>\n )\n }\n}\n\nDateAbstract.propTypes = {\n id: PropTypes.string,\n intl: PropTypes.object.isRequired,\n onBlur: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.arrayOf(PropTypes.string),\n options: PropTypes.shape({\n placeholderText: PropTypes.string,\n flatpickrOptions: PropTypes.object\n }),\n immutable: PropTypes.bool,\n initialized: PropTypes.func,\n events: PropTypes.shape({\n onFocus: PropTypes.func\n })\n}\n\nexport default withTheme(injectIntl(DateAbstract))\n","import _forOwn from 'lodash/forOwn'\n\nexport const atMostOne = array => {\n if (!array || array.length === 0) {\n return null\n } else if (array.length === 1) {\n return array[0]\n } else {\n throw new Error(`Expected at most one item in array: ${array.join(', ')}`)\n }\n}\n\n/**\n * Get a date value as `YYYY-MM-DD` string representation.\n *\n * @param date Anything that the `Date` constructor accepts as single argument\n * @returns {string} The given date in format `YYYY-MM-DD`\n */\nexport const toLocalDateString = date => {\n if (date == null) {\n return null\n }\n\n const dateObj = new Date(date)\n\n const year = dateObj.getFullYear()\n const month = dateObj.getMonth() + 1 // getMonth() is zero-based\n const day = dateObj.getDate()\n\n return [\n year,\n (month > 9 ? '' : '0') + month,\n (day > 9 ? '' : '0') + day\n ].join('-')\n}\n\n/**\n * Converts the formatting string of momentJS to one compatible with flatpickr.\n * see: https://flatpickr.js.org/formatting/\n * @param format momentJS formatting string\n * @returns {string} flatpickr formatting string\n */\nexport const momentJStoToFlatpickrFormat = format => {\n const formattingMap = {\n d: 'DD',\n m: 'MM',\n Y: 'YYYY',\n K: 'A',\n H: 'HH',\n h: 'h',\n i: 'mm'\n }\n _forOwn(formattingMap, (v, k) => {\n format = format.replace(v, k)\n })\n return format\n}\n\n/*\n * Returns format separators provided by intl API.\n */\nexport const parseLocalePlaceholder = countryCode => {\n const thousandSeparator = (1111).toLocaleString(countryCode).replace(/1/g, '')\n const decimalSeparator = (1.1).toLocaleString(countryCode).replace(/1/g, '')\n\n return {thousandSeparator, decimalSeparator}\n}\n\n/*\n * String to number converter\n */\nexport const convertStringToNumber = stringValue => (\n !stringValue || isNaN(stringValue) ? null : parseFloat(stringValue)\n)\n\n/*\n * Convert two numbers as hours and minutes to milliseconds\n */\nexport const calculateMilliseconds = (hours, minutes) => {\n if (!hours && !minutes) {\n return null\n }\n const hoursMilliseconds = (hours || 0) * 60 * 60000\n const minutesMilliseconds = (minutes || 0) * 60000\n return hoursMilliseconds + minutesMilliseconds\n}\n\n/*\n * Return true if the value is null or undefined\n */\nexport const isNullOrUndefined = value => value === null || value === undefined\n\n/*\n * Return true if the value is null or undefined\n */\nexport const millisecondsToDuration = milliseconds => {\n if (!milliseconds && milliseconds !== 0) {\n return {hoursOfDay: 0, minutesOfHour: 0}\n }\n\n const hoursOfDay = Math.floor(milliseconds / (60 * 60 * 1000))\n const minutesOfHour = Math.floor((milliseconds - (hoursOfDay * (60 * 60 * 1000))) / (60 * 1000))\n return {hoursOfDay, minutesOfHour}\n}\n\n/*\n * Pad a string with leading zeros\n */\nexport const padLeadingZeros = (string, numberOfZeros) => {\n return string.length < numberOfZeros ? string.padStart(numberOfZeros, '0') : string\n}\n\n/*\n * Convert hour and minute numbers to time string of type HH:MM\n */\nexport const numbersToTimeFormat = (hours, minutes) => {\n if (!hours && !minutes) {\n if (hours !== 0 && minutes !== 0) {\n return '--:--'\n }\n }\n const hourString = hours ? hours.toString() : '00'\n const minuteString = minutes ? minutes.toString() : '00'\n\n const paddedHour = padLeadingZeros(hourString, 2)\n const paddedMinute = padLeadingZeros(minuteString, 2)\n\n return paddedHour + ':' + paddedMinute\n}\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport moment from 'moment'\nimport {useIntl} from 'react-intl'\n\nimport DateAbstract from './DateAbstract'\nimport {atMostOne, toLocalDateString, momentJStoToFlatpickrFormat} from '../utils'\n\nexport const DateEdit = ({onChange, options, id, value, immutable, events}) => {\n const DATE_FORMAT = 'YYYY-MM-DD'\n const intl = useIntl()\n\n const getLocalizedAltFormat = () => moment().locale(intl.locale)._locale.longDateFormat('L')\n\n const parseDate = s => {\n const momentDate = moment(s, [getLocalizedAltFormat(), DATE_FORMAT])\n return momentDate.isValid() ? momentDate.toDate() : null\n }\n\n const handleChange = dates => {\n const dateTime = atMostOne(dates)\n const date = dateTime ? toLocalDateString(dateTime) : null\n onChange(date)\n }\n\n const onBlur = (dateString, values, setValue) => {\n const parsed = parseDate(dateString)\n if (values[0] - parsed !== 0) {\n setValue(parsed)\n }\n }\n\n const flatpickrOptions = {\n altFormat: momentJStoToFlatpickrFormat(getLocalizedAltFormat()),\n dateFormat: momentJStoToFlatpickrFormat(DATE_FORMAT),\n allowInput: true,\n parseDate: parseDate,\n ...(options ? options.flatpickrOptions : {})\n }\n\n return (\n <DateAbstract\n id={id}\n value={[value]}\n onBlur={onBlur}\n onChange={handleChange}\n options={{...options, flatpickrOptions}}\n immutable={immutable}\n events={events}\n />\n )\n}\n\nDateEdit.propTypes = {\n id: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n immutable: PropTypes.bool,\n options: PropTypes.shape({\n placeholderText: PropTypes.string,\n flatpickrOptions: PropTypes.object\n }),\n events: PropTypes.shape({\n onFocus: PropTypes.func\n })\n}\n\nexport default DateEdit\n","import PropTypes from 'prop-types'\nimport React, {useMemo} from 'react'\nimport {injectIntl} from 'react-intl'\nimport moment from 'moment'\n\nimport DateAbstract from './DateAbstract'\nimport {atMostOne, momentJStoToFlatpickrFormat} from '../utils'\n\nexport const DateTimeEdit = props => {\n const momentDateFormat = moment().locale(props.intl.locale)._locale.longDateFormat('L')\n const momentTimeFormat = moment().locale(props.intl.locale)._locale.longDateFormat('LT')\n const altDateFormat = momentJStoToFlatpickrFormat(momentDateFormat)\n const altTimeFormat = momentJStoToFlatpickrFormat(momentTimeFormat)\n\n const parseDate = useMemo(() => s => {\n const momentDate = moment(s, ['D.M.YYYY H:m', momentDateFormat, momentTimeFormat])\n return momentDate.isValid() ? momentDate.toDate() : null\n }, [])\n\n const onBlur = (dateString, values, setValue) => {\n const parsed = parseDate(dateString)\n if (values[0] - parsed !== 0) {\n setValue(parsed)\n }\n }\n\n const flatpickrOptions = {\n enableTime: true,\n time_24hr: true,\n allowInput: true,\n parseDate: parseDate,\n altFormat: `${altDateFormat} ${altTimeFormat}`,\n dateFormat: 'Y-m-d\\\\TH:i:S.000\\\\Z',\n ...(props.options ? props.options.flatpickrOptions : {})\n }\n\n const handleChange = dates => props.onChange(atMostOne(dates))\n\n return (\n <DateAbstract\n value={[props.value]}\n onChange={handleChange}\n onBlur={onBlur}\n immutable={props.immutable}\n options={{...props.options, flatpickrOptions}}\n events={props.events}\n />\n )\n}\n\nDateTimeEdit.propTypes = {\n intl: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n immutable: PropTypes.bool,\n options: PropTypes.shape({\n placeholderText: PropTypes.string,\n flatpickrOptions: PropTypes.object\n }),\n events: PropTypes.shape({\n onFocus: PropTypes.func\n })\n}\n\nexport default injectIntl(DateTimeEdit)\n","import styled from 'styled-components'\n\nimport {StyledInputCss} from '../StyledEditableValue'\n\nconst StyledTimeEdit = styled.input.attrs(props => ({\n type: 'time'\n}))`\n && {\n ${StyledInputCss}\n }\n`\n\nexport default StyledTimeEdit\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport Ball from '../../Ball'\nimport {\n StyledEditableControl,\n StyledEditableWrapper\n} from '../StyledEditableValue'\nimport StyledTimeEdit from './StyledTimeEdit'\n\nconst TimeEdit = props => {\n const handleChange = e => {\n props.onChange(e.target.value)\n }\n\n const clearInput = () => {\n props.onChange(null)\n }\n\n const isFirefox = !!window.sidebar\n\n const showClearButton = props.value && !props.immutable && !isFirefox\n\n const value = props.value || ''\n\n return (\n <StyledEditableWrapper immutable={props.immutable}>\n <StyledTimeEdit\n disabled={props.immutable}\n id={props.id}\n immutable={props.immutable}\n name={props.name}\n onChange={handleChange}\n value={value}\n />\n {showClearButton && <StyledEditableControl>\n <Ball\n icon=\"times\"\n onClick={clearInput}\n tabIndex={-1}\n />\n </StyledEditableControl>}\n </StyledEditableWrapper>\n )\n}\n\nTimeEdit.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n name: PropTypes.string,\n id: PropTypes.string,\n immutable: PropTypes.bool\n}\n\nexport default TimeEdit\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport styled from 'styled-components'\n\nconst StyledBoolEdit = styled.div`\n margin: 5px 0;\n`\n\nconst BoolEdit = props => {\n const handleChange = e => {\n if (props.onChange) {\n props.onChange(e.target.checked)\n }\n }\n\n return (\n <StyledBoolEdit>\n <input\n type=\"checkbox\"\n checked={props.value || false}\n name={props.name}\n onChange={handleChange}\n id={props.id}\n disabled={props.immutable}\n />\n </StyledBoolEdit>\n )\n}\n\nBoolEdit.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.bool,\n name: PropTypes.string,\n id: PropTypes.string,\n immutable: PropTypes.bool\n}\n\nexport default BoolEdit\n","import styled from 'styled-components'\n\nimport {StyledButton} from '../Button'\nimport {scale} from '../utilStyles'\n\nexport const StyledView = styled.div`\n display: flex;\n justify-content: space-between;\n padding-top: ${scale.space(-2)};\n`\n\nexport const StyledButtonsWrapper = styled.div`\n display: flex;\n align-items: center;\n\n ${StyledButton} {\n margin: 0;\n border-radius: 50%;\n padding: ${scale.space(-2)};\n\n a:hover {\n color: unset;\n }\n }\n`\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {download} from 'tocco-util'\n\nimport Button from '../Button'\nimport Link from '../Link'\nimport Preview from '../Preview'\nimport {StyledView, StyledButtonsWrapper} from './StyledView'\n\nexport const getDownloadUrl = binaryLink =>\n download.addParameterToURL(binaryLink, 'download', true)\n\nconst View = ({value, downloadTitle, immutable, onUpload, deleteTitle}) => {\n const isNotUploadedFile = value.binaryLink && value.binaryLink.startsWith('blob:')\n\n return (\n <StyledView className=\"StyledView\">\n <Preview\n alt={value.fileName}\n {...isNotUploadedFile && {caption: value.fileName}}\n fileName={value.fileName}\n maxDimensionX=\"96px\"\n maxDimensionY=\"96px\"\n srcUrl={value.binaryLink}\n thumbnailUrl={value.thumbnailLink}\n />\n <StyledButtonsWrapper>\n {!immutable\n && <Button\n icon=\"trash\"\n onClick={() => onUpload(null)}\n tabIndex={-1}\n title={deleteTitle || 'delete'}\n />\n }\n <Button>\n <Link\n neutral\n icon=\"arrow-to-bottom\"\n download={value.fileName}\n href={getDownloadUrl(value.binaryLink)}\n tabIndex={-1}\n title={downloadTitle || 'download'}\n />\n </Button>\n </StyledButtonsWrapper>\n </StyledView>\n )\n}\n\nView.propTypes = {\n immutable: PropTypes.bool,\n onUpload: PropTypes.func,\n value: PropTypes.shape({\n fileName: PropTypes.string.isRequired,\n binaryLink: PropTypes.string.isRequired,\n thumbnailLink: PropTypes.string,\n mimeType: PropTypes.string\n }).isRequired,\n deleteTitle: PropTypes.string,\n downloadTitle: PropTypes.string\n}\n\nexport default View\n","export const bytesToSize = bytes => {\n const units = ['Bytes', 'KB', 'MB', 'GB', 'TB']\n const i = Math.floor(Math.log(bytes) / Math.log(1024))\n return `${(bytes / Math.pow(1024, i)).toFixed(2) * 1} ${units[i]}`\n}\n","import styled from 'styled-components'\n\nimport {declareFont, scale} from '../utilStyles'\nimport {StyledSpan} from '../Typography'\n\nexport const StyledUploadProgress = styled.div`\n && {\n padding-top: ${scale.space(-2)};\n text-align: center;\n display: inline-block;\n }\n`\n\nexport const StyledUploadProgressText = styled(StyledSpan)`\n && {\n ${declareFont({fontSize: scale.font(-1)})}\n }\n`\n\nexport const StyledUploadProgressIconAndText = styled.div`\n && {\n display: flex;\n justify-content: center;\n align-items: center;\n\n span {\n margin-left: ${scale.space(-2)};\n }\n }\n`\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport Preview from '../Preview'\nimport {bytesToSize} from './helpers'\nimport LoadingSpinner from '../LoadingSpinner'\nimport {design} from '../utilStyles'\nimport {\n StyledUploadProgress,\n StyledUploadProgressIconAndText,\n StyledUploadProgressText\n} from './StyledUploadProgress'\n\nconst UploadProgress = props => (\n <StyledUploadProgress>\n <Preview\n caption={props.file.name}\n maxDimensionX=\"96px\"\n maxDimensionY=\"96px\"\n srcUrl={props.file.preview}\n thumbnailUrl={props.file.type.startsWith('image') ? props.file.preview : null}\n />\n <StyledUploadProgressIconAndText>\n <LoadingSpinner position={design.position.PREPEND}/>\n <StyledUploadProgressText>{props.text || 'uploading'} ({bytesToSize(props.file.size)})</StyledUploadProgressText>\n </StyledUploadProgressIconAndText>\n </StyledUploadProgress>\n)\n\nUploadProgress.propTypes = {\n text: PropTypes.string,\n file: PropTypes.shape({\n preview: PropTypes.string,\n size: PropTypes.number,\n type: PropTypes.string,\n name: PropTypes.string\n })\n}\n\nexport default UploadProgress\n","import styled from 'styled-components'\n\nimport {\n colorizeText,\n declareFont,\n scale,\n theme\n} from '../utilStyles'\n\nconst StyledUploadInput = styled.div`\n ${declareFont()}\n cursor: ${props => props.immutable ? 'not-allowed' : 'pointer'};\n background-color: ${theme.color('paper')};\n color: ${props => props.immutable ? colorizeText.shade2(props) : colorizeText.shade0(props)};\n padding: ${scale.space(-2)} 0 0 0;\n`\n\nexport default StyledUploadInput\n","import styled from 'styled-components'\nimport Dropzone from 'react-dropzone'\n\nimport {StyledButton} from '../Button'\nimport {scale} from '../utilStyles'\n\nexport const StyledIconWrapper = styled.div`\n ${StyledButton} {\n position: relative;\n top: -${scale.space(-3.1)};\n margin: 0;\n border-radius: 50%;\n padding: ${scale.space(-1.5)} ${scale.space(-2)};\n }\n`\n\nexport const StyledDropzone = styled(Dropzone)`\n position: relative;\n display: flex;\n justify-content: flex-end;\n`\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport Button from '../Button'\nimport Icon from '../Icon'\nimport StyledUploadInput from './StyledUploadInput'\nimport {design} from '../utilStyles'\nimport {StyledDropzone, StyledIconWrapper} from './SyledUploadInput'\n\nconst UploadInput = ({onDrop: onDropProp, immutable, text}) => {\n const onDrop = files => onDropProp(files[0])\n\n return (\n <StyledUploadInput immutable={immutable}>\n <StyledDropzone\n disabled={immutable}\n multiple={false}\n onDrop={onDrop}\n title={text || 'drag and drop or click'}\n >\n <StyledIconWrapper>\n <Button>\n <Icon\n icon=\"arrow-to-top\"\n position={design.position.PREPEND}\n />\n </Button>\n </StyledIconWrapper>\n </StyledDropzone>\n </StyledUploadInput>\n )\n}\n\nUploadInput.propTypes = {\n immutable: PropTypes.bool,\n onDrop: PropTypes.func.isRequired,\n text: PropTypes.string\n}\n\nexport default UploadInput\n","import PropTypes from 'prop-types'\nimport React, {useState, useEffect} from 'react'\nimport _isEqual from 'lodash/isEqual'\n\nimport View from './View'\nimport UploadProgress from './UploadProgress'\nimport UploadInput from './UploadInput'\n\n/**\n * Component to upload files. If uploaded, the file will be displayed by the Preview component.\n */\nexport const Upload = props => {\n const {\n value,\n textResources,\n onUpload\n } = props\n const [states, setStates] = useState({\n isUploading: false,\n previewFile: null\n })\n\n const setUploadingState = file => {\n setStates({isUploading: true, previewFile: file})\n }\n\n const abortUploadingState = () => {\n setStates({isUploading: false, previewFile: null})\n }\n\n const onDrop = file => {\n setUploadingState(file)\n onUpload(file)\n }\n\n useEffect(() => {\n if (!_isEqual(value)) {\n abortUploadingState()\n }\n }, [value])\n\n if (value && value.binaryLink) {\n return <View {...props} deleteTitle={textResources.delete} downloadTitle={textResources.download}/>\n } else if (states.isUploading) {\n return <UploadProgress file={states.previewFile} text={textResources.uploading} {...props}/>\n }\n return <UploadInput {...props} onDrop={onDrop}/>\n}\n\nUpload.defaultProps = {\n textResources: {}\n}\n\nUpload.propTypes = {\n /**\n * Callback function if user uploads a file. Return the file {File}\n */\n onUpload: PropTypes.func.isRequired,\n /**\n * Object that contains the following\n */\n value: PropTypes.shape({\n fileName: PropTypes.string.isRequired,\n binaryLink: PropTypes.string.isRequired,\n thumbnailLink: PropTypes.string\n }),\n /**\n * Can user upload new files or just view existing\n */\n immutable: PropTypes.bool,\n /**\n * Allows to overwrite texts of the component\n */\n textResources: PropTypes.shape({\n uploading: PropTypes.string,\n delete: PropTypes.string,\n download: PropTypes.string\n })\n}\n\nexport default Upload\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport Upload from '../../Upload'\n\nconst Document = props => {\n const onUpload = file => {\n if (file === null) {\n if (props.onChange) {\n props.onChange(null)\n }\n } else {\n if (props.options.upload) {\n props.options.upload(file)\n }\n }\n }\n\n return (\n <Upload\n onUpload={onUpload}\n immutable={props.immutable}\n textResources={{\n upload: props.options.uploadText,\n uploading: props.options.uploadingText,\n delete: props.options.deleteText,\n download: props.options.downloadText\n }}\n value={props.value ? props.value : null}\n />\n )\n}\n\nDocument.defaultProps = {\n options: {}\n}\n\nDocument.propTypes = {\n immutable: PropTypes.bool,\n options: PropTypes.shape({\n upload: PropTypes.func.isRequired,\n uploadText: PropTypes.string,\n uploadingText: PropTypes.string,\n deleteText: PropTypes.string,\n downloadText: PropTypes.string\n }),\n onChange: PropTypes.func,\n value: PropTypes.object\n}\n\nexport default Document\n","import PropTypes from 'prop-types'\nimport React, {lazy, Suspense} from 'react'\nimport styled from 'styled-components'\n\nimport Typography, {declareTypograhpy} from '../../Typography'\n\nconst StyledHtmlEdit = styled.div`\n && {\n button {\n margin-bottom: 0;\n }\n\n .ql-editor {\n ${props => declareTypograhpy(props, 'quill')}\n\n &[contenteditable='false'] * {\n cursor: not-allowed;\n }\n }\n }\n`\n\nclass HtmlEdit extends React.Component {\n lazyQuill = null\n\n constructor(props) {\n super(props)\n\n // eslint-disable-next-line chai-friendly/no-unused-expressions\n import(/* webpackChunkName: \"vendor-quill\" */ '!style-loader!css-loader!react-quill/dist/quill.snow.css')\n // eslint-disable-next-line chai-friendly/no-unused-expressions\n import(/* webpackChunkName: \"vendor-quill\" */ '!style-loader!css-loader!react-quill/dist/quill.core.css')\n\n this.lazyQuill = lazy(() => import(/* webpackChunkName: \"vendor-quill\" */ 'react-quill'))\n }\n\n handleChange = (value, delta, source) => {\n if (this.props.onChange && source === 'user') {\n const v = value === '<p><br></p>' ? '' : value\n this.props.onChange(v)\n }\n }\n\n render() {\n if (this.props.immutable) {\n return <Typography.Span>\n <div dangerouslySetInnerHTML={{__html: this.props.value}}></div>\n </Typography.Span>\n }\n\n return (\n <StyledHtmlEdit>\n <Suspense fallback={<i/>}>\n <this.lazyQuill\n name={this.props.name}\n onChange={this.handleChange}\n id={this.props.id}\n theme=\"snow\"\n defaultValue={this.props.value}\n modules={{\n clipboard: {\n matchVisual: false\n }\n }}\n />\n </Suspense>\n </StyledHtmlEdit>\n )\n }\n}\n\nHtmlEdit.defaultProps = {\n value: ''\n}\n\nHtmlEdit.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.node,\n name: PropTypes.string,\n id: PropTypes.string,\n immutable: PropTypes.bool\n}\n\nexport default HtmlEdit\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport Select from '../../Select'\n\nconst RemoteSelect = props => (\n <Select\n id={props.id}\n isMulti={false}\n immutable={props.immutable}\n onChange={props.onChange}\n value={props.value}\n {...props.options}\n />\n)\n\nRemoteSelect.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.shape({\n key: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ])\n }),\n options: PropTypes.shape({\n options: PropTypes.array,\n fetchOptions: PropTypes.func,\n searchOptions: PropTypes.func,\n isLoading: PropTypes.bool,\n valueClick: PropTypes.func,\n clearValueText: PropTypes.string,\n searchPromptText: PropTypes.string,\n noResultsText: PropTypes.string,\n moreOptionsAvailable: PropTypes.bool,\n moreOptionsAvailableText: PropTypes.string,\n openAdvancedSearch: PropTypes.func,\n tooltips: PropTypes.objectOf(PropTypes.string),\n loadTooltip: PropTypes.func,\n DetailLink: PropTypes.func,\n createPermission: PropTypes.bool\n }),\n immutable: PropTypes.bool,\n id: PropTypes.string\n}\n\nexport default RemoteSelect\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport Select from '../../Select'\n\nconst MultiRemoteSelect = props => (\n <Select\n id={props.id}\n isMulti\n immutable={props.immutable}\n onChange={props.onChange}\n value={props.value}\n {...props.options}\n />\n)\n\nMultiRemoteSelect.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ])\n })\n ),\n options: PropTypes.shape({\n options: PropTypes.array,\n fetchOptions: PropTypes.func,\n searchOptions: PropTypes.func,\n openAdvancedSearch: PropTypes.func,\n isLoading: PropTypes.bool,\n valueClick: PropTypes.func,\n clearAllText: PropTypes.string,\n searchPromptText: PropTypes.string,\n noResultsText: PropTypes.string,\n moreOptionsAvailable: PropTypes.bool,\n moreOptionsAvailableText: PropTypes.string,\n tooltips: PropTypes.objectOf(PropTypes.string),\n loadTooltip: PropTypes.func,\n DetailLink: PropTypes.elementType\n }),\n immutable: PropTypes.bool,\n id: PropTypes.string\n}\n\nexport default MultiRemoteSelect\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport Select from '../../Select'\n\nconst SearchFilterEdit = props => (\n <Select\n immutable={props.immutable}\n onChange={props.onChange}\n value={props.value}\n {...props.options}\n />\n)\n\nconst valueObjectType = PropTypes.shape({\n key: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]).isRequired\n})\n\nSearchFilterEdit.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.oneOfType([\n valueObjectType,\n PropTypes.arrayOf(valueObjectType)\n ]),\n options: PropTypes.shape({\n isMulti: PropTypes.bool,\n fetchOptions: PropTypes.func,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.any,\n label: PropTypes.string\n }))\n }).isRequired,\n immutable: PropTypes.bool,\n id: PropTypes.string\n}\n\nexport default SearchFilterEdit\n","import styled from 'styled-components'\n\nimport {StyledInputCss} from '../StyledEditableValue'\n\nconst StyledUrlEdit = styled.input.attrs(props => ({\n type: 'url'\n}))`\n && {\n ${StyledInputCss}\n }\n`\n\nexport default StyledUrlEdit\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {react} from 'tocco-util'\n\nimport Link from '../../Link'\nimport {\n StyledEditableControl,\n StyledEditableWrapper\n} from '../StyledEditableValue'\nimport StyledUrlEdit from './StyledUrlEdit'\n\nconst normalizeUrl = url => {\n url = url.toLowerCase()\n if (url.indexOf('.') > 0 && !/^[a-z0-9]+:\\/\\//.test(url)) {\n url = `https://${url}`\n }\n\n return url\n}\n\nconst UrlEdit = props =>\n <StyledEditableWrapper immutable={props.immutable}>\n <StyledUrlEdit\n disabled={props.immutable}\n id={props.id}\n immutable={props.immutable}\n name={props.name}\n onChange={e => props.onChange(normalizeUrl(e.target.value))}\n value={props.value}\n />\n {props.value && <StyledEditableControl>\n <Link\n href={props.value}\n icon=\"external-link\"\n look=\"ball\"\n tabIndex={-1}\n target=\"_blank\"\n neutral\n />\n </StyledEditableControl>}\n </StyledEditableWrapper>\n\nUrlEdit.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.node,\n name: PropTypes.string,\n id: PropTypes.string,\n immutable: PropTypes.bool\n}\n\nexport default react.Debouncer(UrlEdit)\n","import styled from 'styled-components'\n\nimport {StyledInputCss} from '../StyledEditableValue'\n\nconst StyledPhoneEdit = styled.input.attrs(props => ({\n type: 'tel'\n}))`\n && {\n ${StyledInputCss}\n }\n`\n\nexport default StyledPhoneEdit\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport _isEmpty from 'lodash/isEmpty'\nimport _get from 'lodash/get'\n\nimport Link from '../../Link'\nimport {\n StyledEditableControl,\n StyledEditableWrapper\n} from '../StyledEditableValue'\nimport StyledPhoneEdit from './StyledPhoneEdit'\n\nclass PhoneEdit extends React.Component {\n componentIsUnmounted = false\n FALLBACK_DEFAULT_COUNTRY = 'CH'\n\n constructor(props) {\n super(props)\n const defaultCountry = _get(props, 'options.defaultCountry') || this.FALLBACK_DEFAULT_COUNTRY\n this.state = {libPhoneImport: null, defaultCountry}\n this.importLibPhoneNumber()\n this.inputElement = React.createRef()\n }\n\n async importLibPhoneNumber() {\n const libPhoneImport = await import(/* webpackChunkName: \"vendor-libphonenumber-js\" */ 'libphonenumber-js')\n if (!this.componentIsUnmounted) {\n this.setState({...this.state, libPhoneImport})\n }\n }\n\n componentWillUnmount() {\n this.componentIsUnmounted = true\n }\n\n amountOfSpacesBeforeCaret = (str, caretPosition) => {\n const spaces = str.substring(0, caretPosition - 1).match(/\\s/g)\n return spaces ? spaces.length : 0\n }\n\n repositionCaret = (value, previousValue, caretPosition) => {\n if (caretPosition && value.length !== caretPosition) {\n const previousFormatted = new this.state.libPhoneImport.AsYouType(this.state.defaultCountry).input(previousValue)\n const currentFormatted = new this.state.libPhoneImport.AsYouType(this.state.defaultCountry).input(value)\n\n const spacesPrevious = this.amountOfSpacesBeforeCaret(previousFormatted, caretPosition)\n const spacesCurrent = this.amountOfSpacesBeforeCaret(currentFormatted, caretPosition)\n\n const offset = spacesCurrent - spacesPrevious\n\n window.requestAnimationFrame(function() {\n const start = caretPosition + offset\n this.setSelectionRange(start, start)\n }.bind(this.inputElement.current))\n }\n }\n\n removeSpaces = str => str.replace(/\\s/g, '')\n\n handleChange = e => {\n const newValue = e.target.value\n const {libPhoneImport} = this.state\n const parsedNumber = libPhoneImport ? libPhoneImport.parseNumber(newValue, this.state.defaultCountry) : newValue\n\n const valueNormalized = _isEmpty(parsedNumber)\n ? this.removeSpaces(new this.state.libPhoneImport.AsYouType(this.state.defaultCountry).input(newValue))\n : libPhoneImport.formatNumber(parsedNumber, 'E.164')\n\n this.props.onChange(valueNormalized)\n\n const currentCaretPosition = e.target.selectionStart\n this.repositionCaret(newValue, this.props.value, currentCaretPosition)\n }\n\n determineDisplayValue = () => {\n if (this.props.value && this.state.libPhoneImport && this.state.libPhoneImport.AsYouType) {\n return new this.state.libPhoneImport.AsYouType(this.state.defaultCountry).input(this.props.value)\n }\n\n return this.props.value || ''\n }\n\n render() {\n const displayValue = this.determineDisplayValue()\n\n return (\n <StyledEditableWrapper immutable={this.props.immutable}>\n <StyledPhoneEdit\n disabled={this.props.immutable || !this.state.libPhoneImport}\n id={this.props.id}\n name={name}\n onChange={this.handleChange}\n immutable={this.props.immutable || !this.state.libPhoneImport}\n ref={this.inputElement}\n value={displayValue}\n />\n {displayValue && <StyledEditableControl>\n <Link\n href={`tel:${this.props.value}`}\n icon=\"phone\"\n tabIndex={-1}\n neutral\n />\n </StyledEditableControl>}\n </StyledEditableWrapper>\n )\n }\n}\n\nPhoneEdit.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.node,\n name: PropTypes.string,\n id: PropTypes.string,\n immutable: PropTypes.bool,\n options: PropTypes.shape({\n defaultCountry: PropTypes.string,\n customPhoneRegex: PropTypes.string\n })\n}\n\nexport default PhoneEdit\n","import styled from 'styled-components'\nimport _get from 'lodash/get'\n\nimport {\n generateDisabledShade,\n scale,\n theme\n} from '../../utilStyles'\nimport {StyledInputCss} from '../StyledEditableValue'\n\nconst StyledDurationEdit = styled.input`\n && {\n ${StyledInputCss}\n flex-grow: 0;\n min-width: 1ch;\n }\n`\n\nconst StyledDurationEditFocusable = styled.label`\n &&& {\n align-items: center;\n display: flex;\n flex-wrap: nowrap;\n margin-bottom: 0; /* reset bootstrap */\n\n &:first-child {\n margin-right: ${scale.space(-1)};\n }\n\n > span {\n color: ${props => props.immutable\n ? generateDisabledShade(_get(props.theme, 'colors.text'))\n : theme.color('text')};\n cursor: ${props => props.immutable ? 'not-allowed' : 'default'};\n }\n }\n`\n\nconst StyledDurationEditShadow = styled.span`\n && {\n border: 1px solid transparent;\n left: 0;\n max-width: 100%;\n overflow: hidden;\n position: absolute;\n z-index: -1;\n visibility: hidden;\n }\n`\n\nexport {\n StyledDurationEditShadow,\n StyledDurationEditFocusable,\n StyledDurationEdit\n}\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport {calculateMilliseconds} from '../utils'\nimport Typography from '../../Typography'\nimport {\n StyledDurationEditShadow,\n StyledDurationEditFocusable,\n StyledDurationEdit\n} from './StyledDurationEdit'\nimport {StyledEditableWrapper} from '../StyledEditableValue'\n\nclass DurationEdit extends React.Component {\n constructor(props) {\n super(props)\n this.hoursShadow = React.createRef()\n this.minutesShadow = React.createRef()\n this.state = {\n ...this.millisecondsToDuration(props.value),\n showUnits: props.value >= 0\n }\n }\n\n millisecondsToDuration = milliSeconds => {\n if (!milliSeconds && milliSeconds !== 0) {\n return {hours: '', minutes: ''}\n }\n\n const minutes = parseInt((milliSeconds / (1000 * 60)) % 60)\n const hours = parseInt((milliSeconds / (1000 * 60 * 60)) % 24)\n return {hours, minutes}\n }\n\n componentDidMount = () => {\n this.setState({\n hoursWidth: this.hoursShadow.current.offsetWidth,\n minutesWidth: this.minutesShadow.current.offsetWidth\n })\n }\n\n componentDidUpdate = (prevProps, prevState) => {\n if (this.state.hours !== prevState.hours) {\n this.setState({hoursWidth: this.hoursShadow.current.offsetWidth})\n }\n if (this.state.minutes !== prevState.minutes) {\n this.setState({minutesWidth: this.minutesShadow.current.offsetWidth})\n }\n }\n\n handleHourChange = e => {\n const hours = e.target.value.replace(/[^-\\d]/g, '')\n this.setState({...this.state, hours})\n this.handleChange(hours, null)\n }\n\n getDesiredInputInMinutes = target => {\n let minutes = target.value.replace(/[^-\\d]/g, '')\n\n if (!target.validity.valid) {\n minutes = 0\n }\n\n if (`${minutes}`.length > 2) {\n minutes = `${minutes}`.slice(0, 2)\n }\n\n if (minutes > 59) {\n minutes = 0\n }\n\n if (minutes < 0) {\n minutes = 59\n }\n\n return minutes\n }\n\n handleMinutesChange = e => {\n const minutes = this.getDesiredInputInMinutes(e.target)\n this.setState({...this.state, minutes})\n\n this.handleChange(null, minutes)\n\n if (minutes.toString().length === 2 || minutes === 0) {\n e.target.select()\n }\n }\n\n handleChange = (hours, minutes) => {\n const minutesValue = minutes !== null ? minutes : this.state.minutes\n const hoursValue = (hours !== null ? hours : this.state.hours)\n if (minutesValue === '' && hoursValue === '') {\n this.props.onChange(null)\n return\n }\n this.props.onChange(calculateMilliseconds(hoursValue, minutesValue))\n }\n\n handleOnBlur = () => this.setState({\n showUnits:\n (this.state.hours.toString().length >= 1 || this.state.minutes.toString().length >= 1)\n })\n\n handleOnFocus = () => this.setState({showUnits: true})\n\n preventNonNumeric = event => {\n if (!(event.charCode >= 48 && event.charCode <= 57)) {\n event.preventDefault()\n }\n }\n\n render() {\n return (\n <StyledEditableWrapper\n onBlur={this.handleOnBlur}\n immutable={this.props.immutable}\n style={{overflowX: 'auto'}}>\n <StyledDurationEditFocusable immutable={this.props.immutable}>\n <StyledDurationEdit\n disabled={this.props.immutable}\n immutable={this.props.immutable}\n min={0}\n onChange={() => {}} // Empty onChange function to prevent React internal error\n onFocus={this.handleOnFocus}\n onInput={this.handleHourChange}\n onKeyPress={this.preventNonNumeric}\n pattern=\"\\d+\"\n step={1}\n style={{width: this.state.hoursWidth}}\n type=\"number\"\n value={this.state.hours}\n />\n {this.state.showUnits && <Typography.Span>{this.props.options.hoursLabel}</Typography.Span>}\n </StyledDurationEditFocusable>\n <StyledDurationEditFocusable immutable={this.props.immutable}>\n <StyledDurationEdit\n disabled={this.props.immutable}\n immutable={this.props.immutable}\n onChange={() => {}} // Empty onChange function to prevent React internal error\n onFocus={this.handleOnFocus}\n onInput={this.handleMinutesChange}\n onKeyPress={this.preventNonNumeric}\n pattern=\"\\d+\"\n step={1}\n style={{width: this.state.minutesWidth}}\n type=\"number\"\n value={this.state.minutes}\n />\n {this.state.showUnits && <Typography.Span>{this.props.options.minutesLabel}</Typography.Span>}\n </StyledDurationEditFocusable>\n <StyledDurationEditShadow ref={this.hoursShadow}>{this.state.hours}</StyledDurationEditShadow>\n <StyledDurationEditShadow ref={this.minutesShadow}>{this.state.minutes}</StyledDurationEditShadow>\n </StyledEditableWrapper>\n )\n }\n}\n\nDurationEdit.defaultProps = {\n options: {\n hoursLabel: 'hrs',\n minutesLabel: 'min'\n }\n}\n\nDurationEdit.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.number,\n name: PropTypes.string,\n id: PropTypes.string,\n immutable: PropTypes.bool,\n options: PropTypes.shape({\n hoursLabel: PropTypes.string,\n minutesLabel: PropTypes.string\n })\n}\n\nexport default DurationEdit\n","import React from 'react'\nimport styled from 'styled-components'\nimport NumberFormat from 'react-number-format'\n\nimport {StyledInputCss} from '../StyledEditableValue'\n\nconst StyledNumberEdit = styled(({immutable, ...rest}) => <NumberFormat {...rest}/>)`\n && {\n ${StyledInputCss}\n }\n`\n\nexport default StyledNumberEdit\n","import PropTypes from 'prop-types'\nimport {injectIntl} from 'react-intl'\nimport React from 'react'\nimport {react} from 'tocco-util'\n\nimport {parseLocalePlaceholder, convertStringToNumber} from '../utils'\nimport {StyledEditableWrapper} from '../StyledEditableValue'\nimport StyledNumberEdit from './StyledNumberEdit'\n\nexport const calculateMaxValue = (prePointDigits, postPointDigits, maxValue) => {\n if (prePointDigits) {\n const calculatedMaxValue = (10 ** prePointDigits) - (postPointDigits ? (1 / (10 ** postPointDigits)) : 1)\n return maxValue && maxValue > calculatedMaxValue ? maxValue : calculatedMaxValue\n }\n\n return maxValue\n}\n\nconst getPreDecimalPositions = number => number !== 0 ? Math.ceil(Math.log10(Math.abs(number) + 1)) : 1\n\nconst isNumber = number => number !== null && number !== undefined && !isNaN(parseFloat(number))\n\nconst checkValueRange = (minValue, maxValue, value) => {\n if (!isNumber(value)) {\n return true\n }\n\n if (isNumber(maxValue) && value > maxValue) {\n return false\n }\n\n if (isNumber(minValue) && value < minValue) {\n return false\n }\n\n return true\n}\n\nexport const isAllowedValue = (minValue, maxValue) => ({floatValue}) => {\n if (getPreDecimalPositions(floatValue) < getPreDecimalPositions(minValue)) {\n return true\n }\n\n return checkValueRange(minValue, maxValue, floatValue)\n}\n\nconst NumberEdit = props => {\n const {thousandSeparator, decimalSeparator} = parseLocalePlaceholder(props.intl.locale)\n const {\n prePointDigits,\n postPointDigits,\n minValue,\n maxValue,\n allowNegative,\n fixedDecimalScale,\n suffix,\n prefix,\n format\n } = props.options || {}\n\n const calculatedMaxValue = calculateMaxValue(prePointDigits, postPointDigits, maxValue)\n const numberFormatOptions = {\n isAllowed: isAllowedValue(minValue, calculatedMaxValue),\n allowNegative: !!allowNegative,\n ...(!isNaN(postPointDigits) ? {decimalScale: postPointDigits} : {}),\n fixedDecimalScale: !!fixedDecimalScale\n }\n\n const handleChange = values => {\n if (props.onChange && checkValueRange(minValue, calculatedMaxValue, values.floatValue)) {\n props.onChange(values.floatValue !== undefined ? values.floatValue : null)\n }\n }\n\n const handleBlur = event => {\n const valueBeforeBlur = convertStringToNumber(event.target.value)\n if (props.onChange && !checkValueRange(minValue, calculatedMaxValue, valueBeforeBlur)) {\n // if we reach this, then onChange was never called for the last entered value, so just remove it\n event.target.value = null\n }\n }\n\n return (\n <StyledEditableWrapper immutable={props.immutable}>\n <StyledNumberEdit\n decimalSeparator={decimalSeparator}\n disabled={props.immutable}\n id={props.id}\n isNumericString={true}\n name={props.name}\n onValueChange={handleChange}\n immutable={props.immutable}\n thousandSeparator={thousandSeparator}\n value={props.value}\n suffix={suffix}\n prefix={prefix}\n {...numberFormatOptions}\n format={format}\n onBlur={handleBlur}\n />\n </StyledEditableWrapper>\n )\n}\n\nNumberEdit.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.number,\n name: PropTypes.string,\n id: PropTypes.string,\n intl: PropTypes.object,\n immutable: PropTypes.bool,\n options: PropTypes.shape({\n allowNegative: PropTypes.bool,\n fixedDecimalScale: PropTypes.bool,\n postPointDigits: PropTypes.number,\n prePointDigits: PropTypes.number,\n minValue: PropTypes.number,\n maxValue: PropTypes.number,\n suffix: PropTypes.string,\n prefix: PropTypes.string,\n format: PropTypes.string\n })\n}\n\nexport default injectIntl(react.Debouncer(NumberEdit, 800))\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {react} from 'tocco-util'\n\nimport {StyledEditableWrapper} from '../StyledEditableValue'\nimport StyledNumberEdit from './StyledNumberEdit'\n\nconst IntegerEdit = ({value, onChange, options, immutable, name, id}) => {\n const {\n minValue,\n maxValue,\n format,\n allowLeadingZeros\n } = options || {}\n\n const handleChange = ({value, floatValue}) => {\n let newValue = allowLeadingZeros ? value : floatValue\n if (newValue === undefined) {\n newValue = null\n }\n onChange(newValue)\n }\n\n const isAllowed = ({floatValue}) =>\n !((maxValue && floatValue > maxValue) || (minValue && floatValue < minValue))\n\n return (\n <StyledEditableWrapper immutable={immutable}>\n <StyledNumberEdit\n isAllowed={isAllowed}\n allowNegative={true}\n decimalScale={0}\n disabled={immutable}\n id={id}\n name={name}\n onValueChange={handleChange}\n value={value}\n allowLeadingZeros={allowLeadingZeros}\n format={format}\n />\n </StyledEditableWrapper>\n )\n}\n\nIntegerEdit.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n name: PropTypes.string,\n id: PropTypes.string,\n intl: PropTypes.object,\n immutable: PropTypes.bool,\n options: PropTypes.shape({\n minValue: PropTypes.number,\n maxValue: PropTypes.number,\n format: PropTypes.string,\n allowLeadingZeros: PropTypes.bool\n })\n}\n\nexport default react.Debouncer(IntegerEdit, 800)\n","import styled from 'styled-components'\nimport _get from 'lodash/get'\n\nimport {\n generateDisabledShade,\n scale,\n shadeColor,\n theme\n} from '../../utilStyles'\nimport {\n StyledEditableWrapperCss,\n StyledInputCss\n} from '../StyledEditableValue'\n\nexport const StyledLocationEdit = styled.div`\n && {\n ${StyledEditableWrapperCss}\n position: relative;\n\n div {\n :nth-of-type(1) {\n flex: 0 0 6ch;\n margin-right: ${scale.space(-2)};\n }\n\n :nth-of-type(2) {\n flex: 1 1 auto;\n }\n }\n\n > span {\n flex: 0 0 auto;\n margin-right: ${scale.space(-2)};\n color: ${({immutable, theme}) => immutable\n ? generateDisabledShade(_get(theme, 'colors.text'))\n : _get(theme, 'colors.text')};\n }\n\n .react-autosuggest__input {\n ${StyledInputCss}\n width: 100%;\n }\n\n .react-autosuggest__suggestions-container--open {\n width: calc(100% + 17.5px);\n background-color: ${theme.color('paper')};\n box-shadow: 0 0 6px ${theme.color('signal.info.text')};\n border: 1px solid ${theme.color('secondaryLight')};\n bottom: -9px;\n left: -10px;\n max-height: 300px;\n overflow-y: auto;\n position: absolute;\n transform: translateY(100%);\n z-index: 2; // higher than StyledIndicatorsContainerWrapper\n }\n\n .react-autosuggest__suggestions-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n\n .react-autosuggest__suggestion {\n cursor: pointer;\n padding: 8px 12px;\n }\n\n .react-autosuggest__suggestion--highlighted {\n background-color: ${({theme}) => shadeColor(_get(theme, 'colors.paper'), 1)};\n }\n }\n`\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Autosuggest from 'react-autosuggest'\nimport FocusWithin from 'react-simple-focus-within'\n\nimport Link from '../../Link'\nimport LoadingSpinner from '../../LoadingSpinner'\nimport Typography from '../../Typography'\nimport {StyledEditableControl} from '../StyledEditableValue'\nimport {StyledLocationEdit} from './StyledLocationEdit'\n\nexport const getGoogleMapsAddress = locationInput => {\n const mapsBaseAddress = 'https://www.google.com/maps/search/?api=1&query='\n\n const queryParams = locationInput\n ? Object.values(locationInput)\n .filter(value => value)\n .map(value => (typeof value === 'object' && value.display) ? value.display : value)\n .join('+')\n : ''\n\n return `${mapsBaseAddress}${queryParams}`\n}\n\nclass LocationEdit extends React.Component {\n returnGetSuggestion = attr => suggestion => suggestion[attr]\n\n renderSuggestion = suggestion => {\n const cantonString = suggestion.state ? `- ${suggestion.state}` : ''\n const countryString = suggestion.country ? `/ ${suggestion.country.display}` : ''\n\n return <Typography.Span>{suggestion.postcode} {suggestion.city} {cantonString} {countryString}</Typography.Span>\n }\n\n onChange = field => (event, {newValue}) => {\n this.props.onChange({[field]: newValue})\n }\n\n onSuggestionSelected = (event, {suggestion}) => {\n this.props.onChange(suggestion)\n }\n\n returnOnSuggestionFetchRequested = field => ({value}) => {\n this.props.options.fetchSuggestions({[field]: value}, this.props.value.country)\n }\n\n onSuggestionsClearRequested = () => {}\n\n showGoogleMaps = value => !!(value.city || value.postcode)\n\n render() {\n const inputPropsZip = {\n id: this.props.id,\n value: this.props.value.postcode || '',\n onChange: this.onChange('postcode'),\n disabled: this.props.immutable\n }\n\n const inputPropsCity = {\n value: this.props.value.city || '',\n onChange: this.onChange('city'),\n disabled: this.props.immutable\n }\n\n return (\n <FocusWithin>\n {({focused, getRef}) => {\n return <StyledLocationEdit\n immutable={this.props.immutable}\n name={this.props.name}\n ref={getRef}\n >\n <Autosuggest\n suggestions={this.props.options.suggestions || []}\n onSuggestionsFetchRequested={this.returnOnSuggestionFetchRequested('postcode')}\n getSuggestionValue={this.returnGetSuggestion('postcode')}\n renderSuggestion={this.renderSuggestion}\n onSuggestionsClearRequested={this.onSuggestionsClearRequested}\n inputProps={inputPropsZip}\n onSuggestionSelected={this.onSuggestionSelected}\n focusInputOnSuggestionClick={false}\n shouldRenderSuggestions={v => v && !this.props.immutable}\n />\n {(focused || this.props.value.city || this.props.value.postcode) && <Typography.Span>/</Typography.Span>}\n <Autosuggest\n suggestions={this.props.options.suggestions || []}\n onSuggestionsFetchRequested={this.returnOnSuggestionFetchRequested('city')}\n getSuggestionValue={this.returnGetSuggestion('city')}\n renderSuggestion={this.renderSuggestion}\n onSuggestionsClearRequested={this.onSuggestionsClearRequested}\n inputProps={inputPropsCity}\n onSuggestionSelected={this.onSuggestionSelected}\n focusInputOnSuggestionClick={false}\n shouldRenderSuggestions={v => v && !this.props.immutable}\n />\n <StyledEditableControl>\n {this.props.options.isLoading && <LoadingSpinner size=\"1.8rem\"/>}\n {this.showGoogleMaps(this.props.value)\n && <Link\n href={getGoogleMapsAddress(this.props.value)}\n icon=\"map-marked\"\n tabIndex={-1}\n target=\"_blank\"\n dense={false}\n title={this.props.options.mapButtonTitle || 'Show on map'}\n neutral\n />\n }\n </StyledEditableControl>\n </StyledLocationEdit>\n }}\n </FocusWithin>\n )\n }\n}\n\nconst locationObjectPropType = PropTypes.shape({\n city: PropTypes.string,\n postcode: PropTypes.string,\n address: PropTypes.string,\n country: PropTypes.shape({\n display: PropTypes.string,\n key: PropTypes.string\n }),\n canton: PropTypes.string,\n district: PropTypes.string\n})\n\nLocationEdit.propTypes = {\n onChange: PropTypes.func,\n value: locationObjectPropType,\n options: PropTypes.shape({\n suggestions: PropTypes.arrayOf(locationObjectPropType),\n fetchSuggestions: PropTypes.func,\n isLoading: PropTypes.bool,\n mapButtonTitle: PropTypes.string\n }),\n name: PropTypes.string,\n id: PropTypes.string,\n immutable: PropTypes.bool\n}\n\nexport default LocationEdit\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport _isEmpty from 'lodash/isEmpty'\nimport _omit from 'lodash/omit'\n\nimport SingleSelect from './typeEditors/SingleSelect'\nimport MultiSelect from './typeEditors/MultiSelect'\nimport StringEdit from './typeEditors/StringEdit'\nimport TextEdit from './typeEditors/TextEdit'\nimport DateEdit from './typeEditors/DateEdit'\nimport DateTimeEdit from './typeEditors/DateTimeEdit'\nimport TimeEdit from './typeEditors/TimeEdit'\nimport BoolEdit from './typeEditors/BoolEdit'\nimport Document from './typeEditors/Document'\nimport HtmlEdit from './typeEditors/HtmlEdit'\nimport RemoteSelect from './typeEditors/RemoteSelect'\nimport MultiRemoteSelect from './typeEditors/MultiRemoteSelect'\nimport SearchFilterEdit from './typeEditors/SearchFilterEdit'\nimport UrlEdit from './typeEditors/UrlEdit'\nimport PhoneEdit from './typeEditors/PhoneEdit'\nimport DurationEdit from './typeEditors/DurationEdit'\nimport NumberEdit from './typeEditors/NumberEdit'\nimport IntegerEdit from './typeEditors/IntegerEdit'\nimport LocationEdit from './typeEditors/LocationEdit'\n\nexport const map = {\n 'boolean': BoolEdit,\n 'date': DateEdit,\n 'datetime': DateTimeEdit,\n 'document': Document,\n 'duration': DurationEdit,\n 'html': HtmlEdit,\n 'integer': IntegerEdit,\n 'location': LocationEdit,\n 'multi-remote': MultiRemoteSelect,\n 'multi-select': MultiSelect,\n 'number': NumberEdit,\n 'phone': PhoneEdit,\n 'remote': RemoteSelect,\n 'search-filter': SearchFilterEdit,\n 'single-select': SingleSelect,\n 'string': StringEdit,\n 'text': TextEdit,\n 'url': UrlEdit,\n 'time': TimeEdit\n}\n\nconst TypeEditorFactory = ({type, value, options, id, events, readOnly = false}) => {\n if (map[type]) {\n const Component = map[type]\n\n // blur workaround for known react-select issue: https://github.com/erikras/redux-form/issues/82\n // Date component only works properly on blur if the event is called with the value saved from the change event\n let blurValue\n if (events && events.onBlur) {\n const onBlur = events.onBlur\n events.onBlur = () => {\n return onBlur(blurValue !== undefined ? blurValue : value)\n }\n }\n\n return (\n <div {..._omit(events, 'onChange')} data-cy=\"form-field\">\n <Component\n value={value}\n onChange={v => {\n blurValue = v\n events.onChange(v)\n }}\n {...(_isEmpty(options) ? {} : {options})}\n id={id}\n immutable={readOnly}\n events={events}\n />\n </div>\n )\n }\n\n // eslint-disable-next-line no-console\n console.log('No type-editor defined for type', type)\n return null\n}\n\nTypeEditorFactory.propTypes = {\n type: PropTypes.oneOf(\n Object.keys(map)\n ).isRequired,\n events: PropTypes.objectOf(PropTypes.func),\n id: PropTypes.string,\n readOnly: PropTypes.bool,\n options: PropTypes.object,\n value: PropTypes.any\n}\n\nexport default TypeEditorFactory\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport TypeEditorFactory, {map as typeEditorFactoryMap} from './typeEditorFactory'\nimport StyledEditableValue from './StyledEditableValue'\n\n/**\n * To edit values of given type.\n */\nconst EditableValue = props => (\n <StyledEditableValue>\n <TypeEditorFactory {...props}/>\n </StyledEditableValue>\n)\n\nEditableValue.propTypes = {\n /**\n * Type of value. e.g. 'string'\n */\n type: PropTypes.oneOf(\n Object.keys(typeEditorFactoryMap)\n ).isRequired,\n /**\n * Value to display\n */\n value: PropTypes.any,\n /**\n * Depending on the type an object of options can be passed\n */\n options: PropTypes.object,\n /**\n * Id of element (for htmlFor)\n */\n id: PropTypes.string,\n /**\n * Object of functions that gets assigned to the component. E.g. {onChange: v => {}, onBlur: () => {}}\n */\n events: PropTypes.objectOf(PropTypes.func),\n /**\n * Determines if value is editable\n */\n readOnly: PropTypes.bool\n}\n\nexport default EditableValue\n","import styled, {css} from 'styled-components'\n\nimport {\n declareFont,\n theme\n} from '../utilStyles'\n\nconst StyledEditableWrapperCss = css`\n align-items: center;\n cursor: ${({immutable}) => immutable ? 'not-allowed' : 'default'};\n display: flex;\n`\n\nconst StyledEditableWrapper = styled.label`\n &&& {\n margin: 0; /* reset Bootstrap and Ext JS */\n padding: 0; /* reset Ext JS */\n ${StyledEditableWrapperCss}\n }\n`\n\nconst StyledInputCss = css`\n background-color: transparent;\n border: 0;\n cursor: ${({immutable}) => immutable ? 'not-allowed' : 'default'};\n flex-grow: 1;\n min-height: 2.6rem;\n min-width: 0;\n outline: 0;\n padding: 0;\n ${() => declareFont({\n color: theme.color('text')\n })}\n &::-ms-clear {\n display: none;\n }\n\n &::-webkit-clear-button {\n display: none;\n }\n\n &::-webkit-inner-spin-button {\n display: none;\n }\n\n &[type='number'] {\n appearance: textfield;\n }\n\n &[type='search'] {\n appearance: none;\n }\n\n &:disabled {\n -webkit-text-fill-color: ${theme.color('text')}; // Safari fix\n opacity: 1; // iOS fix\n }\n\n /* remove indicators */\n &[type='date'],\n &[type='datetime-local'],\n &[type='month'],\n &[type='time'],\n &[type='week'] {\n appearance: none;\n display: flex;\n\n /* reset margin on smaller screens */\n ::-webkit-date-and-time-value {\n ${({immutable}) => immutable && 'margin: unset;'}\n }\n }\n\n // allow pointer event only on touch devices\n @media (pointer: coarse) {\n pointer-events: ${({immutable}) => immutable ? 'none' : 'auto'};\n }\n`\n\nconst StyledEditableControlCss = css`\n display: flex;\n align-items: center;\n`\n\nconst StyledEditableControl = styled.div`\n &&& {\n ${StyledEditableControlCss}\n }\n`\n\nexport const StyledEditableValue = styled.span`\n width: 100%;\n\n && {\n //textarea\n textarea {\n resize: vertical; // react-textarea-autosize consumes resize property\n max-height: 25rem; // react-textarea-autosize respects max-height property\n }\n\n //url\n [type='url'] + .input-group-addon > a {\n color: inherit; // reset bootstrap default\n }\n\n //url\n [type='tel'] + .input-group-addon > a {\n color: inherit; // reset bootstrap default\n }\n\n //html edit\n .quill {\n .ql-toolbar {\n border-top-left-radius: .27rem;\n border-top-right-radius: .27rem;\n }\n\n .ql-container {\n border-bottom-left-radius: .27rem;\n border-bottom-right-radius: .27rem;\n background-color: #fff;\n }\n\n .ql-container.ql-disabled {\n border-top-left-radius: .27rem;\n border-top-right-radius: .27rem;\n\n .ql-editor {\n cursor: not-allowed;\n }\n }\n }\n\n //date\n .date-edit {\n .input-group-addon {\n cursor: pointer;\n }\n\n input {\n z-index: 0;\n }\n\n &.disabled {\n input {\n cursor: not-allowed;\n }\n }\n\n .right-addon {\n position: relative;\n }\n\n .right-addon input {\n padding-right: 30px;\n }\n\n .reset {\n position: absolute;\n padding-right: 10px;\n padding-top: 5px;\n right: 0;\n color: #999;\n font-size: 18px;\n font-style: normal;\n cursor: pointer;\n }\n\n .reset:hover {\n color: ${theme.color('signal.danger.text')};\n }\n }\n }\n`\n\nexport {\n StyledEditableControl,\n StyledEditableControlCss,\n StyledEditableValue as default,\n StyledEditableWrapper,\n StyledEditableWrapperCss,\n StyledInputCss\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {injectIntl} from 'react-intl'\n\nimport Ball from '../Ball'\n\nconst ClearIndicator = props => {\n const msg = id => props.intl.formatMessage({id})\n\n return (\n <span {...props.innerProps}>\n <Ball\n icon=\"times\"\n tabIndex={-1}\n aria-label={msg('client.component.select.clearFieldLabel')}\n />\n </span>\n )\n}\n\nClearIndicator.propTypes = {\n innerProps: PropTypes.object,\n intl: PropTypes.object.isRequired\n}\n\nexport default injectIntl(ClearIndicator)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {components} from 'react-select'\n\nimport Ball from '../Ball'\n\nconst DropdownIndicator = props => {\n return !props.selectProps.isDisabled && <components.DropdownIndicator {...props}>\n <Ball\n icon={props.selectProps.menuIsOpen ? 'chevron-up' : 'chevron-down'}\n tabIndex={-1}\n />\n </components.DropdownIndicator>\n}\n\nDropdownIndicator.propTypes = {\n immutable: PropTypes.bool,\n selectProps: PropTypes.shape({\n menuIsOpen: PropTypes.bool,\n isDisabled: PropTypes.bool\n })\n}\n\nexport default DropdownIndicator\n","import React from 'react'\nimport {components} from 'react-select'\nimport PropTypes from 'prop-types'\n\nimport Ball from '../Ball'\nimport {StyledIndicatorsContainerWrapper} from './StyledComponents'\n\nconst handleAdvancedSearch = (openAdvancedSearch, value) => event => {\n openAdvancedSearch(value)\n event.stopPropagation()\n}\n\nconst handleCreate = openCreate => event => {\n openCreate()\n event.stopPropagation()\n}\n\nconst IndicatorsContainer = props => {\n const {openAdvancedSearch, openRemoteCreate, isDisabled, createPermission} = props.selectProps\n\n return (\n <StyledIndicatorsContainerWrapper>\n <components.IndicatorsContainer {...props}>\n {props.children}\n {openAdvancedSearch\n && !isDisabled\n && <span\n onTouchEnd={e => e.stopPropagation()}\n onMouseDown={e => e.stopPropagation()}\n onMouseUp={handleAdvancedSearch(openAdvancedSearch, props.value)}>\n <Ball\n icon=\"search\"\n tabIndex={-1}\n />\n </span>}\n {createPermission\n && !isDisabled\n && <span\n onTouchEnd={e => e.stopPropagation()}\n onMouseDown={e => e.stopPropagation()}\n onMouseUp={handleCreate(openRemoteCreate)}>\n <Ball\n icon=\"plus\"\n tabIndex={-1}\n />\n </span>}\n </components.IndicatorsContainer>\n </StyledIndicatorsContainerWrapper>\n )\n}\n\nconst ItemPropType = PropTypes.shape({\n key: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]).isRequired,\n display: PropTypes.string\n})\n\nIndicatorsContainer.propTypes = {\n children: PropTypes.node,\n selectProps: PropTypes.shape({\n openAdvancedSearch: PropTypes.func,\n openRemoteCreate: PropTypes.func,\n isDisabled: PropTypes.bool,\n createPermission: PropTypes.bool\n }),\n value: PropTypes.oneOfType([\n ItemPropType,\n PropTypes.arrayOf(ItemPropType)\n ])\n}\n\nexport default IndicatorsContainer\n","import React from 'react'\n\nimport LoadingSpinner from '../LoadingSpinner'\n\nconst LoadingIndicator = () => <span><LoadingSpinner size=\"1.8rem\"/></span>\n\nexport default LoadingIndicator\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport _omit from 'lodash/omit'\n\nimport {StyledTether, StyledMenu} from './StyledComponents'\n\nconst TetherPosition = () => <div/>\n\nconst Menu = props => (\n <StyledTether\n attachment=\"top left\"\n targetAttachment=\"bottom left\"\n constraints={[{\n to: 'window',\n attachment: 'together'\n }]}\n >\n <TetherPosition/>\n <div>\n <StyledMenu\n {...(_omit(props, ['innerRef']))}\n wrapperWidth={props.selectProps.wrapperWidth}\n wrapperHeight={props.selectProps.wrapperHeight}>\n {props.children}\n </StyledMenu>\n </div>\n </StyledTether>\n)\n\nMenu.propTypes = {\n children: PropTypes.node,\n selectProps: PropTypes.shape({\n wrapperHeight: PropTypes.number,\n wrapperWidth: PropTypes.number\n })\n}\n\nexport default Menu\n","import React from 'react'\nimport {components} from 'react-select'\nimport PropTypes from 'prop-types'\n\nimport {StyledMoreOptionsAvailable} from './StyledComponents'\n\nconst MenuList = props => {\n const {selectProps, children, theme} = props\n const {moreOptionsAvailable, moreOptionsAvailableText} = selectProps\n return (\n <components.MenuList {...props}>\n {children}\n {moreOptionsAvailable\n && <StyledMoreOptionsAvailable reactSelectTheme={theme}>\n {moreOptionsAvailableText}\n </StyledMoreOptionsAvailable>\n }\n </components.MenuList>\n )\n}\n\nMenuList.propTypes = {\n children: PropTypes.node,\n selectProps: PropTypes.shape({\n moreOptionsAvailable: PropTypes.bool,\n moreOptionsAvailableText: PropTypes.string\n }),\n theme: PropTypes.object\n}\n\nexport default MenuList\n","import styled from 'styled-components'\n\nexport default styled.span`\n pointer-events: auto;\n cursor: pointer;\n`\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {components} from 'react-select'\nimport _get from 'lodash/get'\n\nimport Popover from '../Popover'\nimport ClickableWrapper from './ClickableWrapper'\n\nexport const MultiValueLabel = props => {\n const {data} = props\n const {tooltips, loadTooltip, DetailLink} = props.selectProps\n const tooltip = _get(tooltips, data.key, null)\n\n const content = DetailLink\n ? <ClickableWrapper onMouseDown={e => {\n e.stopPropagation()\n e.preventDefault()\n }}>\n <DetailLink entityKey={data.key}><components.MultiValueLabel {...props}/></DetailLink>\n </ClickableWrapper>\n : <components.MultiValueLabel {...props}/>\n\n return (\n <Popover content={tooltip ? <div dangerouslySetInnerHTML={{__html: tooltip}}/> : null}>\n <span onMouseOver={() => loadTooltip && !tooltip && loadTooltip(data.key)}>\n {content}\n </span>\n </Popover>\n )\n}\n\nMultiValueLabel.propTypes = {\n data: PropTypes.object,\n selectProps: PropTypes.shape({\n tooltips: PropTypes.objectOf(PropTypes.string),\n loadTooltip: PropTypes.func,\n DetailLink: PropTypes.elementType\n })\n}\n\nexport default MultiValueLabel\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {components} from 'react-select'\nimport _get from 'lodash/get'\nimport styled from 'styled-components'\n\nimport Popover from '../Popover'\nimport ClickableWrapper from './ClickableWrapper'\nimport {theme} from '../utilStyles'\n\nconst StyledSingleValueWrapper = styled.div`\n overflow-x: hidden;\n color: ${({isDisabled}) => isDisabled ? theme.color('text') : 'inherit'};\n`\n\nexport const SingleValue = props => {\n const {data, selectProps, isDisabled, children} = props\n const {tooltips, loadTooltip, DetailLink} = selectProps\n const tooltip = _get(tooltips, data.key, null)\n const content = DetailLink\n ? <ClickableWrapper onMouseDown={e => {\n e.stopPropagation()\n e.preventDefault()\n }}>\n <DetailLink entityKey={data.key}>{children}</DetailLink>\n </ClickableWrapper>\n : children\n\n return <components.SingleValue {...props}>\n <StyledSingleValueWrapper\n onMouseOver={() => loadTooltip && !tooltip && loadTooltip(data.key)}\n isDisabled={isDisabled}\n >\n <Popover content={tooltip\n ? <div dangerouslySetInnerHTML={{__html: tooltip}}/>\n : null}>\n {content}\n </Popover>\n </StyledSingleValueWrapper>\n </components.SingleValue>\n}\n\nSingleValue.propTypes = {\n children: PropTypes.node,\n data: PropTypes.object,\n isDisabled: PropTypes.bool,\n selectProps: PropTypes.shape({\n tooltips: PropTypes.objectOf(PropTypes.string),\n loadTooltip: PropTypes.func,\n DetailLink: PropTypes.func\n })\n}\n\nexport default SingleValue\n","import PropTypes from 'prop-types'\nimport React, {useRef} from 'react'\nimport ReactSelect from 'react-select'\nimport _debounce from 'lodash/debounce'\nimport {withTheme} from 'styled-components'\n\nimport ClearIndicator from './ClearIndicator'\nimport DropdownIndicator from './DropdownIndicator'\nimport IndicatorsContainer from './IndicatorsContainer'\nimport LoadingIndicator from './LoadingIndicator'\nimport Menu from './Menu'\nimport MenuList from './MenuList'\nimport MultiValueLabel from './MultiValueLabel'\nimport SingleValue from './SingleValue'\nimport {reactSelectStyles, reactSelectTheme} from './StyledComponents'\n\nconst SEARCH_DEBOUNCE = 300\n\n/**\n * To select between multiple options. Loading of options and so on are remotely controlled.\n */\nconst Select = ({\n fetchOptions,\n id,\n immutable,\n isLoading,\n isMulti,\n loadTooltip,\n moreOptionsAvailable,\n moreOptionsAvailableText,\n noResultsText,\n onChange,\n openAdvancedSearch,\n options,\n searchOptions,\n theme,\n tooltips,\n value,\n DetailLink,\n createPermission,\n openRemoteCreate\n}) => {\n const selectComponent = useRef(null)\n const selectWrapper = useRef(null)\n\n const getOptions = () => [...(options || [])]\n\n const handleInputChange = (searchTerm, event) => {\n if (searchOptions && searchTerm) {\n debouncedSearchOptions(searchTerm)\n }\n if (searchTerm === '' && event.action === 'input-change') {\n fetchOptions()\n }\n }\n\n const handleMenuOpen = () => {\n if (fetchOptions) {\n fetchOptions()\n }\n }\n\n const debouncedSearchOptions\n = searchOptions ? _debounce(searchOptions, SEARCH_DEBOUNCE) : () => {}\n\n const wrapperWidth = selectWrapper.current ? selectWrapper.current.clientWidth : 300\n const wrapperHeight = selectWrapper.current ? selectWrapper.current.clientHeight : 35\n\n return (\n <div\n tabIndex=\"-1\"\n id={id}\n onFocus={() => {\n selectComponent.current.focus()\n }}\n style={{\n outlineStyle: 'none',\n cursor: immutable ? 'not-allowed' : 'default'\n }}>\n <div ref={selectWrapper} style={{outlineStyle: 'none'}}>\n <ReactSelect\n getOptionLabel={option => option.display}\n getOptionValue={option => option.key}\n wrapperWidth={wrapperWidth}\n wrapperHeight={wrapperHeight}\n components={{\n ClearIndicator,\n LoadingIndicator,\n DropdownIndicator: DropdownIndicator,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: null,\n Menu: Menu,\n MenuList: MenuList,\n MultiValueLabel,\n SingleValue\n }}\n noOptionsMessage={() => (noResultsText || ' - ')}\n isMulti={isMulti}\n closeMenuOnSelect={!isMulti}\n isSearchable\n {...(searchOptions ? {filterOption: () => (true)} : {})}\n isClearable\n loadingMessage={() => null}\n placeholder=\"\"\n menuShouldScrollIntoView={false}\n autoFocus={false}\n value={value || null}\n onChange={onChange}\n onInputChange={handleInputChange}\n options={getOptions()}\n isLoading={isLoading}\n isDisabled={immutable}\n ref={selectComponent}\n onMenuOpen={handleMenuOpen}\n styles={reactSelectStyles(theme)}\n theme={themeSelect => reactSelectTheme(themeSelect, theme)}\n loadTooltip={loadTooltip}\n tooltips={tooltips}\n DetailLink={DetailLink}\n openAdvancedSearch={openAdvancedSearch}\n moreOptionsAvailable={moreOptionsAvailable}\n moreOptionsAvailableText={moreOptionsAvailableText}\n blurInputOnSelect={false}\n createPermission={createPermission}\n openRemoteCreate={openRemoteCreate}\n />\n </div>\n </div>\n )\n}\n\nconst ItemPropType = PropTypes.shape({\n key: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]).isRequired,\n display: PropTypes.string\n})\n\nSelect.propTypes = {\n /**\n * If one more multiple values can be selected\n */\n isMulti: PropTypes.bool,\n /**\n * Callback function on change event. Passes the new value as first parameter.\n */\n onChange: PropTypes.func,\n /**\n * Expects an array or single object containing a display and key attribute.\n */\n value: PropTypes.oneOfType([\n ItemPropType,\n PropTypes.arrayOf(ItemPropType)\n ]),\n /**\n * Possible options that the user can select\n */\n options: PropTypes.arrayOf(ItemPropType),\n /**\n * Callback to load options (is invoked on focus)\n */\n fetchOptions: PropTypes.func,\n /**\n * Callback to load options if the user types into to select. The search value is passed as first parameter.\n */\n searchOptions: PropTypes.func,\n /**\n * Can be set to true while loading the options. Shows a loading indicator.\n */\n isLoading: PropTypes.bool,\n /**\n * Wil be displayed if no options are left to choose from.\n */\n noResultsText: PropTypes.string,\n /**\n * If true, a disabled option is appended that says that not all options are shown.\n */\n moreOptionsAvailable: PropTypes.bool,\n /**\n * Text that is shown if moreOptionsAvailable is true.\n */\n moreOptionsAvailableText: PropTypes.string,\n /**\n * If defined a button is shown next to the select box that invokes this callback.\n */\n openAdvancedSearch: PropTypes.func,\n /**\n * Component that allows to render a <Link> around the value label for navigation purposes.\n * First parameter is the key of the value, the second parameter is the value node itself / child.\n *\n * e.g.\n * ({entityKey, children}) => <a href={`/${key}`} target=\"_blank\" rel=\"noopener noreferrer\">{children}</a>\n */\n DetailLink: PropTypes.func,\n /**\n * Theme provided by styled-components ThemeProvider.\n */\n theme: PropTypes.object,\n /**\n * Object containing tooltips with the key as attribute name.\n */\n tooltips: PropTypes.objectOf(PropTypes.string),\n /**\n * Callback to enhance tooltip object with new tooltips.\n */\n loadTooltip: PropTypes.func,\n /**\n * Whether the user can edit the value or not.\n */\n immutable: PropTypes.bool,\n /**\n * Id of outter element\n */\n id: PropTypes.string,\n /**\n * Open menu with click on input field\n */\n openMenuOnClick: PropTypes.bool,\n /**\n * Whether a new option may be created\n */\n createPermission: PropTypes.bool,\n /**\n * Opens a modal with a create form\n */\n openRemoteCreate: PropTypes.func\n}\n\nexport default withTheme(Select)\n","import styled from 'styled-components'\n\nimport {StyledUl} from '../Typography'\n\nconst StyledSignalList = styled(StyledUl)`\n && {\n list-style-type: none;\n }\n`\n\nexport default StyledSignalList\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport StyledSignalList from './StyledSignalList'\n\n/**\n * Signalize conditions by icon and color in a list.\n */\nexport const SignalList = props =>\n <StyledSignalList as=\"ul\">\n {React.Children.map(props.children, child => React.cloneElement(child))}\n </StyledSignalList>\n\nSignalList.propTypes = {\n children: PropTypes.node\n}\n\nexport default SignalList\n","import styled from 'styled-components'\nimport _get from 'lodash/get'\n\nimport {StyledLi} from '../Typography'\nimport {\n design,\n shadeColor,\n theme\n} from '../utilStyles'\n\nconst COLORS = {\n [design.condition.BASE]: 'inherit',\n [design.condition.DANGER]: theme.color('signal.danger.text'),\n [design.condition.PRIMARY]: props => shadeColor(_get(props.theme, 'colors.primary'), 1),\n [design.condition.SUCCESS]: theme.color('signal.success.text'),\n [design.condition.WARNING]: theme.color('signal.warning.text'),\n [design.condition.INFO]: theme.color('signal.info.text')\n}\n\nconst getColor = props => {\n const color = COLORS[props.condition]\n return color || 'inherit'\n}\n\nconst StyledSignalListItem = styled(StyledLi)`\n && {\n color: ${props => getColor(props)};\n position: relative;\n\n > i,\n > svg {\n position: absolute;\n left: -1.6rem;\n text-align: left;\n }\n\n > svg {\n top: .2em;\n }\n }\n`\n\nStyledSignalListItem.propTypes = {\n condition: design.conditionPropTypes(COLORS)\n}\n\nexport default StyledSignalListItem\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport Icon from '../Icon'\nimport StyledSignalListItem from './StyledSignalListItem'\nimport {design} from '../utilStyles'\n\nconst ICONS = {\n [design.condition.BASE]: false,\n [design.condition.PRIMARY]: false,\n [design.condition.DANGER]: 'times',\n [design.condition.SUCCESS]: 'check',\n [design.condition.WARNING]: 'exclamation-triangle',\n [design.condition.INFO]: 'info'\n}\n\nconst getIcon = props => {\n const icon = ICONS[props.condition]\n if (icon) {\n return <Icon icon={icon} position={design.position.SOLE}/>\n } else {\n return <i>{'\\u2022'}</i>\n }\n}\n\n/**\n * Signalize single condition by icon and color. It must be wrapped by <SignalList/>\n */\nconst SignalListItem = props =>\n <StyledSignalListItem condition={props.condition}>\n {getIcon(props)}\n {props.label}\n {React.Children.map(props.children, child => React.cloneElement(child))}\n </StyledSignalListItem>\n\nSignalListItem.defaultProps = {\n condition: design.condition.BASE\n}\n\nSignalListItem.propTypes = {\n /**\n * Visible text. Default is an empty string.\n */\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node\n ]),\n children: PropTypes.node,\n /**\n * Color and icon is set according condition. Default value is 'base'.\n * Possible values: base|danger|primary|success|warning\n */\n condition: design.conditionPropTypes(ICONS)\n}\n\nexport default SignalListItem\n","import List from './SignalList'\nimport StyledSignalList from './StyledSignalList'\nimport Item from './SignalListItem'\nimport StyledSignalListItem from './StyledSignalListItem'\n\nexport {\n StyledSignalList,\n StyledSignalListItem\n}\n\nexport default {\n List,\n Item\n}\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport SignalList from '../SignalList'\n\nconst ErrorList = props => {\n if (!props.error) {\n return null\n }\n\n const errorValues = []\n Object.keys(props.error).forEach(key => {\n errorValues.push(...props.error[key])\n })\n\n return (\n <SignalList.List>\n {errorValues.map((value, idx) => (\n <SignalList.Item\n condition=\"danger\"\n key={idx}\n label={value}\n />\n ))}\n </SignalList.List>\n )\n}\n\nErrorList.propTypes = {\n error: PropTypes.objectOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.node, PropTypes.string]))\n )\n}\n\nexport default ErrorList\n","import styled, {css, keyframes} from 'styled-components'\n\nimport {\n colorizeBorder,\n colorizeText,\n declareFocus,\n declareFont,\n scale,\n theme\n} from '../utilStyles'\nimport {StyledHtmlFormatter} from '../FormattedValue/typeFormatters/HtmlFormatter'\n\nconst borderWidth = '1.1px' // deliberately uneven to force correct rendering in chrome\nconst animationDuration = '200ms'\n\nconst getTextColor = ({isDisplay, secondaryPosition, immutable, signal, hasValue}) => {\n return signal\n ? 'signal'\n : hasValue\n ? 'hasValue'\n : isDisplay && secondaryPosition && immutable && !signal\n ? 'shade1'\n : isDisplay\n ? secondaryPosition\n ? 'shade0'\n : 'shade1'\n : secondaryPosition\n ? 'shade1'\n : immutable\n ? 'shade0'\n : signal\n ? 'signal'\n : 'shade1'\n}\n\nconst getBorderColor = ({immutable, isDisplay, signal, isDirty}) => {\n return isDirty\n ? 'isDirty'\n : isDisplay || immutable\n ? 'transparent'\n : signal\n ? 'signal'\n : 'shade1'\n}\n\nconst transformLabel = ({secondaryPosition}) => css`\n &&& {\n transition: color ${animationDuration},\n font-size ${animationDuration},\n font-weight ${animationDuration},\n margin ${animationDuration},\n top ${animationDuration};\n will-change: color, font-size, font-weight, margin, top;\n ${secondaryPosition && css`\n top: 0;\n font-size: ${scale.font(-0.8)};\n margin: calc(${scale.font(-0.5)} / -2) 0 0;\n `}\n }\n`\n\nconst declareCursor = ({isDisplay, immutable}) => `cursor: ${(!isDisplay && immutable) ? 'not-allowed' : 'auto'};`\n\nexport const StyledLabelWrapper = styled.div`\n width: calc(100% - ${scale.space(0.5)});\n`\n\nconst StyledStatedValueLabel = styled.label`\n &&& {\n ${declareFont({\n fontSize: scale.font(0),\n fontWeight: ({dirty}) => dirty ? theme.fontWeight('bold') : theme.fontWeight('regular'),\n lineHeight: 1\n })}\n background-color: ${theme.color('paper')};\n color: ${props => colorizeText[getTextColor(props)](props)};\n left: ${scale.space(-2)};\n margin: calc(${scale.font(0)} / -2) 0 0;\n padding: 1px ${scale.space(-2)}; // 1px to prevent label bottom from being cut\n position: absolute;\n top: 50%;\n width: ${({secondaryPosition}) => secondaryPosition ? 'auto' : 'inherit'};\n height: calc(${scale.font(0)} + 1px);\n overflow: hidden;\n ${props => transformLabel(props)}\n ${props => declareCursor(props)}\n pointer-events: ${({secondaryPosition}) => secondaryPosition ? 'auto' : 'none'};\n padding-left: ${({immutable}) => immutable && '0'};\n\n span {\n white-space: nowrap;\n }\n }\n`\n\nconst StyledStatedValueBox = styled.div`\n &&& {\n border: ${borderWidth} solid ${props => colorizeBorder[getBorderColor(props)](props)};\n padding: ${scale.space(-1)} ${scale.space(-1)} ${scale.space(-2)} ${scale.space(-1)};\n position: relative;\n ${props => !props.immutable && declareFocus(props)}\n ${props => declareCursor(props)}\n transition: border-color ${animationDuration};\n will-change: border-color;\n margin-top: ${({isDisplay}) => isDisplay && scale.space(-1)};\n padding-left: ${({immutable}) => immutable && scale.space(-2)};\n padding-top: ${({isDisplay, immutable}) => isDisplay && immutable && scale.space(-1)};\n\n * {\n padding-left: ${({isDisplay}) => isDisplay && '0'};\n margin-bottom: 0;\n }\n\n > ${StyledHtmlFormatter} {\n padding-top: ${({isDisplay}) => isDisplay && scale.space(-1)};\n position: relative;\n top: 5px;\n\n p:first-of-type {\n margin-top: 0;\n }\n }\n }\n`\n\nconst StyledStatedValueDescription = styled.p`\n &&& {\n ${declareFont({\n fontSize: scale.font(-1)\n })}\n }\n`\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n`\n\nconst StyledStatedValueError = styled.div`\n animation: ${fadeIn} 500ms ease-in-out both;\n`\n\nconst StyledStatedValueWrapper = styled.div`\n &&& {\n margin-bottom: ${scale.space(-1)};\n padding-top: ${scale.space(-2)};\n\n ${/* sc-selector */StyledStatedValueBox},\n ${/* sc-selector */StyledStatedValueDescription},\n ${/* sc-selector */StyledStatedValueError} {\n margin-bottom: ${scale.space(-2)};\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ${/* sc-selector */StyledStatedValueDescription},\n ${/* sc-selector */StyledStatedValueError} {\n margin-left: calc(${scale.space(-1)} + ${borderWidth});\n }\n }\n`\n\nexport {\n getTextColor,\n getBorderColor,\n StyledStatedValueBox,\n StyledStatedValueDescription,\n StyledStatedValueError,\n StyledStatedValueLabel,\n StyledStatedValueWrapper\n}\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport FocusWithin from 'react-simple-focus-within'\nimport {js} from 'tocco-util'\n\nimport ErrorList from './ErrorList'\nimport {\n StyledStatedValueBox,\n StyledStatedValueDescription,\n StyledStatedValueError,\n StyledStatedValueLabel,\n StyledStatedValueWrapper,\n StyledLabelWrapper\n} from './StyledStatedValue'\nimport {design} from '../utilStyles'\n\nconst detectSignal = (dirty, hasError, mandatory, hasValue) => {\n if (hasError) {\n return design.condition.DANGER\n } else if (dirty) {\n return design.condition.INFO\n } else if (mandatory && !hasValue) {\n return design.condition.WARNING\n }\n}\n\n/**\n * Wrap <EditableValue> and <FormattedValUe> in <StatedValue> to describe it\n * and signal conditions.\n */\nconst StatedValue = props => {\n const {\n children,\n description,\n dirty,\n fixLabel,\n isDisplay,\n error,\n hasValue,\n id,\n label,\n mandatory,\n mandatoryTitle,\n immutable,\n touched,\n signal: signalProp\n } = props\n\n const showError = !immutable && touched && error && Object.keys(error).length > 0\n const labelAlt = `${js.adjustedHTMLString(label)}${mandatory && mandatoryTitle ? `, ${mandatoryTitle}` : ''}`\n const signal = signalProp || detectSignal(dirty, showError, mandatory, hasValue)\n\n return (\n <FocusWithin>\n {({focused, getRef}) => {\n const secondaryPosition = (!immutable && focused) || hasValue || isDisplay || fixLabel\n return (\n <StyledStatedValueWrapper\n ref={getRef}\n secondaryPosition={secondaryPosition}>\n <StyledStatedValueBox\n className=\"StyledStatedValueBox\"\n hasValue={hasValue}\n immutable={immutable}\n isDisplay={isDisplay}\n signal={signal}>\n {children}\n {label && <StyledLabelWrapper>\n <StyledStatedValueLabel\n {...!isDisplay && !immutable && {htmlFor: id}}\n hasValue={hasValue}\n dirty={dirty}\n title={labelAlt}\n secondaryPosition={secondaryPosition}\n immutable={immutable}\n isDisplay={isDisplay}\n signal={signal}\n >\n <span dangerouslySetInnerHTML={{__html: `${label}${mandatory ? ' *' : ''}`}}/>\n </StyledStatedValueLabel>\n </StyledLabelWrapper>\n }\n </StyledStatedValueBox>\n {description\n && <StyledStatedValueDescription>{description}</StyledStatedValueDescription>}\n {showError && <StyledStatedValueError>\n <ErrorList error={error}/>\n </StyledStatedValueError>\n }\n </StyledStatedValueWrapper>\n )\n }}\n </FocusWithin>\n )\n}\n\nStatedValue.propTypes = {\n /**\n * A component to enter or display data.\n */\n children: PropTypes.node,\n /**\n * Visualize as display and not as field.\n */\n isDisplay: PropTypes.bool,\n /**\n * A helper text to instruct users.\n */\n description: PropTypes.string,\n /**\n * If true field is marked as changed.\n */\n dirty: PropTypes.bool,\n /**\n * Error object.\n */\n error: PropTypes.objectOf(PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.node, PropTypes.string]))\n ),\n /**\n * Force label on secondaryPosition.\n */\n fixLabel: PropTypes.bool,\n /**\n * If true label is moved to uncover value.\n */\n hasValue: PropTypes.bool,\n /**\n * Focus target id by clicking on label.\n */\n id: PropTypes.string,\n /**\n * Describe editable value briefly.\n */\n label: PropTypes.string,\n /**\n * If true an asterisk is appended to the label.\n */\n mandatory: PropTypes.bool,\n /**\n * Append to label's alternative text.\n */\n mandatoryTitle: PropTypes.string,\n /**\n * Determines if value is editable\n */\n immutable: PropTypes.bool,\n /**\n * Pass a valid signal condition to omit auto detection\n */\n signal: PropTypes.string,\n /**\n * If true field was in focus.\n */\n touched: PropTypes.bool\n}\n\nexport default StatedValue\n","import _get from 'lodash/get'\n\nimport {shadeColor} from '../utilStyles'\n\nconst colorizeText = {\n shade0: ({theme}) => _get(theme, 'colors.text'),\n shade1: ({theme}) => shadeColor(_get(theme, 'colors.text'), 3.5),\n shade2: ({theme}) => shadeColor(_get(theme, 'colors.text'), 5.5),\n signal: ({theme, signal}) => _get(theme, `colors.signal.${signal}.text`),\n hasValue: ({theme}) => _get(theme, 'colors.signal.info.text')\n}\n\nconst colorizeBorder = {\n shade0: ({theme}) => _get(theme, 'colors.paper'),\n shade1: ({theme}) => shadeColor(_get(theme, 'colors.paper'), 2),\n shade2: ({theme}) => shadeColor(_get(theme, 'colors.paper'), 4),\n signal: ({theme, signal}) => _get(theme, `colors.signal.${signal}.text`),\n isDirty: ({theme}) => _get(theme, 'colors.secondaryLight'),\n transparent: () => 'transparent'\n}\n\nexport {colorizeBorder, colorizeText}\n"],"sourceRoot":""}