smoothly 1.0.0-alpha.21 → 1.0.0-alpha.211

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 (549) hide show
  1. package/dist/cjs/{Listenable-63ea2d90.js → Data-ae713814.js} +523 -6
  2. package/dist/cjs/Data-ae713814.js.map +1 -0
  3. package/dist/cjs/Observers-6450f075.js +25 -0
  4. package/dist/cjs/Observers-6450f075.js.map +1 -0
  5. package/dist/cjs/TimeZone-016ac7b0.js +6181 -0
  6. package/dist/cjs/TimeZone-016ac7b0.js.map +1 -0
  7. package/dist/cjs/getLanguage-49a534df.js +6118 -0
  8. package/dist/cjs/getLanguage-49a534df.js.map +1 -0
  9. package/dist/cjs/{index-8adc5c1b.js → index-43af753b.js} +55 -2
  10. package/dist/cjs/index-43af753b.js.map +1 -0
  11. package/dist/cjs/index.cjs.js +22 -17
  12. package/dist/cjs/index.cjs.js.map +1 -1
  13. package/dist/cjs/loader.cjs.js +4 -3
  14. package/dist/cjs/loader.cjs.js.map +1 -1
  15. package/dist/cjs/{Notice-88ba4c70.js → redirect-2e5d4524.js} +11 -2
  16. package/dist/cjs/redirect-2e5d4524.js.map +1 -0
  17. package/dist/cjs/smoothly-accordion-item.cjs.entry.js +61 -0
  18. package/dist/cjs/smoothly-accordion-item.cjs.entry.js.map +1 -0
  19. package/dist/cjs/smoothly-accordion.cjs.entry.js +58 -0
  20. package/dist/cjs/smoothly-accordion.cjs.entry.js.map +1 -0
  21. package/dist/cjs/smoothly-address-display.cjs.entry.js +1 -1
  22. package/dist/cjs/smoothly-address.cjs.entry.js +1 -1
  23. package/dist/cjs/smoothly-addresses.cjs.entry.js +1 -1
  24. package/dist/cjs/smoothly-app_80.cjs.entry.js +10897 -0
  25. package/dist/cjs/smoothly-app_80.cjs.entry.js.map +1 -0
  26. package/dist/cjs/smoothly-checkbox.cjs.entry.js +102 -0
  27. package/dist/cjs/smoothly-checkbox.cjs.entry.js.map +1 -0
  28. package/dist/cjs/smoothly-color.cjs.entry.js +1 -1
  29. package/dist/cjs/smoothly-country.cjs.entry.js +56 -55
  30. package/dist/cjs/smoothly-country.cjs.entry.js.map +1 -1
  31. package/dist/cjs/smoothly-display-date-time.cjs.entry.js +26 -0
  32. package/dist/cjs/smoothly-display-date-time.cjs.entry.js.map +1 -0
  33. package/dist/cjs/smoothly-google-font.cjs.entry.js +1 -1
  34. package/dist/cjs/smoothly-reorder.cjs.entry.js +1 -1
  35. package/dist/cjs/smoothly-trigger-sink.cjs.entry.js +4 -4
  36. package/dist/cjs/smoothly-trigger-sink.cjs.entry.js.map +1 -1
  37. package/dist/cjs/smoothly-trigger-source.cjs.entry.js +6 -6
  38. package/dist/cjs/smoothly-trigger-source.cjs.entry.js.map +1 -1
  39. package/dist/cjs/smoothly.cjs.js +4 -3
  40. package/dist/cjs/smoothly.cjs.js.map +1 -1
  41. package/dist/collection/collection-manifest.json +37 -15
  42. package/dist/collection/components/Button.js +16 -2
  43. package/dist/collection/components/Button.js.map +1 -1
  44. package/dist/collection/components/accordion/index.js +32 -12
  45. package/dist/collection/components/accordion/index.js.map +1 -1
  46. package/dist/collection/components/accordion-item/index.js +18 -25
  47. package/dist/collection/components/accordion-item/index.js.map +1 -1
  48. package/dist/collection/components/app/index.js +99 -29
  49. package/dist/collection/components/app/index.js.map +1 -1
  50. package/dist/collection/components/app/room/index.js +134 -25
  51. package/dist/collection/components/app/room/index.js.map +1 -1
  52. package/dist/collection/components/app/room/style.css +39 -10
  53. package/dist/collection/components/app/style.css +104 -39
  54. package/dist/collection/components/app-demo/index.js +1 -1
  55. package/dist/collection/components/app-demo/index.js.map +1 -1
  56. package/dist/collection/components/backtotop/index.js +3 -3
  57. package/dist/collection/components/backtotop/index.js.map +1 -1
  58. package/dist/collection/components/burger/index.js +60 -14
  59. package/dist/collection/components/burger/index.js.map +1 -1
  60. package/dist/collection/components/burger/style.css +2 -2
  61. package/dist/collection/components/button/index.js +10 -23
  62. package/dist/collection/components/button/index.js.map +1 -1
  63. package/dist/collection/components/button/style.css +33 -35
  64. package/dist/collection/components/button-demo/index.js +4 -2
  65. package/dist/collection/components/button-demo/index.js.map +1 -1
  66. package/dist/collection/components/button-demo/style.css +1 -0
  67. package/dist/collection/components/calendar/generate.js +1 -1
  68. package/dist/collection/components/calendar/generate.js.map +1 -1
  69. package/dist/collection/components/calendar/index.js +16 -16
  70. package/dist/collection/components/calendar/index.js.map +1 -1
  71. package/dist/collection/components/checkbox/index.js +82 -29
  72. package/dist/collection/components/checkbox/index.js.map +1 -1
  73. package/dist/collection/components/checkbox/style.css +39 -42
  74. package/dist/collection/components/confirm/index.js +261 -0
  75. package/dist/collection/components/confirm/index.js.map +1 -0
  76. package/dist/collection/components/confirm/style.css +15 -0
  77. package/dist/collection/components/country/index.js +1 -1
  78. package/dist/collection/components/display/index.js +6 -3
  79. package/dist/collection/components/display/index.js.map +1 -1
  80. package/dist/collection/components/display-amount/index.js +1 -1
  81. package/dist/collection/components/display-demo/index.js +16 -1
  82. package/dist/collection/components/display-demo/index.js.map +1 -1
  83. package/dist/collection/components/filter/Filter.js +17 -0
  84. package/dist/collection/components/filter/Filter.js.map +1 -0
  85. package/dist/collection/components/filter/field/index.js +105 -0
  86. package/dist/collection/components/filter/field/index.js.map +1 -0
  87. package/dist/collection/components/filter/field/style.css +4 -0
  88. package/dist/collection/components/filter/index.js +55 -132
  89. package/dist/collection/components/filter/index.js.map +1 -1
  90. package/dist/collection/components/filter/input/index.js +64 -302
  91. package/dist/collection/components/filter/input/index.js.map +1 -1
  92. package/dist/collection/components/filter/picker/index.js +209 -0
  93. package/dist/collection/components/filter/picker/index.js.map +1 -0
  94. package/dist/collection/components/filter/picker/style.css +8 -0
  95. package/dist/collection/components/filter/style.css +56 -71
  96. package/dist/collection/components/filter/toggle/index.js +248 -0
  97. package/dist/collection/components/filter/toggle/index.js.map +1 -0
  98. package/dist/collection/components/filter/toggle/style.css +8 -0
  99. package/dist/collection/components/form/index.js +302 -35
  100. package/dist/collection/components/form/index.js.map +1 -1
  101. package/dist/collection/components/form/style.css +11 -17
  102. package/dist/collection/components/icon/index.js +29 -38
  103. package/dist/collection/components/icon/index.js.map +1 -1
  104. package/dist/collection/components/icon-demo/index.js +1 -1
  105. package/dist/collection/components/icon-demo/index.js.map +1 -1
  106. package/dist/collection/components/icon-demo/style.css +5 -6
  107. package/dist/collection/components/input/Clearable.js.map +1 -0
  108. package/dist/collection/components/input/Editable.js +18 -0
  109. package/dist/collection/components/input/Editable.js.map +1 -0
  110. package/dist/collection/components/input/Input.js +23 -0
  111. package/dist/collection/components/input/Input.js.map +1 -0
  112. package/dist/collection/components/input/Looks.js +8 -0
  113. package/dist/collection/components/input/Looks.js.map +1 -0
  114. package/dist/collection/components/input/Submittable.js +8 -0
  115. package/dist/collection/components/input/Submittable.js.map +1 -0
  116. package/dist/collection/components/input/checkbox/index.js +235 -0
  117. package/dist/collection/components/input/checkbox/index.js.map +1 -0
  118. package/dist/collection/components/input/checkbox/style.css +31 -0
  119. package/dist/collection/components/input/clear/index.js +242 -0
  120. package/dist/collection/components/input/clear/index.js.map +1 -0
  121. package/dist/collection/components/input/clear/style.css +256 -0
  122. package/dist/collection/components/input/color/index.js +226 -0
  123. package/dist/collection/components/input/color/index.js.map +1 -0
  124. package/dist/collection/components/input/color/style.css +15 -0
  125. package/dist/collection/components/{input-date-range → input/date}/index.js +153 -99
  126. package/dist/collection/components/input/date/index.js.map +1 -0
  127. package/dist/collection/components/input/date/range/index.js +443 -0
  128. package/dist/collection/components/input/date/range/index.js.map +1 -0
  129. package/dist/collection/components/input/date/range/style.css +94 -0
  130. package/dist/collection/components/input/date/style.css +83 -0
  131. package/dist/collection/components/input/demo/index.js +47 -0
  132. package/dist/collection/components/input/demo/index.js.map +1 -0
  133. package/dist/collection/components/input/demo/style.css +15 -0
  134. package/dist/collection/components/input/edit/index.js +231 -0
  135. package/dist/collection/components/input/edit/index.js.map +1 -0
  136. package/dist/collection/components/input/edit/style.css +239 -0
  137. package/dist/collection/components/input/file/index.js +305 -0
  138. package/dist/collection/components/input/file/index.js.map +1 -0
  139. package/dist/collection/components/input/file/style.css +107 -0
  140. package/dist/collection/components/input/index.js +329 -104
  141. package/dist/collection/components/input/index.js.map +1 -1
  142. package/dist/collection/components/{input-month → input/month}/index.js +8 -8
  143. package/dist/collection/components/input/month/index.js.map +1 -0
  144. package/dist/collection/components/input/radio/Selected.js +11 -0
  145. package/dist/collection/components/input/radio/Selected.js.map +1 -0
  146. package/dist/collection/components/input/radio/index.js +404 -0
  147. package/dist/collection/components/input/radio/index.js.map +1 -0
  148. package/dist/collection/components/input/radio/item/index.js +150 -0
  149. package/dist/collection/components/input/radio/item/index.js.map +1 -0
  150. package/dist/collection/components/input/radio/item/style.css +28 -0
  151. package/dist/collection/components/input/radio/style.css +66 -0
  152. package/dist/collection/components/input/range/index.js +305 -0
  153. package/dist/collection/components/input/range/index.js.map +1 -0
  154. package/dist/collection/components/input/range/style.css +154 -0
  155. package/dist/collection/components/input/reset/index.js +241 -0
  156. package/dist/collection/components/input/reset/index.js.map +1 -0
  157. package/dist/collection/components/input/reset/style.css +259 -0
  158. package/dist/collection/components/input/select/index.js +452 -0
  159. package/dist/collection/components/input/select/index.js.map +1 -0
  160. package/dist/collection/components/input/select/style.css +104 -0
  161. package/dist/collection/components/input/style.css +47 -10
  162. package/dist/collection/components/input/submit/index.js +232 -0
  163. package/dist/collection/components/input/submit/index.js.map +1 -0
  164. package/dist/collection/components/input/submit/style.css +236 -0
  165. package/dist/collection/components/item/index.js +5 -5
  166. package/dist/collection/components/item/index.js.map +1 -1
  167. package/dist/collection/components/label/index.js +81 -0
  168. package/dist/collection/components/label/index.js.map +1 -0
  169. package/dist/collection/components/label/style.css +15 -0
  170. package/dist/collection/components/lazy/index.js +73 -0
  171. package/dist/collection/components/lazy/index.js.map +1 -0
  172. package/dist/collection/components/{radio → load-more}/index.js +35 -46
  173. package/dist/collection/components/load-more/index.js.map +1 -0
  174. package/dist/collection/components/load-more/style.css +5 -0
  175. package/dist/collection/components/notification/index.js +45 -8
  176. package/dist/collection/components/notification/index.js.map +1 -1
  177. package/dist/collection/components/notification/style.css +25 -1
  178. package/dist/collection/components/notifier/style.css +1 -3
  179. package/dist/collection/components/picker/demo/index.js +91 -0
  180. package/dist/collection/components/picker/demo/index.js.map +1 -0
  181. package/dist/collection/components/picker/demo/style.css +30 -0
  182. package/dist/collection/components/picker/index.js +197 -396
  183. package/dist/collection/components/picker/index.js.map +1 -1
  184. package/dist/collection/components/picker/menu/index.js +429 -0
  185. package/dist/collection/components/picker/menu/index.js.map +1 -0
  186. package/dist/collection/components/picker/menu/style.css +44 -0
  187. package/dist/collection/components/picker/option/index.js +298 -0
  188. package/dist/collection/components/picker/option/index.js.map +1 -0
  189. package/dist/collection/components/picker/option/style.css +30 -0
  190. package/dist/collection/components/picker/slot-elements/index.js +109 -0
  191. package/dist/collection/components/picker/slot-elements/index.js.map +1 -0
  192. package/dist/collection/components/picker/slot-elements/style.css +3 -0
  193. package/dist/collection/components/picker/slotted-elements/index.js +84 -0
  194. package/dist/collection/components/picker/slotted-elements/index.js.map +1 -0
  195. package/dist/collection/components/picker/slotted-elements/style.css +3 -0
  196. package/dist/collection/components/picker/style.css +76 -136
  197. package/dist/collection/components/popup/index.js +5 -5
  198. package/dist/collection/components/popup/index.js.map +1 -1
  199. package/dist/collection/components/popup/style.css +4 -4
  200. package/dist/collection/components/select-demo/index.js +0 -87
  201. package/dist/collection/components/select-demo/index.js.map +1 -1
  202. package/dist/collection/components/spinner/style.css +1 -0
  203. package/dist/collection/components/submit/index.js +64 -5
  204. package/dist/collection/components/submit/index.js.map +1 -1
  205. package/dist/collection/components/submit/style.css +226 -0
  206. package/dist/collection/components/summary/index.js +46 -4
  207. package/dist/collection/components/summary/index.js.map +1 -1
  208. package/dist/collection/components/summary/style.css +25 -16
  209. package/dist/collection/components/svg/style.css +2 -2
  210. package/dist/collection/components/table/cell/index.js +1 -1
  211. package/dist/collection/components/table/cell/index.js.map +1 -1
  212. package/dist/collection/components/table/cell/style.css +18 -11
  213. package/dist/collection/components/table/demo/filtered/Root.js.map +1 -1
  214. package/dist/collection/components/table/demo/filtered/index.js +25 -18
  215. package/dist/collection/components/table/demo/filtered/index.js.map +1 -1
  216. package/dist/collection/components/table/demo/filtered/style.css +9 -0
  217. package/dist/collection/components/table/demo/index.js +2 -9
  218. package/dist/collection/components/table/demo/index.js.map +1 -1
  219. package/dist/collection/components/table/demo/style.css +7 -0
  220. package/dist/collection/components/table/demo/testing/data.js +28 -0
  221. package/dist/collection/components/table/demo/testing/data.js.map +1 -0
  222. package/dist/collection/components/table/demo/testing/index.js +28 -0
  223. package/dist/collection/components/table/demo/testing/index.js.map +1 -0
  224. package/dist/collection/components/table/demo/testing/style.css +32 -0
  225. package/dist/collection/components/table/expandable/cell/index.js +14 -33
  226. package/dist/collection/components/table/expandable/cell/index.js.map +1 -1
  227. package/dist/collection/components/table/expandable/cell/style.css +32 -25
  228. package/dist/collection/components/table/expandable/row/index.js +9 -51
  229. package/dist/collection/components/table/expandable/row/index.js.map +1 -1
  230. package/dist/collection/components/table/expandable/row/style.css +32 -29
  231. package/dist/collection/components/table/footer/index.js +19 -0
  232. package/dist/collection/components/table/footer/index.js.map +1 -0
  233. package/dist/collection/components/table/footer/style.css +10 -0
  234. package/dist/collection/components/table/header/style.css +2 -3
  235. package/dist/collection/components/table/index.js +55 -12
  236. package/dist/collection/components/table/index.js.map +1 -1
  237. package/dist/collection/components/table/row/index.js +37 -5
  238. package/dist/collection/components/table/row/index.js.map +1 -1
  239. package/dist/collection/components/table/row/style.css +4 -1
  240. package/dist/collection/components/table/style.css +0 -2
  241. package/dist/collection/components/theme/color/index.js +48 -0
  242. package/dist/collection/components/theme/color/index.js.map +1 -0
  243. package/dist/collection/components/theme/color/style.css +8 -0
  244. package/dist/collection/components/theme/color/variant/index.js +66 -0
  245. package/dist/collection/components/theme/color/variant/index.js.map +1 -0
  246. package/dist/collection/components/theme/color/variant/style.css +18 -0
  247. package/dist/collection/components/theme/colors/index.js +30 -0
  248. package/dist/collection/components/theme/colors/index.js.map +1 -0
  249. package/dist/collection/components/theme/colors/style.css +7 -0
  250. package/dist/collection/components/theme/picker/index.js +48 -0
  251. package/dist/collection/components/theme/picker/index.js.map +1 -0
  252. package/dist/collection/components/theme/picker/style.css +0 -0
  253. package/dist/collection/components/toggle-switch/index.js +69 -17
  254. package/dist/collection/components/toggle-switch/index.js.map +1 -1
  255. package/dist/collection/components/toggle-switch/style.css +19 -12
  256. package/dist/collection/components/trigger-source/index.js +3 -3
  257. package/dist/collection/components/trigger-source/index.js.map +1 -1
  258. package/dist/collection/global/Observers.js +22 -0
  259. package/dist/collection/global/Observers.js.map +1 -0
  260. package/dist/collection/global/index.js +5 -0
  261. package/dist/collection/global/index.js.map +1 -0
  262. package/dist/collection/index.js +2 -2
  263. package/dist/collection/index.js.map +1 -1
  264. package/dist/collection/model/Color.js +18 -1
  265. package/dist/collection/model/Color.js.map +1 -1
  266. package/dist/collection/{components/form → model}/Data.js +8 -1
  267. package/dist/collection/model/Data.js.map +1 -0
  268. package/dist/collection/model/Icon.js +23 -0
  269. package/dist/collection/model/Icon.js.map +1 -0
  270. package/dist/collection/model/Listenable.js +17 -4
  271. package/dist/collection/model/Listenable.js.map +1 -1
  272. package/dist/collection/model/Notice.js +1 -1
  273. package/dist/collection/model/Notice.js.map +1 -1
  274. package/dist/collection/model/Option.js.map +1 -1
  275. package/dist/collection/model/index.js +4 -0
  276. package/dist/collection/model/index.js.map +1 -1
  277. package/dist/collection/model/redirect.js +8 -0
  278. package/dist/collection/model/redirect.js.map +1 -0
  279. package/dist/collection/smoothly.js +3 -0
  280. package/dist/collection/smoothly.js.map +1 -0
  281. package/dist/custom-elements/index.d.ts +176 -50
  282. package/dist/custom-elements/index.js +13394 -29834
  283. package/dist/custom-elements/index.js.map +1 -1
  284. package/dist/esm/{Listenable-fb6f4723.js → Data-0390d600.js} +518 -7
  285. package/dist/esm/Data-0390d600.js.map +1 -0
  286. package/dist/esm/Observers-5f08e828.js +25 -0
  287. package/dist/esm/Observers-5f08e828.js.map +1 -0
  288. package/dist/esm/TimeZone-c8df4905.js +6181 -0
  289. package/dist/esm/TimeZone-c8df4905.js.map +1 -0
  290. package/dist/esm/getLanguage-1e9ec036.js +6116 -0
  291. package/dist/esm/getLanguage-1e9ec036.js.map +1 -0
  292. package/dist/esm/{index-6ac4212d.js → index-258984d3.js} +55 -2
  293. package/dist/esm/index-258984d3.js.map +1 -0
  294. package/dist/esm/index.js +20 -5
  295. package/dist/esm/index.js.map +1 -1
  296. package/dist/esm/loader.js +5 -4
  297. package/dist/esm/loader.js.map +1 -1
  298. package/dist/esm/{Notice-1fa17794.js → redirect-b0f87e88.js} +11 -3
  299. package/dist/esm/redirect-b0f87e88.js.map +1 -0
  300. package/dist/esm/smoothly-accordion-item.entry.js +57 -0
  301. package/dist/esm/smoothly-accordion-item.entry.js.map +1 -0
  302. package/dist/esm/smoothly-accordion.entry.js +54 -0
  303. package/dist/esm/smoothly-accordion.entry.js.map +1 -0
  304. package/dist/esm/smoothly-address-display.entry.js +1 -1
  305. package/dist/esm/smoothly-address.entry.js +1 -1
  306. package/dist/esm/smoothly-addresses.entry.js +1 -1
  307. package/dist/esm/smoothly-app_80.entry.js +10814 -0
  308. package/dist/esm/smoothly-app_80.entry.js.map +1 -0
  309. package/dist/esm/smoothly-checkbox.entry.js +98 -0
  310. package/dist/esm/smoothly-checkbox.entry.js.map +1 -0
  311. package/dist/esm/smoothly-color.entry.js +1 -1
  312. package/dist/esm/smoothly-country.entry.js +10 -9
  313. package/dist/esm/smoothly-country.entry.js.map +1 -1
  314. package/dist/esm/smoothly-display-date-time.entry.js +22 -0
  315. package/dist/esm/smoothly-display-date-time.entry.js.map +1 -0
  316. package/dist/esm/smoothly-google-font.entry.js +1 -1
  317. package/dist/esm/smoothly-reorder.entry.js +1 -1
  318. package/dist/esm/smoothly-trigger-sink.entry.js +2 -2
  319. package/dist/esm/smoothly-trigger-source.entry.js +4 -4
  320. package/dist/esm/smoothly-trigger-source.entry.js.map +1 -1
  321. package/dist/esm/smoothly.js +5 -4
  322. package/dist/esm/smoothly.js.map +1 -1
  323. package/dist/smoothly/index.esm.js +1 -1
  324. package/dist/smoothly/index.esm.js.map +1 -1
  325. package/dist/smoothly/{p-04fb45e1.entry.js → p-12182a73.entry.js} +2 -2
  326. package/dist/smoothly/{p-5629e452.entry.js → p-127dcc56.entry.js} +2 -2
  327. package/dist/smoothly/p-21905b32.entry.js +2 -0
  328. package/dist/smoothly/p-21905b32.entry.js.map +1 -0
  329. package/dist/smoothly/p-312ef066.js +2 -0
  330. package/dist/smoothly/p-312ef066.js.map +1 -0
  331. package/dist/smoothly/p-47151a53.entry.js +2 -0
  332. package/dist/smoothly/p-5e387578.js +3 -0
  333. package/dist/smoothly/p-5e387578.js.map +1 -0
  334. package/dist/smoothly/{p-0fec28cc.entry.js → p-6aebb818.entry.js} +2 -2
  335. package/dist/smoothly/p-6e9aca2e.entry.js +2 -0
  336. package/dist/smoothly/p-6e9aca2e.entry.js.map +1 -0
  337. package/dist/smoothly/{p-ae467192.entry.js → p-7bf147bf.entry.js} +2 -2
  338. package/dist/smoothly/p-823e02b0.entry.js +2 -0
  339. package/dist/smoothly/p-823e02b0.entry.js.map +1 -0
  340. package/dist/smoothly/p-9b828bde.js +2 -0
  341. package/dist/smoothly/p-9b828bde.js.map +1 -0
  342. package/dist/smoothly/p-a0ebd646.entry.js +2 -0
  343. package/dist/smoothly/p-a0ebd646.entry.js.map +1 -0
  344. package/dist/smoothly/{p-b3eef141.entry.js → p-b3eac6af.entry.js} +2 -2
  345. package/dist/smoothly/p-b9165e1d.entry.js +2 -0
  346. package/dist/smoothly/p-b9165e1d.entry.js.map +1 -0
  347. package/dist/smoothly/p-c833c402.js +2 -0
  348. package/dist/smoothly/p-c833c402.js.map +1 -0
  349. package/dist/smoothly/{p-3a6873ed.entry.js → p-cb493516.entry.js} +2 -2
  350. package/dist/smoothly/p-ede93d69.js +2 -0
  351. package/dist/smoothly/p-ede93d69.js.map +1 -0
  352. package/dist/smoothly/p-eef1c80b.entry.js +2 -0
  353. package/dist/smoothly/p-eef1c80b.entry.js.map +1 -0
  354. package/dist/smoothly/p-f125610c.entry.js +2 -0
  355. package/dist/smoothly/p-f125610c.entry.js.map +1 -0
  356. package/dist/smoothly/p-fa664317.js +2 -0
  357. package/dist/smoothly/p-fa664317.js.map +1 -0
  358. package/dist/smoothly/smoothly.esm.js +1 -1
  359. package/dist/smoothly/smoothly.esm.js.map +1 -1
  360. package/dist/types/components/Button.d.ts +1 -2
  361. package/dist/types/components/accordion/index.d.ts +1 -1
  362. package/dist/types/components/accordion-item/index.d.ts +5 -4
  363. package/dist/types/components/app/index.d.ts +23 -10
  364. package/dist/types/components/app/room/index.d.ts +21 -7
  365. package/dist/types/components/app-demo/index.d.ts +1 -0
  366. package/dist/types/components/backtotop/index.d.ts +1 -1
  367. package/dist/types/components/burger/index.d.ts +7 -2
  368. package/dist/types/components/button/index.d.ts +2 -2
  369. package/dist/types/components/calendar/index.d.ts +5 -5
  370. package/dist/types/components/checkbox/index.d.ts +7 -3
  371. package/dist/types/components/confirm/index.d.ts +19 -0
  372. package/dist/types/components/filter/Filter.d.ts +21 -0
  373. package/dist/types/components/filter/field/index.d.ts +10 -0
  374. package/dist/types/components/filter/index.d.ts +13 -12
  375. package/dist/types/components/filter/input/index.d.ts +15 -23
  376. package/dist/types/components/filter/picker/index.d.ts +24 -0
  377. package/dist/types/components/filter/toggle/index.d.ts +22 -0
  378. package/dist/types/components/form/index.d.ts +23 -7
  379. package/dist/types/components/icon/index.d.ts +3 -9
  380. package/dist/types/components/input/Editable.d.ts +20 -0
  381. package/dist/types/components/input/Input.d.ts +22 -0
  382. package/dist/types/components/input/Looks.d.ts +7 -0
  383. package/dist/types/components/input/Submittable.d.ts +6 -0
  384. package/dist/types/components/input/checkbox/index.d.ts +20 -0
  385. package/dist/types/components/input/clear/index.d.ts +17 -0
  386. package/dist/types/components/input/color/index.d.ts +24 -0
  387. package/dist/types/components/input/date/index.d.ts +28 -0
  388. package/dist/types/components/input/date/range/index.d.ts +33 -0
  389. package/dist/types/components/input/demo/index.d.ts +6 -0
  390. package/dist/types/components/input/edit/index.d.ts +17 -0
  391. package/dist/types/components/input/file/index.d.ts +24 -0
  392. package/dist/types/components/input/index.d.ts +30 -11
  393. package/dist/types/components/{input-month → input/month}/index.d.ts +2 -2
  394. package/dist/types/components/input/radio/Selected.d.ts +10 -0
  395. package/dist/types/components/input/radio/index.d.ts +35 -0
  396. package/dist/types/components/input/radio/item/index.d.ts +15 -0
  397. package/dist/types/components/input/range/index.d.ts +24 -0
  398. package/dist/types/components/input/reset/index.d.ts +18 -0
  399. package/dist/types/components/input/select/index.d.ts +36 -0
  400. package/dist/types/components/input/submit/index.d.ts +17 -0
  401. package/dist/types/components/item/index.d.ts +1 -1
  402. package/dist/types/components/label/index.d.ts +6 -0
  403. package/dist/types/components/lazy/index.d.ts +7 -0
  404. package/dist/types/components/load-more/index.d.ts +11 -0
  405. package/dist/types/components/notification/index.d.ts +3 -1
  406. package/dist/types/components/picker/demo/index.d.ts +22 -0
  407. package/dist/types/components/picker/index.d.ts +33 -45
  408. package/dist/types/components/picker/menu/index.d.ts +54 -0
  409. package/dist/types/components/picker/option/index.d.ts +23 -0
  410. package/dist/types/components/picker/slot-elements/index.d.ts +15 -0
  411. package/dist/types/components/picker/slotted-elements/index.d.ts +8 -0
  412. package/dist/types/components/popup/index.d.ts +1 -1
  413. package/dist/types/components/select-demo/index.d.ts +0 -9
  414. package/dist/types/components/submit/index.d.ts +6 -1
  415. package/dist/types/components/summary/index.d.ts +4 -0
  416. package/dist/types/components/table/demo/filtered/Root.d.ts +2 -0
  417. package/dist/types/components/table/demo/filtered/index.d.ts +7 -7
  418. package/dist/types/components/table/demo/index.d.ts +1 -1
  419. package/dist/types/components/table/demo/testing/data.d.ts +5 -0
  420. package/dist/types/components/table/demo/testing/index.d.ts +4 -0
  421. package/dist/types/components/table/expandable/cell/index.d.ts +4 -5
  422. package/dist/types/components/table/expandable/row/index.d.ts +3 -8
  423. package/dist/types/components/table/footer/index.d.ts +3 -0
  424. package/dist/types/components/table/index.d.ts +6 -3
  425. package/dist/types/components/table/row/index.d.ts +3 -1
  426. package/dist/types/components/theme/color/index.d.ts +5 -0
  427. package/dist/types/components/theme/color/variant/index.d.ts +6 -0
  428. package/dist/types/components/theme/colors/index.d.ts +3 -0
  429. package/dist/types/components/theme/picker/index.d.ts +4 -0
  430. package/dist/types/components/toggle-switch/index.d.ts +7 -2
  431. package/dist/types/components/trigger-source/index.d.ts +1 -1
  432. package/dist/types/components.d.ts +914 -347
  433. package/dist/types/global/Observers.d.ts +8 -0
  434. package/dist/types/global/index.d.ts +4 -0
  435. package/dist/types/index.d.ts +1 -3
  436. package/dist/types/model/Color.d.ts +7 -1
  437. package/dist/types/{components/form → model}/Data.d.ts +4 -0
  438. package/dist/types/model/Icon.d.ts +8 -0
  439. package/dist/types/model/Listenable.d.ts +10 -1
  440. package/dist/types/model/Notice.d.ts +1 -1
  441. package/dist/types/model/Option.d.ts +24 -6
  442. package/dist/types/model/index.d.ts +3 -0
  443. package/dist/types/model/redirect.d.ts +1 -0
  444. package/dist/types/smoothly.d.ts +3 -0
  445. package/package.json +7 -6
  446. package/dist/cjs/Listenable-63ea2d90.js.map +0 -1
  447. package/dist/cjs/Notice-88ba4c70.js.map +0 -1
  448. package/dist/cjs/getLanguage-4f0a45d5.js +0 -12227
  449. package/dist/cjs/getLanguage-4f0a45d5.js.map +0 -1
  450. package/dist/cjs/index-8adc5c1b.js.map +0 -1
  451. package/dist/cjs/index-d16d46f4.js +0 -1224
  452. package/dist/cjs/index-d16d46f4.js.map +0 -1
  453. package/dist/cjs/smoothly-accordion_62.cjs.entry.js +0 -28199
  454. package/dist/cjs/smoothly-accordion_62.cjs.entry.js.map +0 -1
  455. package/dist/cjs/smoothly-radio-group.cjs.entry.js +0 -22
  456. package/dist/cjs/smoothly-radio-group.cjs.entry.js.map +0 -1
  457. package/dist/collection/components/filter/Clearable.js.map +0 -1
  458. package/dist/collection/components/form/Clearable.js +0 -8
  459. package/dist/collection/components/form/Clearable.js.map +0 -1
  460. package/dist/collection/components/form/Data.js.map +0 -1
  461. package/dist/collection/components/input-date/index.js +0 -206
  462. package/dist/collection/components/input-date/index.js.map +0 -1
  463. package/dist/collection/components/input-date/style.css +0 -40
  464. package/dist/collection/components/input-date-range/index.js.map +0 -1
  465. package/dist/collection/components/input-date-range/style.css +0 -51
  466. package/dist/collection/components/input-demo/index.js +0 -45
  467. package/dist/collection/components/input-demo/index.js.map +0 -1
  468. package/dist/collection/components/input-demo/style.css +0 -4
  469. package/dist/collection/components/input-month/index.js.map +0 -1
  470. package/dist/collection/components/menu-options/index.js +0 -413
  471. package/dist/collection/components/menu-options/index.js.map +0 -1
  472. package/dist/collection/components/menu-options/style.css +0 -18
  473. package/dist/collection/components/option/index.js +0 -270
  474. package/dist/collection/components/option/index.js.map +0 -1
  475. package/dist/collection/components/option/style.css +0 -42
  476. package/dist/collection/components/radio/index.js.map +0 -1
  477. package/dist/collection/components/radio/style.css +0 -31
  478. package/dist/collection/components/radio-button/Selected.js +0 -2
  479. package/dist/collection/components/radio-button/Selected.js.map +0 -1
  480. package/dist/collection/components/radio-button/index.js +0 -137
  481. package/dist/collection/components/radio-button/index.js.map +0 -1
  482. package/dist/collection/components/radio-button/item/index.js +0 -117
  483. package/dist/collection/components/radio-button/item/index.js.map +0 -1
  484. package/dist/collection/components/radio-button/item/style.css +0 -85
  485. package/dist/collection/components/radio-group/index.js +0 -43
  486. package/dist/collection/components/radio-group/index.js.map +0 -1
  487. package/dist/collection/components/radio-group/style.css +0 -36
  488. package/dist/collection/components/select/index.js +0 -108
  489. package/dist/collection/components/select/index.js.map +0 -1
  490. package/dist/collection/components/select/style.css +0 -20
  491. package/dist/collection/components/selector/index.js +0 -234
  492. package/dist/collection/components/selector/index.js.map +0 -1
  493. package/dist/collection/components/selector/style.css +0 -46
  494. package/dist/custom-elements/index2.js +0 -1222
  495. package/dist/custom-elements/index2.js.map +0 -1
  496. package/dist/esm/Listenable-fb6f4723.js.map +0 -1
  497. package/dist/esm/Notice-1fa17794.js.map +0 -1
  498. package/dist/esm/getLanguage-ffacd7b7.js +0 -12225
  499. package/dist/esm/getLanguage-ffacd7b7.js.map +0 -1
  500. package/dist/esm/index-6ac4212d.js.map +0 -1
  501. package/dist/esm/index-d5330059.js +0 -1222
  502. package/dist/esm/index-d5330059.js.map +0 -1
  503. package/dist/esm/smoothly-accordion_62.entry.js +0 -28134
  504. package/dist/esm/smoothly-accordion_62.entry.js.map +0 -1
  505. package/dist/esm/smoothly-radio-group.entry.js +0 -18
  506. package/dist/esm/smoothly-radio-group.entry.js.map +0 -1
  507. package/dist/smoothly/p-06337b89.js +0 -2
  508. package/dist/smoothly/p-06337b89.js.map +0 -1
  509. package/dist/smoothly/p-16cba662.entry.js +0 -2
  510. package/dist/smoothly/p-16cba662.entry.js.map +0 -1
  511. package/dist/smoothly/p-3ad51805.entry.js +0 -2
  512. package/dist/smoothly/p-3ad51805.entry.js.map +0 -1
  513. package/dist/smoothly/p-5e34795b.js +0 -2
  514. package/dist/smoothly/p-5e34795b.js.map +0 -1
  515. package/dist/smoothly/p-75373584.js +0 -2
  516. package/dist/smoothly/p-75373584.js.map +0 -1
  517. package/dist/smoothly/p-75452eb8.js +0 -2
  518. package/dist/smoothly/p-75452eb8.js.map +0 -1
  519. package/dist/smoothly/p-ae33d7e1.entry.js +0 -2
  520. package/dist/smoothly/p-ae33d7e1.entry.js.map +0 -1
  521. package/dist/smoothly/p-b98cd447.js +0 -3
  522. package/dist/smoothly/p-b98cd447.js.map +0 -1
  523. package/dist/smoothly/p-c109fc66.entry.js +0 -2
  524. package/dist/smoothly/p-c109fc66.entry.js.map +0 -1
  525. package/dist/smoothly/p-f29cc9ff.entry.js +0 -2
  526. package/dist/types/components/form/Clearable.d.ts +0 -6
  527. package/dist/types/components/input-date/index.d.ts +0 -14
  528. package/dist/types/components/input-date-range/index.d.ts +0 -23
  529. package/dist/types/components/input-demo/index.d.ts +0 -3
  530. package/dist/types/components/menu-options/index.d.ts +0 -35
  531. package/dist/types/components/option/index.d.ts +0 -32
  532. package/dist/types/components/radio/index.d.ts +0 -13
  533. package/dist/types/components/radio-button/Selected.d.ts +0 -5
  534. package/dist/types/components/radio-button/index.d.ts +0 -15
  535. package/dist/types/components/radio-button/item/index.d.ts +0 -12
  536. package/dist/types/components/radio-group/index.d.ts +0 -4
  537. package/dist/types/components/select/index.d.ts +0 -14
  538. package/dist/types/components/selector/index.d.ts +0 -23
  539. /package/dist/collection/components/{filter → input}/Clearable.js +0 -0
  540. /package/dist/collection/components/{input-month → input/month}/style.css +0 -0
  541. /package/dist/collection/components/{radio-button → lazy}/style.css +0 -0
  542. /package/dist/smoothly/{p-04fb45e1.entry.js.map → p-12182a73.entry.js.map} +0 -0
  543. /package/dist/smoothly/{p-5629e452.entry.js.map → p-127dcc56.entry.js.map} +0 -0
  544. /package/dist/smoothly/{p-f29cc9ff.entry.js.map → p-47151a53.entry.js.map} +0 -0
  545. /package/dist/smoothly/{p-0fec28cc.entry.js.map → p-6aebb818.entry.js.map} +0 -0
  546. /package/dist/smoothly/{p-ae467192.entry.js.map → p-7bf147bf.entry.js.map} +0 -0
  547. /package/dist/smoothly/{p-b3eef141.entry.js.map → p-b3eac6af.entry.js.map} +0 -0
  548. /package/dist/smoothly/{p-3a6873ed.entry.js.map → p-cb493516.entry.js.map} +0 -0
  549. /package/dist/types/components/{filter → input}/Clearable.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/picker/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAQ5G,MAAM,OAAO,cAAc;;IAElB,wBAAmB,GAAG,KAAK,CAAA;;;oBAKC,KAAK;oBACL,KAAK;yBACjB,SAAS;;0BAES,YAAY;oBAClB,KAAK;mBACvB,KAAK;;mBAE+D,EAAE;;;sBAGxC,EAAE;0BACR,aAAa;yBACd,YAAY;yBACZ,gBAAgB;0BACf,MAAM;0BACwB,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC;;EAI9F,mBAAmB;IAClB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;MACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KACpC;EACF,CAAC;EACD,kBAAkB;IACjB,IAAI,CAAC,aAAa,EAAE,CAAA;IACpB,IAAI,IAAI,CAAC,mBAAmB,EAAE;MAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;MACzB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAA;KAChC;EACF,CAAC;EAGD,mBAAmB,CAAC,KAA0B;IAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACzB,KAAK,CAAC,eAAe,EAAE,CAAA;EACxB,CAAC;EAED,gBAAgB,CAAC,KAAmD;IACnE,IAAI,IAAI,CAAC,OAAO,EAAE;MACjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;MAChE,IAAI,MAAM,EAAE;QACX,MAAM,MAAM,qBAAQ,KAAK,CAAC,MAAM,CAAE,CAAA;QAClC,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;OACnB;MACD,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAClC;IACD,KAAK,CAAC,eAAe,EAAE,CAAA;EACxB,CAAC;EAED,YAAY,CAAC,KAA2B;IACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;IACzB,KAAK,CAAC,eAAe,EAAE,CAAA;EACxB,CAAC;EACD,MAAM,CAAC,MAAc;IACpB,MAAM,CAAC,KAAK,IAAI,aAAa;MAC5B,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE;MAClB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1D,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;EACvB,CAAC;EACD,SAAS;;IACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,KAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAA;IACpF,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IACzB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;EAChC,CAAC;EACD,QAAQ,CAAC,SAAiB;IACzB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACxF,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE;MAChB,IAAI,CAAC,UAAU,GAAG;QACjB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;QAClC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;OAC3D,CAAA;MACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;KAC/B;EACF,CAAC;EACD,MAAM,CAAC,SAAiB;IACvB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC9G,IAAI,cAAc;MACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAChF,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAA;IAC5B,IAAI,CAAC,aAAa,EAAE,CAAA;IACpB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;IAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;EAC5B,CAAC;EACD,iBAAiB;;IAChB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE;MAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;MACrE,IAAI,MAAM,EAAE;QACX,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;QAChF,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;OACnB;MACD,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAClC;;MACA,MAAA,IAAI,CAAC,WAAW,0CAAE,cAAc,GAAG,IAAI,CAAC,CAAC,MAA0B,EAAE,EAAE;QACtE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;MAC9B,CAAC,CAAC,CAAA;EACJ,CAAC;EACD,gBAAgB;;IACf,IAAI,CAAC,aAAa,EAAE,CAAA;IACpB,MAAA,IAAI,CAAC,WAAW,0CAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;EAC5G,CAAC;EACD,aAAa;;IACZ,MAAA,IAAI,CAAC,WAAW,0CAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;EAC7D,CAAC;EACD,OAAO,CAAC,KAAc;IACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;IAChE,IAAI,CAAC,gBAAgB,EAAE,CAAA;EACxB,CAAC;EACD,SAAS,CAAC,KAAoB;;IAC7B,IAAI,KAAK,CAAC,GAAG,IAAI,SAAS,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE;MACvD,MAAA,IAAI,CAAC,WAAW,0CAAE,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;MAChE,KAAK,CAAC,cAAc,EAAE,CAAA;KACtB;SAAM,IAAI,KAAK,CAAC,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM;MAC7C,IAAI,CAAC,iBAAiB,EAAE,CAAA;SACpB,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,EAAE;MAC/B,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAA;MAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;MACnB,IAAI,CAAC,aAAa,EAAE,CAAA;KACpB;SAAM,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,EAAE;MAC7D,KAAK,CAAC,cAAc,EAAE,CAAA;MACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;MAClB,IAAI,CAAC,aAAa,EAAE,CAAA;KACpB;EACF,CAAC;EACD,OAAO;IACN,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;MACtC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAA;MAC1B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;MACzB,IAAI,CAAC,gBAAgB,EAAE,CAAA;MACvB,IAAI,CAAC,aAAa,EAAE,CAAA;KACpB;EACF,CAAC;EACD,MAAM;IACL,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAA;IAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACnB,IAAI,CAAC,aAAa,EAAE,CAAA;EACrB,CAAC;EAED,MAAM;;IACL,MAAM,YAAY,GAAG;MACpB,cAAc,EAAE,MAAA,IAAI,CAAC,SAAS,mCAAI,SAAS;MAC3C,iBAAiB,EAAE,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;KACpE,CAAA;IACD,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,CAAC,CAAC,EAAE;MACzB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IACF,MAAM,OAAO,GAAG;MACf,GAAG,CAAC,IAAI,CAAC,QAAQ;QAChB,CAAC,CAAC;UACA;YACC,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa;YAC9F,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;YACtD,OAAO,EAAE,IAAI;WACb;SACA;QACH,CAAC,CAAC,EAAE,CAAC;MACN,GAAG,CAAC,MAAA,IAAI,CAAC,OAAO,mCAAI,EAAE,CAAC;KACvB,CAAA;IACD,OAAO,CACN,EAAC,IAAI,IACJ,KAAK,EAAE,YAAY,mBACJ,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,aAChC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACrC,WAAW,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAClD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;MAC7B;QACC,qBAAe,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,gBAAgB,EAAC,IAAI,EAAC,MAAM,GAAiB;QAC9F,aAAO,IAAI,EAAC,eAAe,IAAE,IAAI,CAAC,KAAK,CAAS;QAChD,aACC,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAC,MAAM,EACX,GAAG,EAAE,CAAC,EAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAChF,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EACtC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAC3B,WAAW,EACV,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa;YAC9D,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAE/D,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EACjC,OAAO,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAU;QACnD,qBAAe,IAAI,EAAC,SAAS,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,cAAc,EAAC,IAAI,EAAC,MAAM,GAAiB;QAC3F,qBAAe,IAAI,EAAC,SAAS,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,MAAM,GAAiB,CAClF;MACN,6BACC,IAAI,EAAC,cAAc,EACnB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EACxB,MAAM,EAAE,IAAI,EACZ,WAAW,oBAAO,IAAI,CAAC,WAAW,GAClC,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,cAAc,EAAE,IAAI,CAAC,cAAc,qBAClB,IAAI,CAAC,aAAa,EACnC,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,GAAG,EAAE,CAAC,EAAkC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,IAAI,CAAC,WAAW,CAAC,EACxF,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACjC,6BAA6B,EAAE,KAAK,EACpC,OAAO,EAAE,OAAO,GAA0B,CACrC,CACP,CAAA;EACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from \"@stencil/core\"\nimport { Notice, Option } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-picker\",\n\tstyleUrl: \"style.scss\",\n\tshadow: true,\n})\nexport class SmoothlyPicker {\n\tprivate inputElement: HTMLInputElement\n\tprivate keepFocusOnReRender = false\n\tprivate menuElement: HTMLSmoothlyMenuOptionsElement\n\t@Element() element: HTMLElement\n\t@State() isOpen: boolean\n\t@State() empty: boolean\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop({ reflect: true }) readonly = false\n\t@Prop() maxMenuHeight = \"inherit\"\n\t@Prop() maxHeight: string\n\t@Prop({ mutable: true }) emptyMenuLabel = \"No Options\"\n\t@Prop({ reflect: true }) multiple = false\n\t@Prop() mutable = false\n\t@Prop() optionStyle: any\n\t@Prop({ mutable: true, reflect: true }) options: (Option & { checked?: boolean })[] = []\n\t@Prop({ reflect: true }) labelSetting: \"hide\" | \"default\"\n\t@Prop({ reflect: true }) label: string\n\t@Prop({ mutable: true }) selections: Option[] = []\n\t@Prop({ mutable: true }) selectNoneName = \"Select None\"\n\t@Prop({ mutable: true }) selectAllName = \"Select All\"\n\t@Prop({ mutable: true }) selectionName = \"items selected\"\n\t@Prop({ mutable: true }) newOptionLabel = \"Add:\"\n\t@Prop() valueValidator: (value: any) => [boolean, Notice | undefined] = _ => [true, undefined]\n\t@Event() menuClose: EventEmitter<Option[]>\n\t@Event() notice: EventEmitter<Notice>\n\t@Watch(\"isOpen\")\n\tisOpenChangeHandler() {\n\t\tif (this.isOpen == false) {\n\t\t\tthis.menuClose.emit(this.selections)\n\t\t}\n\t}\n\tcomponentDidRender() {\n\t\tthis.filterOptions()\n\t\tif (this.keepFocusOnReRender) {\n\t\t\tthis.inputElement.focus()\n\t\t\tthis.keepFocusOnReRender = false\n\t\t}\n\t}\n\t@Listen(\"optionSelect\")\n\t@Listen(\"optionUnselect\")\n\toptionSelectHandler(event: CustomEvent<Option>) {\n\t\tthis.toggle(event.detail)\n\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"optionAdd\")\n\toptionAddHandler(event: CustomEvent<{ name: string; value: string }>) {\n\t\tif (this.mutable) {\n\t\t\tconst [status, notice] = this.valueValidator(event.detail.value)\n\t\t\tif (status) {\n\t\t\t\tconst option = { ...event.detail }\n\t\t\t\tthis.options = [...this.options, option]\n\t\t\t\tthis.select(option)\n\t\t\t}\n\t\t\tnotice && this.notice.emit(notice)\n\t\t}\n\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"menuEmpty\")\n\temptyHandler(event: CustomEvent<boolean>) {\n\t\tthis.empty = event.detail\n\t\tevent.stopPropagation()\n\t}\n\ttoggle(option: Option) {\n\t\toption.value == \"select-none\"\n\t\t\t? this.toggleAll()\n\t\t\t: this.selections.map(s => s.value).includes(option.value)\n\t\t\t? this.unselect(option)\n\t\t\t: this.select(option)\n\t}\n\ttoggleAll() {\n\t\tthis.selections = this.selections.length == this.options?.length ? [] : this.options\n\t\tthis.inputElement.focus()\n\t\tthis.keepFocusOnReRender = true\n\t}\n\tunselect(selection: Option) {\n\t\tconst index = this.selections.map(selection => selection.value).indexOf(selection.value)\n\t\tif (index != -1) {\n\t\t\tthis.selections = [\n\t\t\t\t...this.selections.slice(0, index),\n\t\t\t\t...this.selections.slice(index + 1, this.selections.length),\n\t\t\t]\n\t\t\tthis.keepFocusOnReRender = true\n\t\t}\n\t}\n\tselect(selection: Option) {\n\t\tconst isNewSelection = this.selections.reduce((acc, current) => acc && current.value != selection.value, true)\n\t\tif (isNewSelection)\n\t\t\tthis.selections = this.multiple ? [...this.selections, selection] : [selection]\n\t\tthis.inputElement.value = \"\"\n\t\tthis.filterOptions()\n\t\tthis.keepFocusOnReRender = true\n\t\tthis.isOpen = this.multiple\n\t}\n\ttoggleHighlighted() {\n\t\tif (this.mutable && this.empty) {\n\t\t\tconst [status, notice] = this.valueValidator(this.inputElement.value)\n\t\t\tif (status) {\n\t\t\t\tconst option = { name: this.inputElement.value, value: this.inputElement.value }\n\t\t\t\tthis.options = [...this.options, option]\n\t\t\t\tthis.select(option)\n\t\t\t}\n\t\t\tnotice && this.notice.emit(notice)\n\t\t} else\n\t\t\tthis.menuElement?.getHighlighted().then((result: Option | undefined) => {\n\t\t\t\tresult && this.toggle(result)\n\t\t\t})\n\t}\n\thighlightDefault() {\n\t\tthis.filterOptions()\n\t\tthis.menuElement?.setHighlight(this.multiple || this.selections.length == 0 ? 0 : this.selections[0].value)\n\t}\n\tfilterOptions() {\n\t\tthis.menuElement?.filterOptions(this.inputElement.value, [])\n\t}\n\tonInput(event: UIEvent) {\n\t\tthis.isOpen = this.inputElement.value != \"\" ? true : this.isOpen\n\t\tthis.highlightDefault()\n\t}\n\tonKeyDown(event: KeyboardEvent) {\n\t\tif (event.key == \"ArrowUp\" || event.key == \"ArrowDown\") {\n\t\t\tthis.menuElement?.moveHighlight(event.key == \"ArrowUp\" ? -1 : 1)\n\t\t\tevent.preventDefault()\n\t\t} else if (event.key == \"Enter\" && this.isOpen)\n\t\t\tthis.toggleHighlighted()\n\t\telse if (event.key == \"Escape\") {\n\t\t\tthis.inputElement.value = \"\"\n\t\t\tthis.isOpen = false\n\t\t\tthis.filterOptions()\n\t\t} else if (event.key == \" \" && this.inputElement.value == \"\") {\n\t\t\tevent.preventDefault()\n\t\t\tthis.isOpen = true\n\t\t\tthis.filterOptions()\n\t\t}\n\t}\n\tonClick() {\n\t\tif (!(this.readonly || this.disabled)) {\n\t\t\tthis.isOpen = !this.isOpen\n\t\t\tthis.inputElement.focus()\n\t\t\tthis.highlightDefault()\n\t\t\tthis.filterOptions()\n\t\t}\n\t}\n\tonBlur() {\n\t\tthis.inputElement.value = \"\"\n\t\tthis.isOpen = false\n\t\tthis.filterOptions()\n\t}\n\n\trender() {\n\t\tconst cssVariables = {\n\t\t\t\"--max-height\": this.maxHeight ?? \"inherit\",\n\t\t\t\"--label-display\": this.labelSetting == \"hide\" ? \"none\" : \"absolute\",\n\t\t}\n\t\tthis.options?.forEach(o => {\n\t\t\to.checked = this.selections.map(s => s.value).includes(o.value)\n\t\t})\n\t\tconst options = [\n\t\t\t...(this.multiple\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: \"select-none\",\n\t\t\t\t\t\t\tname: this.selections.length == this.options.length ? this.selectNoneName : this.selectAllName,\n\t\t\t\t\t\t\tchecked: this.selections.length == this.options.length,\n\t\t\t\t\t\t\tdivider: true,\n\t\t\t\t\t\t},\n\t\t\t\t ]\n\t\t\t\t: []),\n\t\t\t...(this.options ?? []),\n\t\t]\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tstyle={cssVariables}\n\t\t\t\thas-selection={this.selections.length > 0}\n\t\t\t\tis-open={this.isOpen ? \"\" : undefined}\n\t\t\t\tonMouseDown={(e: MouseEvent) => e.preventDefault()}\n\t\t\t\tonClick={() => this.onClick()}>\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-icon part=\"search\" class=\"search\" name=\"search-outline\" size=\"tiny\"></smoothly-icon>\n\t\t\t\t\t<label part=\"label-element\">{this.label}</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\tpart=\"input\"\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tref={(el: HTMLInputElement) => (this.inputElement = el ? el : this.inputElement)}\n\t\t\t\t\t\tonFocus={() => this.highlightDefault()}\n\t\t\t\t\t\tonBlur={() => this.onBlur()}\n\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\tthis.selections.length > 3\n\t\t\t\t\t\t\t\t? this.selections.length.toString() + \" \" + this.selectionName\n\t\t\t\t\t\t\t\t: this.selections.map(selection => selection.name).join(\", \")\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonKeyDown={e => this.onKeyDown(e)}\n\t\t\t\t\t\tonInput={(e: UIEvent) => this.onInput(e)}></input>\n\t\t\t\t\t<smoothly-icon part=\"chevron\" class=\"down\" name=\"chevron-down\" size=\"tiny\"></smoothly-icon>\n\t\t\t\t\t<smoothly-icon part=\"chevron\" class=\"up\" name=\"chevron-up\" size=\"tiny\"></smoothly-icon>\n\t\t\t\t</div>\n\t\t\t\t<smoothly-menu-options\n\t\t\t\t\tpart=\"menu-options\"\n\t\t\t\t\tstyle={{ width: \"100%\" }}\n\t\t\t\t\ttoggle={true}\n\t\t\t\t\toptionStyle={{ ...this.optionStyle }}\n\t\t\t\t\torder={false}\n\t\t\t\t\temptyMenuLabel={this.emptyMenuLabel}\n\t\t\t\t\tnewOptionLabel={this.newOptionLabel}\n\t\t\t\t\tmax-menu-height={this.maxMenuHeight}\n\t\t\t\t\tmutable={this.mutable}\n\t\t\t\t\tref={(el: HTMLSmoothlyMenuOptionsElement) => (this.menuElement = el ?? this.menuElement)}\n\t\t\t\t\tonClick={e => e.stopPropagation()}\n\t\t\t\t\tresetHighlightOnOptionsChange={false}\n\t\t\t\t\toptions={options}></smoothly-menu-options>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/picker/index.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAYpH,MAAM,OAAO,cAAc;;iBAE6B,OAAO;;gBAEf,KAAK;mBACjB,KAAK;oBACJ,KAAK;oBACL,KAAK;;oBAErB,IAAI,GAAG,EAAe;;;EAQ1C,iBAAiB;IAChB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAA;EAC5D,CAAC;EAGD,eAAe;;IACd,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3E,IAAI,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,EAAE,EAAE;MAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;MACnF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;KACpF;IACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE;MAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;MAC3C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;MACtE,OAAO,IAAI,CAAA;IACZ,CAAC,CAAC,CAAA;EACH,CAAC;EAED,gBAAgB;IACf,IAAI,IAAI,CAAC,QAAQ;MAChB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAuB,EAAE,EAAE;YAA3B,EAAE,MAAM,OAAe,EAAV,QAAQ,cAArB,UAAuB,CAAF;QAAO,OAAA,QAAQ,CAAA;OAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;EACxF,CAAC;EAED,yBAAyB,CAAC,KAA0C;IACnE,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;MAC/B,KAAK,CAAC,eAAe,EAAE,CAAA;EACzB,CAAC;EAED,iBAAiB,CAAC,KAAwD;IACzE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAA;EAC7B,CAAC;EAED,mBAAmB,CAAC,KAA0B;IAC7C,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ;MACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAC5B,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACxE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;EACpD,CAAC;EAGD,mBAAmB,CAAC,KAA0B;IAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ;MACjB,IAAI,IAAI,CAAC,QAAQ;QAChB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ;UACpC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;UACxE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3C,CAAC,CAAC,IAAI,CAAC,QAAQ;YACf,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;;QAEnC,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;EACvG,CAAC;EAED,YAAY,CAAC,KAAiB;IAC7B,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;EAC9E,CAAC;EAED,YAAY,CAAC,KAAiB;IAC7B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;MAC/C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;EACnB,CAAC;EAED,KAAK,CAAC,KAAK;IACV,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;EAClF,CAAC;EACD,MAAM;IACL,OAAO,CACN,EAAC,IAAI,IAAC,QAAQ,EAAE,CAAC;MAChB,8BAAwB,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,GAAI;MAClE,YAAM,KAAK,EAAE,OAAO;QACnB,YAAM,IAAI,EAAE,OAAO,GAAI,CACjB;MACP,cAAQ,IAAI,EAAC,QAAQ;QACpB,qBAAe,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,uBAAuB,GAAI,CACvF;MACT,YAAM,IAAI,EAAC,OAAO,GAAG;MACrB,4BACC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAM,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,GAAG;QACpC,YAAM,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,GAAG;QACtC,eAAQ,CACc,CACjB,CACP,CAAA;EACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { Notice, Option } from \"../../model\"\nimport { Clearable } from \"../input/Clearable\"\nimport { Input } from \"../input/Input\"\nimport { Looks } from \"../input/Looks\"\nimport { Controls } from \"./menu\"\n\n@Component({\n\ttag: \"smoothly-picker\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyPicker implements Clearable, Input {\n\t@Element() element: HTMLSmoothlyPickerElement\n\t@Prop({ reflect: true, mutable: true }) looks: Looks = \"plain\"\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ reflect: true, mutable: true }) open = false\n\t@Prop({ reflect: true }) mutable = false\n\t@Prop({ reflect: true }) multiple = false\n\t@Prop({ reflect: true }) readonly = false\n\t@Prop() validator?: (value: string) => boolean | { result: boolean; notice: Notice }\n\t@State() selected = new Map<any, Option>()\n\t@State() display: Node[]\n\t@Event() smoothlyPickerLoaded: EventEmitter<Controls>\n\t@Event() smoothlyInput: EventEmitter<Record<string, any | any[]>> // multiple -> any[]\n\t@Event() smoothlyChange: EventEmitter<Record<string, any | any[]>> // multiple -> any[]\n\t@Event() smoothlyInputLooks: EventEmitter<(looks: Looks) => void>\n\tprivate controls?: Controls & { synced: () => boolean }\n\n\tcomponentWillLoad() {\n\t\tthis.smoothlyInputLooks.emit(looks => (this.looks = looks))\n\t}\n\n\t@Watch(\"selected\")\n\tselectedChanged() {\n\t\tconst selected = Array.from(this.selected.values(), option => option.value)\n\t\tif (this.controls?.synced()) {\n\t\t\tthis.smoothlyInput.emit({ [this.name]: this.multiple ? selected : selected.at(0) })\n\t\t\tthis.smoothlyChange.emit({ [this.name]: this.multiple ? selected : selected.at(0) })\n\t\t}\n\t\tthis.display = Array.from(this.selected.values(), option => {\n\t\t\tconst span = document.createElement(\"span\")\n\t\t\toption.slotted.forEach(node => span.appendChild(node.cloneNode(true)))\n\t\t\treturn span\n\t\t})\n\t}\n\n\tcomponentDidLoad() {\n\t\tif (this.controls)\n\t\t\tthis.smoothlyPickerLoaded.emit((({ synced, ...controls }) => controls)(this.controls))\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks: Looks) => void>) {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"smoothlyPickerMenuLoaded\")\n\tmenuLoadedHandler(event: CustomEvent<Controls & { synced: () => boolean }>) {\n\t\tthis.controls = event.detail\n\t}\n\t@Listen(\"smoothlyPickerOptionLoaded\")\n\toptionLoadedHandler(event: CustomEvent<Option>) {\n\t\tif (event.detail.selected)\n\t\t\tthis.selected = this.multiple\n\t\t\t\t? new Map(this.selected.set(event.detail.value, event.detail).entries())\n\t\t\t\t: new Map().set(event.detail.value, event.detail)\n\t}\n\n\t@Listen(\"smoothlyPickerOptionChange\")\n\toptionChangeHandler(event: CustomEvent<Option>) {\n\t\tif (!this.readonly)\n\t\t\tif (this.multiple)\n\t\t\t\tthis.selected = event.detail.selected\n\t\t\t\t\t? new Map(this.selected.set(event.detail.value, event.detail).entries())\n\t\t\t\t\t: !this.selected.delete(event.detail.value)\n\t\t\t\t\t? this.selected\n\t\t\t\t\t: new Map(this.selected.entries())\n\t\t\telse\n\t\t\t\tthis.selected = !event.detail.selected ? new Map() : new Map().set(event.detail.value, event.detail)\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tclickHandler(event: MouseEvent) {\n\t\tthis.open = !event.composedPath().includes(this.element) ? false : !this.open\n\t}\n\t@Listen(\"focusin\", { target: \"window\" })\n\tfocusHandler(event: FocusEvent) {\n\t\tif (!event.composedPath().includes(this.element))\n\t\t\tthis.open = false\n\t}\n\t@Method()\n\tasync clear() {\n\t\tthis.selected.forEach(option => option.selected && option.element.clickHandler())\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host tabindex={0}>\n\t\t\t\t<smoothly-slot-elements class={\"selected\"} nodes={this.display} />\n\t\t\t\t<span class={\"label\"}>\n\t\t\t\t\t<slot name={\"label\"} />\n\t\t\t\t</span>\n\t\t\t\t<button type=\"button\">\n\t\t\t\t\t<smoothly-icon size=\"tiny\" name={this.open ? \"caret-down-outline\" : \"caret-forward-outline\"} />\n\t\t\t\t</button>\n\t\t\t\t<slot name=\"child\" />\n\t\t\t\t<smoothly-picker-menu\n\t\t\t\t\topen={this.open}\n\t\t\t\t\tlooks={this.looks}\n\t\t\t\t\tonClick={e => e.stopPropagation()}\n\t\t\t\t\tmultiple={this.multiple}\n\t\t\t\t\tmutable={this.mutable}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tvalidator={this.validator}>\n\t\t\t\t\t<slot name=\"search\" slot=\"search\" />\n\t\t\t\t\t<slot name=\"display\" slot=\"display\" />\n\t\t\t\t\t<slot />\n\t\t\t\t</smoothly-picker-menu>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
