smoothly 1.2.1-alpha.22 → 1.2.1-alpha.24

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 (379) hide show
  1. package/dist/cjs/{Scrollable-a60d6091.js → Scrollable-20426515.js} +36 -412
  2. package/dist/cjs/Scrollable-20426515.js.map +1 -0
  3. package/dist/cjs/{TimeZone-45bcd855.js → TimeZone-c7477083.js} +2940 -1728
  4. package/dist/cjs/TimeZone-c7477083.js.map +1 -0
  5. package/dist/cjs/{en-56378cc9.js → en-f4546147.js} +2 -2
  6. package/dist/cjs/{en-56378cc9.js.map → en-f4546147.js.map} +1 -1
  7. package/dist/cjs/index.cjs.js +2 -2
  8. package/dist/cjs/smoothly-app_107.cjs.entry.js +78 -91
  9. package/dist/cjs/smoothly-app_107.cjs.entry.js.map +1 -1
  10. package/dist/cjs/smoothly-checkbox.cjs.entry.js.map +1 -1
  11. package/dist/cjs/smoothly-country.cjs.entry.js +3 -3
  12. package/dist/cjs/smoothly-country.cjs.entry.js.map +1 -1
  13. package/dist/cjs/smoothly-input-checkbox-demo.cjs.entry.js +1 -1
  14. package/dist/cjs/smoothly-trigger-sink.cjs.entry.js +2 -2
  15. package/dist/cjs/smoothly-trigger-source.cjs.entry.js +2 -2
  16. package/dist/collection/components/calendar/generate.js +1 -1
  17. package/dist/collection/components/calendar/generate.js.map +1 -1
  18. package/dist/collection/components/calendar/index.js +28 -27
  19. package/dist/collection/components/calendar/index.js.map +1 -1
  20. package/dist/collection/components/checkbox/translation/index.js +1 -1
  21. package/dist/collection/components/checkbox/translation/index.js.map +1 -1
  22. package/dist/collection/components/country/index.js +5 -5
  23. package/dist/collection/components/country/index.js.map +1 -1
  24. package/dist/collection/components/display/index.js +21 -21
  25. package/dist/collection/components/display/index.js.map +1 -1
  26. package/dist/collection/components/filter/select/index.js +1 -1
  27. package/dist/collection/components/filter/toggle/index.js +1 -1
  28. package/dist/collection/components/form/demo/typed/index.js +1 -1
  29. package/dist/collection/components/form/demo/typed/index.js.map +1 -1
  30. package/dist/collection/components/input/checkbox/index.js +1 -1
  31. package/dist/collection/components/input/color/index.js +1 -1
  32. package/dist/collection/components/input/date/index.js +14 -14
  33. package/dist/collection/components/input/date/index.js.map +1 -1
  34. package/dist/collection/components/input/date/range/index.js +1 -1
  35. package/dist/collection/components/input/file/index.js +1 -1
  36. package/dist/collection/components/input/index.js +3 -3
  37. package/dist/collection/components/input/month/index.js +1 -1
  38. package/dist/collection/components/input/radio/index.js +1 -1
  39. package/dist/collection/components/input/range/index.js +1 -1
  40. package/dist/collection/components/input/select/index.js +1 -1
  41. package/dist/collection/model/Data.spec.js.map +1 -1
  42. package/dist/components/index.js +2 -2
  43. package/dist/components/{p-750bac7d.js → p-00028058.js} +6 -6
  44. package/dist/components/{p-750bac7d.js.map → p-00028058.js.map} +1 -1
  45. package/dist/components/{p-6b2c0f3e.js → p-0012d70e.js} +2 -2
  46. package/dist/components/{p-6b2c0f3e.js.map → p-0012d70e.js.map} +1 -1
  47. package/dist/components/{p-137b3421.js → p-0210b94d.js} +7 -7
  48. package/dist/components/{p-137b3421.js.map → p-0210b94d.js.map} +1 -1
  49. package/dist/components/{p-7ad3376d.js → p-0210db4b.js} +5 -5
  50. package/dist/components/{p-7ad3376d.js.map → p-0210db4b.js.map} +1 -1
  51. package/dist/components/{p-4833b43b.js → p-0c9b11f0.js} +2 -2
  52. package/dist/components/{p-4833b43b.js.map → p-0c9b11f0.js.map} +1 -1
  53. package/dist/components/{p-eccb82fa.js → p-114fa5c2.js} +3 -3
  54. package/dist/components/{p-eccb82fa.js.map → p-114fa5c2.js.map} +1 -1
  55. package/dist/components/{p-dffea279.js → p-153f8d1a.js} +12 -12
  56. package/dist/components/{p-dffea279.js.map → p-153f8d1a.js.map} +1 -1
  57. package/dist/components/{p-8362e6ea.js → p-174e1154.js} +3 -3
  58. package/dist/components/{p-8362e6ea.js.map → p-174e1154.js.map} +1 -1
  59. package/dist/components/{p-3851d6af.js → p-17575bc3.js} +5 -5
  60. package/dist/components/{p-3851d6af.js.map → p-17575bc3.js.map} +1 -1
  61. package/dist/components/{p-28e6aa24.js → p-17f423b8.js} +2 -2
  62. package/dist/components/{p-28e6aa24.js.map → p-17f423b8.js.map} +1 -1
  63. package/dist/components/{p-f8b6cc8e.js → p-1ccb9b5d.js} +3 -3
  64. package/dist/components/{p-f8b6cc8e.js.map → p-1ccb9b5d.js.map} +1 -1
  65. package/dist/components/{p-b5b689d9.js → p-1efc7982.js} +3 -3
  66. package/dist/components/{p-b5b689d9.js.map → p-1efc7982.js.map} +1 -1
  67. package/dist/components/{p-fc98f7be.js → p-23fbd92e.js} +6 -6
  68. package/dist/components/{p-fc98f7be.js.map → p-23fbd92e.js.map} +1 -1
  69. package/dist/components/{p-fccef2cd.js → p-269f59bb.js} +23 -23
  70. package/dist/components/{p-fccef2cd.js.map → p-269f59bb.js.map} +1 -1
  71. package/dist/components/{p-d7ba5dde.js → p-28d37bcb.js} +7 -7
  72. package/dist/components/{p-d7ba5dde.js.map → p-28d37bcb.js.map} +1 -1
  73. package/dist/components/{p-a1af56e3.js → p-2d60ab95.js} +3 -3
  74. package/dist/components/{p-a1af56e3.js.map → p-2d60ab95.js.map} +1 -1
  75. package/dist/components/{p-4d285afc.js → p-3442e053.js} +2 -2
  76. package/dist/components/{p-4d285afc.js.map → p-3442e053.js.map} +1 -1
  77. package/dist/components/{p-089f64c2.js → p-35124e90.js} +2 -2
  78. package/dist/components/{p-089f64c2.js.map → p-35124e90.js.map} +1 -1
  79. package/dist/components/{p-0ffdc60e.js → p-3749e7c2.js} +2 -2
  80. package/dist/components/{p-0ffdc60e.js.map → p-3749e7c2.js.map} +1 -1
  81. package/dist/components/{p-c5beaa82.js → p-383f1e16.js} +5 -5
  82. package/dist/components/{p-c5beaa82.js.map → p-383f1e16.js.map} +1 -1
  83. package/dist/components/{p-6f488a68.js → p-3851c98c.js} +5 -5
  84. package/dist/components/{p-6f488a68.js.map → p-3851c98c.js.map} +1 -1
  85. package/dist/{esm/TimeZone-7b25e3f9.js → components/p-390767c7.js} +2806 -1883
  86. package/dist/components/p-390767c7.js.map +1 -0
  87. package/dist/components/{p-97848f3d.js → p-3eef0252.js} +21 -21
  88. package/dist/components/{p-97848f3d.js.map → p-3eef0252.js.map} +1 -1
  89. package/dist/components/{p-5a3098ce.js → p-3f588352.js} +4 -4
  90. package/dist/components/{p-5a3098ce.js.map → p-3f588352.js.map} +1 -1
  91. package/dist/components/{p-acdb7891.js → p-3fc2b239.js} +4 -4
  92. package/dist/components/{p-acdb7891.js.map → p-3fc2b239.js.map} +1 -1
  93. package/dist/components/{p-4d4b4a0a.js → p-43c910c5.js} +2 -2
  94. package/dist/components/{p-4d4b4a0a.js.map → p-43c910c5.js.map} +1 -1
  95. package/dist/components/{p-72730ae3.js → p-44d5ec3b.js} +10 -10
  96. package/dist/components/{p-72730ae3.js.map → p-44d5ec3b.js.map} +1 -1
  97. package/dist/components/{p-918ddb21.js → p-46912f14.js} +10 -10
  98. package/dist/components/p-46912f14.js.map +1 -0
  99. package/dist/components/{p-ce03e4d0.js → p-4ed54d65.js} +3 -3
  100. package/dist/components/{p-ce03e4d0.js.map → p-4ed54d65.js.map} +1 -1
  101. package/dist/components/{p-58a11f85.js → p-53671a89.js} +3 -3
  102. package/dist/components/{p-58a11f85.js.map → p-53671a89.js.map} +1 -1
  103. package/dist/components/{p-938c06a2.js → p-5666c538.js} +2 -2
  104. package/dist/components/{p-938c06a2.js.map → p-5666c538.js.map} +1 -1
  105. package/dist/components/{p-ac285959.js → p-5a3bdf21.js} +25 -25
  106. package/dist/components/{p-ac285959.js.map → p-5a3bdf21.js.map} +1 -1
  107. package/dist/components/{p-eb3d2060.js → p-5f8480af.js} +2 -2
  108. package/dist/components/{p-eb3d2060.js.map → p-5f8480af.js.map} +1 -1
  109. package/dist/components/{p-d3edfccf.js → p-61a1fd24.js} +8 -8
  110. package/dist/components/{p-d3edfccf.js.map → p-61a1fd24.js.map} +1 -1
  111. package/dist/components/{p-a08bf822.js → p-6b3ea12e.js} +2 -2
  112. package/dist/components/{p-a08bf822.js.map → p-6b3ea12e.js.map} +1 -1
  113. package/dist/components/{p-8edc879e.js → p-6c5bd721.js} +20 -20
  114. package/dist/components/{p-8edc879e.js.map → p-6c5bd721.js.map} +1 -1
  115. package/dist/components/{p-5d3caa35.js → p-73862f4b.js} +17 -17
  116. package/dist/components/{p-5d3caa35.js.map → p-73862f4b.js.map} +1 -1
  117. package/dist/components/{p-fbd4a12b.js → p-78a3eb0a.js} +9 -9
  118. package/dist/components/{p-fbd4a12b.js.map → p-78a3eb0a.js.map} +1 -1
  119. package/dist/components/{p-e451a0b5.js → p-7902ae4f.js} +3 -3
  120. package/dist/components/{p-e451a0b5.js.map → p-7902ae4f.js.map} +1 -1
  121. package/dist/components/{p-6eb46ce4.js → p-79729668.js} +37 -37
  122. package/dist/components/{p-6eb46ce4.js.map → p-79729668.js.map} +1 -1
  123. package/dist/components/{p-4716165d.js → p-79b2dd05.js} +4 -4
  124. package/dist/components/{p-4716165d.js.map → p-79b2dd05.js.map} +1 -1
  125. package/dist/components/{p-264f51a5.js → p-7b1e9421.js} +9 -9
  126. package/dist/components/{p-264f51a5.js.map → p-7b1e9421.js.map} +1 -1
  127. package/dist/components/{p-43b0c35c.js → p-7cf8c0f7.js} +5 -5
  128. package/dist/components/p-7cf8c0f7.js.map +1 -0
  129. package/dist/components/{p-f8b21fed.js → p-7f853189.js} +9 -9
  130. package/dist/components/{p-f8b21fed.js.map → p-7f853189.js.map} +1 -1
  131. package/dist/components/{p-c5519ec1.js → p-80b231e3.js} +5 -5
  132. package/dist/components/{p-c5519ec1.js.map → p-80b231e3.js.map} +1 -1
  133. package/dist/components/{p-292bffec.js → p-89505ec7.js} +3 -3
  134. package/dist/components/{p-292bffec.js.map → p-89505ec7.js.map} +1 -1
  135. package/dist/components/{p-ca19ed60.js → p-8e1e509d.js} +18 -99
  136. package/dist/components/p-8e1e509d.js.map +1 -0
  137. package/dist/components/{p-5325f725.js → p-8e3e6e7c.js} +9 -9
  138. package/dist/components/{p-5325f725.js.map → p-8e3e6e7c.js.map} +1 -1
  139. package/dist/components/{p-283f43bb.js → p-904e4b38.js} +11 -11
  140. package/dist/components/{p-283f43bb.js.map → p-904e4b38.js.map} +1 -1
  141. package/dist/components/{p-d062ac7b.js → p-957188b3.js} +3 -3
  142. package/dist/components/{p-d062ac7b.js.map → p-957188b3.js.map} +1 -1
  143. package/dist/components/{p-c7c1ceaa.js → p-96ca540b.js} +3 -3
  144. package/dist/components/{p-c7c1ceaa.js.map → p-96ca540b.js.map} +1 -1
  145. package/dist/components/{p-c025f250.js → p-9780bea7.js} +8 -8
  146. package/dist/components/{p-c025f250.js.map → p-9780bea7.js.map} +1 -1
  147. package/dist/components/{p-50f303f3.js → p-97c0e862.js} +3 -3
  148. package/dist/components/{p-50f303f3.js.map → p-97c0e862.js.map} +1 -1
  149. package/dist/components/{p-58c24d57.js → p-98279044.js} +9 -9
  150. package/dist/components/p-98279044.js.map +1 -0
  151. package/dist/components/{p-e5ac7847.js → p-98cb1594.js} +6 -6
  152. package/dist/components/{p-e5ac7847.js.map → p-98cb1594.js.map} +1 -1
  153. package/dist/components/{p-34b2eda8.js → p-9c8ff26d.js} +4 -4
  154. package/dist/components/{p-34b2eda8.js.map → p-9c8ff26d.js.map} +1 -1
  155. package/dist/components/{p-666dab06.js → p-9e5e6e83.js} +6 -6
  156. package/dist/components/{p-666dab06.js.map → p-9e5e6e83.js.map} +1 -1
  157. package/dist/components/{p-aa3e9c0f.js → p-aa4ee979.js} +5 -5
  158. package/dist/components/{p-aa3e9c0f.js.map → p-aa4ee979.js.map} +1 -1
  159. package/dist/components/{p-2efadf3c.js → p-ad1af123.js} +2 -2
  160. package/dist/components/{p-2efadf3c.js.map → p-ad1af123.js.map} +1 -1
  161. package/dist/components/{p-96469335.js → p-b0d7a2e6.js} +5 -8
  162. package/dist/components/p-b0d7a2e6.js.map +1 -0
  163. package/dist/components/{p-8ad720fa.js → p-b18e0a8b.js} +4 -4
  164. package/dist/components/{p-8ad720fa.js.map → p-b18e0a8b.js.map} +1 -1
  165. package/dist/components/{p-fa39a723.js → p-b354198d.js} +2 -2
  166. package/dist/components/{p-fa39a723.js.map → p-b354198d.js.map} +1 -1
  167. package/dist/components/{p-6da87c78.js → p-be6d380e.js} +2 -2
  168. package/dist/components/{p-6da87c78.js.map → p-be6d380e.js.map} +1 -1
  169. package/dist/components/{p-a74bdd1f.js → p-c05a03ab.js} +2 -2
  170. package/dist/components/{p-a74bdd1f.js.map → p-c05a03ab.js.map} +1 -1
  171. package/dist/components/{p-f7691a04.js → p-c4395e67.js} +4 -4
  172. package/dist/components/{p-f7691a04.js.map → p-c4395e67.js.map} +1 -1
  173. package/dist/components/{p-2fb54a15.js → p-c44bb76a.js} +7 -7
  174. package/dist/components/{p-2fb54a15.js.map → p-c44bb76a.js.map} +1 -1
  175. package/dist/components/{p-730c6db2.js → p-c9b93eb4.js} +10 -10
  176. package/dist/components/{p-730c6db2.js.map → p-c9b93eb4.js.map} +1 -1
  177. package/dist/components/{p-0a1466e3.js → p-cc608e51.js} +9 -8
  178. package/dist/components/p-cc608e51.js.map +1 -0
  179. package/dist/components/{p-092b23d2.js → p-d2471133.js} +6 -6
  180. package/dist/components/{p-092b23d2.js.map → p-d2471133.js.map} +1 -1
  181. package/dist/components/{p-399bba68.js → p-d2ea52c8.js} +15 -15
  182. package/dist/components/{p-399bba68.js.map → p-d2ea52c8.js.map} +1 -1
  183. package/dist/components/{p-82c01297.js → p-d471066b.js} +107 -115
  184. package/dist/components/p-d471066b.js.map +1 -0
  185. package/dist/components/{p-cfe2cdab.js → p-d5eb1c4b.js} +13 -13
  186. package/dist/components/{p-cfe2cdab.js.map → p-d5eb1c4b.js.map} +1 -1
  187. package/dist/components/{p-0bed7501.js → p-df119a54.js} +5 -5
  188. package/dist/components/{p-0bed7501.js.map → p-df119a54.js.map} +1 -1
  189. package/dist/components/{p-876d64b3.js → p-e057cdb7.js} +2 -2
  190. package/dist/components/{p-876d64b3.js.map → p-e057cdb7.js.map} +1 -1
  191. package/dist/components/{p-96e2307f.js → p-e40f6d2b.js} +14 -14
  192. package/dist/components/{p-96e2307f.js.map → p-e40f6d2b.js.map} +1 -1
  193. package/dist/components/{p-5d416ccf.js → p-e51b6e5f.js} +14 -14
  194. package/dist/components/{p-5d416ccf.js.map → p-e51b6e5f.js.map} +1 -1
  195. package/dist/components/{p-e92eb120.js → p-ebf469aa.js} +38 -49
  196. package/dist/components/p-ebf469aa.js.map +1 -0
  197. package/dist/components/{p-005e85db.js → p-eccf7b48.js} +14 -14
  198. package/dist/components/{p-005e85db.js.map → p-eccf7b48.js.map} +1 -1
  199. package/dist/components/{p-dfc5f0b7.js → p-ecf6da6a.js} +2 -2
  200. package/dist/components/{p-dfc5f0b7.js.map → p-ecf6da6a.js.map} +1 -1
  201. package/dist/components/{p-26b64015.js → p-ee8127cd.js} +6 -6
  202. package/dist/components/{p-26b64015.js.map → p-ee8127cd.js.map} +1 -1
  203. package/dist/components/{p-62833e92.js → p-eed0cef2.js} +13 -13
  204. package/dist/components/{p-62833e92.js.map → p-eed0cef2.js.map} +1 -1
  205. package/dist/components/{p-f40a3efd.js → p-f1979b62.js} +2 -2
  206. package/dist/components/{p-f40a3efd.js.map → p-f1979b62.js.map} +1 -1
  207. package/dist/components/{p-e572ff39.js → p-f54bc7fc.js} +2 -2
  208. package/dist/components/{p-e572ff39.js.map → p-f54bc7fc.js.map} +1 -1
  209. package/dist/components/{p-531fa770.js → p-fa34f451.js} +3 -3
  210. package/dist/components/{p-531fa770.js.map → p-fa34f451.js.map} +1 -1
  211. package/dist/components/{p-d9b2d6c1.js → p-fa4fbcc0.js} +19 -19
  212. package/dist/components/{p-d9b2d6c1.js.map → p-fa4fbcc0.js.map} +1 -1
  213. package/dist/components/{p-76076037.js → p-fe1bc9d5.js} +2 -2
  214. package/dist/components/{p-76076037.js.map → p-fe1bc9d5.js.map} +1 -1
  215. package/dist/components/{p-31873e1c.js → p-fe67f064.js} +30 -30
  216. package/dist/components/{p-31873e1c.js.map → p-fe67f064.js.map} +1 -1
  217. package/dist/components/smoothly-app-demo.js +80 -80
  218. package/dist/components/smoothly-app-room.js +1 -1
  219. package/dist/components/smoothly-app.js +1 -1
  220. package/dist/components/smoothly-back-to-top.js +1 -1
  221. package/dist/components/smoothly-burger.js +1 -1
  222. package/dist/components/smoothly-button-confirm.js +1 -1
  223. package/dist/components/smoothly-button-demo.js +1 -1
  224. package/dist/components/smoothly-button.js +1 -1
  225. package/dist/components/smoothly-calendar.js +1 -1
  226. package/dist/components/smoothly-checkbox.js +1 -1
  227. package/dist/components/smoothly-checkbox.js.map +1 -1
  228. package/dist/components/smoothly-country.js +3 -3
  229. package/dist/components/smoothly-country.js.map +1 -1
  230. package/dist/components/smoothly-dialog-demo.js +1 -1
  231. package/dist/components/smoothly-dialog.js +1 -1
  232. package/dist/components/smoothly-display-demo-json.js +1 -1
  233. package/dist/components/smoothly-display-demo.js +1 -1
  234. package/dist/components/smoothly-display-json-object.js +1 -1
  235. package/dist/components/smoothly-display-json.js +1 -1
  236. package/dist/components/smoothly-display.js +1 -1
  237. package/dist/components/smoothly-filter-field.js +1 -1
  238. package/dist/components/smoothly-filter-input.js +1 -1
  239. package/dist/components/smoothly-filter-select.js +1 -1
  240. package/dist/components/smoothly-filter-toggle.js +1 -1
  241. package/dist/components/smoothly-filter.js +1 -1
  242. package/dist/components/smoothly-form-demo-all.js +1 -1
  243. package/dist/components/smoothly-form-demo-card.js +1 -1
  244. package/dist/components/smoothly-form-demo-controlled.js +1 -1
  245. package/dist/components/smoothly-form-demo-date-range.js +1 -1
  246. package/dist/components/smoothly-form-demo-date.js +1 -1
  247. package/dist/components/smoothly-form-demo-login.js +1 -1
  248. package/dist/components/smoothly-form-demo-pet.js +1 -1
  249. package/dist/components/smoothly-form-demo-prices.js +1 -1
  250. package/dist/components/smoothly-form-demo-transparent.js +1 -1
  251. package/dist/components/smoothly-form-demo-typed.js +1 -1
  252. package/dist/components/smoothly-form-demo.js +1 -1
  253. package/dist/components/smoothly-form.js +1 -1
  254. package/dist/components/smoothly-frame.js +1 -1
  255. package/dist/components/smoothly-icon-demo.js +1 -1
  256. package/dist/components/smoothly-icon.js +1 -1
  257. package/dist/components/smoothly-input-checkbox-demo.js +25 -25
  258. package/dist/components/smoothly-input-checkbox.js +1 -1
  259. package/dist/components/smoothly-input-clear.js +1 -1
  260. package/dist/components/smoothly-input-color-demo.js +1 -1
  261. package/dist/components/smoothly-input-color.js +1 -1
  262. package/dist/components/smoothly-input-date-range.js +1 -1
  263. package/dist/components/smoothly-input-date.js +1 -1
  264. package/dist/components/smoothly-input-demo-standard.js +1 -1
  265. package/dist/components/smoothly-input-demo.js +1 -1
  266. package/dist/components/smoothly-input-edit.js +1 -1
  267. package/dist/components/smoothly-input-file.js +1 -1
  268. package/dist/components/smoothly-input-month.js +1 -1
  269. package/dist/components/smoothly-input-price-demo.js +1 -1
  270. package/dist/components/smoothly-input-radio-item.js +1 -1
  271. package/dist/components/smoothly-input-radio.js +1 -1
  272. package/dist/components/smoothly-input-range-demo.js +1 -1
  273. package/dist/components/smoothly-input-range.js +1 -1
  274. package/dist/components/smoothly-input-reset.js +1 -1
  275. package/dist/components/smoothly-input-select.js +1 -1
  276. package/dist/components/smoothly-input-submit.js +1 -1
  277. package/dist/components/smoothly-input.js +1 -1
  278. package/dist/components/smoothly-modal.js +1 -1
  279. package/dist/components/smoothly-next-demo-colspan.js +1 -1
  280. package/dist/components/smoothly-next-demo-group.js +1 -1
  281. package/dist/components/smoothly-next-demo-nested-inner.js +1 -1
  282. package/dist/components/smoothly-next-demo-nested.js +1 -1
  283. package/dist/components/smoothly-next-demo-simple.js +1 -1
  284. package/dist/components/smoothly-next-demo.js +1 -1
  285. package/dist/components/smoothly-next-table-demo-filtered.js +1 -1
  286. package/dist/components/smoothly-next-table-head.js +1 -1
  287. package/dist/components/smoothly-notification.js +1 -1
  288. package/dist/components/smoothly-notifier.js +1 -1
  289. package/dist/components/smoothly-submit.js +1 -1
  290. package/dist/components/smoothly-summary.js +1 -1
  291. package/dist/components/smoothly-tab.js +1 -1
  292. package/dist/components/smoothly-table-cell.js +1 -1
  293. package/dist/components/smoothly-table-demo-filtered.js +1 -1
  294. package/dist/components/smoothly-table-demo.js +1 -1
  295. package/dist/components/smoothly-table-expandable-cell.js +1 -1
  296. package/dist/components/smoothly-table-testing.js +1 -1
  297. package/dist/components/smoothly-tabs-demo.js +1 -1
  298. package/dist/components/smoothly-theme-demo.js +1 -1
  299. package/dist/components/smoothly-theme-guide.js +1 -1
  300. package/dist/components/smoothly-theme-picker.js +1 -1
  301. package/dist/components/smoothly-toggle-switch-demo.js +1 -1
  302. package/dist/components/smoothly-toggle-switch.js +1 -1
  303. package/dist/components/smoothly-trigger-sink.js +2 -2
  304. package/dist/components/smoothly-trigger-source.js +2 -2
  305. package/dist/esm/{Scrollable-94b2c80b.js → Scrollable-93e46f30.js} +17 -388
  306. package/dist/esm/Scrollable-93e46f30.js.map +1 -0
  307. package/dist/{components/p-99f89f10.js → esm/TimeZone-52285537.js} +2933 -1729
  308. package/dist/esm/TimeZone-52285537.js.map +1 -0
  309. package/dist/esm/{en-bacb390d.js → en-6e8712b5.js} +2 -2
  310. package/dist/esm/{en-bacb390d.js.map → en-6e8712b5.js.map} +1 -1
  311. package/dist/esm/index.js +2 -2
  312. package/dist/esm/smoothly-app_107.entry.js +52 -65
  313. package/dist/esm/smoothly-app_107.entry.js.map +1 -1
  314. package/dist/esm/smoothly-checkbox.entry.js.map +1 -1
  315. package/dist/esm/smoothly-country.entry.js +3 -3
  316. package/dist/esm/smoothly-country.entry.js.map +1 -1
  317. package/dist/esm/smoothly-input-checkbox-demo.entry.js +1 -1
  318. package/dist/esm/smoothly-trigger-sink.entry.js +2 -2
  319. package/dist/esm/smoothly-trigger-source.entry.js +2 -2
  320. package/dist/smoothly/index.esm.js +1 -1
  321. package/dist/smoothly/p-152fd0d7.entry.js.map +1 -1
  322. package/dist/smoothly/{p-cf245e8a.js → p-2257be8c.js} +2 -2
  323. package/dist/smoothly/{p-9bfe8aba.entry.js → p-2512c689.entry.js} +2 -2
  324. package/dist/smoothly/p-34d144e8.js +2 -0
  325. package/dist/smoothly/p-34d144e8.js.map +1 -0
  326. package/dist/smoothly/{p-e9cd0cd0.entry.js → p-3ede8604.entry.js} +2 -2
  327. package/dist/smoothly/p-3ede8604.entry.js.map +1 -0
  328. package/dist/smoothly/p-6d7ee489.js +2 -0
  329. package/dist/smoothly/p-6d7ee489.js.map +1 -0
  330. package/dist/smoothly/{p-5ff5fc57.entry.js → p-87ae07b2.entry.js} +2 -2
  331. package/dist/smoothly/{p-83ce9999.entry.js → p-ac6fb4e4.entry.js} +2 -2
  332. package/dist/smoothly/p-e0bfc64f.entry.js +2 -0
  333. package/dist/smoothly/p-e0bfc64f.entry.js.map +1 -0
  334. package/dist/smoothly/smoothly.esm.js +1 -1
  335. package/dist/types/components/calendar/generate.d.ts +1 -1
  336. package/dist/types/components/calendar/index.d.ts +14 -14
  337. package/dist/types/components/checkbox/translation/index.d.ts +2 -2
  338. package/dist/types/components/country/index.d.ts +3 -3
  339. package/dist/types/components/display/index.d.ts +6 -6
  340. package/dist/types/components/filter/Filter.d.ts +3 -3
  341. package/dist/types/components/form/demo/typed/Contact.d.ts +1 -1
  342. package/dist/types/components/input/Editable.d.ts +2 -2
  343. package/dist/types/components/input/Input.d.ts +2 -2
  344. package/dist/types/components/input/Looks.d.ts +2 -2
  345. package/dist/types/components/input/date/index.d.ts +8 -8
  346. package/dist/types/components/input/radio/Selected.d.ts +1 -1
  347. package/dist/types/components/item/Item.d.ts +2 -2
  348. package/dist/types/components.d.ts +45 -45
  349. package/dist/types/model/Color/HSL.d.ts +1 -1
  350. package/dist/types/model/Color/RGB.d.ts +1 -1
  351. package/dist/types/model/Color/index.d.ts +2 -2
  352. package/dist/types/model/Submit.d.ts +1 -1
  353. package/package.json +20 -46
  354. package/dist/cjs/Scrollable-a60d6091.js.map +0 -1
  355. package/dist/cjs/TimeZone-45bcd855.js.map +0 -1
  356. package/dist/collection/components/input/index.e2e.js +0 -52
  357. package/dist/collection/components/input/index.e2e.js.map +0 -1
  358. package/dist/components/p-0a1466e3.js.map +0 -1
  359. package/dist/components/p-43b0c35c.js.map +0 -1
  360. package/dist/components/p-58c24d57.js.map +0 -1
  361. package/dist/components/p-82c01297.js.map +0 -1
  362. package/dist/components/p-918ddb21.js.map +0 -1
  363. package/dist/components/p-96469335.js.map +0 -1
  364. package/dist/components/p-99f89f10.js.map +0 -1
  365. package/dist/components/p-ca19ed60.js.map +0 -1
  366. package/dist/components/p-e92eb120.js.map +0 -1
  367. package/dist/esm/Scrollable-94b2c80b.js.map +0 -1
  368. package/dist/esm/TimeZone-7b25e3f9.js.map +0 -1
  369. package/dist/smoothly/p-05e38ae2.js +0 -2
  370. package/dist/smoothly/p-05e38ae2.js.map +0 -1
  371. package/dist/smoothly/p-32d55e4c.entry.js +0 -2
  372. package/dist/smoothly/p-32d55e4c.entry.js.map +0 -1
  373. package/dist/smoothly/p-99846f9b.js +0 -2
  374. package/dist/smoothly/p-99846f9b.js.map +0 -1
  375. package/dist/smoothly/p-e9cd0cd0.entry.js.map +0 -1
  376. /package/dist/smoothly/{p-cf245e8a.js.map → p-2257be8c.js.map} +0 -0
  377. /package/dist/smoothly/{p-9bfe8aba.entry.js.map → p-2512c689.entry.js.map} +0 -0
  378. /package/dist/smoothly/{p-5ff5fc57.entry.js.map → p-87ae07b2.entry.js.map} +0 -0
  379. /package/dist/smoothly/{p-83ce9999.entry.js.map → p-ac6fb4e4.entry.js.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-f765921a.js';
2
- import { a as any } from './p-96469335.js';
3
- import { o as object, b as boolean } from './p-82c01297.js';
4
- import { i as islyFunction } from './p-ca19ed60.js';
5
- import { I as Input } from './p-c5519ec1.js';
6
- import { d as defineCustomElement$2 } from './p-f8b6cc8e.js';
2
+ import { a as any } from './p-b0d7a2e6.js';
3
+ import { o as object, b as boolean } from './p-d471066b.js';
4
+ import { i as islyFunction } from './p-8e1e509d.js';
5
+ import { I as Input } from './p-80b231e3.js';
6
+ import { d as defineCustomElement$2 } from './p-1ccb9b5d.js';
7
7
  import { d as defineCustomElement$1 } from './p-88442020.js';
8
8
 
9
9
  var Item;
@@ -395,4 +395,4 @@ defineCustomElement();
395
395
 
396
396
  export { SmoothlyInputSelect as S, defineCustomElement as d };
397
397
 
398
- //# sourceMappingURL=p-092b23d2.js.map
398
+ //# sourceMappingURL=p-d2471133.js.map
@@ -1 +1 @@
1
- {"file":"p-092b23d2.js","mappings":"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","names":["isly.object","isly.any","isly.boolean","isly.function"],"sources":["src/components/item/Item.ts","src/components/input/select/style.css?tag=smoothly-input-select&encapsulation=scoped","src/components/input/select/index.tsx"],"sourcesContent":["import { isly } from \"isly\"\n\nexport interface Item extends Item.Element {}\n\nexport namespace Item {\n\texport interface Element {\n\t\tvalue: any\n\t\tselected?: boolean\n\t\tdeselectable: boolean\n\t\tfilter: (filter: string) => Promise<void>\n\t}\n\texport namespace Element {\n\t\texport const type = isly.object<Element>({\n\t\t\tvalue: isly.any(),\n\t\t\tdeselectable: isly.boolean(),\n\t\t\tselected: isly.boolean().optional(),\n\t\t\tfilter: isly.function(),\n\t\t})\n\t\texport const is = type.is\n\t}\n\texport const type = Element.type.extend<Item>({})\n\texport const is = type.is\n}\n","@import \"../shared.css\";\n\n:host {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tflex-direction: row;\n\tposition: relative;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tcolor: rgb(var(--smoothly-input-foreground));\n\tfill: rgb(var(--smoothly-input-foreground));\n\tstroke: rgb(var(--smoothly-input-foreground));\n\tpadding: 0 var(--input-padding-side);\n}\n\n:host.open {\n\tborder-radius: var(--smoothly-input-border-radius) var(--smoothly-input-border-radius) 0 0;\n}\n\n:host.icon {\n\twidth: fit-content;\n\tflex-direction: column;\n}\n\n:host>div.select-display {\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tcursor: pointer;\n\tpadding: var(--input-value-padding-top) 0 var(--input-value-padding-bottom) 0;\n\toverflow: hidden;\n\twidth: 100%;\n\twhite-space: nowrap;\n\tgap: 1rem;\n\ttext-overflow: ellipsis;\n}\n\n:host:not(:has([slot=label]))>div.select-display,\n:host:not([show-label])>div.select-display {\n\tpadding: .6em 0;\n\talign-items: center;\n}\n\n:host[readonly]>div.select-display {\n\tcursor: not-allowed;\n}\n\n:host>div.select-display smoothly-icon {\n\tcolor: rgb(var(--smoothly-input-foreground));\n\tfill: rgb(var(--smoothly-input-foreground));\n\tstroke: rgb(var(--smoothly-input-foreground));\n}\n\n:host>div.icons {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tmargin-right: .2em;\n}\n\n:host>div.icons::slotted(smoothly-icon):not(\"color\") {\n\tcolor: rgb(var(--smoothly-input-foreground));\n\tfill: rgb(var(--smoothly-input-foreground));\n\tstroke: rgb(var(--smoothly-input-foreground));\n\tfilter: opacity(60%);\n\n}\n\n:host:hover>div.icons::slotted(smoothly-icon) {\n\tfilter: opacity(100%);\n}\n\n:host>div.icons>smoothly-icon[name=caret-down-outline],\n:host>div.icons>smoothly-icon[name=caret-forward-outline] {\n\topacity: .7;\n\tcursor: pointer;\n}\n\n:host.invalid>div>smoothly-icon.invalid {\n\tdisplay: block;\n}\n\n:host>div>smoothly-icon.invalid {\n\tdisplay: none\n}\n\n:host>div.icons::slotted(smoothly-input-reset) {\n\tpadding-right: .2em;\n}\n\n:host .label {\n\tleft: .5rem;\n}\n\n:host.has-value:has([slot=label]:not(:empty))>div.select-display,\n:host:not(.has-value)[placeholder]>div.select-display {\n\toverflow: hidden;\n\twidth: 100%;\n}\n\n:host>.options {\n\tdisplay: flex;\n\tflex-direction: column;\n\tposition: absolute;\n\ttop: var(--element-height);\n\tz-index: 10;\n\tmax-height: var(--menu-height, unset);\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tleft: 0;\n\tright: 0;\n\tborder-radius: 0 0 var(--smoothly-input-border-radius) var(--smoothly-input-border-radius);\n\tmin-width: fit-content;\n\tborder: rgb(var(--smoothly-input-border, var(--smoothly-color-contrast))) solid 1px;\n\tborder-top: rgba(var(--smoothly-input-border, var(--smoothly-color-contrast)), .4) solid 1px;\n}\n:host[looks=\"grid\"]>div.options,\n:host[looks=border]>div.options,\n:host[looks=\"transparent\"]>div.options {\n\tleft: -1px;\n\tright: -1px;\n}\n\n:host>div.options::slotted(smoothly-item) {\n\tpadding: .7em .7em .7em .25em;\n}\n\n:host>div.options::slotted(smoothly-item:not([selectable])) {\n\tdisplay: flex;\n\tgap: 1em;\n\tbackground-color: rgba(var(--smoothly-primary-tint), .5);\n\tcolor: var(--smoothly-color-contrast)\n}\n\n:host>div.options>smoothly-item:not([selectable])>smoothly-icon[name=\"backspace-outline\"] {\n\tmargin-left: auto;\n\tmargin-right: 0;\n}\n\n:host>div.options.hidden {\n\tdisplay: none;\n}\n\n:host.invalid>div>smoothly-icon {\n\tdisplay: block;\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tState,\n\tVNode,\n\tWatch,\n} from \"@stencil/core\"\nimport { Color, Data } from \"../../../model\"\nimport { Item } from \"../../item/Item\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-select\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputSelect implements Input, Editable, Clearable, ComponentWillLoad {\n\tparent: Editable | undefined\n\tprivate initialValue: HTMLSmoothlyItemElement[] = []\n\tprivate initialValueHandled = false\n\tprivate listener: { changed?: (parent: Editable) => Promise<void> } = {}\n\tprivate displaySelectedElement?: HTMLElement\n\tprivate iconsDiv?: HTMLElement\n\tprivate toggle?: HTMLElement\n\tprivate optionsDiv?: HTMLDivElement\n\tprivate items: HTMLSmoothlyItemElement[] = []\n\tprivate itemHeight: number | undefined\n\t@Element() element: HTMLSmoothlyInputSelectElement\n\t@Prop() invalid?: boolean = false\n\t@Prop({ reflect: true }) name = \"selected\"\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop({ reflect: true, mutable: true }) showSelected?: boolean = true\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop({ reflect: true }) inCalendar = false\n\t@Prop({ reflect: true }) ordered?: boolean\n\t@Prop() multiple = false\n\t@Prop() clearable = true\n\t@Prop({ mutable: true }) changed = false\n\t@Prop({ mutable: true }) defined = false\n\t@Prop({ reflect: true }) placeholder?: string | any\n\t@Prop() menuHeight?: `${number}${\"items\" | \"rem\" | \"px\" | \"vh\"}`\n\t@Prop() required = false\n\t@Prop() searchDisabled = false\n\t@Prop() mutable = false\n\tprivate lastOpen = false\n\t@State() open = false\n\t@State() selected: HTMLSmoothlyItemElement[] = []\n\t@State() filter = \"\"\n\t@State() addedItems: HTMLSmoothlyItemElement[] = []\n\t@Event() smoothlyInput: EventEmitter<Data>\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\t@Event() smoothlyItemSelect: EventEmitter<HTMLSmoothlyItemElement>\n\n\tcomponentWillLoad(): void | Promise<void> {\n\t\tthis.smoothlyInputLooks.emit(\n\t\t\t(looks, color) => ((this.looks = this.looks ?? looks), !this.color && (this.color = color))\n\t\t)\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.listener.changed?.(this)\n\t}\n\tcomponentDidLoad(): void | Promise<void> {\n\t\tthis.selected && !this.initialValueHandled && (this.initialValue = [...this.selected])\n\t\tthis.initialValueHandled = true\n\t\tthis.onSelectedChange()\n\t}\n\tcomponentDidRender(): void | Promise<void> {\n\t\tthis.itemHeight === undefined && (this.itemHeight = this.items.find(item => item.clientHeight > 0)?.clientHeight)\n\t\tif (this.menuHeight && this.itemHeight) {\n\t\t\tthis.element?.style.setProperty(\n\t\t\t\t\"--menu-height\",\n\t\t\t\t!this.menuHeight.endsWith(\"items\") || this.items.length == 0\n\t\t\t\t\t? this.menuHeight\n\t\t\t\t\t: `${this.itemHeight * +(this.menuHeight.match(/^(\\d+(\\.\\d+)?|\\.\\d+)/g)?.[0] ?? \"10\")}px`\n\t\t\t)\n\t\t}\n\t\tthis.element?.style.setProperty(\"--element-height\", `${this.element.clientHeight}px`)\n\n\t\tif (this.ordered && !this.multiple && this.open && !this.lastOpen) {\n\t\t\tthis.scrollToSelected()\n\t\t}\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<any | any[] | undefined> {\n\t\treturn !this.multiple && this.selected[0]\n\t\t\t? this.selected[0].value\n\t\t\t: this.multiple && this.selected.length > 0\n\t\t\t? this.selected.map(item => item.value)\n\t\t\t: undefined\n\t}\n\t@Method()\n\tasync getItems(): Promise<HTMLSmoothlyItemElement[]> {\n\t\treturn this.items\n\t}\n\t@Method()\n\tasync listen(property: \"changed\", listener: (parent: Editable) => Promise<void>): Promise<void> {\n\t\tthis.listener[property] = listener\n\t\tlistener(this)\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tthis.selected.forEach(item => (item.selected = item.hidden = false))\n\t\tthis.initialValue.forEach(item => (item.selected = true))\n\t\tthis.selected = [...this.initialValue]\n\t\tthis.displaySelected()\n\t\tthis.changed = false\n\t\tthis.open && this.handleShowOptions()\n\t}\n\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tif (this.clearable) {\n\t\t\tthis.selected.forEach(item => (item.selected = item.hidden = false))\n\t\t\tthis.selected = []\n\t\t\tif (this.displaySelectedElement) {\n\t\t\t\tthis.displaySelectedElement.innerHTML = this.placeholder ?? \"\"\n\t\t\t}\n\t\t}\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.changed = false\n\t\tthis.initialValue = [...this.selected]\n\t}\n\t@Watch(\"selected\")\n\tasync onSelectedChange() {\n\t\tthis.initialValueHandled && (this.changed = !this.areValuesEqual(this.selected, this.initialValue))\n\t\tthis.defined = this.selected.length > 0\n\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\tthis.listener.changed?.(this)\n\t}\n\t@Watch(\"required\")\n\tonRequiredChange(): void {\n\t\tthis.items.forEach(item => (item.deselectable = !this.required))\n\t}\n\t@Watch(\"filter\")\n\tasync onFilterChange(value: string): Promise<void> {\n\t\tvalue = value.toLowerCase()\n\t\tawait Promise.all(this.items.map(item => item.filter(value)))\n\t}\n\t@Watch(\"readonly\")\n\twatchingReadonly(): void {\n\t\tthis.listener.changed?.(this)\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tasync smoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputSelect) => void>): Promise<void> {\n\t\tif (\n\t\t\tevent.target &&\n\t\t\t((\"name\" in event.target && event.target.name !== this.name) ||\n\t\t\t\t(event.composedPath().some(e => e == this.iconsDiv) && !event.composedPath().some(e => e == this.toggle)))\n\t\t) {\n\t\t\tevent.stopPropagation()\n\t\t} else if (Item.Element.is(event.target)) {\n\t\t\tevent.stopPropagation()\n\t\t\tevent.target.deselectable = !this.required\n\t\t\tthis.items.push(event.target as HTMLSmoothlyItemElement)\n\t\t}\n\t\tevent.detail(this)\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tonWindowClick(event: Event): void {\n\t\t!event.composedPath().includes(this.element) && this.open && this.handleShowOptions()\n\t}\n\t@Listen(\"smoothlyItemSelect\")\n\tonItemSelect(event: CustomEvent<HTMLSmoothlyItemElement>): void {\n\t\tevent.stopPropagation()\n\t\tif (this.multiple) {\n\t\t\tthis.selected = event.detail.selected\n\t\t\t\t? [...this.selected, event.detail]\n\t\t\t\t: this.selected.filter(item => item.selected)\n\t\t} else if (event.detail.selected || !this.items.some(e => e.selected)) {\n\t\t\tthis.selected[0] && (this.selected[0].hidden = this.selected[0].selected = false)\n\t\t\tthis.selected = !event.detail.selected ? this.selected.filter(item => item.selected) : [event.detail]\n\t\t\t!this.showSelected && event.detail.selected && (event.detail.hidden = true)\n\t\t}\n\t\tthis.displaySelected()\n\t}\n\t@Watch(\"open\")\n\tonClosed(open: boolean, before: boolean): void {\n\t\tthis.lastOpen = before\n\t\tif (!open) {\n\t\t\tconst markedItem = this.items.find(item => item.marked)\n\t\t\tif (markedItem) {\n\t\t\t\tmarkedItem.marked = false\n\t\t\t}\n\t\t}\n\t}\n\thandleShowOptions(event?: Event): void {\n\t\tconst wasButtonClicked =\n\t\t\tevent?.composedPath().some(e => e == this.iconsDiv) && !event.composedPath().some(e => e == this.toggle)\n\t\tconst clickedItem = event\n\t\t\t?.composedPath()\n\t\t\t.find((el): el is HTMLSmoothlyItemElement => \"tagName\" in el && el.tagName == \"SMOOTHLY-ITEM\")\n\t\t!this.readonly &&\n\t\t\t!(clickedItem && this.items.includes(clickedItem) && this.multiple) &&\n\t\t\t!wasButtonClicked &&\n\t\t\t(this.open = !this.open)\n\t\tthis.filter = \"\"\n\t}\n\tareValuesEqual(selected: HTMLSmoothlyItemElement[], initialValue: HTMLSmoothlyItemElement[]): boolean {\n\t\treturn selected.length === initialValue.length && initialValue.every(value => selected.includes(value))\n\t}\n\tdisplaySelected(): void {\n\t\tconst displayString: string = \"<div>\" + this.selected.map(option => option.innerHTML).join(\"</div><div>\") + \"</div>\"\n\t\tthis.displaySelectedElement &&\n\t\t\t(this.displaySelectedElement.innerHTML =\n\t\t\t\tthis.selected.length > 0 ? displayString : this.placeholder ? this.placeholder : \"\")\n\t}\n\t@Listen(\"keydown\")\n\tonKeyDown(event: KeyboardEvent) {\n\t\tif (!this.searchDisabled) {\n\t\t\tevent.stopPropagation()\n\t\t\tconst visibleItems = this.items.some(item => item.getAttribute(\"hidden\") === null)\n\t\t\tif (event.key != \"Tab\" && !event.ctrlKey && !event.metaKey)\n\t\t\t\tevent.preventDefault()\n\t\t\tif (this.open) {\n\t\t\t\tswitch (event.key) {\n\t\t\t\t\tcase \"ArrowUp\":\n\t\t\t\t\t\tvisibleItems && this.move(-1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"ArrowDown\":\n\t\t\t\t\t\tvisibleItems && this.move(1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Escape\":\n\t\t\t\t\t\tif (this.filter == \"\")\n\t\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Backspace\":\n\t\t\t\t\t\tthis.filter = this.filter.slice(0, -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Enter\":\n\t\t\t\t\t\tconst result = this.items.find(item => item.marked)\n\t\t\t\t\t\tif (result?.value)\n\t\t\t\t\t\t\tresult.selected = !result.selected\n\t\t\t\t\t\tif (!this.multiple) {\n\t\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Tab\":\n\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (event.key.length == 1)\n\t\t\t\t\t\t\tthis.filter += event.key\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (event.key) {\n\t\t\t\t\tcase \"Enter\":\n\t\t\t\t\tcase \" \":\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"ArrowDown\":\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tthis.move(1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"ArrowUp\":\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tthis.move(-1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Tab\":\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tif (event.key.length == 1)\n\t\t\t\t\t\t\tthis.filter += event.key\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tprivate scrollToSelected() {\n\t\tconst selectedItem = this.items.find(item => item.selected)\n\t\tif (selectedItem) {\n\t\t\tthis.items.map(item => (item.marked = false))\n\t\t\tselectedItem.marked = true\n\t\t\tthis.scrollTo(selectedItem, \"instant\")\n\t\t}\n\t}\n\tprivate move(direction: -1 | 1): void {\n\t\tlet markedIndex = this.items.findIndex(item => item.marked)\n\t\tif (markedIndex == -1)\n\t\t\tmarkedIndex = 0\n\t\telse {\n\t\t\tthis.items[markedIndex].marked = false\n\t\t\tmarkedIndex = (markedIndex + direction + this.items.length) % this.items.length\n\t\t}\n\t\tif (this.items.some(item => !item.hidden))\n\t\t\twhile (this.items[markedIndex].hidden) {\n\t\t\t\tmarkedIndex = (markedIndex + direction + this.items.length) % this.items.length\n\t\t\t}\n\t\tthis.items[markedIndex].marked = true\n\t\tthis.scrollTo(this.items[markedIndex], \"smooth\")\n\t}\n\tprivate scrollTo(item: HTMLSmoothlyItemElement, behavior?: \"instant\" | \"smooth\") {\n\t\tthis.optionsDiv?.scrollTo({\n\t\t\ttop: item.offsetTop + item.offsetHeight / 2 - (this.optionsDiv?.clientHeight ?? 0) / 2,\n\t\t\tbehavior,\n\t\t})\n\t}\n\tprivate addItem() {\n\t\tthis.addedItems = this.addedItems.concat(\n\t\t\t<smoothly-item value={this.filter} selected>\n\t\t\t\t{this.filter}\n\t\t\t</smoothly-item>\n\t\t)\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\ttabIndex={0}\n\t\t\t\tclass={{ \"has-value\": this.selected.length !== 0, open: this.open, invalid: !!this.invalid }}\n\t\t\t\tonClick={(event: Event) => this.handleShowOptions(event)}>\n\t\t\t\t<div class=\"select-display\" ref={element => (this.displaySelectedElement = element)}>\n\t\t\t\t\t{this.placeholder}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"icons\" ref={element => (this.iconsDiv = element)}>\n\t\t\t\t\t<slot name=\"end\" />\n\t\t\t\t\t{this.looks == \"border\" && !this.readonly && (\n\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\tref={element => (this.toggle = element)}\n\t\t\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\t\t\tname={this.open ? \"caret-down-outline\" : \"caret-forward-outline\"}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t<smoothly-icon class=\"invalid\" name=\"alert-circle\" color=\"danger\" fill=\"clear\" size=\"small\" />\n\t\t\t\t</div>\n\t\t\t\t<slot name=\"label\" />\n\t\t\t\t<div class={{ hidden: !this.open, options: true }} ref={(el: HTMLDivElement) => (this.optionsDiv = el)}>\n\t\t\t\t\t{this.filter.length > 0 && (\n\t\t\t\t\t\t<smoothly-item selectable={false}>\n\t\t\t\t\t\t\t<smoothly-icon name=\"search-outline\" size=\"small\" />\n\t\t\t\t\t\t\t{this.filter}\n\t\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\t\tname=\"backspace-outline\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tonClick={e => {\n\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\t\t\t\tthis.element.focus()\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{this.mutable && (\n\t\t\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\t\t\tname=\"add\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={e => {\n\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\tthis.addItem()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t)}\n\t\t\t\t\t<slot />\n\t\t\t\t\t{this.addedItems}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"],"version":3}
1
+ {"file":"p-d2471133.js","mappings":"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","names":["isly.object","isly.any","isly.boolean","isly.function"],"sources":["src/components/item/Item.ts","src/components/input/select/style.css?tag=smoothly-input-select&encapsulation=scoped","src/components/input/select/index.tsx"],"sourcesContent":["import { isly } from \"isly\"\n\nexport interface Item extends Item.Element {}\n\nexport namespace Item {\n\texport interface Element {\n\t\tvalue: any\n\t\tselected?: boolean\n\t\tdeselectable: boolean\n\t\tfilter: (filter: string) => Promise<void>\n\t}\n\texport namespace Element {\n\t\texport const type = isly.object<Element>({\n\t\t\tvalue: isly.any(),\n\t\t\tdeselectable: isly.boolean(),\n\t\t\tselected: isly.boolean().optional(),\n\t\t\tfilter: isly.function(),\n\t\t})\n\t\texport const is = type.is\n\t}\n\texport const type = Element.type.extend<Item>({})\n\texport const is = type.is\n}\n","@import \"../shared.css\";\n\n:host {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tflex-direction: row;\n\tposition: relative;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tcolor: rgb(var(--smoothly-input-foreground));\n\tfill: rgb(var(--smoothly-input-foreground));\n\tstroke: rgb(var(--smoothly-input-foreground));\n\tpadding: 0 var(--input-padding-side);\n}\n\n:host.open {\n\tborder-radius: var(--smoothly-input-border-radius) var(--smoothly-input-border-radius) 0 0;\n}\n\n:host.icon {\n\twidth: fit-content;\n\tflex-direction: column;\n}\n\n:host>div.select-display {\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tcursor: pointer;\n\tpadding: var(--input-value-padding-top) 0 var(--input-value-padding-bottom) 0;\n\toverflow: hidden;\n\twidth: 100%;\n\twhite-space: nowrap;\n\tgap: 1rem;\n\ttext-overflow: ellipsis;\n}\n\n:host:not(:has([slot=label]))>div.select-display,\n:host:not([show-label])>div.select-display {\n\tpadding: .6em 0;\n\talign-items: center;\n}\n\n:host[readonly]>div.select-display {\n\tcursor: not-allowed;\n}\n\n:host>div.select-display smoothly-icon {\n\tcolor: rgb(var(--smoothly-input-foreground));\n\tfill: rgb(var(--smoothly-input-foreground));\n\tstroke: rgb(var(--smoothly-input-foreground));\n}\n\n:host>div.icons {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tmargin-right: .2em;\n}\n\n:host>div.icons::slotted(smoothly-icon):not(\"color\") {\n\tcolor: rgb(var(--smoothly-input-foreground));\n\tfill: rgb(var(--smoothly-input-foreground));\n\tstroke: rgb(var(--smoothly-input-foreground));\n\tfilter: opacity(60%);\n\n}\n\n:host:hover>div.icons::slotted(smoothly-icon) {\n\tfilter: opacity(100%);\n}\n\n:host>div.icons>smoothly-icon[name=caret-down-outline],\n:host>div.icons>smoothly-icon[name=caret-forward-outline] {\n\topacity: .7;\n\tcursor: pointer;\n}\n\n:host.invalid>div>smoothly-icon.invalid {\n\tdisplay: block;\n}\n\n:host>div>smoothly-icon.invalid {\n\tdisplay: none\n}\n\n:host>div.icons::slotted(smoothly-input-reset) {\n\tpadding-right: .2em;\n}\n\n:host .label {\n\tleft: .5rem;\n}\n\n:host.has-value:has([slot=label]:not(:empty))>div.select-display,\n:host:not(.has-value)[placeholder]>div.select-display {\n\toverflow: hidden;\n\twidth: 100%;\n}\n\n:host>.options {\n\tdisplay: flex;\n\tflex-direction: column;\n\tposition: absolute;\n\ttop: var(--element-height);\n\tz-index: 10;\n\tmax-height: var(--menu-height, unset);\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\tbackground-color: rgb(var(--smoothly-input-background));\n\tleft: 0;\n\tright: 0;\n\tborder-radius: 0 0 var(--smoothly-input-border-radius) var(--smoothly-input-border-radius);\n\tmin-width: fit-content;\n\tborder: rgb(var(--smoothly-input-border, var(--smoothly-color-contrast))) solid 1px;\n\tborder-top: rgba(var(--smoothly-input-border, var(--smoothly-color-contrast)), .4) solid 1px;\n}\n:host[looks=\"grid\"]>div.options,\n:host[looks=border]>div.options,\n:host[looks=\"transparent\"]>div.options {\n\tleft: -1px;\n\tright: -1px;\n}\n\n:host>div.options::slotted(smoothly-item) {\n\tpadding: .7em .7em .7em .25em;\n}\n\n:host>div.options::slotted(smoothly-item:not([selectable])) {\n\tdisplay: flex;\n\tgap: 1em;\n\tbackground-color: rgba(var(--smoothly-primary-tint), .5);\n\tcolor: var(--smoothly-color-contrast)\n}\n\n:host>div.options>smoothly-item:not([selectable])>smoothly-icon[name=\"backspace-outline\"] {\n\tmargin-left: auto;\n\tmargin-right: 0;\n}\n\n:host>div.options.hidden {\n\tdisplay: none;\n}\n\n:host.invalid>div>smoothly-icon {\n\tdisplay: block;\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tState,\n\tVNode,\n\tWatch,\n} from \"@stencil/core\"\nimport { Color, Data } from \"../../../model\"\nimport { Item } from \"../../item/Item\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-select\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputSelect implements Input, Editable, Clearable, ComponentWillLoad {\n\tparent: Editable | undefined\n\tprivate initialValue: HTMLSmoothlyItemElement[] = []\n\tprivate initialValueHandled = false\n\tprivate listener: { changed?: (parent: Editable) => Promise<void> } = {}\n\tprivate displaySelectedElement?: HTMLElement\n\tprivate iconsDiv?: HTMLElement\n\tprivate toggle?: HTMLElement\n\tprivate optionsDiv?: HTMLDivElement\n\tprivate items: HTMLSmoothlyItemElement[] = []\n\tprivate itemHeight: number | undefined\n\t@Element() element: HTMLSmoothlyInputSelectElement\n\t@Prop() invalid?: boolean = false\n\t@Prop({ reflect: true }) name = \"selected\"\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop({ reflect: true, mutable: true }) showSelected?: boolean = true\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop({ reflect: true }) inCalendar = false\n\t@Prop({ reflect: true }) ordered?: boolean\n\t@Prop() multiple = false\n\t@Prop() clearable = true\n\t@Prop({ mutable: true }) changed = false\n\t@Prop({ mutable: true }) defined = false\n\t@Prop({ reflect: true }) placeholder?: string | any\n\t@Prop() menuHeight?: `${number}${\"items\" | \"rem\" | \"px\" | \"vh\"}`\n\t@Prop() required = false\n\t@Prop() searchDisabled = false\n\t@Prop() mutable = false\n\tprivate lastOpen = false\n\t@State() open = false\n\t@State() selected: HTMLSmoothlyItemElement[] = []\n\t@State() filter = \"\"\n\t@State() addedItems: HTMLSmoothlyItemElement[] = []\n\t@Event() smoothlyInput: EventEmitter<Data>\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\t@Event() smoothlyItemSelect: EventEmitter<HTMLSmoothlyItemElement>\n\n\tcomponentWillLoad(): void | Promise<void> {\n\t\tthis.smoothlyInputLooks.emit(\n\t\t\t(looks, color) => ((this.looks = this.looks ?? looks), !this.color && (this.color = color))\n\t\t)\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.listener.changed?.(this)\n\t}\n\tcomponentDidLoad(): void | Promise<void> {\n\t\tthis.selected && !this.initialValueHandled && (this.initialValue = [...this.selected])\n\t\tthis.initialValueHandled = true\n\t\tthis.onSelectedChange()\n\t}\n\tcomponentDidRender(): void | Promise<void> {\n\t\tthis.itemHeight === undefined && (this.itemHeight = this.items.find(item => item.clientHeight > 0)?.clientHeight)\n\t\tif (this.menuHeight && this.itemHeight) {\n\t\t\tthis.element?.style.setProperty(\n\t\t\t\t\"--menu-height\",\n\t\t\t\t!this.menuHeight.endsWith(\"items\") || this.items.length == 0\n\t\t\t\t\t? this.menuHeight\n\t\t\t\t\t: `${this.itemHeight * +(this.menuHeight.match(/^(\\d+(\\.\\d+)?|\\.\\d+)/g)?.[0] ?? \"10\")}px`\n\t\t\t)\n\t\t}\n\t\tthis.element?.style.setProperty(\"--element-height\", `${this.element.clientHeight}px`)\n\n\t\tif (this.ordered && !this.multiple && this.open && !this.lastOpen) {\n\t\t\tthis.scrollToSelected()\n\t\t}\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected)\n\t\t\tawait this.unregister()\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<any | any[] | undefined> {\n\t\treturn !this.multiple && this.selected[0]\n\t\t\t? this.selected[0].value\n\t\t\t: this.multiple && this.selected.length > 0\n\t\t\t? this.selected.map(item => item.value)\n\t\t\t: undefined\n\t}\n\t@Method()\n\tasync getItems(): Promise<HTMLSmoothlyItemElement[]> {\n\t\treturn this.items\n\t}\n\t@Method()\n\tasync listen(property: \"changed\", listener: (parent: Editable) => Promise<void>): Promise<void> {\n\t\tthis.listener[property] = listener\n\t\tlistener(this)\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tthis.selected.forEach(item => (item.selected = item.hidden = false))\n\t\tthis.initialValue.forEach(item => (item.selected = true))\n\t\tthis.selected = [...this.initialValue]\n\t\tthis.displaySelected()\n\t\tthis.changed = false\n\t\tthis.open && this.handleShowOptions()\n\t}\n\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tif (this.clearable) {\n\t\t\tthis.selected.forEach(item => (item.selected = item.hidden = false))\n\t\t\tthis.selected = []\n\t\t\tif (this.displaySelectedElement) {\n\t\t\t\tthis.displaySelectedElement.innerHTML = this.placeholder ?? \"\"\n\t\t\t}\n\t\t}\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.changed = false\n\t\tthis.initialValue = [...this.selected]\n\t}\n\t@Watch(\"selected\")\n\tasync onSelectedChange() {\n\t\tthis.initialValueHandled && (this.changed = !this.areValuesEqual(this.selected, this.initialValue))\n\t\tthis.defined = this.selected.length > 0\n\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\tthis.listener.changed?.(this)\n\t}\n\t@Watch(\"required\")\n\tonRequiredChange(): void {\n\t\tthis.items.forEach(item => (item.deselectable = !this.required))\n\t}\n\t@Watch(\"filter\")\n\tasync onFilterChange(value: string): Promise<void> {\n\t\tvalue = value.toLowerCase()\n\t\tawait Promise.all(this.items.map(item => item.filter(value)))\n\t}\n\t@Watch(\"readonly\")\n\twatchingReadonly(): void {\n\t\tthis.listener.changed?.(this)\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tasync smoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputSelect) => void>): Promise<void> {\n\t\tif (\n\t\t\tevent.target &&\n\t\t\t((\"name\" in event.target && event.target.name !== this.name) ||\n\t\t\t\t(event.composedPath().some(e => e == this.iconsDiv) && !event.composedPath().some(e => e == this.toggle)))\n\t\t) {\n\t\t\tevent.stopPropagation()\n\t\t} else if (Item.Element.is(event.target)) {\n\t\t\tevent.stopPropagation()\n\t\t\tevent.target.deselectable = !this.required\n\t\t\tthis.items.push(event.target as HTMLSmoothlyItemElement)\n\t\t}\n\t\tevent.detail(this)\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tonWindowClick(event: Event): void {\n\t\t!event.composedPath().includes(this.element) && this.open && this.handleShowOptions()\n\t}\n\t@Listen(\"smoothlyItemSelect\")\n\tonItemSelect(event: CustomEvent<HTMLSmoothlyItemElement>): void {\n\t\tevent.stopPropagation()\n\t\tif (this.multiple) {\n\t\t\tthis.selected = event.detail.selected\n\t\t\t\t? [...this.selected, event.detail]\n\t\t\t\t: this.selected.filter(item => item.selected)\n\t\t} else if (event.detail.selected || !this.items.some(e => e.selected)) {\n\t\t\tthis.selected[0] && (this.selected[0].hidden = this.selected[0].selected = false)\n\t\t\tthis.selected = !event.detail.selected ? this.selected.filter(item => item.selected) : [event.detail]\n\t\t\t!this.showSelected && event.detail.selected && (event.detail.hidden = true)\n\t\t}\n\t\tthis.displaySelected()\n\t}\n\t@Watch(\"open\")\n\tonClosed(open: boolean, before: boolean): void {\n\t\tthis.lastOpen = before\n\t\tif (!open) {\n\t\t\tconst markedItem = this.items.find(item => item.marked)\n\t\t\tif (markedItem) {\n\t\t\t\tmarkedItem.marked = false\n\t\t\t}\n\t\t}\n\t}\n\thandleShowOptions(event?: Event): void {\n\t\tconst wasButtonClicked =\n\t\t\tevent?.composedPath().some(e => e == this.iconsDiv) && !event.composedPath().some(e => e == this.toggle)\n\t\tconst clickedItem = event\n\t\t\t?.composedPath()\n\t\t\t.find((el): el is HTMLSmoothlyItemElement => \"tagName\" in el && el.tagName == \"SMOOTHLY-ITEM\")\n\t\t!this.readonly &&\n\t\t\t!(clickedItem && this.items.includes(clickedItem) && this.multiple) &&\n\t\t\t!wasButtonClicked &&\n\t\t\t(this.open = !this.open)\n\t\tthis.filter = \"\"\n\t}\n\tareValuesEqual(selected: HTMLSmoothlyItemElement[], initialValue: HTMLSmoothlyItemElement[]): boolean {\n\t\treturn selected.length === initialValue.length && initialValue.every(value => selected.includes(value))\n\t}\n\tdisplaySelected(): void {\n\t\tconst displayString: string = \"<div>\" + this.selected.map(option => option.innerHTML).join(\"</div><div>\") + \"</div>\"\n\t\tthis.displaySelectedElement &&\n\t\t\t(this.displaySelectedElement.innerHTML =\n\t\t\t\tthis.selected.length > 0 ? displayString : this.placeholder ? this.placeholder : \"\")\n\t}\n\t@Listen(\"keydown\")\n\tonKeyDown(event: KeyboardEvent) {\n\t\tif (!this.searchDisabled) {\n\t\t\tevent.stopPropagation()\n\t\t\tconst visibleItems = this.items.some(item => item.getAttribute(\"hidden\") === null)\n\t\t\tif (event.key != \"Tab\" && !event.ctrlKey && !event.metaKey)\n\t\t\t\tevent.preventDefault()\n\t\t\tif (this.open) {\n\t\t\t\tswitch (event.key) {\n\t\t\t\t\tcase \"ArrowUp\":\n\t\t\t\t\t\tvisibleItems && this.move(-1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"ArrowDown\":\n\t\t\t\t\t\tvisibleItems && this.move(1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Escape\":\n\t\t\t\t\t\tif (this.filter == \"\")\n\t\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Backspace\":\n\t\t\t\t\t\tthis.filter = this.filter.slice(0, -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Enter\":\n\t\t\t\t\t\tconst result = this.items.find(item => item.marked)\n\t\t\t\t\t\tif (result?.value)\n\t\t\t\t\t\t\tresult.selected = !result.selected\n\t\t\t\t\t\tif (!this.multiple) {\n\t\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Tab\":\n\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (event.key.length == 1)\n\t\t\t\t\t\t\tthis.filter += event.key\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (event.key) {\n\t\t\t\t\tcase \"Enter\":\n\t\t\t\t\tcase \" \":\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"ArrowDown\":\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tthis.move(1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"ArrowUp\":\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tthis.move(-1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Tab\":\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tif (event.key.length == 1)\n\t\t\t\t\t\t\tthis.filter += event.key\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tprivate scrollToSelected() {\n\t\tconst selectedItem = this.items.find(item => item.selected)\n\t\tif (selectedItem) {\n\t\t\tthis.items.map(item => (item.marked = false))\n\t\t\tselectedItem.marked = true\n\t\t\tthis.scrollTo(selectedItem, \"instant\")\n\t\t}\n\t}\n\tprivate move(direction: -1 | 1): void {\n\t\tlet markedIndex = this.items.findIndex(item => item.marked)\n\t\tif (markedIndex == -1)\n\t\t\tmarkedIndex = 0\n\t\telse {\n\t\t\tthis.items[markedIndex].marked = false\n\t\t\tmarkedIndex = (markedIndex + direction + this.items.length) % this.items.length\n\t\t}\n\t\tif (this.items.some(item => !item.hidden))\n\t\t\twhile (this.items[markedIndex].hidden) {\n\t\t\t\tmarkedIndex = (markedIndex + direction + this.items.length) % this.items.length\n\t\t\t}\n\t\tthis.items[markedIndex].marked = true\n\t\tthis.scrollTo(this.items[markedIndex], \"smooth\")\n\t}\n\tprivate scrollTo(item: HTMLSmoothlyItemElement, behavior?: \"instant\" | \"smooth\") {\n\t\tthis.optionsDiv?.scrollTo({\n\t\t\ttop: item.offsetTop + item.offsetHeight / 2 - (this.optionsDiv?.clientHeight ?? 0) / 2,\n\t\t\tbehavior,\n\t\t})\n\t}\n\tprivate addItem() {\n\t\tthis.addedItems = this.addedItems.concat(\n\t\t\t<smoothly-item value={this.filter} selected>\n\t\t\t\t{this.filter}\n\t\t\t</smoothly-item>\n\t\t)\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\ttabIndex={0}\n\t\t\t\tclass={{ \"has-value\": this.selected.length !== 0, open: this.open, invalid: !!this.invalid }}\n\t\t\t\tonClick={(event: Event) => this.handleShowOptions(event)}>\n\t\t\t\t<div class=\"select-display\" ref={element => (this.displaySelectedElement = element)}>\n\t\t\t\t\t{this.placeholder}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"icons\" ref={element => (this.iconsDiv = element)}>\n\t\t\t\t\t<slot name=\"end\" />\n\t\t\t\t\t{this.looks == \"border\" && !this.readonly && (\n\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\tref={element => (this.toggle = element)}\n\t\t\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\t\t\tname={this.open ? \"caret-down-outline\" : \"caret-forward-outline\"}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t<smoothly-icon class=\"invalid\" name=\"alert-circle\" color=\"danger\" fill=\"clear\" size=\"small\" />\n\t\t\t\t</div>\n\t\t\t\t<slot name=\"label\" />\n\t\t\t\t<div class={{ hidden: !this.open, options: true }} ref={(el: HTMLDivElement) => (this.optionsDiv = el)}>\n\t\t\t\t\t{this.filter.length > 0 && (\n\t\t\t\t\t\t<smoothly-item selectable={false}>\n\t\t\t\t\t\t\t<smoothly-icon name=\"search-outline\" size=\"small\" />\n\t\t\t\t\t\t\t{this.filter}\n\t\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\t\tname=\"backspace-outline\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tonClick={e => {\n\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\t\t\t\tthis.element.focus()\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{this.mutable && (\n\t\t\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\t\t\tname=\"add\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={e => {\n\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\tthis.addItem()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t)}\n\t\t\t\t\t<slot />\n\t\t\t\t\t{this.addedItems}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"],"version":3}
@@ -1,26 +1,26 @@
1
1
  import { p as proxyCustomElement, H, h, d as Host } from './p-f765921a.js';
2
2
  import './p-caf09da9.js';
3
3
  import { f as filter } from './p-5ae9e20e.js';
4
- import { f as fetch, d as defineCustomElement$c } from './p-c5519ec1.js';
4
+ import { f as fetch, d as defineCustomElement$c } from './p-80b231e3.js';
5
5
  import { S as Selector } from './p-80ad9aac.js';
6
- import { d as defineCustomElement$m } from './p-58c24d57.js';
7
- import { d as defineCustomElement$l } from './p-938c06a2.js';
8
- import { d as defineCustomElement$k } from './p-76076037.js';
6
+ import { d as defineCustomElement$m } from './p-98279044.js';
7
+ import { d as defineCustomElement$l } from './p-5666c538.js';
8
+ import { d as defineCustomElement$k } from './p-fe1bc9d5.js';
9
9
  import { d as defineCustomElement$j } from './p-1826dd84.js';
10
10
  import { d as defineCustomElement$i } from './p-349fa13f.js';
11
- import { d as defineCustomElement$h } from './p-26b64015.js';
12
- import { d as defineCustomElement$g } from './p-292bffec.js';
13
- import { d as defineCustomElement$f } from './p-8362e6ea.js';
14
- import { d as defineCustomElement$e } from './p-f7691a04.js';
15
- import { d as defineCustomElement$d } from './p-a74bdd1f.js';
16
- import { d as defineCustomElement$b } from './p-f8b6cc8e.js';
17
- import { d as defineCustomElement$a } from './p-34b2eda8.js';
18
- import { d as defineCustomElement$9 } from './p-092b23d2.js';
11
+ import { d as defineCustomElement$h } from './p-ee8127cd.js';
12
+ import { d as defineCustomElement$g } from './p-89505ec7.js';
13
+ import { d as defineCustomElement$f } from './p-174e1154.js';
14
+ import { d as defineCustomElement$e } from './p-c4395e67.js';
15
+ import { d as defineCustomElement$d } from './p-c05a03ab.js';
16
+ import { d as defineCustomElement$b } from './p-1ccb9b5d.js';
17
+ import { d as defineCustomElement$a } from './p-9c8ff26d.js';
18
+ import { d as defineCustomElement$9 } from './p-d2471133.js';
19
19
  import { d as defineCustomElement$8 } from './p-88442020.js';
20
20
  import { d as defineCustomElement$7 } from './p-e32f8664.js';
21
21
  import { d as defineCustomElement$6 } from './p-cdd3d9d4.js';
22
- import { d as defineCustomElement$5 } from './p-fa39a723.js';
23
- import { d as defineCustomElement$4 } from './p-a08bf822.js';
22
+ import { d as defineCustomElement$5 } from './p-b354198d.js';
23
+ import { d as defineCustomElement$4 } from './p-6b3ea12e.js';
24
24
  import { d as defineCustomElement$3 } from './p-2f1fce2c.js';
25
25
  import { d as defineCustomElement$2 } from './p-98425f42.js';
26
26
  import { d as defineCustomElement$1 } from './p-bc36484d.js';
@@ -207,4 +207,4 @@ defineCustomElement();
207
207
 
208
208
  export { TableDemoFiltered as T, defineCustomElement as d };
209
209
 
210
- //# sourceMappingURL=p-399bba68.js.map
210
+ //# sourceMappingURL=p-d2ea52c8.js.map
@@ -1 +1 @@
1
- {"file":"p-399bba68.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,QAAQ,GAAG,uMAAuM,CAAC;AACzN,wCAAe,QAAQ;;MCUV,iBAAiB;;;;wBACa,EAAE;;wBAET,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;;IAE3D,cAAc,CAAC,KAAwC;QACtD,KAAK,CAAC,eAAe,EAAE,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAA;KAC5B;IAED,oBAAoB,CAAC,KAAuC;QAC3D,KAAK,CAAC,eAAe,EAAE,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;KAClD;IAED,MAAM,iBAAiB;QACtB,MAAM,QAAQ,GAAG,MAAMA,KAAU,CAAC,uCAAuC,CAAC,CAAA;QAC1E,IAAI,CAAC,IAAI;YACR,QAAQ,CAAC,MAAM,IAAI,GAAG;gBACtB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ;;oBAAK,wCACzC,GAAG,KACN,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9D,MAAM,kCAAO,GAAG,KAAE,KAAK,EAAE,MAAA,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,mCAAI,EAAE,KACjD,KAAK,EAAE,MAAA,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,mCAAI,EAAE,KAC9B;iBAAA,CAAC,CAAA;KACJ;IAED,MAAM;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAIC,MAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACtE,QACC,EAAC,IAAI,uDACJ,0EACC,+EACC,UAAU,EAAE,EAAE,CAAC,gBAAgB,GAAG,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EACvD,IAAI,EAAC,KAAK,EACV,OAAO,EAAC,eAAe,EACvB,IAAI,EAAC,KAAK,GACT,EACF,+EACC,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAC5C,IAAI,EAAC,KAAK,EACV,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,KAAK,GACT,EACF,+EACC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EACjD,IAAI,EAAC,iBAAiB,EACtB,OAAO,EAAC,mBAAmB,EAC3B,IAAI,EAAC,KAAK,GACT,EACF,+EACC,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EACrC,GAAG,QACH,MAAM,QACN,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,cAAc,EACtB,IAAI,EAAC,KAAK,GACT,EACF,+EAAwB,KAAK,EAAC,MAAM,EAAC,QAAQ,EAAC,aAAa,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,EAAE,KAAK,IACpF,IAAI,CAAC,IAAI;YACT,MAAM,CAAC,MAAM,CACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CACf,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,mCAAQ,CAAC,KAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,MAAK,CAAC,CAAC,EAC/D,EAAE,CACF,CACD,CAAC,GAAG,CACJ,GAAG;;gBACF,OAAA,CAAA,MAAA,GAAG,CAAC,MAAM,0CAAE,IAAI,MACf,qBAAe,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,IAChD,GAAG,CAAC,MAAM,CAAC,IAAI,CACD,CAChB,CAAA;aAAA,CACF,CACsB,EACzB,4DAAK,IAAI,EAAC,QAAQ,IACjB,sEAAe,KAAK,EAAC,QAAQ,IAC5B,+EAAwB,KAAK,EAAC,MAAM,EAAC,QAAQ,EAAC,aAAa,EAAC,QAAQ,UAClE,IAAI,CAAC,IAAI;YACT,MAAM,CAAC,MAAM,CACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CACf,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,mCAAQ,CAAC,KAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,MAAK,CAAC,CAAC,EAC/D,EAAE,CACF,CACD,CAAC,GAAG,CACJ,GAAG;;gBACF,OAAA,CAAA,MAAA,GAAG,CAAC,MAAM,0CAAE,IAAI,MACf,qBAAe,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,IAChD,GAAG,CAAC,MAAM,CAAC,IAAI,CACD,CAChB,CAAA;aAAA,CACF,CACsB,EACzB,+EAAwB,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAC,OAAO,EAAC,QAAQ,EAAE,KAAK,IACpE,IAAI,CAAC,IAAI;YACT,MAAM,CAAC,MAAM,CACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAsB,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,CAAC,KAAK,mCAAQ,CAAC,KAAE,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,MAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CACnG,CAAC,GAAG,CACJ,GAAG,IACF,GAAG,CAAC,KAAK,KACR,qBAAe,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,GAAG,CAAC,KAAK,IAC1C,GAAG,CAAC,KAAK,CACK,CAChB,CACF,CACsB,EACzB,+EAAwB,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAC,cAAc,EAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC,OAAO,IACxF,MAAM,CAAC,IAAI,CACX,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;aAClB,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,sCAAW,CAAC,KAAE,CAAC,IAAI,GAAG,IAAI,IAAG,EAAE,EAAE,CAAC,CACnD,CAAC,OAAO,CAAC,IAAI,KACb,qBAAe,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,IAAI,IACrC,IAAI,CACU,CAChB,CAAC,CACsB,EACzB,8EAAuB,KAAK,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,GAAG,EACtD,8EAAuB,KAAK,EAAC,aAAa,EAAC,QAAQ,EAAC,aAAa,GAAG,CACrD,CACX,CACW,EACjB,CAAC,IAAI,IACL,sBAAsB,KAEtB,0BACC,8BACC,iCAAwB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAyB,EAC3E,yCAAoD,EACpD,wCAAmD,EACnD,yCAAoD,CAChC,EACpB,IAAI,CAAC,GAAG,CAAC,GAAG,KACZ,8BACC,+BAAsB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAuB,EACtE,0CACE,GAAG,CAAC,KAAK,EACV,WAAK,IAAI,EAAC,QAAQ,iBAAW,GAAG,CAAC,OAAO,CAAO,CACf,EACjC,0CACE,GAAG,CAAC,IAAI,EACT,WAAK,IAAI,EAAC,QAAQ,iBAAW,GAAG,CAAC,OAAO,CAAO,CACf,EACjC,+BACC,wBAAkB,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAC,KAAK,GAAoB,CAC9D,CACF,CACrB,CAAC,EACF,iCACC,UAAI,OAAO,EAAE,CAAC,IACb,wBACC,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,aACN,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,GAC3F,EAAE,GAAqB,CACpB,CACkB,CACR,CACjB,CACK,EACP;KACD;;;;;;;AAEF,MAAM,KAAK,GAA6B;IACvC,eAAe,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;IACxD,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;IACxD,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;IAC7D,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC;CAChD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["http.fetch","selectively.filter"],"sources":["src/components/table/demo/filtered/style.css?tag=smoothly-table-demo-filtered&encapsulation=scoped","src/components/table/demo/filtered/index.tsx"],"sourcesContent":[":host {\n\tdisplay: block;\n\twidth: 80%;\n}\n\nsmoothly-table-cell:nth-of-type(2) {\n\ttext-align: right;\n}\n\ntd {\n\tpadding-left: 1.5em;\n}\n","import { Component, ComponentWillLoad, h, Host, Listen, State } from \"@stencil/core\"\nimport { selectively } from \"selectively\"\nimport { http } from \"cloudly-http\"\nimport { Selector } from \"../../Selector\"\nimport { Cat } from \"./Root\"\n\n@Component({\n\ttag: \"smoothly-table-demo-filtered\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class TableDemoFiltered implements ComponentWillLoad {\n\t@State() criteria: selectively.Criteria = {}\n\t@State() cats?: Cat[] | false\n\t@State() selector: Selector<Cat> = Selector.create(\"breed\")\n\t@Listen(\"smoothlyFilter\")\n\tonFilterUpdate(event: CustomEvent<selectively.Criteria>) {\n\t\tevent.stopPropagation()\n\t\tthis.criteria = event.detail\n\t}\n\t@Listen(\"smoothlyInput\")\n\tsmoothlyInputHandler(event: CustomEvent<Record<string, any>>) {\n\t\tevent.stopPropagation()\n\t\tthis.selector = this.selector.handle(event.detail)\n\t}\n\n\tasync componentWillLoad(): Promise<void> {\n\t\tconst response = await http.fetch(\"https://catfact.ninja/breeds?limit=15\")\n\t\tthis.cats =\n\t\t\tresponse.status == 200 &&\n\t\t\t(await response.body).data.map((cat: any) => ({\n\t\t\t\t...cat,\n\t\t\t\tprice: [...cat.breed].reduce((r, c) => r + c.charCodeAt(0), 0),\n\t\t\t\tnested: { ...cat, names: names[cat.country] ?? [] },\n\t\t\t\tnames: names[cat.country] ?? [],\n\t\t\t}))\n\t}\n\n\trender() {\n\t\tconst cats = this.cats && selectively.filter(this.criteria, this.cats)\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-filter>\n\t\t\t\t\t<smoothly-filter-toggle\n\t\t\t\t\t\tproperties={{ [\"nested.pattern\"]: \"Ticked\", breed: \"\" }}\n\t\t\t\t\t\ticon=\"add\"\n\t\t\t\t\t\ttoolTip=\"Nested Ticked\"\n\t\t\t\t\t\tslot=\"bar\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-filter-toggle\n\t\t\t\t\t\tproperties={{ pattern: \"Ticked\", breed: \"\" }}\n\t\t\t\t\t\ticon=\"paw\"\n\t\t\t\t\t\ttoolTip=\"Ticked cats\"\n\t\t\t\t\t\tslot=\"bar\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-filter-toggle\n\t\t\t\t\t\tproperties={{ breed: \"Bombay\", pattern: \"Solid\" }}\n\t\t\t\t\t\ticon=\"radio-button-on\"\n\t\t\t\t\t\ttoolTip=\"Solid bombay cats\"\n\t\t\t\t\t\tslot=\"bar\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-filter-toggle\n\t\t\t\t\t\tproperties={{ pattern: \"Colorpoint\" }}\n\t\t\t\t\t\tnot\n\t\t\t\t\t\tactive\n\t\t\t\t\t\ticon=\"alert\"\n\t\t\t\t\t\ttoolTip=\"Colored cats\"\n\t\t\t\t\t\tslot=\"bar\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-filter-select label=\"coat\" property=\"nested.coat\" slot=\"bar\" multiple={false}>\n\t\t\t\t\t\t{this.cats &&\n\t\t\t\t\t\t\tObject.values(\n\t\t\t\t\t\t\t\tthis.cats.reduce<Record<string, Cat>>(\n\t\t\t\t\t\t\t\t\t(r, cat) => (cat.nested ? { ...r, [cat.nested.coat]: cat } : r),\n\t\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t).map(\n\t\t\t\t\t\t\t\tcat =>\n\t\t\t\t\t\t\t\t\tcat.nested?.coat && (\n\t\t\t\t\t\t\t\t\t\t<smoothly-item slot=\"items\" value={cat.nested.coat}>\n\t\t\t\t\t\t\t\t\t\t\t{cat.nested.coat}\n\t\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t</smoothly-filter-select>\n\t\t\t\t\t<div slot=\"detail\">\n\t\t\t\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t\t\t\t<smoothly-filter-select label=\"coat\" property=\"nested.coat\" multiple>\n\t\t\t\t\t\t\t\t{this.cats &&\n\t\t\t\t\t\t\t\t\tObject.values(\n\t\t\t\t\t\t\t\t\t\tthis.cats.reduce<Record<string, Cat>>(\n\t\t\t\t\t\t\t\t\t\t\t(r, cat) => (cat.nested ? { ...r, [cat.nested.coat]: cat } : r),\n\t\t\t\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t).map(\n\t\t\t\t\t\t\t\t\t\tcat =>\n\t\t\t\t\t\t\t\t\t\t\tcat.nested?.coat && (\n\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-item slot=\"items\" value={cat.nested.coat}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{cat.nested.coat}\n\t\t\t\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</smoothly-filter-select>\n\t\t\t\t\t\t\t<smoothly-filter-select label=\"breed\" property=\"breed\" multiple={false}>\n\t\t\t\t\t\t\t\t{this.cats &&\n\t\t\t\t\t\t\t\t\tObject.values(\n\t\t\t\t\t\t\t\t\t\tthis.cats.reduce<Record<string, Cat>>((r, cat) => (cat.breed ? { ...r, [cat.breed]: cat } : r), {})\n\t\t\t\t\t\t\t\t\t).map(\n\t\t\t\t\t\t\t\t\t\tcat =>\n\t\t\t\t\t\t\t\t\t\t\tcat.breed && (\n\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-item slot=\"items\" value={cat.breed}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{cat.breed}\n\t\t\t\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</smoothly-filter-select>\n\t\t\t\t\t\t\t<smoothly-filter-select label=\"names\" property=\"nested.names\" multiple={true} type=\"array\">\n\t\t\t\t\t\t\t\t{Object.keys(\n\t\t\t\t\t\t\t\t\tObject.values(names)\n\t\t\t\t\t\t\t\t\t\t.flat()\n\t\t\t\t\t\t\t\t\t\t.reduce((r, name) => ({ ...r, [name]: true }), {})\n\t\t\t\t\t\t\t\t).flatMap(name => (\n\t\t\t\t\t\t\t\t\t<smoothly-item slot=\"items\" value={name}>\n\t\t\t\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</smoothly-filter-select>\n\t\t\t\t\t\t\t<smoothly-filter-input label=\"Coat\" property=\"coat\" />\n\t\t\t\t\t\t\t<smoothly-filter-input label=\"Nested Coat\" property=\"nested.coat\" />\n\t\t\t\t\t\t</smoothly-form>\n\t\t\t\t\t</div>\n\t\t\t\t</smoothly-filter>\n\t\t\t\t{!cats ? (\n\t\t\t\t\t\"Failed to load data.\"\n\t\t\t\t) : (\n\t\t\t\t\t<smoothly-table>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-header>{this.selector.render(cats)}</smoothly-table-header>\n\t\t\t\t\t\t\t<smoothly-table-header>Breed</smoothly-table-header>\n\t\t\t\t\t\t\t<smoothly-table-header>Coat</smoothly-table-header>\n\t\t\t\t\t\t\t<smoothly-table-header>Price</smoothly-table-header>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t{cats.map(cat => (\n\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>{this.selector.render(cat)}</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t{cat.breed}\n\t\t\t\t\t\t\t\t\t<div slot=\"detail\">Country: {cat.country}</div>\n\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t{cat.coat}\n\t\t\t\t\t\t\t\t\t<div slot=\"detail\">Pattern: {cat.pattern}</div>\n\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type=\"price\" value={cat.price} currency=\"SEK\"></smoothly-display>\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<smoothly-table-footer>\n\t\t\t\t\t\t\t<td colSpan={5}>\n\t\t\t\t\t\t\t\t<smoothly-display\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tvalue={`Selected: ${\n\t\t\t\t\t\t\t\t\t\tthis.selector.selected.length != 0 ? this.selector.selected.length : cats ? cats.length : \"?\"\n\t\t\t\t\t\t\t\t\t}`}></smoothly-display>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</smoothly-table-footer>\n\t\t\t\t\t</smoothly-table>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n}\nconst names: Record<string, string[]> = {\n\t\"United States\": [\"bill\", \"bob\", \"brad\", \"joe\", \"molly\"],\n\tAustralia: [\"nigel\", \"bruce\", \"sheila\", \"brad\", \"shane\"],\n\t\"United Kingdom\": [\"nigel\", \"james\", \"molly\", \"shane\", \"bob\"],\n\tGreece: [\"dionysius\", \"demetrius\", \"polikarpos\"],\n}\n"],"version":3}
1
+ {"file":"p-d2ea52c8.js","mappings":"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","names":["http.fetch","selectively.filter"],"sources":["src/components/table/demo/filtered/style.css?tag=smoothly-table-demo-filtered&encapsulation=scoped","src/components/table/demo/filtered/index.tsx"],"sourcesContent":[":host {\n\tdisplay: block;\n\twidth: 80%;\n}\n\nsmoothly-table-cell:nth-of-type(2) {\n\ttext-align: right;\n}\n\ntd {\n\tpadding-left: 1.5em;\n}\n","import { Component, ComponentWillLoad, h, Host, Listen, State } from \"@stencil/core\"\nimport { selectively } from \"selectively\"\nimport { http } from \"cloudly-http\"\nimport { Selector } from \"../../Selector\"\nimport { Cat } from \"./Root\"\n\n@Component({\n\ttag: \"smoothly-table-demo-filtered\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class TableDemoFiltered implements ComponentWillLoad {\n\t@State() criteria: selectively.Criteria = {}\n\t@State() cats?: Cat[] | false\n\t@State() selector: Selector<Cat> = Selector.create(\"breed\")\n\t@Listen(\"smoothlyFilter\")\n\tonFilterUpdate(event: CustomEvent<selectively.Criteria>) {\n\t\tevent.stopPropagation()\n\t\tthis.criteria = event.detail\n\t}\n\t@Listen(\"smoothlyInput\")\n\tsmoothlyInputHandler(event: CustomEvent<Record<string, any>>) {\n\t\tevent.stopPropagation()\n\t\tthis.selector = this.selector.handle(event.detail)\n\t}\n\n\tasync componentWillLoad(): Promise<void> {\n\t\tconst response = await http.fetch(\"https://catfact.ninja/breeds?limit=15\")\n\t\tthis.cats =\n\t\t\tresponse.status == 200 &&\n\t\t\t(await response.body).data.map((cat: any) => ({\n\t\t\t\t...cat,\n\t\t\t\tprice: [...cat.breed].reduce((r, c) => r + c.charCodeAt(0), 0),\n\t\t\t\tnested: { ...cat, names: names[cat.country] ?? [] },\n\t\t\t\tnames: names[cat.country] ?? [],\n\t\t\t}))\n\t}\n\n\trender() {\n\t\tconst cats = this.cats && selectively.filter(this.criteria, this.cats)\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-filter>\n\t\t\t\t\t<smoothly-filter-toggle\n\t\t\t\t\t\tproperties={{ [\"nested.pattern\"]: \"Ticked\", breed: \"\" }}\n\t\t\t\t\t\ticon=\"add\"\n\t\t\t\t\t\ttoolTip=\"Nested Ticked\"\n\t\t\t\t\t\tslot=\"bar\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-filter-toggle\n\t\t\t\t\t\tproperties={{ pattern: \"Ticked\", breed: \"\" }}\n\t\t\t\t\t\ticon=\"paw\"\n\t\t\t\t\t\ttoolTip=\"Ticked cats\"\n\t\t\t\t\t\tslot=\"bar\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-filter-toggle\n\t\t\t\t\t\tproperties={{ breed: \"Bombay\", pattern: \"Solid\" }}\n\t\t\t\t\t\ticon=\"radio-button-on\"\n\t\t\t\t\t\ttoolTip=\"Solid bombay cats\"\n\t\t\t\t\t\tslot=\"bar\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-filter-toggle\n\t\t\t\t\t\tproperties={{ pattern: \"Colorpoint\" }}\n\t\t\t\t\t\tnot\n\t\t\t\t\t\tactive\n\t\t\t\t\t\ticon=\"alert\"\n\t\t\t\t\t\ttoolTip=\"Colored cats\"\n\t\t\t\t\t\tslot=\"bar\"\n\t\t\t\t\t/>\n\t\t\t\t\t<smoothly-filter-select label=\"coat\" property=\"nested.coat\" slot=\"bar\" multiple={false}>\n\t\t\t\t\t\t{this.cats &&\n\t\t\t\t\t\t\tObject.values(\n\t\t\t\t\t\t\t\tthis.cats.reduce<Record<string, Cat>>(\n\t\t\t\t\t\t\t\t\t(r, cat) => (cat.nested ? { ...r, [cat.nested.coat]: cat } : r),\n\t\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t).map(\n\t\t\t\t\t\t\t\tcat =>\n\t\t\t\t\t\t\t\t\tcat.nested?.coat && (\n\t\t\t\t\t\t\t\t\t\t<smoothly-item slot=\"items\" value={cat.nested.coat}>\n\t\t\t\t\t\t\t\t\t\t\t{cat.nested.coat}\n\t\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t</smoothly-filter-select>\n\t\t\t\t\t<div slot=\"detail\">\n\t\t\t\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t\t\t\t<smoothly-filter-select label=\"coat\" property=\"nested.coat\" multiple>\n\t\t\t\t\t\t\t\t{this.cats &&\n\t\t\t\t\t\t\t\t\tObject.values(\n\t\t\t\t\t\t\t\t\t\tthis.cats.reduce<Record<string, Cat>>(\n\t\t\t\t\t\t\t\t\t\t\t(r, cat) => (cat.nested ? { ...r, [cat.nested.coat]: cat } : r),\n\t\t\t\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t).map(\n\t\t\t\t\t\t\t\t\t\tcat =>\n\t\t\t\t\t\t\t\t\t\t\tcat.nested?.coat && (\n\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-item slot=\"items\" value={cat.nested.coat}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{cat.nested.coat}\n\t\t\t\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</smoothly-filter-select>\n\t\t\t\t\t\t\t<smoothly-filter-select label=\"breed\" property=\"breed\" multiple={false}>\n\t\t\t\t\t\t\t\t{this.cats &&\n\t\t\t\t\t\t\t\t\tObject.values(\n\t\t\t\t\t\t\t\t\t\tthis.cats.reduce<Record<string, Cat>>((r, cat) => (cat.breed ? { ...r, [cat.breed]: cat } : r), {})\n\t\t\t\t\t\t\t\t\t).map(\n\t\t\t\t\t\t\t\t\t\tcat =>\n\t\t\t\t\t\t\t\t\t\t\tcat.breed && (\n\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-item slot=\"items\" value={cat.breed}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{cat.breed}\n\t\t\t\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</smoothly-filter-select>\n\t\t\t\t\t\t\t<smoothly-filter-select label=\"names\" property=\"nested.names\" multiple={true} type=\"array\">\n\t\t\t\t\t\t\t\t{Object.keys(\n\t\t\t\t\t\t\t\t\tObject.values(names)\n\t\t\t\t\t\t\t\t\t\t.flat()\n\t\t\t\t\t\t\t\t\t\t.reduce((r, name) => ({ ...r, [name]: true }), {})\n\t\t\t\t\t\t\t\t).flatMap(name => (\n\t\t\t\t\t\t\t\t\t<smoothly-item slot=\"items\" value={name}>\n\t\t\t\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t\t\t\t</smoothly-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</smoothly-filter-select>\n\t\t\t\t\t\t\t<smoothly-filter-input label=\"Coat\" property=\"coat\" />\n\t\t\t\t\t\t\t<smoothly-filter-input label=\"Nested Coat\" property=\"nested.coat\" />\n\t\t\t\t\t\t</smoothly-form>\n\t\t\t\t\t</div>\n\t\t\t\t</smoothly-filter>\n\t\t\t\t{!cats ? (\n\t\t\t\t\t\"Failed to load data.\"\n\t\t\t\t) : (\n\t\t\t\t\t<smoothly-table>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-header>{this.selector.render(cats)}</smoothly-table-header>\n\t\t\t\t\t\t\t<smoothly-table-header>Breed</smoothly-table-header>\n\t\t\t\t\t\t\t<smoothly-table-header>Coat</smoothly-table-header>\n\t\t\t\t\t\t\t<smoothly-table-header>Price</smoothly-table-header>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t{cats.map(cat => (\n\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>{this.selector.render(cat)}</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t{cat.breed}\n\t\t\t\t\t\t\t\t\t<div slot=\"detail\">Country: {cat.country}</div>\n\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t{cat.coat}\n\t\t\t\t\t\t\t\t\t<div slot=\"detail\">Pattern: {cat.pattern}</div>\n\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-display type=\"price\" value={cat.price} currency=\"SEK\"></smoothly-display>\n\t\t\t\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<smoothly-table-footer>\n\t\t\t\t\t\t\t<td colSpan={5}>\n\t\t\t\t\t\t\t\t<smoothly-display\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tvalue={`Selected: ${\n\t\t\t\t\t\t\t\t\t\tthis.selector.selected.length != 0 ? this.selector.selected.length : cats ? cats.length : \"?\"\n\t\t\t\t\t\t\t\t\t}`}></smoothly-display>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</smoothly-table-footer>\n\t\t\t\t\t</smoothly-table>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n}\nconst names: Record<string, string[]> = {\n\t\"United States\": [\"bill\", \"bob\", \"brad\", \"joe\", \"molly\"],\n\tAustralia: [\"nigel\", \"bruce\", \"sheila\", \"brad\", \"shane\"],\n\t\"United Kingdom\": [\"nigel\", \"james\", \"molly\", \"shane\", \"bob\"],\n\tGreece: [\"dionysius\", \"demetrius\", \"polikarpos\"],\n}\n"],"version":3}
@@ -1,4 +1,6 @@
1
1
  class Type {
2
+ _name;
3
+ _condition;
2
4
  get name() {
3
5
  return typeof this._name == "function" ? this._name() : this._name;
4
6
  }
@@ -17,50 +19,30 @@ class Type {
17
19
  constructor(_name, _condition) {
18
20
  this._name = _name;
19
21
  this._condition = _condition;
20
- /**
21
- * Return a flaw object, describing the flaws of the value compared to expected type.
22
- *
23
- * If it is a correct value, according to the type, it returns a Flaw with the message `{message:"This type is correct.", isFlaw: false, ... }`
24
- *
25
- * Implemented as a closure.
26
- */
27
- this.flaw = (value) => {
28
- return this.is(value)
29
- ? {
30
- type: this.name,
31
- ...(this.condition ? { condition: this.condition } : undefined),
32
- isFlaw: false,
33
- message: "This type is correct.",
34
- }
35
- : {
36
- ...(this.condition ? { condition: this.condition } : undefined),
37
- ...this.createFlaw(value),
38
- type: this.name,
39
- };
40
- };
41
22
  }
42
- /**
43
- * Return the value if the value is valid for the type, otherwise undefined.
44
- * For objects, unknown properties are filtered.
45
- *
46
- * Eg: isly.number().value(NaN) returns undefined
47
- */
48
23
  get(value) {
49
24
  return this.is(value) ? this.getValue(value) : undefined;
50
25
  }
51
26
  getValue(value) {
52
27
  return value;
53
28
  }
54
- /**
55
- * Override this to create custom Flaws.
56
- * Not necessary for simple types.
57
- */
29
+ flaw = (value) => {
30
+ return this.is(value)
31
+ ? {
32
+ type: this.name,
33
+ ...(this.condition ? { condition: this.condition } : undefined),
34
+ isFlaw: false,
35
+ message: "This type is correct.",
36
+ }
37
+ : {
38
+ ...(this.condition ? { condition: this.condition } : undefined),
39
+ ...this.createFlaw(value),
40
+ type: this.name,
41
+ };
42
+ };
58
43
  createFlaw(value) {
59
44
  return {};
60
45
  }
61
- /**
62
- * Used by types that use a backend type.
63
- */
64
46
  createFlawFromType(backend, value) {
65
47
  return "createFlaw" in backend && typeof backend.createFlaw == "function"
66
48
  ? backend.createFlaw(value)
@@ -68,23 +50,25 @@ class Type {
68
50
  }
69
51
  }
70
52
  class IslyOptional extends Type {
53
+ backend;
54
+ class = "optional";
71
55
  constructor(backend) {
72
56
  super(() => backend.name + " | undefined", backend.condition);
73
57
  this.backend = backend;
74
- this.class = "optional";
75
- this.is = (value) => value == undefined || this.backend.is(value);
76
58
  }
59
+ is = (value) => value == undefined || this.backend.is(value);
77
60
  createFlaw(value) {
78
61
  return this.createFlawFromType(this.backend, value);
79
62
  }
80
63
  }
81
64
  class IslyReadonly extends Type {
65
+ backend;
66
+ class = "readonly";
82
67
  constructor(backend) {
83
68
  super(() => `Readonly<${backend.name}>`, backend.condition);
84
69
  this.backend = backend;
85
- this.class = "readonly";
86
- this.is = (value) => value == undefined || this.backend.is(value);
87
70
  }
71
+ is = (value) => value == undefined || this.backend.is(value);
88
72
  createFlaw(value) {
89
73
  return this.createFlawFromType(this.backend, value);
90
74
  }
@@ -107,14 +91,13 @@ const criteriaFunctions = {
107
91
  },
108
92
  };
109
93
  class IslyArray extends Type {
94
+ itemType;
95
+ options;
96
+ class = "array";
110
97
  constructor(itemType, options) {
111
98
  super(() => this.baseName() + "[]", options.length > 0 ? options.map(c => criteriaFunctions[c.criteria].condition(c.value)).join(" & ") : undefined);
112
99
  this.itemType = itemType;
113
100
  this.options = options;
114
- this.class = "array";
115
- this.is = (value) => globalThis.Array.isArray(value) &&
116
- this.options.every(option => criteriaFunctions[option.criteria].is(value, option.value)) &&
117
- value.every(item => this.itemType.is(item));
118
101
  }
119
102
  baseName() {
120
103
  return this.itemType.name.includes(" ") ? `(${this.itemType.name})` : this.itemType.name;
@@ -122,6 +105,9 @@ class IslyArray extends Type {
122
105
  itemName(index) {
123
106
  return `${this.baseName()}[${index}]`;
124
107
  }
108
+ is = (value) => globalThis.Array.isArray(value) &&
109
+ this.options.every(option => criteriaFunctions[option.criteria].is(value, option.value)) &&
110
+ value.every(item => this.itemType.is(item));
125
111
  createFlaw(value) {
126
112
  const flaws = (globalThis.Array.isArray(value) &&
127
113
  value.flatMap((item, index) => {
@@ -138,51 +124,13 @@ class IslyArray extends Type {
138
124
  }
139
125
  }
140
126
 
141
- function boolean(booleanValue) {
142
- return new IslyBoolean(booleanValue);
143
- }
144
- class IslyBoolean extends Type {
145
- constructor(booleanValue) {
146
- super(booleanValue == undefined ? "boolean" : booleanValue ? "true" : "false");
147
- this.booleanValue = booleanValue;
148
- this.class = "boolean";
149
- this.is = (value) => typeof value == "boolean" && (this.booleanValue == undefined || value == this.booleanValue);
150
- }
151
- }
152
-
153
- /**
154
- * Late evaluation of a type
155
- * Can be used for for recursive types.
156
- *
157
- * @param factory
158
- * @param name Provide a name, to avoid infinite loop if the type i recursive
159
- * @returns
160
- */
161
- function lazy(factory, name) {
162
- return new IslyLazy(factory, name);
163
- }
164
- class IslyLazy extends Type {
165
- constructor(factory, name) {
166
- super(name ?? (() => (this.backend ??= factory()).name), () => (this.backend ??= factory()).condition);
167
- this.factory = factory;
168
- this.class = "lazy";
169
- this.is = (value) => (this.backend ??= this.factory()).is(value);
170
- }
171
- createFlaw(value) {
172
- return this.createFlawFromType((this.backend ??= this.factory()), value);
173
- }
174
- getBackend() {
175
- return this.backend;
176
- }
177
- get(value) {
178
- return this.backend.get(value);
179
- }
180
- }
181
-
182
127
  function object(properties, name) {
183
128
  return new IslyObject(properties ?? {}, name);
184
129
  }
185
130
  class IslyObject extends Type {
131
+ properties;
132
+ baseType;
133
+ class = "object";
186
134
  constructor(properties, name, baseType) {
187
135
  super(() => name ??
188
136
  (this.baseType ? `${this.baseType.name} & ` : "") +
@@ -191,12 +139,6 @@ class IslyObject extends Type {
191
139
  .join(", ")}}`);
192
140
  this.properties = properties;
193
141
  this.baseType = baseType;
194
- this.class = "object";
195
- this.is = (value) => !!(value &&
196
- (this.baseType == undefined || this.baseType.is(value)) &&
197
- typeof value == "object" &&
198
- !globalThis.Array.isArray(value) &&
199
- globalThis.Object.entries(this.properties).every(([property, type]) => type.is(value[property])));
200
142
  }
201
143
  extend(properties, name) {
202
144
  return new IslyObject(properties, name, this);
@@ -207,6 +149,11 @@ class IslyObject extends Type {
207
149
  pick(picks, name) {
208
150
  return new IslyObject(globalThis.Object.fromEntries(globalThis.Object.entries(this.properties).filter(([key]) => picks.includes(key))), name ?? `Pick<${this.name}, ${picks.map(key => `"${String(key)}"`).join(" | ")}>`, this.baseType?.pick(picks));
209
151
  }
152
+ is = (value) => !!(value &&
153
+ (this.baseType == undefined || this.baseType.is(value)) &&
154
+ typeof value == "object" &&
155
+ !globalThis.Array.isArray(value) &&
156
+ globalThis.Object.entries(this.properties).every(([property, type]) => type.is(value[property])));
210
157
  createFlaw(value) {
211
158
  return {
212
159
  flaws: [
@@ -220,9 +167,6 @@ class IslyObject extends Type {
220
167
  .filter(flaw => flaw?.isFlaw ?? true),
221
168
  };
222
169
  }
223
- /**
224
- * get-function on a object returns a object with only specified properties
225
- */
226
170
  getValue(value) {
227
171
  const result = this.baseType ? this.baseType.getValue(value) : {};
228
172
  if (result)
@@ -236,31 +180,77 @@ class IslyObject extends Type {
236
180
  }
237
181
  }
238
182
 
239
- function string(condition) {
240
- return new IslyString(condition);
183
+ function boolean(booleanValue) {
184
+ return new IslyBoolean(booleanValue);
185
+ }
186
+ class IslyBoolean extends Type {
187
+ booleanValue;
188
+ class = "boolean";
189
+ constructor(booleanValue) {
190
+ super(booleanValue == undefined ? "boolean" : booleanValue ? "true" : "false");
191
+ this.booleanValue = booleanValue;
192
+ }
193
+ is = (value) => typeof value == "boolean" && (this.booleanValue == undefined || value == this.booleanValue);
194
+ }
195
+
196
+ function lazy(factory, name) {
197
+ return new IslyLazy(factory, name);
198
+ }
199
+ class IslyLazy extends Type {
200
+ factory;
201
+ class = "lazy";
202
+ #backend;
203
+ get backend() {
204
+ return (this.#backend ??= this.factory());
205
+ }
206
+ constructor(factory, name) {
207
+ super(name ?? (() => this.backend.name), () => this.backend.condition);
208
+ this.factory = factory;
209
+ }
210
+ is = (value) => (this.#backend ??= this.factory()).is(value);
211
+ createFlaw(value) {
212
+ return this.createFlawFromType(this.backend, value);
213
+ }
214
+ get(value) {
215
+ return this.backend.get(value);
216
+ }
217
+ }
218
+
219
+ function string(condition, descriptor) {
220
+ return new IslyString(condition, descriptor);
241
221
  }
242
222
  class IslyString extends Type {
243
- constructor(stringCondition) {
244
- super(typeof stringCondition == "string" ? `"${stringCondition}"` : "string", () => {
245
- const conditionObject = this.getConditionObject();
246
- return conditionObject instanceof RegExp
247
- ? `/${conditionObject.source}/${conditionObject.flags}`
248
- : globalThis.Object.keys(conditionObject)
249
- .map(key => `"${key}"`)
250
- .join(" | ");
251
- });
223
+ stringCondition;
224
+ descriptor;
225
+ class = "string";
226
+ conditionObject;
227
+ constructor(stringCondition, descriptor) {
228
+ super(typeof stringCondition == "string" ? `"${stringCondition}"` : "string", descriptor
229
+ ? descriptor
230
+ : () => {
231
+ const conditionObject = this.getConditionObject();
232
+ return conditionObject instanceof RegExp
233
+ ? `/${conditionObject.source}/${conditionObject.flags}`
234
+ : conditionObject instanceof Function
235
+ ? "custom-predicate"
236
+ : globalThis.Object.keys(conditionObject)
237
+ .map(key => `"${key}"`)
238
+ .join(" | ");
239
+ });
252
240
  this.stringCondition = stringCondition;
253
- this.class = "string";
254
- this.is = (value) => {
255
- const conditionObject = this.getConditionObject();
256
- return (typeof value == "string" &&
257
- (conditionObject instanceof RegExp
258
- ? conditionObject.test(value)
241
+ this.descriptor = descriptor;
242
+ }
243
+ is = (value) => {
244
+ const conditionObject = this.getConditionObject();
245
+ return (typeof value == "string" &&
246
+ (conditionObject instanceof RegExp
247
+ ? conditionObject.test(value)
248
+ : conditionObject instanceof Function
249
+ ? conditionObject(value)
259
250
  : typeof conditionObject == "object"
260
- ? value in conditionObject //TODO, avoid "hasOwnProperty toString etc."
251
+ ? value in conditionObject
261
252
  : conditionObject));
262
- };
263
- }
253
+ };
264
254
  getConditionObject() {
265
255
  return (this.conditionObject ??= Array.isArray(this.stringCondition)
266
256
  ? this.stringCondition.reduce((result, current) => {
@@ -269,9 +259,11 @@ class IslyString extends Type {
269
259
  }, globalThis.Object.create(null))
270
260
  : typeof this.stringCondition == "string"
271
261
  ? { [this.stringCondition]: true }
272
- : typeof this.stringCondition == "object" // Record or RegExp!
262
+ : typeof this.stringCondition == "function"
273
263
  ? this.stringCondition
274
- : true);
264
+ : typeof this.stringCondition == "object"
265
+ ? this.stringCondition
266
+ : true);
275
267
  }
276
268
  }
277
269
 
@@ -291,4 +283,4 @@ var Flaw;
291
283
 
292
284
  export { Type as T, boolean as b, lazy as l, object as o, string as s };
293
285
 
294
- //# sourceMappingURL=p-82c01297.js.map
286
+ //# sourceMappingURL=p-d471066b.js.map