duoyun-ui 0.0.2

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 (392) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +12 -0
  3. package/docs/.gitignore +4 -0
  4. package/docs/104.bundle.js +19 -0
  5. package/docs/283.bundle.js +47 -0
  6. package/docs/354.bundle.js +1133 -0
  7. package/docs/354.bundle.js.LICENSE.txt +13 -0
  8. package/docs/587.bundle.js +26 -0
  9. package/docs/810.bundle.js +1 -0
  10. package/docs/gem-book.json +84 -0
  11. package/docs/index.html +1 -0
  12. package/docs/main.bundle.js +1 -0
  13. package/docs/robots.txt +2 -0
  14. package/docs/service-worker.js +1 -0
  15. package/docs/workbox-62d1f9d5.js +1 -0
  16. package/elements/action-text.d.ts +12 -0
  17. package/elements/action-text.d.ts.map +1 -0
  18. package/elements/action-text.js +63 -0
  19. package/elements/action-text.js.map +1 -0
  20. package/elements/area-chart.d.ts +35 -0
  21. package/elements/area-chart.d.ts.map +1 -0
  22. package/elements/area-chart.js +408 -0
  23. package/elements/area-chart.js.map +1 -0
  24. package/elements/avatar.d.ts +42 -0
  25. package/elements/avatar.d.ts.map +1 -0
  26. package/elements/avatar.js +190 -0
  27. package/elements/avatar.js.map +1 -0
  28. package/elements/banner.d.ts +21 -0
  29. package/elements/banner.d.ts.map +1 -0
  30. package/elements/banner.js +136 -0
  31. package/elements/banner.js.map +1 -0
  32. package/elements/bar-chart.d.ts +23 -0
  33. package/elements/bar-chart.d.ts.map +1 -0
  34. package/elements/bar-chart.js +170 -0
  35. package/elements/bar-chart.js.map +1 -0
  36. package/elements/base/chart.d.ts +74 -0
  37. package/elements/base/chart.d.ts.map +1 -0
  38. package/elements/base/chart.js +299 -0
  39. package/elements/base/chart.js.map +1 -0
  40. package/elements/base/loadable.d.ts +16 -0
  41. package/elements/base/loadable.d.ts.map +1 -0
  42. package/elements/base/loadable.js +77 -0
  43. package/elements/base/loadable.js.map +1 -0
  44. package/elements/base/resize.d.ts +15 -0
  45. package/elements/base/resize.d.ts.map +1 -0
  46. package/elements/base/resize.js +31 -0
  47. package/elements/base/resize.js.map +1 -0
  48. package/elements/base/scroll.d.ts +11 -0
  49. package/elements/base/scroll.d.ts.map +1 -0
  50. package/elements/base/scroll.js +90 -0
  51. package/elements/base/scroll.js.map +1 -0
  52. package/elements/base/visible.d.ts +12 -0
  53. package/elements/base/visible.d.ts.map +1 -0
  54. package/elements/base/visible.js +37 -0
  55. package/elements/base/visible.js.map +1 -0
  56. package/elements/breadcrumbs.d.ts +20 -0
  57. package/elements/breadcrumbs.d.ts.map +1 -0
  58. package/elements/breadcrumbs.js +88 -0
  59. package/elements/breadcrumbs.js.map +1 -0
  60. package/elements/button.d.ts +30 -0
  61. package/elements/button.d.ts.map +1 -0
  62. package/elements/button.js +225 -0
  63. package/elements/button.js.map +1 -0
  64. package/elements/card.d.ts +26 -0
  65. package/elements/card.d.ts.map +1 -0
  66. package/elements/card.js +163 -0
  67. package/elements/card.js.map +1 -0
  68. package/elements/cascader-pick.d.ts +22 -0
  69. package/elements/cascader-pick.d.ts.map +1 -0
  70. package/elements/cascader-pick.js +172 -0
  71. package/elements/cascader-pick.js.map +1 -0
  72. package/elements/cascader.d.ts +29 -0
  73. package/elements/cascader.d.ts.map +1 -0
  74. package/elements/cascader.js +247 -0
  75. package/elements/cascader.js.map +1 -0
  76. package/elements/chart-tooltip.d.ts +29 -0
  77. package/elements/chart-tooltip.d.ts.map +1 -0
  78. package/elements/chart-tooltip.js +150 -0
  79. package/elements/chart-tooltip.js.map +1 -0
  80. package/elements/chart-zoom.d.ts +20 -0
  81. package/elements/chart-zoom.d.ts.map +1 -0
  82. package/elements/chart-zoom.js +207 -0
  83. package/elements/chart-zoom.js.map +1 -0
  84. package/elements/checkbox.d.ts +20 -0
  85. package/elements/checkbox.d.ts.map +1 -0
  86. package/elements/checkbox.js +108 -0
  87. package/elements/checkbox.js.map +1 -0
  88. package/elements/coach-mark.d.ts +39 -0
  89. package/elements/coach-mark.d.ts.map +1 -0
  90. package/elements/coach-mark.js +212 -0
  91. package/elements/coach-mark.js.map +1 -0
  92. package/elements/code-block.d.ts +14 -0
  93. package/elements/code-block.d.ts.map +1 -0
  94. package/elements/code-block.js +427 -0
  95. package/elements/code-block.js.map +1 -0
  96. package/elements/collapse.d.ts +22 -0
  97. package/elements/collapse.d.ts.map +1 -0
  98. package/elements/collapse.js +111 -0
  99. package/elements/collapse.js.map +1 -0
  100. package/elements/color-panel.d.ts +30 -0
  101. package/elements/color-panel.d.ts.map +1 -0
  102. package/elements/color-panel.js +383 -0
  103. package/elements/color-panel.js.map +1 -0
  104. package/elements/color-pick.d.ts +14 -0
  105. package/elements/color-pick.d.ts.map +1 -0
  106. package/elements/color-pick.js +81 -0
  107. package/elements/color-pick.js.map +1 -0
  108. package/elements/compartment.d.ts +9 -0
  109. package/elements/compartment.d.ts.map +1 -0
  110. package/elements/compartment.js +32 -0
  111. package/elements/compartment.js.map +1 -0
  112. package/elements/copy.d.ts +20 -0
  113. package/elements/copy.d.ts.map +1 -0
  114. package/elements/copy.js +160 -0
  115. package/elements/copy.js.map +1 -0
  116. package/elements/date-panel.d.ts +29 -0
  117. package/elements/date-panel.d.ts.map +1 -0
  118. package/elements/date-panel.js +220 -0
  119. package/elements/date-panel.js.map +1 -0
  120. package/elements/date-pick.d.ts +23 -0
  121. package/elements/date-pick.d.ts.map +1 -0
  122. package/elements/date-pick.js +107 -0
  123. package/elements/date-pick.js.map +1 -0
  124. package/elements/date-range-panel.d.ts +28 -0
  125. package/elements/date-range-panel.d.ts.map +1 -0
  126. package/elements/date-range-panel.js +154 -0
  127. package/elements/date-range-panel.js.map +1 -0
  128. package/elements/date-range-pick.d.ts +26 -0
  129. package/elements/date-range-pick.d.ts.map +1 -0
  130. package/elements/date-range-pick.js +159 -0
  131. package/elements/date-range-pick.js.map +1 -0
  132. package/elements/divider.d.ts +15 -0
  133. package/elements/divider.d.ts.map +1 -0
  134. package/elements/divider.js +95 -0
  135. package/elements/divider.js.map +1 -0
  136. package/elements/donut-chart.d.ts +19 -0
  137. package/elements/donut-chart.d.ts.map +1 -0
  138. package/elements/donut-chart.js +140 -0
  139. package/elements/donut-chart.js.map +1 -0
  140. package/elements/drawer.d.ts +9 -0
  141. package/elements/drawer.d.ts.map +1 -0
  142. package/elements/drawer.js +45 -0
  143. package/elements/drawer.js.map +1 -0
  144. package/elements/drop-area.d.ts +18 -0
  145. package/elements/drop-area.d.ts.map +1 -0
  146. package/elements/drop-area.js +155 -0
  147. package/elements/drop-area.js.map +1 -0
  148. package/elements/empty.d.ts +8 -0
  149. package/elements/empty.d.ts.map +1 -0
  150. package/elements/empty.js +33 -0
  151. package/elements/empty.js.map +1 -0
  152. package/elements/file-pick.d.ts +28 -0
  153. package/elements/file-pick.d.ts.map +1 -0
  154. package/elements/file-pick.js +226 -0
  155. package/elements/file-pick.js.map +1 -0
  156. package/elements/form.d.ts +76 -0
  157. package/elements/form.d.ts.map +1 -0
  158. package/elements/form.js +372 -0
  159. package/elements/form.js.map +1 -0
  160. package/elements/heading.d.ts +13 -0
  161. package/elements/heading.d.ts.map +1 -0
  162. package/elements/heading.js +88 -0
  163. package/elements/heading.js.map +1 -0
  164. package/elements/help-text.d.ts +11 -0
  165. package/elements/help-text.d.ts.map +1 -0
  166. package/elements/help-text.js +53 -0
  167. package/elements/help-text.js.map +1 -0
  168. package/elements/icons.d.ts +10 -0
  169. package/elements/icons.d.ts.map +1 -0
  170. package/elements/icons.js +71 -0
  171. package/elements/icons.js.map +1 -0
  172. package/elements/image-preview.d.ts +26 -0
  173. package/elements/image-preview.d.ts.map +1 -0
  174. package/elements/image-preview.js +172 -0
  175. package/elements/image-preview.js.map +1 -0
  176. package/elements/input-capture.d.ts +17 -0
  177. package/elements/input-capture.d.ts.map +1 -0
  178. package/elements/input-capture.js +111 -0
  179. package/elements/input-capture.js.map +1 -0
  180. package/elements/input.d.ts +51 -0
  181. package/elements/input.d.ts.map +1 -0
  182. package/elements/input.js +372 -0
  183. package/elements/input.js.map +1 -0
  184. package/elements/keyboard-access.d.ts +26 -0
  185. package/elements/keyboard-access.d.ts.map +1 -0
  186. package/elements/keyboard-access.js +217 -0
  187. package/elements/keyboard-access.js.map +1 -0
  188. package/elements/legend.d.ts +21 -0
  189. package/elements/legend.d.ts.map +1 -0
  190. package/elements/legend.js +118 -0
  191. package/elements/legend.js.map +1 -0
  192. package/elements/line-chart.d.ts +9 -0
  193. package/elements/line-chart.d.ts.map +1 -0
  194. package/elements/line-chart.js +116 -0
  195. package/elements/line-chart.js.map +1 -0
  196. package/elements/link.d.ts +14 -0
  197. package/elements/link.d.ts.map +1 -0
  198. package/elements/link.js +46 -0
  199. package/elements/link.js.map +1 -0
  200. package/elements/list.d.ts +30 -0
  201. package/elements/list.d.ts.map +1 -0
  202. package/elements/list.js +114 -0
  203. package/elements/list.js.map +1 -0
  204. package/elements/loading.d.ts +9 -0
  205. package/elements/loading.d.ts.map +1 -0
  206. package/elements/loading.js +44 -0
  207. package/elements/loading.js.map +1 -0
  208. package/elements/map.d.ts +68 -0
  209. package/elements/map.d.ts.map +1 -0
  210. package/elements/map.js +323 -0
  211. package/elements/map.js.map +1 -0
  212. package/elements/menu.d.ts +58 -0
  213. package/elements/menu.d.ts.map +1 -0
  214. package/elements/menu.js +256 -0
  215. package/elements/menu.js.map +1 -0
  216. package/elements/meter.d.ts +20 -0
  217. package/elements/meter.d.ts.map +1 -0
  218. package/elements/meter.js +130 -0
  219. package/elements/meter.js.map +1 -0
  220. package/elements/modal.d.ts +46 -0
  221. package/elements/modal.d.ts.map +1 -0
  222. package/elements/modal.js +296 -0
  223. package/elements/modal.js.map +1 -0
  224. package/elements/more.d.ts +28 -0
  225. package/elements/more.d.ts.map +1 -0
  226. package/elements/more.js +118 -0
  227. package/elements/more.js.map +1 -0
  228. package/elements/options.d.ts +34 -0
  229. package/elements/options.d.ts.map +1 -0
  230. package/elements/options.js +174 -0
  231. package/elements/options.js.map +1 -0
  232. package/elements/page-loadbar.d.ts +20 -0
  233. package/elements/page-loadbar.d.ts.map +1 -0
  234. package/elements/page-loadbar.js +85 -0
  235. package/elements/page-loadbar.js.map +1 -0
  236. package/elements/pagination.d.ts +23 -0
  237. package/elements/pagination.d.ts.map +1 -0
  238. package/elements/pagination.js +221 -0
  239. package/elements/pagination.js.map +1 -0
  240. package/elements/paragraph.d.ts +8 -0
  241. package/elements/paragraph.d.ts.map +1 -0
  242. package/elements/paragraph.js +60 -0
  243. package/elements/paragraph.js.map +1 -0
  244. package/elements/pick.d.ts +34 -0
  245. package/elements/pick.d.ts.map +1 -0
  246. package/elements/pick.js +168 -0
  247. package/elements/pick.js.map +1 -0
  248. package/elements/placeholder.d.ts +23 -0
  249. package/elements/placeholder.d.ts.map +1 -0
  250. package/elements/placeholder.js +93 -0
  251. package/elements/placeholder.js.map +1 -0
  252. package/elements/popover.d.ts +54 -0
  253. package/elements/popover.d.ts.map +1 -0
  254. package/elements/popover.js +316 -0
  255. package/elements/popover.js.map +1 -0
  256. package/elements/progress.d.ts +12 -0
  257. package/elements/progress.d.ts.map +1 -0
  258. package/elements/progress.js +45 -0
  259. package/elements/progress.js.map +1 -0
  260. package/elements/radio.d.ts +34 -0
  261. package/elements/radio.d.ts.map +1 -0
  262. package/elements/radio.js +152 -0
  263. package/elements/radio.js.map +1 -0
  264. package/elements/rating.d.ts +15 -0
  265. package/elements/rating.d.ts.map +1 -0
  266. package/elements/rating.js +122 -0
  267. package/elements/rating.js.map +1 -0
  268. package/elements/scatter-chart.d.ts +13 -0
  269. package/elements/scatter-chart.d.ts.map +1 -0
  270. package/elements/scatter-chart.js +151 -0
  271. package/elements/scatter-chart.js.map +1 -0
  272. package/elements/select.d.ts +63 -0
  273. package/elements/select.d.ts.map +1 -0
  274. package/elements/select.js +416 -0
  275. package/elements/select.js.map +1 -0
  276. package/elements/shortcut-record.d.ts +19 -0
  277. package/elements/shortcut-record.d.ts.map +1 -0
  278. package/elements/shortcut-record.js +127 -0
  279. package/elements/shortcut-record.js.map +1 -0
  280. package/elements/side-navigation.d.ts +31 -0
  281. package/elements/side-navigation.d.ts.map +1 -0
  282. package/elements/side-navigation.js +137 -0
  283. package/elements/side-navigation.js.map +1 -0
  284. package/elements/slider.d.ts +27 -0
  285. package/elements/slider.d.ts.map +1 -0
  286. package/elements/slider.js +219 -0
  287. package/elements/slider.js.map +1 -0
  288. package/elements/space.d.ts +10 -0
  289. package/elements/space.d.ts.map +1 -0
  290. package/elements/space.js +35 -0
  291. package/elements/space.js.map +1 -0
  292. package/elements/statistic.d.ts +24 -0
  293. package/elements/statistic.d.ts.map +1 -0
  294. package/elements/statistic.js +116 -0
  295. package/elements/statistic.js.map +1 -0
  296. package/elements/status-light.d.ts +14 -0
  297. package/elements/status-light.d.ts.map +1 -0
  298. package/elements/status-light.js +75 -0
  299. package/elements/status-light.js.map +1 -0
  300. package/elements/switch.d.ts +18 -0
  301. package/elements/switch.d.ts.map +1 -0
  302. package/elements/switch.js +117 -0
  303. package/elements/switch.js.map +1 -0
  304. package/elements/table.d.ts +36 -0
  305. package/elements/table.d.ts.map +1 -0
  306. package/elements/table.js +268 -0
  307. package/elements/table.js.map +1 -0
  308. package/elements/tabs.d.ts +29 -0
  309. package/elements/tabs.d.ts.map +1 -0
  310. package/elements/tabs.js +130 -0
  311. package/elements/tabs.js.map +1 -0
  312. package/elements/tag.d.ts +20 -0
  313. package/elements/tag.d.ts.map +1 -0
  314. package/elements/tag.js +120 -0
  315. package/elements/tag.js.map +1 -0
  316. package/elements/timeline.d.ts +19 -0
  317. package/elements/timeline.d.ts.map +1 -0
  318. package/elements/timeline.js +92 -0
  319. package/elements/timeline.js.map +1 -0
  320. package/elements/toast.d.ts +26 -0
  321. package/elements/toast.d.ts.map +1 -0
  322. package/elements/toast.js +149 -0
  323. package/elements/toast.js.map +1 -0
  324. package/elements/tooltip.d.ts +12 -0
  325. package/elements/tooltip.d.ts.map +1 -0
  326. package/elements/tooltip.js +27 -0
  327. package/elements/tooltip.js.map +1 -0
  328. package/elements/tree.d.ts +48 -0
  329. package/elements/tree.d.ts.map +1 -0
  330. package/elements/tree.js +231 -0
  331. package/elements/tree.js.map +1 -0
  332. package/elements/wait.d.ts +19 -0
  333. package/elements/wait.d.ts.map +1 -0
  334. package/elements/wait.js +97 -0
  335. package/elements/wait.js.map +1 -0
  336. package/lib/animations.d.ts +4 -0
  337. package/lib/animations.d.ts.map +1 -0
  338. package/lib/animations.js +8 -0
  339. package/lib/animations.js.map +1 -0
  340. package/lib/cache.d.ts +12 -0
  341. package/lib/cache.d.ts.map +1 -0
  342. package/lib/cache.js +56 -0
  343. package/lib/cache.js.map +1 -0
  344. package/lib/color.d.ts +37 -0
  345. package/lib/color.d.ts.map +1 -0
  346. package/lib/color.js +101 -0
  347. package/lib/color.js.map +1 -0
  348. package/lib/hotkeys.d.ts +31 -0
  349. package/lib/hotkeys.d.ts.map +1 -0
  350. package/lib/hotkeys.js +207 -0
  351. package/lib/hotkeys.js.map +1 -0
  352. package/lib/icons.d.ts +90 -0
  353. package/lib/icons.d.ts.map +1 -0
  354. package/lib/icons.js +81 -0
  355. package/lib/icons.js.map +1 -0
  356. package/lib/image.d.ts +29 -0
  357. package/lib/image.d.ts.map +1 -0
  358. package/lib/image.js +140 -0
  359. package/lib/image.js.map +1 -0
  360. package/lib/locale.d.ts +37 -0
  361. package/lib/locale.d.ts.map +1 -0
  362. package/lib/locale.js +14 -0
  363. package/lib/locale.js.map +1 -0
  364. package/lib/number.d.ts +80 -0
  365. package/lib/number.d.ts.map +1 -0
  366. package/lib/number.js +144 -0
  367. package/lib/number.js.map +1 -0
  368. package/lib/theme.d.ts +67 -0
  369. package/lib/theme.d.ts.map +1 -0
  370. package/lib/theme.js +56 -0
  371. package/lib/theme.js.map +1 -0
  372. package/lib/time.d.ts +58 -0
  373. package/lib/time.d.ts.map +1 -0
  374. package/lib/time.js +225 -0
  375. package/lib/time.js.map +1 -0
  376. package/lib/types.d.ts +8 -0
  377. package/lib/types.d.ts.map +1 -0
  378. package/lib/types.js +17 -0
  379. package/lib/types.js.map +1 -0
  380. package/lib/utils.d.ts +37 -0
  381. package/lib/utils.d.ts.map +1 -0
  382. package/lib/utils.js +249 -0
  383. package/lib/utils.js.map +1 -0
  384. package/locales/en.d.ts +34 -0
  385. package/locales/en.d.ts.map +1 -0
  386. package/locales/en.js +33 -0
  387. package/locales/en.js.map +1 -0
  388. package/locales/zh.d.ts +4 -0
  389. package/locales/zh.d.ts.map +1 -0
  390. package/locales/zh.js +34 -0
  391. package/locales/zh.js.map +1 -0
  392. package/package.json +39 -0
