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/image.js
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { raw } from '@mantou/gem';
|
|
2
|
+
import { luminance, hslToRgb, rgbToHexColor, parseHexColor } from './color';
|
|
3
|
+
export function createCanvas(width, height) {
|
|
4
|
+
const canvas = document.createElement('canvas');
|
|
5
|
+
if (width) {
|
|
6
|
+
canvas.width = width;
|
|
7
|
+
canvas.height = height || width;
|
|
8
|
+
}
|
|
9
|
+
return canvas;
|
|
10
|
+
}
|
|
11
|
+
export function createDataURLFromSVG(raw) {
|
|
12
|
+
return `data:image/svg+xml;base64,${window.btoa(raw)}`;
|
|
13
|
+
}
|
|
14
|
+
// if `bg` is't `HexColor`, text fill color error
|
|
15
|
+
export function createSVGFromText(text, backgroundColor) {
|
|
16
|
+
const hslRange = [
|
|
17
|
+
[0, 1],
|
|
18
|
+
[0.2, 0.7],
|
|
19
|
+
[0.3, 0.6],
|
|
20
|
+
];
|
|
21
|
+
const rgb = (backgroundColor === null || backgroundColor === void 0 ? void 0 : backgroundColor.startsWith('#'))
|
|
22
|
+
? parseHexColor(backgroundColor)
|
|
23
|
+
: hslToRgb(Array.from({ length: 3 }, (_, i) => {
|
|
24
|
+
const total = Math.floor(Math.random() * 256) / 255;
|
|
25
|
+
return hslRange[i][0] + total * (hslRange[i][1] - hslRange[i][0]);
|
|
26
|
+
}));
|
|
27
|
+
const bg = backgroundColor || rgbToHexColor(rgb);
|
|
28
|
+
const color = luminance(rgb) < 0.2 ? '#fff4' : '#0004';
|
|
29
|
+
const getTranslate = () => Math.random() / 5;
|
|
30
|
+
const getRotate = () => (Math.random() - 0.5) * 45;
|
|
31
|
+
const strs = [...text].map((char) => `<text
|
|
32
|
+
x="50%"
|
|
33
|
+
y="50%"
|
|
34
|
+
dominant-baseline="middle"
|
|
35
|
+
text-anchor="middle"
|
|
36
|
+
transform="translate(${getTranslate()}, ${getTranslate()}) rotate(${getRotate()})"
|
|
37
|
+
>${char}</text>`);
|
|
38
|
+
return raw `
|
|
39
|
+
<svg
|
|
40
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
41
|
+
width="300"
|
|
42
|
+
height="300"
|
|
43
|
+
viewBox="0 0 1 1"
|
|
44
|
+
style="background: ${bg}; fill: ${color}; font: 1px sans-serif">
|
|
45
|
+
${strs.join('')}
|
|
46
|
+
</svg>
|
|
47
|
+
`;
|
|
48
|
+
}
|
|
49
|
+
export async function createBitmapFromSvg(svg, { width = 512, height = 512, type, quality } = {}) {
|
|
50
|
+
const img = new Image();
|
|
51
|
+
const canvas = createCanvas(width, height);
|
|
52
|
+
const ctx = canvas.getContext('2d');
|
|
53
|
+
if (!ctx)
|
|
54
|
+
throw new Error('ctx is null');
|
|
55
|
+
img.src = createDataURLFromSVG(svg);
|
|
56
|
+
await new Promise((res) => {
|
|
57
|
+
img.onload = () => {
|
|
58
|
+
ctx.drawImage(img, 0, 0, width, height);
|
|
59
|
+
res(null);
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
return new Promise((res) => {
|
|
63
|
+
canvas.toBlob((b) => {
|
|
64
|
+
if (!b)
|
|
65
|
+
throw new Error();
|
|
66
|
+
res(new File([b], '', { type: b.type }));
|
|
67
|
+
}, type, quality);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
export function createDataURLFromBlob(blob) {
|
|
71
|
+
const reader = new FileReader();
|
|
72
|
+
return new Promise((res) => {
|
|
73
|
+
reader.addEventListener('load', () => {
|
|
74
|
+
res(reader.result);
|
|
75
|
+
}, false);
|
|
76
|
+
reader.readAsDataURL(blob);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
export async function compressionImage(origin, limit, { aspectRatio, type } = {}) {
|
|
80
|
+
const originIsFile = origin instanceof Blob;
|
|
81
|
+
const outputDataURL = type === 'url';
|
|
82
|
+
if (!originIsFile && !outputDataURL)
|
|
83
|
+
throw new Error('not support `HTMLImageElement` to `File`');
|
|
84
|
+
const canvas = createCanvas();
|
|
85
|
+
try {
|
|
86
|
+
let img = new Image();
|
|
87
|
+
let file = new File([], '');
|
|
88
|
+
const loadImg = async () => {
|
|
89
|
+
await new Promise((res, rej) => {
|
|
90
|
+
img.onload = res;
|
|
91
|
+
img.onerror = rej;
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
if (originIsFile) {
|
|
95
|
+
img.crossOrigin = 'anonymous';
|
|
96
|
+
img.src = await createDataURLFromBlob(origin);
|
|
97
|
+
await loadImg();
|
|
98
|
+
file = origin;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
img = origin;
|
|
102
|
+
if (!img.complete)
|
|
103
|
+
await loadImg();
|
|
104
|
+
if (limit.fileSize) {
|
|
105
|
+
const res = await fetch(origin.currentSrc);
|
|
106
|
+
const blob = await res.blob();
|
|
107
|
+
const type = res.headers.get('content-type');
|
|
108
|
+
file = new File([blob], 'temp', { type: (type === null || type === void 0 ? void 0 : type.startsWith('image/')) ? type : '' });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const rate = Math.min(limit.fileSize ? Math.sqrt(limit.fileSize / file.size) : 1, limit.dimension ? limit.dimension.width / img.naturalWidth : 1, limit.dimension ? limit.dimension.height / img.naturalHeight : 1);
|
|
112
|
+
if (rate >= 1) {
|
|
113
|
+
return Promise.resolve(outputDataURL ? img.currentSrc : file);
|
|
114
|
+
}
|
|
115
|
+
const naturalAspectRatio = img.naturalWidth / img.naturalHeight;
|
|
116
|
+
aspectRatio = aspectRatio || naturalAspectRatio;
|
|
117
|
+
const widthRatio = aspectRatio > naturalAspectRatio ? 1 : aspectRatio / naturalAspectRatio;
|
|
118
|
+
const heightRatio = aspectRatio > naturalAspectRatio ? naturalAspectRatio / aspectRatio : 1;
|
|
119
|
+
const width = img.naturalWidth * rate;
|
|
120
|
+
const height = img.naturalHeight * rate;
|
|
121
|
+
canvas.width = width * widthRatio;
|
|
122
|
+
canvas.height = height * heightRatio;
|
|
123
|
+
const ctx = canvas.getContext('2d');
|
|
124
|
+
if (!ctx)
|
|
125
|
+
throw new Error('ctx is null');
|
|
126
|
+
ctx.imageSmoothingQuality = 'high';
|
|
127
|
+
ctx.drawImage(img, (canvas.width - width) / 2, (canvas.height - height) / 2, width, height);
|
|
128
|
+
if (outputDataURL)
|
|
129
|
+
return Promise.resolve(canvas.toDataURL());
|
|
130
|
+
return new Promise((res, rej) => canvas.toBlob((blob) => {
|
|
131
|
+
if (!blob)
|
|
132
|
+
return rej();
|
|
133
|
+
res(new File([blob], 'compressed', { type: blob.type }));
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
throw err;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=image.js.map
|
package/lib/image.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image.js","sourceRoot":"","sources":["../src/lib/image.ts"],"names":[],"mappings":"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"}
|
package/lib/locale.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import en from '../locales/en';
|
|
2
|
+
export declare const locale: import("@mantou/gem").Store<{
|
|
3
|
+
localeCode: string;
|
|
4
|
+
year: string;
|
|
5
|
+
month: string;
|
|
6
|
+
week: string;
|
|
7
|
+
day: string;
|
|
8
|
+
hour: string;
|
|
9
|
+
minute: string;
|
|
10
|
+
second: string;
|
|
11
|
+
millisecond: string;
|
|
12
|
+
thousand: string;
|
|
13
|
+
million: string;
|
|
14
|
+
billion: string;
|
|
15
|
+
trillion: string;
|
|
16
|
+
copySuccess: string;
|
|
17
|
+
copyFail: string;
|
|
18
|
+
search: string;
|
|
19
|
+
ok: string;
|
|
20
|
+
cancel: string;
|
|
21
|
+
prevPage: string;
|
|
22
|
+
nextPage: string;
|
|
23
|
+
perPage: string;
|
|
24
|
+
noData: string;
|
|
25
|
+
more: string;
|
|
26
|
+
less: string;
|
|
27
|
+
nextTour: string;
|
|
28
|
+
skipTour: string;
|
|
29
|
+
finishTour: string;
|
|
30
|
+
currentOfTotal: string;
|
|
31
|
+
requiredMeg: string;
|
|
32
|
+
ptternMsg: string;
|
|
33
|
+
}>;
|
|
34
|
+
export declare const updateLocale: (l: Partial<typeof en> | Promise<{
|
|
35
|
+
default: Partial<typeof en>;
|
|
36
|
+
}>) => void;
|
|
37
|
+
//# sourceMappingURL=locale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../src/lib/locale.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,eAAe,CAAC;AAI/B,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyB,CAAC;AAI7C,eAAO,MAAM,YAAY,MAAO,QAAQ,SAAS,CAAC,GAAG,QAAQ;IAAE,OAAO,EAAE,QAAQ,SAAS,CAAC,CAAA;CAAE,CAAC,SAM5F,CAAC"}
|
package/lib/locale.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createStore, updateStore } from '@mantou/gem';
|
|
2
|
+
import en from '../locales/en';
|
|
3
|
+
import { OrderlyPromisePool } from './utils';
|
|
4
|
+
export const locale = createStore({ ...en });
|
|
5
|
+
const op = new OrderlyPromisePool();
|
|
6
|
+
export const updateLocale = (l) => {
|
|
7
|
+
if (l instanceof Promise) {
|
|
8
|
+
op.add(l, (ll) => updateStore(locale, ll.default));
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
updateStore(locale, l);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=locale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../src/lib/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,MAAM,eAAe,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AAE7C,MAAM,EAAE,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEpC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAgE,EAAE,EAAE;IAC/F,IAAI,CAAC,YAAY,OAAO,EAAE;QACxB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;KACpD;SAAM;QACL,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACxB;AACH,CAAC,CAAC"}
|
package/lib/number.d.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export declare function splitInt(int: string | number, comma?: number): string | number;
|
|
2
|
+
interface FormatNumberOptions {
|
|
3
|
+
dotAfterCount?: number;
|
|
4
|
+
unitSize?: number | number[];
|
|
5
|
+
units?: string[];
|
|
6
|
+
comma?: number;
|
|
7
|
+
autoOmitFract?: boolean;
|
|
8
|
+
level?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function formatNumber(value: number | undefined | null, option: FormatNumberOptions): {
|
|
11
|
+
number: string;
|
|
12
|
+
unit: string;
|
|
13
|
+
int?: undefined;
|
|
14
|
+
fract?: undefined;
|
|
15
|
+
} | {
|
|
16
|
+
int: number;
|
|
17
|
+
fract: number;
|
|
18
|
+
number: string;
|
|
19
|
+
unit: string;
|
|
20
|
+
};
|
|
21
|
+
export declare function formatBandwidth(value: number, needDetail?: boolean): {
|
|
22
|
+
number: string;
|
|
23
|
+
unit: string;
|
|
24
|
+
int?: undefined;
|
|
25
|
+
fract?: undefined;
|
|
26
|
+
} | {
|
|
27
|
+
int: number;
|
|
28
|
+
fract: number;
|
|
29
|
+
number: string;
|
|
30
|
+
unit: string;
|
|
31
|
+
};
|
|
32
|
+
export declare function formatTraffic(value: number, isDetail?: boolean): {
|
|
33
|
+
number: string;
|
|
34
|
+
unit: string;
|
|
35
|
+
int?: undefined;
|
|
36
|
+
fract?: undefined;
|
|
37
|
+
} | {
|
|
38
|
+
int: number;
|
|
39
|
+
fract: number;
|
|
40
|
+
number: string;
|
|
41
|
+
unit: string;
|
|
42
|
+
};
|
|
43
|
+
export declare function formatDecimal(value: number, isDetail?: boolean): {
|
|
44
|
+
number: string;
|
|
45
|
+
unit: string;
|
|
46
|
+
int?: undefined;
|
|
47
|
+
fract?: undefined;
|
|
48
|
+
} | {
|
|
49
|
+
int: number;
|
|
50
|
+
fract: number;
|
|
51
|
+
number: string;
|
|
52
|
+
unit: string;
|
|
53
|
+
};
|
|
54
|
+
export declare function formatCurrency(value: number, isDetail?: boolean): {
|
|
55
|
+
number: string;
|
|
56
|
+
unit: string;
|
|
57
|
+
int?: undefined;
|
|
58
|
+
fract?: undefined;
|
|
59
|
+
} | {
|
|
60
|
+
int: number;
|
|
61
|
+
fract: number;
|
|
62
|
+
number: string;
|
|
63
|
+
unit: string;
|
|
64
|
+
};
|
|
65
|
+
export declare function formatPercentage(value: number, isDetail?: boolean): {
|
|
66
|
+
number: string;
|
|
67
|
+
unit: string;
|
|
68
|
+
int?: undefined;
|
|
69
|
+
fract?: undefined;
|
|
70
|
+
} | {
|
|
71
|
+
int: number;
|
|
72
|
+
fract: number;
|
|
73
|
+
number: string;
|
|
74
|
+
unit: string;
|
|
75
|
+
};
|
|
76
|
+
export declare function formatToPrecision(value: number, count?: number): number;
|
|
77
|
+
export declare function clamp(min: number, value: number, max: number): number;
|
|
78
|
+
export declare function adjustRange([min, max]: number[], stepCount: number, units?: number[]): number[];
|
|
79
|
+
export {};
|
|
80
|
+
//# sourceMappingURL=number.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../src/lib/number.ts"],"names":[],"mappings":"AAIA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,SAAI,mBAGvD;AAED,UAAU,mBAAmB;IAE3B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,MAAM,EAAE,mBAAmB;;;;;;;;;;EAoCzF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,UAAQ;;;;;;;;;;EAMhE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,UAAQ;;;;;;;;;;EAM5D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,UAAQ;;;;;;;;;;EAM5D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,UAAQ;;;;;;;;;;EAK7D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,UAAQ;;;;;;;;;;EAO/D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,UAGzD;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAE5D;AAED,wBAAgB,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,YAyDpF"}
|
package/lib/number.js
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat
|
|
2
|
+
import { locale } from '../lib/locale';
|
|
3
|
+
export function splitInt(int, comma = 3) {
|
|
4
|
+
if (comma === 0)
|
|
5
|
+
return int;
|
|
6
|
+
return String(int).replace(new RegExp(`(\\d)(?=(\\d{${comma}})+$)`, 'g'), '$1,');
|
|
7
|
+
}
|
|
8
|
+
export function formatNumber(value, option) {
|
|
9
|
+
if (value !== 0 && !value)
|
|
10
|
+
return { number: '-', unit: '' };
|
|
11
|
+
const { dotAfterCount = 2, unitSize = 10, units = [''], comma = 3, autoOmitFract = true, level } = option;
|
|
12
|
+
let l = 0;
|
|
13
|
+
let n = value;
|
|
14
|
+
while (true) {
|
|
15
|
+
const u = Array.isArray(unitSize) ? unitSize[l] : unitSize;
|
|
16
|
+
const haveArg = u && l < units.length - 1;
|
|
17
|
+
const needNextLevel = u > 1 ? n >= u : n < 1;
|
|
18
|
+
if (haveArg && (level === undefined ? needNextLevel : l < level)) {
|
|
19
|
+
l++;
|
|
20
|
+
n /= u;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const oint = Math.trunc(n);
|
|
27
|
+
const fract = n - oint;
|
|
28
|
+
const onlyInt = autoOmitFract && l === 0 && Math.trunc(value) === value;
|
|
29
|
+
const fractPart = fract.toFixed(dotAfterCount);
|
|
30
|
+
const fractPartStr = fractPart.slice(2);
|
|
31
|
+
const int = fractPart.startsWith('1') ? oint + 1 : oint;
|
|
32
|
+
return {
|
|
33
|
+
// 整数
|
|
34
|
+
int,
|
|
35
|
+
// 小数
|
|
36
|
+
fract,
|
|
37
|
+
// 格式化后的整个数字
|
|
38
|
+
number: `${splitInt(int, comma)}${onlyInt || dotAfterCount === 0 ? '' : `.${fractPartStr}`}`,
|
|
39
|
+
// 单位
|
|
40
|
+
unit: units[l],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function formatBandwidth(value, needDetail = false) {
|
|
44
|
+
return formatNumber(value, {
|
|
45
|
+
unitSize: 1000,
|
|
46
|
+
units: ['bps', 'Kbps', 'Mbps', 'Gbps', 'Tbps', 'Pbps', 'Ebps', 'Zbps', 'Ybps'],
|
|
47
|
+
level: needDetail ? 2 : undefined,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
export function formatTraffic(value, isDetail = false) {
|
|
51
|
+
return formatNumber(value, {
|
|
52
|
+
unitSize: 1024,
|
|
53
|
+
units: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
|
|
54
|
+
level: isDetail ? 3 : undefined,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
export function formatDecimal(value, isDetail = false) {
|
|
58
|
+
return formatNumber(value, {
|
|
59
|
+
unitSize: 1000,
|
|
60
|
+
units: ['', locale.thousand, locale.million, locale.trillion],
|
|
61
|
+
level: isDetail ? 0 : undefined,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
export function formatCurrency(value, isDetail = false) {
|
|
65
|
+
return formatNumber(value, {
|
|
66
|
+
level: 0,
|
|
67
|
+
dotAfterCount: isDetail ? 2 : 0,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
export function formatPercentage(value, isDetail = false) {
|
|
71
|
+
return formatNumber(value, {
|
|
72
|
+
unitSize: 1 / 100,
|
|
73
|
+
units: ['', '%'],
|
|
74
|
+
level: 1,
|
|
75
|
+
dotAfterCount: isDetail ? 5 : undefined,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
export function formatToPrecision(value, count = 2) {
|
|
79
|
+
const i = 10 ** count;
|
|
80
|
+
return Math.round(value * i) / i;
|
|
81
|
+
}
|
|
82
|
+
export function clamp(min, value, max) {
|
|
83
|
+
return Math.max(min, Math.min(value, max));
|
|
84
|
+
}
|
|
85
|
+
export function adjustRange([min, max], stepCount, units) {
|
|
86
|
+
const getRatio = (d) => {
|
|
87
|
+
if (d > 10)
|
|
88
|
+
return 1;
|
|
89
|
+
if (d > 0.1)
|
|
90
|
+
return 10;
|
|
91
|
+
if (d > 0.01)
|
|
92
|
+
return 100;
|
|
93
|
+
if (d > 0.001)
|
|
94
|
+
return 1000;
|
|
95
|
+
return 10000;
|
|
96
|
+
};
|
|
97
|
+
const scale = getRatio(max - min);
|
|
98
|
+
const scaleMin = min * scale;
|
|
99
|
+
const scaleMax = max * scale + (max === min ? 10 : 0);
|
|
100
|
+
const scaleRange = scaleMax - scaleMin;
|
|
101
|
+
const getTotal = (unit) => {
|
|
102
|
+
const currentStepCount = Math.ceil(scaleRange / unit);
|
|
103
|
+
const multiple = Math.ceil(currentStepCount / stepCount);
|
|
104
|
+
return stepCount * multiple * unit;
|
|
105
|
+
};
|
|
106
|
+
const getBase = (i) => {
|
|
107
|
+
if (units) {
|
|
108
|
+
return units[i] || units[units.length - 1];
|
|
109
|
+
}
|
|
110
|
+
if (i === 0)
|
|
111
|
+
return 1;
|
|
112
|
+
if (scaleRange > 10)
|
|
113
|
+
return 10;
|
|
114
|
+
if (scaleRange > 1 && scaleRange > 10 / stepCount)
|
|
115
|
+
return 1;
|
|
116
|
+
return 0.1;
|
|
117
|
+
};
|
|
118
|
+
const getUnit = (unit) => {
|
|
119
|
+
let pp = unit;
|
|
120
|
+
let p = unit;
|
|
121
|
+
let u = unit;
|
|
122
|
+
for (let i = 0;; i++) {
|
|
123
|
+
if (i > 100) {
|
|
124
|
+
// console.warn([min, max]);
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
const nextUnit = u * getBase(i);
|
|
128
|
+
const total = getTotal(nextUnit);
|
|
129
|
+
const diff = total - scaleRange;
|
|
130
|
+
if (diff > total / stepCount) {
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
pp = p;
|
|
134
|
+
p = u;
|
|
135
|
+
u = nextUnit;
|
|
136
|
+
}
|
|
137
|
+
return [u, p, pp];
|
|
138
|
+
};
|
|
139
|
+
const [unit, _, prevUnit] = getUnit(1);
|
|
140
|
+
const adjustedMin = Math.floor(scaleMin / prevUnit) * prevUnit;
|
|
141
|
+
const adjustedMax = adjustedMin + getTotal(unit);
|
|
142
|
+
return [adjustedMin / scale, adjustedMax / scale];
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=number.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number.js","sourceRoot":"","sources":["../src/lib/number.ts"],"names":[],"mappings":"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"}
|
package/lib/theme.d.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export declare function getSemanticColor(semantic: string): string | undefined;
|
|
2
|
+
export declare const lightTheme: {
|
|
3
|
+
primaryColor: string;
|
|
4
|
+
highlightColor: string;
|
|
5
|
+
textColor: string;
|
|
6
|
+
describeColor: string;
|
|
7
|
+
backgroundColor: string;
|
|
8
|
+
lightBackgroundColor: string;
|
|
9
|
+
hoverBackgroundColor: string;
|
|
10
|
+
borderColor: string;
|
|
11
|
+
disabledColor: string;
|
|
12
|
+
maskAlpha: string;
|
|
13
|
+
informativeColor: string;
|
|
14
|
+
neutralColor: string;
|
|
15
|
+
positiveColor: string;
|
|
16
|
+
noticeColor: string;
|
|
17
|
+
negativeColor: string;
|
|
18
|
+
normalRound: string;
|
|
19
|
+
smallRound: string;
|
|
20
|
+
gridGutter: string;
|
|
21
|
+
timingFunction: string;
|
|
22
|
+
};
|
|
23
|
+
export declare const darkTheme: Partial<typeof lightTheme>;
|
|
24
|
+
export declare const theme: {
|
|
25
|
+
primaryColor: string;
|
|
26
|
+
highlightColor: string;
|
|
27
|
+
textColor: string;
|
|
28
|
+
describeColor: string;
|
|
29
|
+
backgroundColor: string;
|
|
30
|
+
lightBackgroundColor: string;
|
|
31
|
+
hoverBackgroundColor: string;
|
|
32
|
+
borderColor: string;
|
|
33
|
+
disabledColor: string;
|
|
34
|
+
maskAlpha: string;
|
|
35
|
+
informativeColor: string;
|
|
36
|
+
neutralColor: string;
|
|
37
|
+
positiveColor: string;
|
|
38
|
+
noticeColor: string;
|
|
39
|
+
negativeColor: string;
|
|
40
|
+
normalRound: string;
|
|
41
|
+
smallRound: string;
|
|
42
|
+
gridGutter: string;
|
|
43
|
+
timingFunction: string;
|
|
44
|
+
};
|
|
45
|
+
export declare const updateTheme: (tm: Partial<typeof lightTheme>) => void;
|
|
46
|
+
export declare const themeStore: import("@mantou/gem").Store<{
|
|
47
|
+
primaryColor: string;
|
|
48
|
+
highlightColor: string;
|
|
49
|
+
textColor: string;
|
|
50
|
+
describeColor: string;
|
|
51
|
+
backgroundColor: string;
|
|
52
|
+
lightBackgroundColor: string;
|
|
53
|
+
hoverBackgroundColor: string;
|
|
54
|
+
borderColor: string;
|
|
55
|
+
disabledColor: string;
|
|
56
|
+
maskAlpha: string;
|
|
57
|
+
informativeColor: string;
|
|
58
|
+
neutralColor: string;
|
|
59
|
+
positiveColor: string;
|
|
60
|
+
noticeColor: string;
|
|
61
|
+
negativeColor: string;
|
|
62
|
+
normalRound: string;
|
|
63
|
+
smallRound: string;
|
|
64
|
+
gridGutter: string;
|
|
65
|
+
timingFunction: string;
|
|
66
|
+
}>;
|
|
67
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/lib/theme.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,sBAahD;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;CAuBtB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,OAAO,CAAC,OAAO,UAAU,CAWhD,CAAC;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;CAAiC,CAAC;AAEpD,eAAO,MAAM,WAAW,OAAQ,QAAQ,iBAAiB,CAAC,SAEzD,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;EAAuB,CAAC"}
|
package/lib/theme.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createTheme, getThemeStore, updateTheme as changeTheme } from '@mantou/gem/helper/theme';
|
|
2
|
+
export function getSemanticColor(semantic) {
|
|
3
|
+
switch (semantic) {
|
|
4
|
+
case 'negative':
|
|
5
|
+
return theme.negativeColor;
|
|
6
|
+
case 'positive':
|
|
7
|
+
return theme.positiveColor;
|
|
8
|
+
case 'notice':
|
|
9
|
+
return theme.noticeColor;
|
|
10
|
+
case 'informative':
|
|
11
|
+
return theme.informativeColor;
|
|
12
|
+
case 'neutral':
|
|
13
|
+
return theme.neutralColor;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export const lightTheme = {
|
|
17
|
+
primaryColor: '#000',
|
|
18
|
+
highlightColor: '#000',
|
|
19
|
+
textColor: '#4b4b4b',
|
|
20
|
+
describeColor: '#6e6e6e',
|
|
21
|
+
backgroundColor: '#fff',
|
|
22
|
+
lightBackgroundColor: '#fafafa',
|
|
23
|
+
hoverBackgroundColor: '#ededed',
|
|
24
|
+
borderColor: '#e1e1e1',
|
|
25
|
+
disabledColor: '#eaeaea',
|
|
26
|
+
maskAlpha: '0.2',
|
|
27
|
+
// same of light/dark
|
|
28
|
+
// https://spectrum.adobe.com/page/color/#Semantic-colors
|
|
29
|
+
informativeColor: '#2680eb',
|
|
30
|
+
neutralColor: '#b3b3b3',
|
|
31
|
+
positiveColor: '#2d9d78',
|
|
32
|
+
noticeColor: '#e68619',
|
|
33
|
+
negativeColor: '#e34850',
|
|
34
|
+
normalRound: '4px',
|
|
35
|
+
smallRound: '2px',
|
|
36
|
+
gridGutter: '24px',
|
|
37
|
+
timingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',
|
|
38
|
+
};
|
|
39
|
+
export const darkTheme = {
|
|
40
|
+
primaryColor: '#efefef',
|
|
41
|
+
highlightColor: '#efefef',
|
|
42
|
+
textColor: '#c8c8c8',
|
|
43
|
+
describeColor: '#616161',
|
|
44
|
+
backgroundColor: '#1a1a1a',
|
|
45
|
+
lightBackgroundColor: '#1e1e1e',
|
|
46
|
+
hoverBackgroundColor: '#2f2f2f',
|
|
47
|
+
borderColor: '#313131',
|
|
48
|
+
disabledColor: '#5b5b5b',
|
|
49
|
+
maskAlpha: '0.4',
|
|
50
|
+
};
|
|
51
|
+
export const theme = createTheme({ ...lightTheme });
|
|
52
|
+
export const updateTheme = (tm) => {
|
|
53
|
+
changeTheme(theme, tm);
|
|
54
|
+
};
|
|
55
|
+
export const themeStore = getThemeStore(theme);
|
|
56
|
+
//# sourceMappingURL=theme.js.map
|
package/lib/theme.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/lib/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAElG,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,QAAQ,QAAQ,EAAE;QAChB,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,aAAa,CAAC;QAC7B,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,aAAa,CAAC;QAC7B,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,WAAW,CAAC;QAC3B,KAAK,aAAa;YAChB,OAAO,KAAK,CAAC,gBAAgB,CAAC;QAChC,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,YAAY,CAAC;KAC7B;AACH,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,YAAY,EAAE,MAAM;IACpB,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,SAAS;IACxB,eAAe,EAAE,MAAM;IACvB,oBAAoB,EAAE,SAAS;IAC/B,oBAAoB,EAAE,SAAS;IAC/B,WAAW,EAAE,SAAS;IACtB,aAAa,EAAE,SAAS;IACxB,SAAS,EAAE,KAAK;IAEhB,qBAAqB;IACrB,yDAAyD;IACzD,gBAAgB,EAAE,SAAS;IAC3B,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,SAAS;IACxB,WAAW,EAAE,SAAS;IACtB,aAAa,EAAE,SAAS;IACxB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,MAAM;IAClB,cAAc,EAAE,8BAA8B;CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAA+B;IACnD,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,SAAS;IACzB,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,SAAS;IACxB,eAAe,EAAE,SAAS;IAC1B,oBAAoB,EAAE,SAAS;IAC/B,oBAAoB,EAAE,SAAS;IAC/B,WAAW,EAAE,SAAS;IACtB,aAAa,EAAE,SAAS;IACxB,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAA8B,EAAE,EAAE;IAC5D,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC"}
|
package/lib/time.d.ts
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export declare function parseDate(date?: number | Date): {
|
|
2
|
+
year: string;
|
|
3
|
+
month: string;
|
|
4
|
+
day: string;
|
|
5
|
+
hour: string;
|
|
6
|
+
minute: string;
|
|
7
|
+
second: string;
|
|
8
|
+
};
|
|
9
|
+
declare type Unit = 'Y' | 'M' | 'w' | 'd' | 'h' | 'm' | 's' | 'ms';
|
|
10
|
+
declare type RelativeTimeFormatUnit = Exclude<Unit, 'ms'>;
|
|
11
|
+
declare type RelativeTimeFormatOption = {
|
|
12
|
+
rtf?: Intl.RelativeTimeFormat;
|
|
13
|
+
min?: number;
|
|
14
|
+
lang?: string | string[];
|
|
15
|
+
};
|
|
16
|
+
export declare type NarrowRelativeTime = `${number}${RelativeTimeFormatUnit}`;
|
|
17
|
+
/**
|
|
18
|
+
* @example
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* parseNarrowTimeRange('d');
|
|
22
|
+
* parseNarrowTimeRange('m');
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseNarrowTimeRange(str: undefined | null): undefined;
|
|
26
|
+
export declare function parseNarrowTimeRange(str: RelativeTimeFormatUnit): [Time, Time];
|
|
27
|
+
export declare function parseNarrowTimeRange(str: string | null | undefined): [Time, Time] | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* @example
|
|
30
|
+
*
|
|
31
|
+
* ```ts
|
|
32
|
+
* parseNarrowRelativeTime('2d');
|
|
33
|
+
* parseNarrowRelativeTime('-2m');
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseNarrowRelativeTime(str: undefined | null): undefined;
|
|
37
|
+
export declare function parseNarrowRelativeTime(str: NarrowRelativeTime): Time;
|
|
38
|
+
export declare function parseNarrowRelativeTime(str: string | null | undefined): Time | undefined;
|
|
39
|
+
export declare class Time extends Date {
|
|
40
|
+
#private;
|
|
41
|
+
format(opt?: string | Intl.DateTimeFormatOptions): string;
|
|
42
|
+
subtract(number: number, unit: Unit): this;
|
|
43
|
+
add(number: number, unit: Unit): this;
|
|
44
|
+
startOf(unit: Unit): this;
|
|
45
|
+
endOf(unit: Unit): this;
|
|
46
|
+
isSome<T extends Date>(d: T | number, unit: Unit): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* new D().relativeTimeFormat(new D().add(40, 'd'), { unitLimit: 2, lang: 'zh' }) => '40天后'
|
|
49
|
+
*/
|
|
50
|
+
relativeTimeFormat(date: Date | Time | number, { min, lang, rtf }?: RelativeTimeFormatOption): string;
|
|
51
|
+
}
|
|
52
|
+
export declare function parseDuration(ms: number): {
|
|
53
|
+
number: string;
|
|
54
|
+
unit: string;
|
|
55
|
+
};
|
|
56
|
+
export declare function formatDuration(ms: number, numeric?: boolean): string;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../src/lib/time.ts"],"names":[],"mappings":"AAYA,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;;;;;;;EAM7C;AAUD,aAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAE3D,aAAK,sBAAsB,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAElD,aAAK,wBAAwB,GAAG;IAC9B,GAAG,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,oBAAY,kBAAkB,GAAG,GAAG,MAAM,GAAG,sBAAsB,EAAE,CAAC;AAsBtE;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;AACvE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,sBAAsB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AAQ/F;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;AAC1E,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC;AACvE,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;AA4B1F,qBAAa,IAAK,SAAQ,IAAI;;IAI5B,MAAM,CAAC,GAAG,GAAE,MAAM,GAAG,IAAI,CAAC,qBAA6C;IAgBvE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IAcnC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IAK9B,OAAO,CAAC,IAAI,EAAE,IAAI;IAsBlB,KAAK,CAAC,IAAI,EAAE,IAAI;IAKhB,MAAM,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI;IAyBhD;;OAEG;IACH,kBAAkB,CAChB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,EAC1B,EAAE,GAAO,EAAE,IAAwB,EAAE,GAAsC,EAAE,GAAE,wBAA6B;CAiB/G;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM;;;EAuBvC;AAGD,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,UAW3D"}
|