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.
- package/LICENSE +21 -0
- package/README.md +12 -0
- package/docs/.gitignore +4 -0
- package/docs/104.bundle.js +19 -0
- package/docs/283.bundle.js +47 -0
- package/docs/354.bundle.js +1133 -0
- package/docs/354.bundle.js.LICENSE.txt +13 -0
- package/docs/587.bundle.js +26 -0
- package/docs/810.bundle.js +1 -0
- package/docs/gem-book.json +84 -0
- package/docs/index.html +1 -0
- package/docs/main.bundle.js +1 -0
- package/docs/robots.txt +2 -0
- package/docs/service-worker.js +1 -0
- package/docs/workbox-62d1f9d5.js +1 -0
- package/elements/action-text.d.ts +12 -0
- package/elements/action-text.d.ts.map +1 -0
- package/elements/action-text.js +63 -0
- package/elements/action-text.js.map +1 -0
- package/elements/area-chart.d.ts +35 -0
- package/elements/area-chart.d.ts.map +1 -0
- package/elements/area-chart.js +408 -0
- package/elements/area-chart.js.map +1 -0
- package/elements/avatar.d.ts +42 -0
- package/elements/avatar.d.ts.map +1 -0
- package/elements/avatar.js +190 -0
- package/elements/avatar.js.map +1 -0
- package/elements/banner.d.ts +21 -0
- package/elements/banner.d.ts.map +1 -0
- package/elements/banner.js +136 -0
- package/elements/banner.js.map +1 -0
- package/elements/bar-chart.d.ts +23 -0
- package/elements/bar-chart.d.ts.map +1 -0
- package/elements/bar-chart.js +170 -0
- package/elements/bar-chart.js.map +1 -0
- package/elements/base/chart.d.ts +74 -0
- package/elements/base/chart.d.ts.map +1 -0
- package/elements/base/chart.js +299 -0
- package/elements/base/chart.js.map +1 -0
- package/elements/base/loadable.d.ts +16 -0
- package/elements/base/loadable.d.ts.map +1 -0
- package/elements/base/loadable.js +77 -0
- package/elements/base/loadable.js.map +1 -0
- package/elements/base/resize.d.ts +15 -0
- package/elements/base/resize.d.ts.map +1 -0
- package/elements/base/resize.js +31 -0
- package/elements/base/resize.js.map +1 -0
- package/elements/base/scroll.d.ts +11 -0
- package/elements/base/scroll.d.ts.map +1 -0
- package/elements/base/scroll.js +90 -0
- package/elements/base/scroll.js.map +1 -0
- package/elements/base/visible.d.ts +12 -0
- package/elements/base/visible.d.ts.map +1 -0
- package/elements/base/visible.js +37 -0
- package/elements/base/visible.js.map +1 -0
- package/elements/breadcrumbs.d.ts +20 -0
- package/elements/breadcrumbs.d.ts.map +1 -0
- package/elements/breadcrumbs.js +88 -0
- package/elements/breadcrumbs.js.map +1 -0
- package/elements/button.d.ts +30 -0
- package/elements/button.d.ts.map +1 -0
- package/elements/button.js +225 -0
- package/elements/button.js.map +1 -0
- package/elements/card.d.ts +26 -0
- package/elements/card.d.ts.map +1 -0
- package/elements/card.js +163 -0
- package/elements/card.js.map +1 -0
- package/elements/cascader-pick.d.ts +22 -0
- package/elements/cascader-pick.d.ts.map +1 -0
- package/elements/cascader-pick.js +172 -0
- package/elements/cascader-pick.js.map +1 -0
- package/elements/cascader.d.ts +29 -0
- package/elements/cascader.d.ts.map +1 -0
- package/elements/cascader.js +247 -0
- package/elements/cascader.js.map +1 -0
- package/elements/chart-tooltip.d.ts +29 -0
- package/elements/chart-tooltip.d.ts.map +1 -0
- package/elements/chart-tooltip.js +150 -0
- package/elements/chart-tooltip.js.map +1 -0
- package/elements/chart-zoom.d.ts +20 -0
- package/elements/chart-zoom.d.ts.map +1 -0
- package/elements/chart-zoom.js +207 -0
- package/elements/chart-zoom.js.map +1 -0
- package/elements/checkbox.d.ts +20 -0
- package/elements/checkbox.d.ts.map +1 -0
- package/elements/checkbox.js +108 -0
- package/elements/checkbox.js.map +1 -0
- package/elements/coach-mark.d.ts +39 -0
- package/elements/coach-mark.d.ts.map +1 -0
- package/elements/coach-mark.js +212 -0
- package/elements/coach-mark.js.map +1 -0
- package/elements/code-block.d.ts +14 -0
- package/elements/code-block.d.ts.map +1 -0
- package/elements/code-block.js +427 -0
- package/elements/code-block.js.map +1 -0
- package/elements/collapse.d.ts +22 -0
- package/elements/collapse.d.ts.map +1 -0
- package/elements/collapse.js +111 -0
- package/elements/collapse.js.map +1 -0
- package/elements/color-panel.d.ts +30 -0
- package/elements/color-panel.d.ts.map +1 -0
- package/elements/color-panel.js +383 -0
- package/elements/color-panel.js.map +1 -0
- package/elements/color-pick.d.ts +14 -0
- package/elements/color-pick.d.ts.map +1 -0
- package/elements/color-pick.js +81 -0
- package/elements/color-pick.js.map +1 -0
- package/elements/compartment.d.ts +9 -0
- package/elements/compartment.d.ts.map +1 -0
- package/elements/compartment.js +32 -0
- package/elements/compartment.js.map +1 -0
- package/elements/copy.d.ts +20 -0
- package/elements/copy.d.ts.map +1 -0
- package/elements/copy.js +160 -0
- package/elements/copy.js.map +1 -0
- package/elements/date-panel.d.ts +29 -0
- package/elements/date-panel.d.ts.map +1 -0
- package/elements/date-panel.js +220 -0
- package/elements/date-panel.js.map +1 -0
- package/elements/date-pick.d.ts +23 -0
- package/elements/date-pick.d.ts.map +1 -0
- package/elements/date-pick.js +107 -0
- package/elements/date-pick.js.map +1 -0
- package/elements/date-range-panel.d.ts +28 -0
- package/elements/date-range-panel.d.ts.map +1 -0
- package/elements/date-range-panel.js +154 -0
- package/elements/date-range-panel.js.map +1 -0
- package/elements/date-range-pick.d.ts +26 -0
- package/elements/date-range-pick.d.ts.map +1 -0
- package/elements/date-range-pick.js +159 -0
- package/elements/date-range-pick.js.map +1 -0
- package/elements/divider.d.ts +15 -0
- package/elements/divider.d.ts.map +1 -0
- package/elements/divider.js +95 -0
- package/elements/divider.js.map +1 -0
- package/elements/donut-chart.d.ts +19 -0
- package/elements/donut-chart.d.ts.map +1 -0
- package/elements/donut-chart.js +140 -0
- package/elements/donut-chart.js.map +1 -0
- package/elements/drawer.d.ts +9 -0
- package/elements/drawer.d.ts.map +1 -0
- package/elements/drawer.js +45 -0
- package/elements/drawer.js.map +1 -0
- package/elements/drop-area.d.ts +18 -0
- package/elements/drop-area.d.ts.map +1 -0
- package/elements/drop-area.js +155 -0
- package/elements/drop-area.js.map +1 -0
- package/elements/empty.d.ts +8 -0
- package/elements/empty.d.ts.map +1 -0
- package/elements/empty.js +33 -0
- package/elements/empty.js.map +1 -0
- package/elements/file-pick.d.ts +28 -0
- package/elements/file-pick.d.ts.map +1 -0
- package/elements/file-pick.js +226 -0
- package/elements/file-pick.js.map +1 -0
- package/elements/form.d.ts +76 -0
- package/elements/form.d.ts.map +1 -0
- package/elements/form.js +372 -0
- package/elements/form.js.map +1 -0
- package/elements/heading.d.ts +13 -0
- package/elements/heading.d.ts.map +1 -0
- package/elements/heading.js +88 -0
- package/elements/heading.js.map +1 -0
- package/elements/help-text.d.ts +11 -0
- package/elements/help-text.d.ts.map +1 -0
- package/elements/help-text.js +53 -0
- package/elements/help-text.js.map +1 -0
- package/elements/icons.d.ts +10 -0
- package/elements/icons.d.ts.map +1 -0
- package/elements/icons.js +71 -0
- package/elements/icons.js.map +1 -0
- package/elements/image-preview.d.ts +26 -0
- package/elements/image-preview.d.ts.map +1 -0
- package/elements/image-preview.js +172 -0
- package/elements/image-preview.js.map +1 -0
- package/elements/input-capture.d.ts +17 -0
- package/elements/input-capture.d.ts.map +1 -0
- package/elements/input-capture.js +111 -0
- package/elements/input-capture.js.map +1 -0
- package/elements/input.d.ts +51 -0
- package/elements/input.d.ts.map +1 -0
- package/elements/input.js +372 -0
- package/elements/input.js.map +1 -0
- package/elements/keyboard-access.d.ts +26 -0
- package/elements/keyboard-access.d.ts.map +1 -0
- package/elements/keyboard-access.js +217 -0
- package/elements/keyboard-access.js.map +1 -0
- package/elements/legend.d.ts +21 -0
- package/elements/legend.d.ts.map +1 -0
- package/elements/legend.js +118 -0
- package/elements/legend.js.map +1 -0
- package/elements/line-chart.d.ts +9 -0
- package/elements/line-chart.d.ts.map +1 -0
- package/elements/line-chart.js +116 -0
- package/elements/line-chart.js.map +1 -0
- package/elements/link.d.ts +14 -0
- package/elements/link.d.ts.map +1 -0
- package/elements/link.js +46 -0
- package/elements/link.js.map +1 -0
- package/elements/list.d.ts +30 -0
- package/elements/list.d.ts.map +1 -0
- package/elements/list.js +114 -0
- package/elements/list.js.map +1 -0
- package/elements/loading.d.ts +9 -0
- package/elements/loading.d.ts.map +1 -0
- package/elements/loading.js +44 -0
- package/elements/loading.js.map +1 -0
- package/elements/map.d.ts +68 -0
- package/elements/map.d.ts.map +1 -0
- package/elements/map.js +323 -0
- package/elements/map.js.map +1 -0
- package/elements/menu.d.ts +58 -0
- package/elements/menu.d.ts.map +1 -0
- package/elements/menu.js +256 -0
- package/elements/menu.js.map +1 -0
- package/elements/meter.d.ts +20 -0
- package/elements/meter.d.ts.map +1 -0
- package/elements/meter.js +130 -0
- package/elements/meter.js.map +1 -0
- package/elements/modal.d.ts +46 -0
- package/elements/modal.d.ts.map +1 -0
- package/elements/modal.js +296 -0
- package/elements/modal.js.map +1 -0
- package/elements/more.d.ts +28 -0
- package/elements/more.d.ts.map +1 -0
- package/elements/more.js +118 -0
- package/elements/more.js.map +1 -0
- package/elements/options.d.ts +34 -0
- package/elements/options.d.ts.map +1 -0
- package/elements/options.js +174 -0
- package/elements/options.js.map +1 -0
- package/elements/page-loadbar.d.ts +20 -0
- package/elements/page-loadbar.d.ts.map +1 -0
- package/elements/page-loadbar.js +85 -0
- package/elements/page-loadbar.js.map +1 -0
- package/elements/pagination.d.ts +23 -0
- package/elements/pagination.d.ts.map +1 -0
- package/elements/pagination.js +221 -0
- package/elements/pagination.js.map +1 -0
- package/elements/paragraph.d.ts +8 -0
- package/elements/paragraph.d.ts.map +1 -0
- package/elements/paragraph.js +60 -0
- package/elements/paragraph.js.map +1 -0
- package/elements/pick.d.ts +34 -0
- package/elements/pick.d.ts.map +1 -0
- package/elements/pick.js +168 -0
- package/elements/pick.js.map +1 -0
- package/elements/placeholder.d.ts +23 -0
- package/elements/placeholder.d.ts.map +1 -0
- package/elements/placeholder.js +93 -0
- package/elements/placeholder.js.map +1 -0
- package/elements/popover.d.ts +54 -0
- package/elements/popover.d.ts.map +1 -0
- package/elements/popover.js +316 -0
- package/elements/popover.js.map +1 -0
- package/elements/progress.d.ts +12 -0
- package/elements/progress.d.ts.map +1 -0
- package/elements/progress.js +45 -0
- package/elements/progress.js.map +1 -0
- package/elements/radio.d.ts +34 -0
- package/elements/radio.d.ts.map +1 -0
- package/elements/radio.js +152 -0
- package/elements/radio.js.map +1 -0
- package/elements/rating.d.ts +15 -0
- package/elements/rating.d.ts.map +1 -0
- package/elements/rating.js +122 -0
- package/elements/rating.js.map +1 -0
- package/elements/scatter-chart.d.ts +13 -0
- package/elements/scatter-chart.d.ts.map +1 -0
- package/elements/scatter-chart.js +151 -0
- package/elements/scatter-chart.js.map +1 -0
- package/elements/select.d.ts +63 -0
- package/elements/select.d.ts.map +1 -0
- package/elements/select.js +416 -0
- package/elements/select.js.map +1 -0
- package/elements/shortcut-record.d.ts +19 -0
- package/elements/shortcut-record.d.ts.map +1 -0
- package/elements/shortcut-record.js +127 -0
- package/elements/shortcut-record.js.map +1 -0
- package/elements/side-navigation.d.ts +31 -0
- package/elements/side-navigation.d.ts.map +1 -0
- package/elements/side-navigation.js +137 -0
- package/elements/side-navigation.js.map +1 -0
- package/elements/slider.d.ts +27 -0
- package/elements/slider.d.ts.map +1 -0
- package/elements/slider.js +219 -0
- package/elements/slider.js.map +1 -0
- package/elements/space.d.ts +10 -0
- package/elements/space.d.ts.map +1 -0
- package/elements/space.js +35 -0
- package/elements/space.js.map +1 -0
- package/elements/statistic.d.ts +24 -0
- package/elements/statistic.d.ts.map +1 -0
- package/elements/statistic.js +116 -0
- package/elements/statistic.js.map +1 -0
- package/elements/status-light.d.ts +14 -0
- package/elements/status-light.d.ts.map +1 -0
- package/elements/status-light.js +75 -0
- package/elements/status-light.js.map +1 -0
- package/elements/switch.d.ts +18 -0
- package/elements/switch.d.ts.map +1 -0
- package/elements/switch.js +117 -0
- package/elements/switch.js.map +1 -0
- package/elements/table.d.ts +36 -0
- package/elements/table.d.ts.map +1 -0
- package/elements/table.js +268 -0
- package/elements/table.js.map +1 -0
- package/elements/tabs.d.ts +29 -0
- package/elements/tabs.d.ts.map +1 -0
- package/elements/tabs.js +130 -0
- package/elements/tabs.js.map +1 -0
- package/elements/tag.d.ts +20 -0
- package/elements/tag.d.ts.map +1 -0
- package/elements/tag.js +120 -0
- package/elements/tag.js.map +1 -0
- package/elements/timeline.d.ts +19 -0
- package/elements/timeline.d.ts.map +1 -0
- package/elements/timeline.js +92 -0
- package/elements/timeline.js.map +1 -0
- package/elements/toast.d.ts +26 -0
- package/elements/toast.d.ts.map +1 -0
- package/elements/toast.js +149 -0
- package/elements/toast.js.map +1 -0
- package/elements/tooltip.d.ts +12 -0
- package/elements/tooltip.d.ts.map +1 -0
- package/elements/tooltip.js +27 -0
- package/elements/tooltip.js.map +1 -0
- package/elements/tree.d.ts +48 -0
- package/elements/tree.d.ts.map +1 -0
- package/elements/tree.js +231 -0
- package/elements/tree.js.map +1 -0
- package/elements/wait.d.ts +19 -0
- package/elements/wait.d.ts.map +1 -0
- package/elements/wait.js +97 -0
- package/elements/wait.js.map +1 -0
- package/lib/animations.d.ts +4 -0
- package/lib/animations.d.ts.map +1 -0
- package/lib/animations.js +8 -0
- package/lib/animations.js.map +1 -0
- package/lib/cache.d.ts +12 -0
- package/lib/cache.d.ts.map +1 -0
- package/lib/cache.js +56 -0
- package/lib/cache.js.map +1 -0
- package/lib/color.d.ts +37 -0
- package/lib/color.d.ts.map +1 -0
- package/lib/color.js +101 -0
- package/lib/color.js.map +1 -0
- package/lib/hotkeys.d.ts +31 -0
- package/lib/hotkeys.d.ts.map +1 -0
- package/lib/hotkeys.js +207 -0
- package/lib/hotkeys.js.map +1 -0
- package/lib/icons.d.ts +90 -0
- package/lib/icons.d.ts.map +1 -0
- package/lib/icons.js +81 -0
- package/lib/icons.js.map +1 -0
- package/lib/image.d.ts +29 -0
- package/lib/image.d.ts.map +1 -0
- package/lib/image.js +140 -0
- package/lib/image.js.map +1 -0
- package/lib/locale.d.ts +37 -0
- package/lib/locale.d.ts.map +1 -0
- package/lib/locale.js +14 -0
- package/lib/locale.js.map +1 -0
- package/lib/number.d.ts +80 -0
- package/lib/number.d.ts.map +1 -0
- package/lib/number.js +144 -0
- package/lib/number.js.map +1 -0
- package/lib/theme.d.ts +67 -0
- package/lib/theme.d.ts.map +1 -0
- package/lib/theme.js +56 -0
- package/lib/theme.js.map +1 -0
- package/lib/time.d.ts +58 -0
- package/lib/time.d.ts.map +1 -0
- package/lib/time.js +225 -0
- package/lib/time.js.map +1 -0
- package/lib/types.d.ts +8 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +17 -0
- package/lib/types.js.map +1 -0
- package/lib/utils.d.ts +37 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/utils.js +249 -0
- package/lib/utils.js.map +1 -0
- package/locales/en.d.ts +34 -0
- package/locales/en.d.ts.map +1 -0
- package/locales/en.js +33 -0
- package/locales/en.js.map +1 -0
- package/locales/zh.d.ts +4 -0
- package/locales/zh.d.ts.map +1 -0
- package/locales/zh.js +34 -0
- package/locales/zh.js.map +1 -0
- 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
|
package/lib/color.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../src/lib/color.ts"],"names":[],"mappings":"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"}
|
package/lib/hotkeys.d.ts
ADDED
|
@@ -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
|
package/lib/icons.js.map
ADDED
|
@@ -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"}
|