@@ -0,0 +1,429 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import global from "../../../global/index";
3
+ const Observers = global().Observers;
4
+ function* chain(...iterables) {
5
+ for (const iterable of iterables)
6
+ yield* iterable;
7
+ }
8
+ function restore(target, source) {
9
+ target === null || target === void 0 ? void 0 : target.set.selected((target.selected = source.selected));
10
+ target === null || target === void 0 ? void 0 : target.set.readonly((target.readonly = source.readonly));
11
+ target === null || target === void 0 ? void 0 : target.set.visible((target.visible = source.visible));
12
+ target === null || target === void 0 ? void 0 : target.set.value((target.value = source.value));
13
+ target === null || target === void 0 ? void 0 : target.set.search((target.search = source.search));
14
+ return target;
15
+ }
16
+ function restoreListener(ref, option) {
17
+ ref === null || ref === void 0 ? void 0 : ref.addEventListener("smoothlyPickerOptionLoad", (e) => restore(e.detail, option));
18
+ }
19
+ export class SmoothlyPickerMenu {
20
+ constructor() {
21
+ this.synced = false;
22
+ this.looks = undefined;
23
+ this.open = false;
24
+ this.multiple = false;
25
+ this.mutable = false;
26
+ this.readonly = false;
27
+ this.validator = undefined;
28
+ this.backend = new Map();
29
+ this.options = new Map();
30
+ this.created = new Map();
31
+ this.search = "";
32
+ this.valid = false;
33
+ this.display = undefined;
34
+ this.flip = false;
35
+ this.flipChecked = false;
36
+ }
37
+ componentWillLoad() {
38
+ if (!Observers.has(this.element)) {
39
+ const threshold = 0.4;
40
+ Observers.set(this.element, new IntersectionObserver(entries => {
41
+ var _a, _b;
42
+ return ((_b = (_a = entries.find(entry => entry.target == this.element)) === null || _a === void 0 ? void 0 : _a.intersectionRatio) !== null && _b !== void 0 ? _b : 0) < threshold &&
43
+ !this.flipChecked &&
44
+ ((this.flip = !this.flip), (this.flipChecked = true));
45
+ }, { threshold }));
46
+ }
47
+ }
48
+ sync() {
49
+ if (this.backend.size != this.options.size)
50
+ this.synced = false;
51
+ else
52
+ this.synced = true;
53
+ }
54
+ componentDidLoad() {
55
+ this.smoothlyPickerMenuLoaded.emit({
56
+ remember: () => {
57
+ this.memory = {
58
+ backend: new Map(Array.from(this.backend.entries(), ([value, option]) => [value, Object.assign({}, option)])),
59
+ options: new Map(Array.from(this.options.entries(), ([value, option]) => [value, Object.assign({}, option)])),
60
+ };
61
+ },
62
+ restore: () => {
63
+ if (this.memory) {
64
+ for (const option of this.options.values()) {
65
+ const memory = this.memory.options.get(option.value);
66
+ if (memory != undefined)
67
+ restore(option, memory);
68
+ else if (this.created.get(option.value))
69
+ option.set.selected((option.selected = false));
70
+ }
71
+ for (const option of this.backend.values()) {
72
+ const memory = this.memory.backend.get(option.value);
73
+ if (memory != undefined)
74
+ restore(option, memory);
75
+ else if (this.created.get(option.value))
76
+ option.set.selected((option.selected = false));
77
+ }
78
+ }
79
+ },
80
+ clear: () => {
81
+ const backend = Array.from(this.backend.entries());
82
+ backend.filter(([key]) => this.created.has(key)).forEach(([, option]) => option.set.selected(false));
83
+ this.backend = new Map(backend.filter(([key]) => !this.created.has(key)));
84
+ this.options = new Map(Array.from(this.options.entries()).filter(([key]) => !this.created.has(key)));
85
+ this.created = new Map();
86
+ },
87
+ synced: () => this.synced,
88
+ });
89
+ }
90
+ disconnectedCallback() {
91
+ var _a;
92
+ if (!this.element.parentElement) {
93
+ (_a = Observers.get(this.element)) === null || _a === void 0 ? void 0 : _a.disconnect();
94
+ Observers.remove(this.element);
95
+ }
96
+ }
97
+ openChange() {
98
+ const observer = Observers.get(this.element);
99
+ if (this.open)
100
+ observer === null || observer === void 0 ? void 0 : observer.observe(this.element);
101
+ else
102
+ observer === null || observer === void 0 ? void 0 : observer.unobserve(this.element);
103
+ }
104
+ readonlyChanged() {
105
+ for (const option of chain(this.options.values(), this.backend.values()))
106
+ option.element, option.set.readonly(this.readonly);
107
+ }
108
+ scrollHandler() {
109
+ this.flipChecked = false;
110
+ }
111
+ optionLoadHandler(event) {
112
+ if (!this.listElement || !event.composedPath().includes(this.listElement)) {
113
+ event.stopPropagation();
114
+ this.sync();
115
+ event.detail.set.readonly(this.readonly);
116
+ const current = this.options.get(event.detail.value);
117
+ if (current)
118
+ event.detail.set.selected(current.element.selected);
119
+ }
120
+ }
121
+ optionLoadedHandler(event) {
122
+ var _a;
123
+ if (!this.listElement || !event.composedPath().includes(this.listElement)) {
124
+ event.stopPropagation();
125
+ const current = restore(this.backend.get(event.detail.value), event.detail);
126
+ this.backend = new Map(this.backend
127
+ .set(event.detail.value, Object.assign(Object.assign({}, event.detail), { clone: (_a = current === null || current === void 0 ? void 0 : current.clone) !== null && _a !== void 0 ? _a : event.detail.element.cloneNode(true) }))
128
+ .entries());
129
+ }
130
+ else
131
+ this.options.set(event.detail.value, event.detail);
132
+ this.sync();
133
+ }
134
+ optionChangeHandler(event) {
135
+ var _a;
136
+ if (!this.listElement || !event.composedPath().includes(this.listElement)) {
137
+ event.stopPropagation();
138
+ (_a = this.options.get(event.detail.value)) === null || _a === void 0 ? void 0 : _a.set.selected(event.detail.selected);
139
+ }
140
+ else {
141
+ const current = this.backend.get(event.detail.value);
142
+ if (current === null || current === void 0 ? void 0 : current.element.parentElement)
143
+ current === null || current === void 0 ? void 0 : current.set.selected(event.detail.selected);
144
+ }
145
+ if (!this.readonly && !this.multiple && event.detail.selected)
146
+ for (const option of chain(this.options.values(), this.backend.values()))
147
+ if (option.value != event.detail.value)
148
+ option.set.selected(false);
149
+ }
150
+ inputHandler(event) {
151
+ event.stopPropagation();
152
+ this.search = event.detail.search;
153
+ if (!this.search) {
154
+ this.valid = false;
155
+ for (const option of chain(this.options.values(), this.backend.values()))
156
+ option.set.visible(true);
157
+ }
158
+ else {
159
+ this.valid = !Array.from(this.options.values()).find(option => option.value == this.search);
160
+ const search = this.search.toLocaleLowerCase();
161
+ for (const option of chain(this.options.values(), this.backend.values())) {
162
+ const value = option.value.toString().toLocaleLowerCase().includes(search);
163
+ const searches = option.search.some(value => value.includes(search));
164
+ const result = value || searches;
165
+ option.set.visible(result);
166
+ }
167
+ }
168
+ }
169
+ addHandler() {
170
+ var _a;
171
+ const validation = !this.validator ? true : this.validator(this.search);
172
+ if (this.mutable) {
173
+ if (typeof validation == "object" ? validation.result : validation) {
174
+ if (!this.multiple)
175
+ for (const option of chain(this.options.values(), this.backend.values()))
176
+ option.set.selected(false);
177
+ this.created = new Map(this.created.set(this.search, { value: this.search, selected: true }).entries());
178
+ this.search = "";
179
+ (_a = this.searchElement) === null || _a === void 0 ? void 0 : _a.focus();
180
+ this.valid = false;
181
+ }
182
+ if (typeof validation == "object")
183
+ this.notice.emit(validation.notice);
184
+ }
185
+ }
186
+ keyDownHandler(event) {
187
+ if (event.key == "Enter") {
188
+ event.preventDefault();
189
+ this.addHandler();
190
+ }
191
+ }
192
+ emptyDisplayHandler(event) {
193
+ event.stopPropagation();
194
+ event.detail.set.nodes(this.display);
195
+ }
196
+ render() {
197
+ return (h(Host, { class: { valid: this.valid, flip: this.flip } }, h("smoothly-slotted-elements", { class: "hide", onSmoothlySlottedChange: e => (this.display = e.detail) }, h("slot", { name: "display" })), h("div", { class: "hide" }, h("slot", null), Array.from(this.created.values(), option => (h("smoothly-picker-option", { key: option.value, value: option.value, selected: option.selected }, option.value, h("smoothly-slot-elements", { slot: "display", nodes: this.display }))))), h("div", { class: "controls" }, h("smoothly-input", { ref: e => (this.searchElement = e), name: "search", value: this.search, looks: this.looks, onKeyDown: e => this.keyDownHandler(e), onSmoothlyInput: e => this.inputHandler(e), onSmoothlyChange: e => e.stopPropagation(), onSmoothlyBlur: e => e.stopPropagation() }, h("slot", { name: "search" })), this.mutable && !this.readonly ? (h("button", { onClick: () => this.addHandler(), disabled: !this.valid, type: "button" }, h("smoothly-icon", { name: "add-outline" }))) : null), h("div", { class: "list", ref: e => (this.listElement = e) }, Array.from(this.backend.values())
198
+ .sort((a, b) => a.position - b.position)
199
+ .map(option => (h("smoothly-slot-elements", { ref: e => restoreListener(e, option), clone: false, nodes: option.clone }))))));
200
+ }
201
+ static get is() { return "smoothly-picker-menu"; }
202
+ static get encapsulation() { return "scoped"; }
203
+ static get originalStyleUrls() {
204
+ return {
205
+ "$": ["style.css"]
206
+ };
207
+ }
208
+ static get styleUrls() {
209
+ return {
210
+ "$": ["style.css"]
211
+ };
212
+ }
213
+ static get properties() {
214
+ return {
215
+ "looks": {
216
+ "type": "string",
217
+ "mutable": false,
218
+ "complexType": {
219
+ "original": "Looks",
220
+ "resolved": "\"border\" | \"grid\" | \"line\" | \"plain\" | \"transparent\"",
221
+ "references": {
222
+ "Looks": {
223
+ "location": "import",
224
+ "path": "../../input/Looks"
225
+ }
226
+ }
227
+ },
228
+ "required": false,
229
+ "optional": false,
230
+ "docs": {
231
+ "tags": [],
232
+ "text": ""
233
+ },
234
+ "attribute": "looks",
235
+ "reflect": false
236
+ },
237
+ "open": {
238
+ "type": "boolean",
239
+ "mutable": false,
240
+ "complexType": {
241
+ "original": "boolean",
242
+ "resolved": "boolean",
243
+ "references": {}
244
+ },
245
+ "required": false,
246
+ "optional": false,
247
+ "docs": {
248
+ "tags": [],
249
+ "text": ""
250
+ },
251
+ "attribute": "open",
252
+ "reflect": true,
253
+ "defaultValue": "false"
254
+ },
255
+ "multiple": {
256
+ "type": "boolean",
257
+ "mutable": false,
258
+ "complexType": {
259
+ "original": "boolean",
260
+ "resolved": "boolean",
261
+ "references": {}
262
+ },
263
+ "required": false,
264
+ "optional": false,
265
+ "docs": {
266
+ "tags": [],
267
+ "text": ""
268
+ },
269
+ "attribute": "multiple",
270
+ "reflect": true,
271
+ "defaultValue": "false"
272
+ },
273
+ "mutable": {
274
+ "type": "boolean",
275
+ "mutable": false,
276
+ "complexType": {
277
+ "original": "boolean",
278
+ "resolved": "boolean",
279
+ "references": {}
280
+ },
281
+ "required": false,
282
+ "optional": false,
283
+ "docs": {
284
+ "tags": [],
285
+ "text": ""
286
+ },
287
+ "attribute": "mutable",
288
+ "reflect": true,
289
+ "defaultValue": "false"
290
+ },
291
+ "readonly": {
292
+ "type": "boolean",
293
+ "mutable": false,
294
+ "complexType": {
295
+ "original": "boolean",
296
+ "resolved": "boolean",
297
+ "references": {}
298
+ },
299
+ "required": false,
300
+ "optional": false,
301
+ "docs": {
302
+ "tags": [],
303
+ "text": ""
304
+ },
305
+ "attribute": "readonly",
306
+ "reflect": true,
307
+ "defaultValue": "false"
308
+ },
309
+ "validator": {
310
+ "type": "unknown",
311
+ "mutable": false,
312
+ "complexType": {
313
+ "original": "(value: string) => boolean | { result: boolean; notice: Notice }",
314
+ "resolved": "((value: string) => boolean | { result: boolean; notice: Notice; }) | undefined",
315
+ "references": {
316
+ "Notice": {
317
+ "location": "import",
318
+ "path": "../../../model"
319
+ }
320
+ }
321
+ },
322
+ "required": false,
323
+ "optional": true,
324
+ "docs": {
325
+ "tags": [],
326
+ "text": ""
327
+ }
328
+ }
329
+ };
330
+ }
331
+ static get states() {
332
+ return {
333
+ "backend": {},
334
+ "options": {},
335
+ "created": {},
336
+ "search": {},
337
+ "valid": {},
338
+ "display": {},
339
+ "flip": {},
340
+ "flipChecked": {}
341
+ };
342
+ }
343
+ static get events() {
344
+ return [{
345
+ "method": "notice",
346
+ "name": "notice",
347
+ "bubbles": true,
348
+ "cancelable": true,
349
+ "composed": true,
350
+ "docs": {
351
+ "tags": [],
352
+ "text": ""
353
+ },
354
+ "complexType": {
355
+ "original": "Notice",
356
+ "resolved": "Notice",
357
+ "references": {
358
+ "Notice": {
359
+ "location": "import",
360
+ "path": "../../../model"
361
+ }
362
+ }
363
+ }
364
+ }, {
365
+ "method": "smoothlyPickerMenuLoaded",
366
+ "name": "smoothlyPickerMenuLoaded",
367
+ "bubbles": true,
368
+ "cancelable": true,
369
+ "composed": true,
370
+ "docs": {
371
+ "tags": [],
372
+ "text": ""
373
+ },
374
+ "complexType": {
375
+ "original": "Controls & { synced: () => boolean }",
376
+ "resolved": "Controls & { synced: () => boolean; }",
377
+ "references": {
378
+ "Controls": {
379
+ "location": "local"
380
+ }
381
+ }
382
+ }
383
+ }];
384
+ }
385
+ static get elementRef() { return "element"; }
386
+ static get watchers() {
387
+ return [{
388
+ "propName": "open",
389
+ "methodName": "openChange"
390
+ }, {
391
+ "propName": "readonly",
392
+ "methodName": "readonlyChanged"
393
+ }];
394
+ }
395
+ static get listeners() {
396
+ return [{
397
+ "name": "scroll",
398
+ "method": "scrollHandler",
399
+ "target": "window",
400
+ "capture": false,
401
+ "passive": true
402
+ }, {
403
+ "name": "smoothlyPickerOptionLoad",
404
+ "method": "optionLoadHandler",
405
+ "target": undefined,
406
+ "capture": false,
407
+ "passive": false
408
+ }, {
409
+ "name": "smoothlyPickerOptionLoaded",
410
+ "method": "optionLoadedHandler",
411
+ "target": undefined,
412
+ "capture": false,
413
+ "passive": false
414
+ }, {
415
+ "name": "smoothlyPickerOptionChange",
416
+ "method": "optionChangeHandler",
417
+ "target": undefined,
418
+ "capture": false,
419
+ "passive": false
420
+ }, {
421
+ "name": "smoothlySlotEmpty",
422
+ "method": "emptyDisplayHandler",
423
+ "target": undefined,
424
+ "capture": false,
425
+ "passive": false
426
+ }];
427
+ }
428
+ }
429
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/picker/menu/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from \"@stencil/core\"\nimport global from \"../../../global/index\"\nimport { Notice, Option } from \"../../../model\"\nimport { Looks } from \"../../input/Looks\"\nimport { Slot } from \"../slot-elements\"\n\nconst Observers = global().Observers\n\nfunction* chain<T>(...iterables: Iterable<T>[]): Iterable<T> {\n\tfor (const iterable of iterables)\n\t\tyield* iterable\n}\n\nfunction restore<T extends Option>(target: T | undefined, source: Option): T | undefined {\n\ttarget?.set.selected((target.selected = source.selected))\n\ttarget?.set.readonly((target.readonly = source.readonly))\n\ttarget?.set.visible((target.visible = source.visible))\n\ttarget?.set.value((target.value = source.value))\n\ttarget?.set.search((target.search = source.search))\n\treturn target\n}\nfunction restoreListener(ref: HTMLElement | undefined, option: Option) {\n\tref?.addEventListener(\"smoothlyPickerOptionLoad\", (e: CustomEvent<Option>) => restore(e.detail, option))\n}\nexport interface Controls {\n\tremember: () => void\n\trestore: () => void\n\tclear: () => void\n}\n@Component({\n\ttag: \"smoothly-picker-menu\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyPickerMenu {\n\t@Element() element: HTMLSmoothlyPickerMenuElement\n\t@Prop() looks: Looks\n\t@Prop({ reflect: true }) open = false\n\t@Prop({ reflect: true }) multiple = false\n\t@Prop({ reflect: true }) mutable = false\n\t@Prop({ reflect: true }) readonly = false\n\t@Prop() validator?: (value: string) => boolean | { result: boolean; notice: Notice }\n\t@State() backend = new Map<any, Option & { clone: Node }>() // value -> Option\n\t@State() options = new Map<any, Option>() // value -> Option\n\t@State() created = new Map<any, Option.Created>()\n\t@State() search = \"\"\n\t@State() valid = false\n\t@State() display: Node[]\n\t@State() flip = false\n\t@State() flipChecked = false\n\t@Event() notice: EventEmitter<Notice>\n\t@Event() smoothlyPickerMenuLoaded: EventEmitter<Controls & { synced: () => boolean }>\n\tprivate memory?: { backend: SmoothlyPickerMenu[\"backend\"]; options: SmoothlyPickerMenu[\"options\"] }\n\tprivate listElement?: HTMLElement\n\tprivate searchElement?: HTMLElement\n\tprivate synced = false\n\n\tcomponentWillLoad() {\n\t\tif (!Observers.has(this.element)) {\n\t\t\tconst threshold = 0.4\n\t\t\tObservers.set(\n\t\t\t\tthis.element,\n\t\t\t\tnew IntersectionObserver(\n\t\t\t\t\tentries =>\n\t\t\t\t\t\t(entries.find(entry => entry.target == this.element)?.intersectionRatio ?? 0) < threshold &&\n\t\t\t\t\t\t!this.flipChecked &&\n\t\t\t\t\t\t((this.flip = !this.flip), (this.flipChecked = true)),\n\t\t\t\t\t{ threshold }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t}\n\tsync() {\n\t\tif (this.backend.size != this.options.size)\n\t\t\tthis.synced = false\n\t\telse\n\t\t\tthis.synced = true\n\t}\n\tcomponentDidLoad() {\n\t\tthis.smoothlyPickerMenuLoaded.emit({\n\t\t\tremember: () => {\n\t\t\t\tthis.memory = {\n\t\t\t\t\tbackend: new Map(Array.from(this.backend.entries(), ([value, option]) => [value, { ...option }])),\n\t\t\t\t\toptions: new Map(Array.from(this.options.entries(), ([value, option]) => [value, { ...option }])),\n\t\t\t\t}\n\t\t\t},\n\t\t\trestore: () => {\n\t\t\t\tif (this.memory) {\n\t\t\t\t\tfor (const option of this.options.values()) {\n\t\t\t\t\t\tconst memory = this.memory.options.get(option.value)\n\t\t\t\t\t\tif (memory != undefined)\n\t\t\t\t\t\t\trestore(option, memory)\n\t\t\t\t\t\telse if (this.created.get(option.value))\n\t\t\t\t\t\t\toption.set.selected((option.selected = false))\n\t\t\t\t\t}\n\t\t\t\t\tfor (const option of this.backend.values()) {\n\t\t\t\t\t\tconst memory = this.memory.backend.get(option.value)\n\t\t\t\t\t\tif (memory != undefined)\n\t\t\t\t\t\t\trestore(option, memory)\n\t\t\t\t\t\telse if (this.created.get(option.value))\n\t\t\t\t\t\t\toption.set.selected((option.selected = false))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tclear: () => {\n\t\t\t\tconst backend = Array.from(this.backend.entries())\n\t\t\t\tbackend.filter(([key]) => this.created.has(key)).forEach(([, option]) => option.set.selected(false))\n\t\t\t\tthis.backend = new Map(backend.filter(([key]) => !this.created.has(key)))\n\t\t\t\tthis.options = new Map(Array.from(this.options.entries()).filter(([key]) => !this.created.has(key)))\n\t\t\t\tthis.created = new Map()\n\t\t\t},\n\t\t\tsynced: () => this.synced,\n\t\t})\n\t}\n\tdisconnectedCallback() {\n\t\tif (!this.element.parentElement) {\n\t\t\tObservers.get(this.element)?.disconnect()\n\t\t\tObservers.remove(this.element)\n\t\t}\n\t}\n\t@Watch(\"open\")\n\topenChange() {\n\t\tconst observer = Observers.get(this.element)\n\t\tif (this.open)\n\t\t\tobserver?.observe(this.element)\n\t\telse\n\t\t\tobserver?.unobserve(this.element)\n\t}\n\n\t@Watch(\"readonly\")\n\treadonlyChanged() {\n\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\toption.element, option.set.readonly(this.readonly)\n\t}\n\t@Listen(\"scroll\", { target: \"window\" })\n\tscrollHandler() {\n\t\tthis.flipChecked = false\n\t}\n\t@Listen(\"smoothlyPickerOptionLoad\")\n\toptionLoadHandler(event: CustomEvent<Option.Load>) {\n\t\tif (!this.listElement || !event.composedPath().includes(this.listElement)) {\n\t\t\tevent.stopPropagation()\n\t\t\tthis.sync()\n\t\t\tevent.detail.set.readonly(this.readonly)\n\n\t\t\tconst current = this.options.get(event.detail.value)\n\t\t\tif (current)\n\t\t\t\tevent.detail.set.selected(current.element.selected)\n\t\t}\n\t}\n\t@Listen(\"smoothlyPickerOptionLoaded\")\n\toptionLoadedHandler(event: CustomEvent<Option>) {\n\t\tif (!this.listElement || !event.composedPath().includes(this.listElement)) {\n\t\t\tevent.stopPropagation()\n\t\t\tconst current = restore(this.backend.get(event.detail.value), event.detail)\n\t\t\tthis.backend = new Map(\n\t\t\t\tthis.backend\n\t\t\t\t\t.set(event.detail.value, {\n\t\t\t\t\t\t...event.detail,\n\t\t\t\t\t\tclone: current?.clone ?? event.detail.element.cloneNode(true),\n\t\t\t\t\t})\n\t\t\t\t\t.entries()\n\t\t\t)\n\t\t} else\n\t\t\tthis.options.set(event.detail.value, event.detail)\n\t\tthis.sync()\n\t}\n\t@Listen(\"smoothlyPickerOptionChange\")\n\toptionChangeHandler(event: CustomEvent<Option>) {\n\t\tif (!this.listElement || !event.composedPath().includes(this.listElement)) {\n\t\t\tevent.stopPropagation()\n\t\t\tthis.options.get(event.detail.value)?.set.selected(event.detail.selected)\n\t\t} else {\n\t\t\tconst current = this.backend.get(event.detail.value)\n\t\t\tif (current?.element.parentElement)\n\t\t\t\tcurrent?.set.selected(event.detail.selected)\n\t\t}\n\n\t\tif (!this.readonly && !this.multiple && event.detail.selected)\n\t\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\t\tif (option.value != event.detail.value)\n\t\t\t\t\toption.set.selected(false)\n\t}\n\tinputHandler(event: CustomEvent<Record<string, any>>) {\n\t\tevent.stopPropagation()\n\t\tthis.search = event.detail.search\n\t\tif (!this.search) {\n\t\t\tthis.valid = false\n\t\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\t\toption.set.visible(true)\n\t\t} else {\n\t\t\tthis.valid = !Array.from(this.options.values()).find(option => option.value == this.search)\n\t\t\tconst search = this.search.toLocaleLowerCase()\n\t\t\tfor (const option of chain(this.options.values(), this.backend.values())) {\n\t\t\t\tconst value = option.value.toString().toLocaleLowerCase().includes(search)\n\t\t\t\tconst searches = option.search.some(value => value.includes(search))\n\t\t\t\tconst result = value || searches\n\t\t\t\toption.set.visible(result)\n\t\t\t}\n\t\t}\n\t}\n\taddHandler() {\n\t\tconst validation = !this.validator ? true : this.validator(this.search)\n\t\tif (this.mutable) {\n\t\t\tif (typeof validation == \"object\" ? validation.result : validation) {\n\t\t\t\tif (!this.multiple)\n\t\t\t\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\t\t\t\toption.set.selected(false)\n\t\t\t\tthis.created = new Map(this.created.set(this.search, { value: this.search, selected: true }).entries())\n\t\t\t\tthis.search = \"\"\n\t\t\t\tthis.searchElement?.focus()\n\t\t\t\tthis.valid = false\n\t\t\t}\n\t\t\tif (typeof validation == \"object\")\n\t\t\t\tthis.notice.emit(validation.notice)\n\t\t}\n\t}\n\tkeyDownHandler(event: KeyboardEvent) {\n\t\tif (event.key == \"Enter\") {\n\t\t\tevent.preventDefault()\n\t\t\tthis.addHandler()\n\t\t}\n\t}\n\t@Listen(\"smoothlySlotEmpty\")\n\temptyDisplayHandler(event: CustomEvent<Slot>) {\n\t\tevent.stopPropagation()\n\t\tevent.detail.set.nodes(this.display)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host class={{ valid: this.valid, flip: this.flip }}>\n\t\t\t\t<smoothly-slotted-elements class={\"hide\"} onSmoothlySlottedChange={e => (this.display = e.detail)}>\n\t\t\t\t\t<slot name=\"display\" />\n\t\t\t\t</smoothly-slotted-elements>\n\t\t\t\t<div class={\"hide\"}>\n\t\t\t\t\t<slot />\n\t\t\t\t\t{Array.from(this.created.values(), option => (\n\t\t\t\t\t\t<smoothly-picker-option key={option.value} value={option.value} selected={option.selected}>\n\t\t\t\t\t\t\t{option.value}\n\t\t\t\t\t\t\t<smoothly-slot-elements slot=\"display\" nodes={this.display} />\n\t\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t\t<div class={\"controls\"}>\n\t\t\t\t\t<smoothly-input\n\t\t\t\t\t\tref={e => (this.searchElement = e)}\n\t\t\t\t\t\tname=\"search\"\n\t\t\t\t\t\tvalue={this.search}\n\t\t\t\t\t\tlooks={this.looks}\n\t\t\t\t\t\tonKeyDown={e => this.keyDownHandler(e)}\n\t\t\t\t\t\tonSmoothlyInput={e => this.inputHandler(e)}\n\t\t\t\t\t\tonSmoothlyChange={e => e.stopPropagation()}\n\t\t\t\t\t\tonSmoothlyBlur={e => e.stopPropagation()}>\n\t\t\t\t\t\t<slot name=\"search\" />\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t{this.mutable && !this.readonly ? (\n\t\t\t\t\t\t<button onClick={() => this.addHandler()} disabled={!this.valid} type={\"button\"}>\n\t\t\t\t\t\t\t<smoothly-icon name=\"add-outline\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t) : null}\n\t\t\t\t</div>\n\t\t\t\t<div class={\"list\"} ref={e => (this.listElement = e)}>\n\t\t\t\t\t{Array.from(this.backend.values())\n\t\t\t\t\t\t.sort((a, b) => a.position - b.position)\n\t\t\t\t\t\t.map(option => (\n\t\t\t\t\t\t\t<smoothly-slot-elements ref={e => restoreListener(e, option)} clone={false} nodes={option.clone} />\n\t\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
@@ -0,0 +1,44 @@
1
+ :host {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 0.5rem;
5
+ position: absolute;
6
+ z-index: 4;
7
+ left: -1px;
8
+ right: -1px;
9
+ min-width: max-content;
10
+ background-color: rgb(var(--background-color, var(--smoothly-color-shade)));
11
+ padding: 0.5rem;
12
+ border: rgb(var(--text-color, var(--smoothly-color-contrast))) solid 1px;
13
+ }
14
+ :host:not(.flip) {
15
+ top: 100%;
16
+ }
17
+ :host.flip {
18
+ bottom: 100%;
19
+ }
20
+ :host:not([open]) {
21
+ display: none;
22
+ }
23
+ :host .list {
24
+ display: grid;
25
+ grid-template-columns: auto 1fr auto;
26
+ align-items: center;
27
+ row-gap: 0.5ch;
28
+ overflow-y: auto;
29
+ max-height: calc(1.75rem * 10 + 0.5ch * 9);
30
+ padding-right: 0.5rem;
31
+ padding-bottom: 0.25rem;
32
+ }
33
+ :host .hide {
34
+ display: none;
35
+ }
36
+ :host .controls {
37
+ display: grid;
38
+ grid-template-columns: 1fr auto;
39
+ gap: 0.5rem;
40
+ transition: grid-template-columns 200ms linear;
41
+ }
42
+ :host .controls > button:disabled {
43
+ opacity: 0.3;
44
+ }