package/lib/color.js ADDED
@@ -0,0 +1,101 @@
1
+ // e.g: chart
2
+ export const commonColors = Array(20)
3
+ .fill(null)
4
+ .map((_, index) => Math.abs((326 + index * 81 * (index % 2 ? 1 : -1)) % 360) / 360)
5
+ .map((h) => [h, 78 / 100, 64 / 100])
6
+ .map((hsl) => hslToRgb(hsl))
7
+ .map((rgb) => rgbToHexColor(rgb));
8
+ export function rgbToRgbColor([r, g, b, a = 1]) {
9
+ const rgbStr = [r, g, b].join();
10
+ return a === 1 ? `rgb(${rgbStr})` : `rgba(${rgbStr},${Number(a.toFixed(2))})`;
11
+ }
12
+ export function rgbToHslColor([r, g, b, a = 1]) {
13
+ const [h, s, l] = rgbToHsl([r, g, b]);
14
+ const hslStr = `${Math.round(h * 360)},${Math.round(s * 100)}%,${Math.round(l * 100)}%`;
15
+ return a === 1 ? `hsl(${hslStr})` : `hsla(${hslStr},${Number(a.toFixed(2))})`;
16
+ }
17
+ export function rgbToHexColor(rgba) {
18
+ const rgb = rgba.slice(0, 3);
19
+ return `#${(rgba.length === 4 && rgba[3] !== 1 ? [...rgb, rgba[3] * 255] : rgb)
20
+ .map((e) => Math.round(e).toString(16).padStart(2, '0'))
21
+ .join('')}`;
22
+ }
23
+ export function randomColor(type) {
24
+ const randomNumber = () => Math.round(Math.random() * 255);
25
+ const rgb = [randomNumber(), randomNumber(), randomNumber()];
26
+ switch (type) {
27
+ case 'rgba':
28
+ return rgbToRgbColor(rgb);
29
+ case 'hsla':
30
+ return rgbToHslColor(rgb);
31
+ case 'hex':
32
+ return rgbToHexColor(rgb);
33
+ default:
34
+ return rgb;
35
+ }
36
+ }
37
+ export function isValidHexColor(str) {
38
+ // https://stackoverflow.com/a/9682781/7167456
39
+ return /^#(?:[0-9a-f]{3}){1,2}$/i.test(str);
40
+ }
41
+ export function parseHexColor(str) {
42
+ const s = str.replace('#', '');
43
+ const fullHex = s.length === 3 || s.length === 4 ? s.replace(/\w/g, ($1) => $1 + $1) : s;
44
+ const [r, g, b, a = 255] = fullHex
45
+ .split(/(\w{2})/)
46
+ .filter((e) => !!e)
47
+ .map((e) => parseInt(e, 16));
48
+ return [r, g, b, a / 255];
49
+ }
50
+ /**
51
+ * note: ignore alpha
52
+ */
53
+ export function luminance([r, g, b]) {
54
+ const a = [r, g, b].map((v) => {
55
+ v /= 255;
56
+ return v <= 0.03928 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4;
57
+ });
58
+ return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;
59
+ }
60
+ /**
61
+ * note: ignore alpha
62
+ */
63
+ export function contrast(rgb1, rgb2) {
64
+ const l1 = luminance([rgb1[0], rgb1[1], rgb1[2]]) + 0.05;
65
+ const l2 = luminance([rgb2[0], rgb2[1], rgb2[2]]) + 0.05;
66
+ return Math.max(l1, l2) / Math.min(l1, l2);
67
+ }
68
+ /**
69
+ * note: ignore alpha
70
+ * edit for https://stackoverflow.com/questions/8022885/rgb-to-hsv-color-in-javascript
71
+ */
72
+ export function rgbToHsl(rgb) {
73
+ const [r, g, b] = rgb.map((e) => e / 255);
74
+ const v = Math.max(r, g, b), c = v - Math.min(r, g, b), f = 1 - Math.abs(v + v - c - 1);
75
+ const h = c && (v == r ? (g - b) / c : v == g ? 2 + (b - r) / c : 4 + (r - g) / c);
76
+ return [(h < 0 ? h + 6 : h) / 6, f ? c / f : 0, (v + v - c) / 2];
77
+ }
78
+ export function hslToRgb([h, s, l]) {
79
+ const a = s * Math.min(l, 1 - l);
80
+ const f = (n, k = (n + h * 12) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
81
+ return [f(0), f(8), f(4)].map((e) => Math.round(e * 255));
82
+ }
83
+ export function rgbToHsv(rgb) {
84
+ const [r, g, b] = rgb.map((e) => e / 255);
85
+ const v = Math.max(r, g, b), c = v - Math.min(r, g, b);
86
+ const h = c && (v == r ? (g - b) / c : v == g ? 2 + (b - r) / c : 4 + (r - g) / c);
87
+ return [(h < 0 ? h + 6 : h) / 6, v && c / v, v];
88
+ }
89
+ export function hsvToRgb([h, s, v]) {
90
+ const f = (n, k = (n + h * 6) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);
91
+ return [f(5), f(3), f(1)].map((e) => Math.round(e * 255));
92
+ }
93
+ export function hslToHsv([h, s, l]) {
94
+ const v = s * Math.min(l, 1 - l) + l;
95
+ return [h, v ? 2 - (2 * l) / v : 0, v];
96
+ }
97
+ export function hsvToHsl([h, s, v]) {
98
+ const l = v - (v * s) / 2, m = Math.min(l, 1 - l);
99
+ return [h, m ? (v - l) / m : 0, l];
100
+ }
101
+ //# sourceMappingURL=color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../src/lib/color.ts"],"names":[],"mappings":"AAcA,aAAa;AACb,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,EAAE,CAAC;KAClC,IAAI,CAAC,IAAI,CAAC;KACV,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;KAClF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAU,CAAC;KAC5C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KAC3B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAEpC,MAAM,UAAU,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAa;IACxD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAa;IACxD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;IACxF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAgB;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;SAC5E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACvD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AAChB,CAAC;AAMD,MAAM,UAAU,WAAW,CAAC,IAA8B;IACxD,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAQ,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAClE,QAAQ,IAAI,EAAE;QACZ,KAAK,MAAM;YACT,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B,KAAK,MAAM;YACT,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B,KAAK,KAAK;YACR,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B;YACE,OAAO,GAAG,CAAC;KACd;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,8CAA8C;IAC9C,OAAO,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAa;IACzC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO;SAC/B,KAAK,CAAC,SAAS,CAAC;SAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/B,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAa;IAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5B,CAAC,IAAI,GAAG,CAAC;QACT,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC;IACjE,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAgB,EAAE,IAAgB;IACzD,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACzD,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACzD,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAe;IACtC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACzB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACzB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnF,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAa;IAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAmB,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAe;IACtC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACzB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnF,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAM;IACrC,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAmB,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAa;IAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAM;IACrC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EACvB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,31 @@
1
+ export declare type Key = {
2
+ win?: string;
3
+ mac?: string;
4
+ macSymbol?: string;
5
+ alias?: string;
6
+ symbol?: string;
7
+ };
8
+ declare type NormalizeKey = string;
9
+ /**
10
+ * https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values
11
+ */
12
+ export declare function normalizeKey(code: string): NormalizeKey;
13
+ export declare const isMac: boolean;
14
+ export declare function getDisplayKey(code: string, type?: keyof Key): string;
15
+ export declare function setKeys(keysRecord: Record<NormalizeKey, Key>): void;
16
+ export declare type HotKeyHandles = {
17
+ onLock?: (evt: KeyboardEvent) => void;
18
+ onUnlock?: (evt: KeyboardEvent) => void;
19
+ onUncapture?: (evt: KeyboardEvent) => void;
20
+ [index: string]: ((evt: KeyboardEvent) => void) | undefined;
21
+ };
22
+ export declare function unlock(): void;
23
+ /**
24
+ * must have non-control character;
25
+ * not case sensitive;
26
+ * support `a-b`, press `a`, hotkeys be locked, wait next `keydown` event, allow call `unlock`
27
+ */
28
+ export declare function hotkeys(handles: HotKeyHandles): (evt: KeyboardEvent) => void;
29
+ export declare const commonHandle: (evt: KeyboardEvent) => void;
30
+ export {};
31
+ //# sourceMappingURL=hotkeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotkeys.d.ts","sourceRoot":"","sources":["../src/lib/hotkeys.ts"],"names":[],"mappings":"AAGA,oBAAY,GAAG,GAAG;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,aAAK,YAAY,GAAG,MAAM,CAAC;AAE3B;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAOvD;AAiED,eAAO,MAAM,KAAK,SAAqC,CAAC;AAExD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAa3D;AAGD,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,QAG5D;AA8CD,oBAAY,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC7D,CAAC;AAKF,wBAAgB,MAAM,SAIrB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,aAAa,SACtB,aAAa,UAqDpC;AAED,eAAO,MAAM,YAAY,QAvDD,aAAa,SAgEnC,CAAC"}
package/lib/hotkeys.js ADDED
@@ -0,0 +1,207 @@
1
+ import { proxyObject } from './utils';
2
+ import { isNotBoolean } from './types';
3
+ /**
4
+ * https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values
5
+ */
6
+ export function normalizeKey(code) {
7
+ const s = code.toLowerCase();
8
+ if (s.startsWith('control'))
9
+ return 'ctrl';
10
+ if (s.startsWith('meta') || s === 'command')
11
+ return 'meta';
12
+ if (s.startsWith('shift'))
13
+ return 'shift';
14
+ if (s.startsWith('alt') || s === 'option')
15
+ return 'alt';
16
+ return s.replace(/^(digit|key|numpad)/, '');
17
+ }
18
+ function appendToMap(keys) {
19
+ Object.entries(keys).forEach(([named, key]) => {
20
+ Object.entries(key).forEach(([_, k]) => {
21
+ map[k] = named;
22
+ });
23
+ });
24
+ }
25
+ const keys = {
26
+ ctrl: {
27
+ alias: 'control',
28
+ macSymbol: '⌃',
29
+ },
30
+ meta: {
31
+ win: 'win',
32
+ mac: 'command',
33
+ macSymbol: '⌘',
34
+ },
35
+ shift: {
36
+ symbol: '⇧',
37
+ },
38
+ alt: {
39
+ mac: 'option',
40
+ macSymbol: '⌥',
41
+ },
42
+ escape: {
43
+ alias: 'esc',
44
+ },
45
+ backspace: {
46
+ symbol: '⌫',
47
+ },
48
+ enter: {
49
+ alias: 'return',
50
+ symbol: '↵',
51
+ },
52
+ space: {
53
+ symbol: '␣',
54
+ },
55
+ capsLock: {
56
+ symbol: '⇪',
57
+ },
58
+ arrowdown: {
59
+ alias: 'down',
60
+ symbol: '↓',
61
+ },
62
+ arrowup: {
63
+ alias: 'up',
64
+ symbol: '↑',
65
+ },
66
+ arrowleft: {
67
+ alias: 'left',
68
+ symbol: '←',
69
+ },
70
+ arrowright: {
71
+ alias: 'right',
72
+ symbol: '→',
73
+ },
74
+ };
75
+ const map = proxyObject({});
76
+ appendToMap(keys);
77
+ export const isMac = navigator.platform.includes('Mac');
78
+ export function getDisplayKey(code, type) {
79
+ const key = normalizeKey(code);
80
+ const keyObj = keys[key];
81
+ let result = undefined;
82
+ if (!keyObj) {
83
+ result = key;
84
+ }
85
+ else if (type) {
86
+ result = keyObj[type];
87
+ }
88
+ if (!result) {
89
+ result = (isMac ? keyObj['macSymbol'] || keyObj['mac'] : keyObj['win']) || keyObj['symbol'] || key;
90
+ }
91
+ return result.replace(/^(.)/, (_substr, $1) => $1.toUpperCase());
92
+ }
93
+ // custom key map
94
+ export function setKeys(keysRecord) {
95
+ Object.assign(keys, keysRecord);
96
+ appendToMap(keysRecord);
97
+ }
98
+ const hotkeySplitter = /,(?!,)/;
99
+ const keySplitter = /(?<!\+)\+/;
100
+ function matchHotKey(evt, hotkey) {
101
+ const keys = hotkey.split(keySplitter).map((k) => map[k]);
102
+ const targetKeyEvent = { ctrl: false, meta: false, shift: false, alt: false, namedKey: '' };
103
+ keys.forEach((named) => {
104
+ switch (named) {
105
+ case 'ctrl':
106
+ return (targetKeyEvent.ctrl = true);
107
+ case 'meta':
108
+ return (targetKeyEvent.meta = true);
109
+ case 'shift':
110
+ return (targetKeyEvent.shift = true);
111
+ case 'alt':
112
+ return (targetKeyEvent.alt = true);
113
+ default:
114
+ return (targetKeyEvent.namedKey = named);
115
+ }
116
+ });
117
+ let nextKey = '';
118
+ if (targetKeyEvent.namedKey.length > 2 && targetKeyEvent.namedKey.includes('-')) {
119
+ // not support `a--`, `--a`, `a--b`, only allow `a-b`
120
+ [targetKeyEvent.namedKey, nextKey] = [...targetKeyEvent.namedKey.split('-')];
121
+ }
122
+ const match = evt.ctrlKey === targetKeyEvent.ctrl &&
123
+ evt.metaKey === targetKeyEvent.meta &&
124
+ evt.shiftKey === targetKeyEvent.shift &&
125
+ evt.altKey === targetKeyEvent.alt &&
126
+ (!targetKeyEvent.namedKey ||
127
+ normalizeKey(evt.code) === targetKeyEvent.namedKey ||
128
+ /**
129
+ * https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values
130
+ */
131
+ evt.key.toLowerCase() === targetKeyEvent.namedKey);
132
+ return nextKey ? match && nextKey : match;
133
+ }
134
+ let locked = false;
135
+ const unlockCallback = new Set();
136
+ export function unlock() {
137
+ locked = false;
138
+ unlockCallback.forEach((callback) => callback());
139
+ unlockCallback.clear();
140
+ }
141
+ /**
142
+ * must have non-control character;
143
+ * not case sensitive;
144
+ * support `a-b`, press `a`, hotkeys be locked, wait next `keydown` event, allow call `unlock`
145
+ */
146
+ export function hotkeys(handles) {
147
+ return function (evt) {
148
+ var _a, _b;
149
+ if (locked)
150
+ return;
151
+ let captured = false;
152
+ const nextKeyHandleSet = new Map();
153
+ for (const str in handles) {
154
+ const handle = handles[str];
155
+ if (!handle)
156
+ break;
157
+ const shortcuts = str.split(hotkeySplitter).map((e) => e.trim());
158
+ const matchResult = shortcuts.map((hotkey) => matchHotKey(evt, hotkey));
159
+ if (matchResult.some((r) => r === true)) {
160
+ captured = true;
161
+ handle(evt);
162
+ }
163
+ matchResult.filter(isNotBoolean).forEach((key) => {
164
+ const set = nextKeyHandleSet.get(key) || new Set();
165
+ set.add(handle);
166
+ nextKeyHandleSet.set(key, set);
167
+ });
168
+ }
169
+ if (nextKeyHandleSet.size) {
170
+ captured = true;
171
+ unlockCallback.clear();
172
+ (_a = handles.onLock) === null || _a === void 0 ? void 0 : _a.call(handles, evt);
173
+ locked = true;
174
+ const nextKeyHandle = (evt) => {
175
+ var _a, _b;
176
+ (_a = handles.onUnlock) === null || _a === void 0 ? void 0 : _a.call(handles, evt);
177
+ locked = false;
178
+ evt.stopPropagation();
179
+ evt.preventDefault();
180
+ let nextKeyCaptured = false;
181
+ nextKeyHandleSet.forEach((handleSet, k) => {
182
+ if (matchHotKey(evt, k)) {
183
+ nextKeyCaptured = true;
184
+ handleSet.forEach((h) => h(evt));
185
+ }
186
+ });
187
+ if (!nextKeyCaptured)
188
+ (_b = handles.onUncapture) === null || _b === void 0 ? void 0 : _b.call(handles, evt);
189
+ };
190
+ unlockCallback.add(() => removeEventListener('keydown', nextKeyHandle, { capture: true }));
191
+ addEventListener('keydown', nextKeyHandle, { once: true, capture: true });
192
+ }
193
+ if (!captured)
194
+ (_b = handles.onUncapture) === null || _b === void 0 ? void 0 : _b.call(handles, evt);
195
+ };
196
+ }
197
+ export const commonHandle = hotkeys({
198
+ 'space,enter': (evt) => {
199
+ evt.target.click();
200
+ evt.preventDefault();
201
+ },
202
+ esc: (evt) => {
203
+ evt.target.blur();
204
+ evt.preventDefault();
205
+ },
206
+ });
207
+ //# sourceMappingURL=hotkeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotkeys.js","sourceRoot":"","sources":["../src/lib/hotkeys.ts"],"names":[],"mappings":"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"}
package/lib/icons.d.ts ADDED
@@ -0,0 +1,90 @@
1
+ export declare function genIcon(d: string, ext?: string): string;
2
+ declare const defaultIcons: {
3
+ loading: string;
4
+ search: string;
5
+ filter: string;
6
+ more: string;
7
+ close: string;
8
+ delete: string;
9
+ add: string;
10
+ right: string;
11
+ left: string;
12
+ expand: string;
13
+ rollup: string;
14
+ check: string;
15
+ date: string;
16
+ copy: string;
17
+ info: string;
18
+ warning: string;
19
+ error: string;
20
+ success: string;
21
+ help: string;
22
+ star: string;
23
+ colorize: string;
24
+ back: string;
25
+ forward: string;
26
+ tune: string;
27
+ visibility: string;
28
+ visibilityOff: string;
29
+ refresh: string;
30
+ };
31
+ export declare const icons: import("@mantou/gem").Store<{
32
+ loading: string;
33
+ search: string;
34
+ filter: string;
35
+ more: string;
36
+ close: string;
37
+ delete: string;
38
+ add: string;
39
+ right: string;
40
+ left: string;
41
+ expand: string;
42
+ rollup: string;
43
+ check: string;
44
+ date: string;
45
+ copy: string;
46
+ info: string;
47
+ warning: string;
48
+ error: string;
49
+ success: string;
50
+ help: string;
51
+ star: string;
52
+ colorize: string;
53
+ back: string;
54
+ forward: string;
55
+ tune: string;
56
+ visibility: string;
57
+ visibilityOff: string;
58
+ refresh: string;
59
+ }>;
60
+ export declare function setIcons<T extends Record<string, string>>(customIcons: Partial<typeof defaultIcons> & T): {
61
+ loading: string;
62
+ search: string;
63
+ filter: string;
64
+ more: string;
65
+ close: string;
66
+ delete: string;
67
+ add: string;
68
+ right: string;
69
+ left: string;
70
+ expand: string;
71
+ rollup: string;
72
+ check: string;
73
+ date: string;
74
+ copy: string;
75
+ info: string;
76
+ warning: string;
77
+ error: string;
78
+ success: string;
79
+ help: string;
80
+ star: string;
81
+ colorize: string;
82
+ back: string;
83
+ forward: string;
84
+ tune: string;
85
+ visibility: string;
86
+ visibilityOff: string;
87
+ refresh: string;
88
+ } & T;
89
+ export {};
90
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/lib/icons.ts"],"names":[],"mappings":"AAGA,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,SAAK,UAQ1C;AAED,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0FjB,CAAC;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA4B,CAAC;AAE/C,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,YAAY,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGvG"}
package/lib/icons.js ADDED
@@ -0,0 +1,81 @@
1
+ import { createStore, raw, updateStore } from '@mantou/gem';
2
+ // 24x24, single path
3
+ export function genIcon(d, ext = '') {
4
+ return raw `
5
+ <svg part="icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
6
+ <path d="M0 0h24v24H0z" fill="none" stroke="none"></path>
7
+ <path d="${d}"></path>
8
+ ${ext}
9
+ </svg>
10
+ `;
11
+ }
12
+ const defaultIcons = {
13
+ loading: genIcon('', raw `
14
+ <path class="bar1" d="M5 5h2.8v14h-2.8z"></path>
15
+ <path class="bar2" d="M10.6 5h2.8v14h-2.8z"></path>
16
+ <path class="bar3" d="M15.6 5h2.8v14h-2.8z"></path>
17
+ <style>
18
+ svg {
19
+ opacity: 0.5;
20
+ }
21
+ path {
22
+ transform-origin: center;
23
+ }
24
+ .bar1 {
25
+ animation: grow 1.5s linear infinite;
26
+ }
27
+ .bar2 {
28
+ animation: grow 1.5s linear -0.5s infinite;
29
+ }
30
+ .bar3 {
31
+ animation: grow 1.5s linear -1s infinite;
32
+ }
33
+ @keyframes grow {
34
+ 0% {
35
+ transform: scaleY(0);
36
+ opacity: 0;
37
+ }
38
+ 50% {
39
+ transform: scaleY(1);
40
+ opacity: 1;
41
+ }
42
+ 100% {
43
+ transform: scaleY(0);
44
+ opacity: 0;
45
+ }
46
+ }
47
+ </style>
48
+ `),
49
+ search: genIcon(`M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z`),
50
+ filter: genIcon(`M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z`),
51
+ more: genIcon(`M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z`),
52
+ close: genIcon(`M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z`),
53
+ delete: genIcon(`M16 9v10H8V9h8m-1.5-6h-5l-1 1H5v2h14V4h-3.5l-1-1zM18 7H6v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7z`),
54
+ add: genIcon(`M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z`),
55
+ right: genIcon(`M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z`),
56
+ left: genIcon(`M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z`),
57
+ expand: genIcon(`M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z`),
58
+ rollup: genIcon(`M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14l-6-6z`),
59
+ check: genIcon(`M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z`),
60
+ date: genIcon(`M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z`),
61
+ copy: genIcon(`M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z`),
62
+ info: genIcon(`M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z`),
63
+ warning: genIcon(`M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z`),
64
+ error: genIcon(`M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z`),
65
+ success: genIcon(`M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z`),
66
+ help: genIcon(`M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z`),
67
+ star: genIcon(`M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24z`),
68
+ colorize: genIcon(`M20.71 5.63l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z`),
69
+ back: genIcon(`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`),
70
+ forward: genIcon(`M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z`),
71
+ tune: genIcon(`M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z`),
72
+ visibility: genIcon(`M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z`),
73
+ visibilityOff: genIcon(`M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z`),
74
+ refresh: genIcon(`M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z`),
75
+ };
76
+ export const icons = createStore(defaultIcons);
77
+ export function setIcons(customIcons) {
78
+ updateStore(icons, customIcons);
79
+ return icons;
80
+ }
81
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../src/lib/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE5D,qBAAqB;AACrB,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,GAAG,GAAG,EAAE;IACzC,OAAO,GAAG,CAAA;;;iBAGK,CAAC;QACV,GAAG;;GAER,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,OAAO,CACd,EAAE,EACF,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmCF,CACF;IACD,MAAM,EAAE,OAAO,CACb,4OAA4O,CAC7O;IACD,MAAM,EAAE,OAAO,CAAC,gDAAgD,CAAC;IACjE,IAAI,EAAE,OAAO,CACX,qJAAqJ,CACtJ;IACD,KAAK,EAAE,OAAO,CACZ,uGAAuG,CACxG;IACD,MAAM,EAAE,OAAO,CAAC,+FAA+F,CAAC;IAChH,GAAG,EAAE,OAAO,CAAC,qCAAqC,CAAC;IACnD,KAAK,EAAE,OAAO,CAAC,gDAAgD,CAAC;IAChE,IAAI,EAAE,OAAO,CAAC,+CAA+C,CAAC;IAC9D,MAAM,EAAE,OAAO,CAAC,8CAA8C,CAAC;IAC/D,MAAM,EAAE,OAAO,CAAC,qDAAqD,CAAC;IACtE,KAAK,EAAE,OAAO,CAAC,mDAAmD,CAAC;IACnE,IAAI,EAAE,OAAO,CACX,0IAA0I,CAC3I;IACD,IAAI,EAAE,OAAO,CACX,iIAAiI,CAClI;IACD,IAAI,EAAE,OAAO,CAAC,kGAAkG,CAAC;IACjH,OAAO,EAAE,OAAO,CAAC,oDAAoD,CAAC;IACtE,KAAK,EAAE,OAAO,CAAC,kGAAkG,CAAC;IAClH,OAAO,EAAE,OAAO,CACd,uHAAuH,CACxH;IACD,IAAI,EAAE,OAAO,CACX,qPAAqP,CACtP;IACD,IAAI,EAAE,OAAO,CAAC,kGAAkG,CAAC;IACjH,QAAQ,EAAE,OAAO,CACf,+NAA+N,CAChO;IACD,IAAI,EAAE,OAAO,CAAC,8DAA8D,CAAC;IAC7E,OAAO,EAAE,OAAO,CAAC,2DAA2D,CAAC;IAC7E,IAAI,EAAE,OAAO,CACX,yHAAyH,CAC1H;IACD,UAAU,EAAE,OAAO,CACjB,mNAAmN,CACpN;IACD,aAAa,EAAE,OAAO,CACpB,2fAA2f,CAC5f;IACD,OAAO,EAAE,OAAO,CACd,4MAA4M,CAC7M;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;AAE/C,MAAM,UAAU,QAAQ,CAAmC,WAA6C;IACtG,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAChC,OAAO,KAA2C,CAAC;AACrD,CAAC"}
package/lib/image.d.ts ADDED
@@ -0,0 +1,29 @@
1
+ export declare function createCanvas(width?: number, height?: number): HTMLCanvasElement;
2
+ export declare function createDataURLFromSVG(raw: string): string;
3
+ export declare function createSVGFromText(text: string, backgroundColor?: string): string;
4
+ export interface CreateBitmapFromSvgOptions {
5
+ width?: number;
6
+ height?: number;
7
+ type?: `image/${'png' | 'jpeg'}`;
8
+ quality?: number;
9
+ }
10
+ export declare function createBitmapFromSvg(svg: string, { width, height, type, quality }?: CreateBitmapFromSvgOptions): Promise<File>;
11
+ export declare function createDataURLFromBlob(blob: Blob): Promise<string>;
12
+ interface LimitOption {
13
+ fileSize?: number;
14
+ dimension?: {
15
+ width: number;
16
+ height: number;
17
+ };
18
+ }
19
+ interface OutputOption {
20
+ aspectRatio?: number;
21
+ /**Default: File */
22
+ type?: 'url';
23
+ }
24
+ export declare function compressionImage(origin: HTMLImageElement | File, limit: LimitOption, output: OutputOption & {
25
+ type: 'url';
26
+ }): Promise<string>;
27
+ export declare function compressionImage(origin: HTMLImageElement | File, limit: LimitOption): Promise<File>;
28
+ export {};
29
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/lib/image.ts"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,qBAO3D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,UAE/C;AAGD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,UAsCvE;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,KAAK,GAAG,MAAM,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,EAAE,KAAW,EAAE,MAAY,EAAE,IAAI,EAAE,OAAO,EAAE,GAAE,0BAA+B,iBAuB9E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,mBAY/C;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AACD,UAAU,YAAY;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,gBAAgB,GAAG,IAAI,EAC/B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACrC,OAAO,CAAC,MAAM,CAAC,CAAC;AACnB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}