@nutui/nutui 3.1.19-beta.1 → 3.1.19-beta.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/README.md +9 -8
- package/dist/nutui.es.js +2875 -3576
- package/dist/nutui.umd.js +2965 -3579
- package/dist/packages/_es/ActionSheet.js +18 -12
- package/dist/packages/_es/Address.js +69 -78
- package/dist/packages/_es/Audio.js +12 -12
- package/dist/packages/_es/AudioOperate.js +1 -1
- package/dist/packages/_es/Avatar.js +3 -3
- package/dist/packages/_es/BackTop.js +110 -68
- package/dist/packages/_es/Badge.js +3 -3
- package/dist/packages/_es/Barrage.js +55 -62
- package/dist/packages/_es/Button.js +2 -2
- package/dist/packages/_es/Calendar.js +27 -32
- package/dist/packages/_es/CalendarItem.js +3 -3
- package/dist/packages/_es/Card.js +5 -6
- package/dist/packages/_es/Cascader.js +7 -7
- package/dist/packages/_es/Cell.js +11 -4
- package/dist/packages/_es/CellGroup.js +1 -1
- package/dist/packages/_es/Checkbox.js +13 -3
- package/dist/packages/_es/CheckboxGroup.js +2 -2
- package/dist/packages/_es/CircleProgress.js +40 -149
- package/dist/packages/_es/Col.js +1 -1
- package/dist/packages/_es/Collapse.js +8 -34
- package/dist/packages/_es/CollapseItem.js +59 -90
- package/dist/packages/_es/CountDown.js +5 -5
- package/dist/packages/_es/CountUp.js +51 -43
- package/dist/packages/_es/DatePicker.js +20 -21
- package/dist/packages/_es/Dialog.js +91 -12
- package/dist/packages/_es/Divider.js +4 -4
- package/dist/packages/_es/Drag.js +54 -92
- package/dist/packages/_es/Elevator.js +50 -75
- package/dist/packages/_es/Empty.js +3 -3
- package/dist/packages/_es/FixedNav.js +10 -11
- package/dist/packages/_es/Form.js +5 -9
- package/dist/packages/_es/FormItem.js +1 -1
- package/dist/packages/_es/Grid.js +1 -1
- package/dist/packages/_es/GridItem.js +26 -8
- package/dist/packages/_es/Icon.js +1 -1
- package/dist/packages/_es/ImagePreview.js +83 -14
- package/dist/packages/_es/Indicator.js +3 -3
- package/dist/packages/_es/InfiniteLoading.js +107 -93
- package/dist/packages/_es/Input.js +8 -8
- package/dist/packages/_es/InputNumber.js +16 -23
- package/dist/packages/_es/Layout.js +1 -1
- package/dist/packages/_es/List.js +34 -41
- package/dist/packages/_es/Menu.js +12 -15
- package/dist/packages/_es/MenuItem.js +7 -7
- package/dist/packages/_es/Navbar.js +4 -3
- package/dist/packages/_es/NoticeBar.js +40 -47
- package/dist/packages/_es/Notify.js +166 -27
- package/dist/packages/_es/NumberKeyboard.js +18 -8
- package/dist/packages/_es/OldPicker.js +120 -122
- package/dist/packages/_es/OverLay.js +25 -5
- package/dist/packages/_es/Pagination.js +14 -13
- package/dist/packages/_es/Picker.js +16 -39
- package/dist/packages/_es/Popover.js +29 -154
- package/dist/packages/_es/Popup.js +69 -6
- package/dist/packages/_es/Price.js +5 -17
- package/dist/packages/_es/Progress.js +8 -18
- package/dist/packages/_es/PullRefresh.js +1 -1
- package/dist/packages/_es/Radio.js +14 -4
- package/dist/packages/_es/RadioGroup.js +1 -1
- package/dist/packages/_es/Range.js +33 -46
- package/dist/packages/_es/Rate.js +19 -16
- package/dist/packages/_es/Row.js +1 -1
- package/dist/packages/_es/SearchBar.js +11 -12
- package/dist/packages/_es/ShortPassword.js +67 -89
- package/dist/packages/_es/SideNavBar.js +16 -5
- package/dist/packages/_es/SideNavBarItem.js +1 -1
- package/dist/packages/_es/Signature.js +88 -69
- package/dist/packages/_es/Skeleton.js +11 -8
- package/dist/packages/_es/Sku.js +57 -49
- package/dist/packages/_es/Step.js +1 -1
- package/dist/packages/_es/Steps.js +1 -1
- package/dist/packages/_es/Sticky.js +23 -28
- package/dist/packages/_es/SubSideNavBar.js +1 -1
- package/dist/packages/_es/Swipe.js +26 -39
- package/dist/packages/_es/Swiper.js +14 -32
- package/dist/packages/_es/SwiperItem.js +2 -2
- package/dist/packages/_es/Switch.js +3 -3
- package/dist/packages/_es/TabPane.js +1 -1
- package/dist/packages/_es/Tabbar.js +3 -3
- package/dist/packages/_es/TabbarItem.js +21 -11
- package/dist/packages/_es/Table.js +13 -13
- package/dist/packages/_es/Tabs.js +20 -21
- package/dist/packages/_es/Tag.js +4 -4
- package/dist/packages/_es/TextArea.js +42 -44
- package/dist/packages/_es/TimeDetail.js +3 -4
- package/dist/packages/_es/TimePannel.js +3 -3
- package/dist/packages/_es/TimeSelect.js +7 -8
- package/dist/packages/_es/Toast.js +170 -41
- package/dist/packages/_es/Uploader.js +138 -109
- package/dist/packages/_es/Video.js +9 -8
- package/dist/packages/_es/common.js +1 -1
- package/dist/packages/_es/component.js +135 -3
- package/dist/packages/_es/index.js +6 -44
- package/dist/packages/_es/index2.js +31 -8
- package/dist/packages/_es/index3.js +7 -58
- package/dist/packages/_es/index4.js +56 -413
- package/dist/packages/_es/{index.taro.js → index5.js} +113 -140
- package/dist/packages/_es/plugin-vue_export-helper.js +1 -1
- package/dist/packages/_es/pxCheck.js +1 -1
- package/dist/packages/_es/raf.js +19 -0
- package/dist/style.css +1 -1
- package/dist/styles/themes/default.scss +42 -42
- package/dist/styles/themes/jdt.scss +42 -42
- package/dist/types/__VUE/actionsheet/index.d.ts +269 -0
- package/dist/types/__VUE/address/index.d.ts +386 -0
- package/dist/types/__VUE/audio/index.d.ts +92 -0
- package/dist/types/__VUE/audiooperate/index.d.ts +68 -0
- package/dist/types/__VUE/avatar/index.d.ts +66 -0
- package/dist/types/__VUE/backtop/index.d.ts +105 -0
- package/dist/types/__VUE/badge/index.d.ts +94 -0
- package/dist/types/__VUE/barrage/index.d.ts +80 -0
- package/dist/types/__VUE/button/index.d.ts +116 -0
- package/dist/types/__VUE/calendar/index.d.ts +155 -0
- package/dist/types/__VUE/calendaritem/index.d.ts +195 -0
- package/dist/types/__VUE/card/index.d.ts +81 -0
- package/dist/types/__VUE/cascader/cascader-item.d.ts +76 -0
- package/dist/types/__VUE/cascader/helper.d.ts +8 -0
- package/dist/types/__VUE/cascader/index.d.ts +76 -0
- package/dist/types/__VUE/cascader/tree.d.ts +17 -0
- package/dist/types/__VUE/cascader/types.d.ts +30 -0
- package/dist/types/__VUE/cell/index.d.ts +109 -0
- package/dist/types/__VUE/cellgroup/index.d.ts +38 -0
- package/dist/types/__VUE/checkbox/index.d.ts +102 -0
- package/dist/types/__VUE/checkboxgroup/index.d.ts +39 -0
- package/dist/types/__VUE/circleprogress/index.d.ts +66 -0
- package/dist/types/__VUE/col/index.d.ts +42 -0
- package/dist/types/__VUE/collapse/index.d.ts +104 -0
- package/dist/types/__VUE/collapseitem/index.d.ts +83 -0
- package/dist/types/__VUE/countdown/index.d.ts +90 -0
- package/dist/types/__VUE/countup/index.d.ts +216 -0
- package/dist/types/__VUE/datepicker/index.d.ts +347 -0
- package/dist/types/__VUE/datepicker/utils.d.ts +5 -0
- package/dist/types/__VUE/dialog/index.d.ts +306 -0
- package/dist/types/__VUE/divider/index.d.ts +47 -0
- package/dist/types/__VUE/drag/index.d.ts +61 -0
- package/dist/types/__VUE/elevator/index.d.ts +71 -0
- package/dist/types/__VUE/empty/index.d.ts +46 -0
- package/dist/types/__VUE/fixednav/index.d.ts +96 -0
- package/dist/types/__VUE/form/common.d.ts +20 -0
- package/dist/types/__VUE/form/index.d.ts +32 -0
- package/dist/types/__VUE/form/types.d.ts +13 -0
- package/dist/types/__VUE/formitem/index.d.ts +120 -0
- package/dist/types/__VUE/formitem/types.d.ts +10 -0
- package/dist/types/__VUE/grid/common.d.ts +91 -0
- package/dist/types/__VUE/grid/index.d.ts +100 -0
- package/dist/types/__VUE/griditem/index.d.ts +80 -0
- package/dist/types/__VUE/icon/index.d.ts +74 -0
- package/dist/types/__VUE/imagepreview/index.d.ts +125 -0
- package/dist/types/__VUE/indicator/index.d.ts +70 -0
- package/dist/types/__VUE/infiniteloading/index.d.ts +140 -0
- package/dist/types/__VUE/input/index.d.ts +336 -0
- package/dist/types/__VUE/input/util.d.ts +5 -0
- package/dist/types/__VUE/inputnumber/index.d.ts +117 -0
- package/dist/types/__VUE/layout/index.d.ts +13 -0
- package/dist/types/__VUE/list/index.d.ts +48 -0
- package/dist/types/__VUE/menu/index.d.ts +51 -0
- package/dist/types/__VUE/menuitem/index.d.ts +77 -0
- package/dist/types/__VUE/navbar/index.d.ts +84 -0
- package/dist/types/__VUE/noticebar/index.d.ts +209 -0
- package/dist/types/__VUE/notify/index.d.ts +103 -0
- package/dist/types/__VUE/numberkeyboard/index.d.ts +123 -0
- package/dist/types/__VUE/oldpicker/Column.d.ts +96 -0
- package/dist/types/__VUE/oldpicker/commonProps.d.ts +22 -0
- package/dist/types/__VUE/oldpicker/index.d.ts +360 -0
- package/dist/types/__VUE/oldpicker/types.d.ts +24 -0
- package/dist/types/__VUE/overlay/index.d.ts +1614 -0
- package/dist/types/__VUE/pagination/index.d.ts +112 -0
- package/dist/types/__VUE/picker/Column.d.ts +90 -0
- package/dist/types/__VUE/picker/index.d.ts +342 -0
- package/dist/types/__VUE/picker/types.d.ts +26 -0
- package/dist/types/__VUE/popover/index.d.ts +233 -0
- package/dist/types/__VUE/popup/index.d.ts +1734 -0
- package/dist/types/__VUE/popup/use-lock-scroll.d.ts +5 -0
- package/dist/types/__VUE/price/index.d.ts +87 -0
- package/dist/types/__VUE/progress/index.d.ts +137 -0
- package/dist/types/__VUE/pullrefresh/index.d.ts +128 -0
- package/dist/types/__VUE/pullrefresh/use-touch.d.ts +20 -0
- package/dist/types/__VUE/pullrefresh/util.d.ts +6 -0
- package/dist/types/__VUE/radio/index.d.ts +90 -0
- package/dist/types/__VUE/radiogroup/index.d.ts +48 -0
- package/dist/types/__VUE/range/index.d.ts +156 -0
- package/dist/types/__VUE/rate/index.d.ts +142 -0
- package/dist/types/__VUE/row/index.d.ts +63 -0
- package/dist/types/__VUE/searchbar/index.d.ts +100 -0
- package/dist/types/__VUE/shortpassword/index.d.ts +136 -0
- package/dist/types/__VUE/sidenavbar/index.d.ts +36 -0
- package/dist/types/__VUE/sidenavbaritem/index.d.ts +41 -0
- package/dist/types/__VUE/signature/index.d.ts +73 -0
- package/dist/types/__VUE/skeleton/common.d.ts +63 -0
- package/dist/types/__VUE/skeleton/index.d.ts +117 -0
- package/dist/types/__VUE/sku/components/SkuHeader.d.ts +27 -0
- package/dist/types/__VUE/sku/components/SkuOperate.d.ts +70 -0
- package/dist/types/__VUE/sku/components/SkuSelect.d.ts +30 -0
- package/dist/types/__VUE/sku/components/SkuStepper.d.ts +67 -0
- package/dist/types/__VUE/sku/index.d.ts +300 -0
- package/dist/types/__VUE/step/index.d.ts +70 -0
- package/dist/types/__VUE/steps/index.d.ts +47 -0
- package/dist/types/__VUE/sticky/index.d.ts +63 -0
- package/dist/types/__VUE/subsidenavbar/index.d.ts +54 -0
- package/dist/types/__VUE/swipe/index.d.ts +69 -0
- package/dist/types/__VUE/swiper/index.d.ts +163 -0
- package/dist/types/__VUE/swiper/use-touch.d.ts +20 -0
- package/dist/types/__VUE/swiperitem/index.d.ts +24 -0
- package/dist/types/__VUE/switch/index.d.ts +136 -0
- package/dist/types/__VUE/tabbar/index.d.ts +84 -0
- package/dist/types/__VUE/tabbaritem/index.d.ts +108 -0
- package/dist/types/__VUE/table/common.d.ts +54 -0
- package/dist/types/__VUE/table/index.d.ts +75 -0
- package/dist/types/__VUE/table/renderColumn.d.ts +20 -0
- package/dist/types/__VUE/table/types.d.ts +19 -0
- package/dist/types/__VUE/tabpane/index.d.ts +47 -0
- package/dist/types/__VUE/tabs/index.d.ts +128 -0
- package/dist/types/__VUE/tag/index.d.ts +89 -0
- package/dist/types/__VUE/textarea/index.d.ts +120 -0
- package/dist/types/__VUE/timedetail/index.d.ts +48 -0
- package/dist/types/__VUE/timepannel/index.d.ts +43 -0
- package/dist/types/__VUE/timeselect/index.d.ts +82 -0
- package/dist/types/__VUE/toast/index.d.ts +149 -0
- package/dist/types/__VUE/uploader/index.d.ts +258 -0
- package/dist/types/__VUE/uploader/uploader.d.ts +25 -0
- package/dist/types/__VUE/video/index.d.ts +123 -0
- package/dist/{index.d.ts → types/index.d.ts} +0 -0
- package/dist/types/nutui.d.ts +92 -0
- package/package.json +14 -5
- package/dist/nutui.d.ts +0 -104
- package/dist/packages/_es/use-lock-scroll.js +0 -23
- package/dist/packages/_es/util.js +0 -47
|
@@ -18,7 +18,7 @@ var __spreadValues = (a, b) => {
|
|
|
18
18
|
};
|
|
19
19
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
20
|
/*!
|
|
21
|
-
* @nutui/nutui v3.1.19-beta.
|
|
21
|
+
* @nutui/nutui v3.1.19-beta.2 Thu Apr 07 2022 17:52:31 GMT+0800 (中国标准时间)
|
|
22
22
|
* (c) 2022 @jdf2e.
|
|
23
23
|
* Released under the MIT License.
|
|
24
24
|
*/
|
|
@@ -37,7 +37,8 @@ const _sfc_main = create({
|
|
|
37
37
|
setup: (props, context) => {
|
|
38
38
|
const list = ref(null);
|
|
39
39
|
const state = reactive({
|
|
40
|
-
count: 1
|
|
40
|
+
count: 1,
|
|
41
|
+
observer: null
|
|
41
42
|
});
|
|
42
43
|
const classes = computed(() => {
|
|
43
44
|
const prefixCls = componentName;
|
|
@@ -57,7 +58,7 @@ const _sfc_main = create({
|
|
|
57
58
|
};
|
|
58
59
|
const handleSlots = () => {
|
|
59
60
|
let childNodes = list.value.childNodes;
|
|
60
|
-
if (childNodes
|
|
61
|
+
if (childNodes.length) {
|
|
61
62
|
childNodes = Array.from(childNodes).filter((item) => item.nodeType !== 3).map((item) => {
|
|
62
63
|
return item;
|
|
63
64
|
});
|
|
@@ -66,6 +67,16 @@ const _sfc_main = create({
|
|
|
66
67
|
};
|
|
67
68
|
onMounted(() => {
|
|
68
69
|
handleSlots();
|
|
70
|
+
state.observer = new MutationObserver(function() {
|
|
71
|
+
state.count = 1;
|
|
72
|
+
handleSlots();
|
|
73
|
+
});
|
|
74
|
+
state.observer.observe(list.value, {
|
|
75
|
+
attributes: false,
|
|
76
|
+
childList: true,
|
|
77
|
+
characterData: false,
|
|
78
|
+
subtree: false
|
|
79
|
+
});
|
|
69
80
|
});
|
|
70
81
|
return __spreadProps(__spreadValues({}, toRefs(state)), {
|
|
71
82
|
list,
|
|
@@ -89,5 +100,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
89
100
|
])
|
|
90
101
|
], 2);
|
|
91
102
|
}
|
|
92
|
-
var
|
|
93
|
-
export {
|
|
103
|
+
var index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
104
|
+
export { index as default };
|
|
@@ -1,10 +1,28 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
1
20
|
/*!
|
|
2
|
-
* @nutui/nutui v3.1.19-beta.
|
|
21
|
+
* @nutui/nutui v3.1.19-beta.2 Thu Apr 07 2022 17:52:31 GMT+0800 (中国标准时间)
|
|
3
22
|
* (c) 2022 @jdf2e.
|
|
4
23
|
* Released under the MIT License.
|
|
5
24
|
*/
|
|
6
|
-
import
|
|
7
|
-
import { computed, reactive, onMounted, resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
|
|
25
|
+
import { ref, computed, reactive, onMounted, toRefs, resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
|
|
8
26
|
import { c as createComponent } from "./component.js";
|
|
9
27
|
import { _ as _export_sfc } from "./plugin-vue_export-helper.js";
|
|
10
28
|
const { componentName, create } = createComponent("signature");
|
|
@@ -34,6 +52,8 @@ const _sfc_main = create({
|
|
|
34
52
|
components: {},
|
|
35
53
|
emits: ["confirm", "clear"],
|
|
36
54
|
setup(props, { emit }) {
|
|
55
|
+
const canvas = ref(null);
|
|
56
|
+
const wrap = ref(null);
|
|
37
57
|
const classes = computed(() => {
|
|
38
58
|
const prefixCls = componentName;
|
|
39
59
|
return {
|
|
@@ -42,126 +62,125 @@ const _sfc_main = create({
|
|
|
42
62
|
};
|
|
43
63
|
});
|
|
44
64
|
const state = reactive({
|
|
45
|
-
canvas: null,
|
|
46
65
|
canvasHeight: 0,
|
|
47
66
|
canvasWidth: 0,
|
|
48
|
-
ctx: null
|
|
67
|
+
ctx: null,
|
|
68
|
+
isSupportTouch: "ontouchstart" in window,
|
|
69
|
+
events: "ontouchstart" in window ? ["touchstart", "touchmove", "touchend", "touchleave"] : ["mousedown", "mousemove", "mouseup", "mouseleave"]
|
|
49
70
|
});
|
|
71
|
+
const isCanvasSupported = () => {
|
|
72
|
+
let elem = document.createElement("canvas");
|
|
73
|
+
return !!(elem.getContext && elem.getContext("2d"));
|
|
74
|
+
};
|
|
75
|
+
const addEvent = () => {
|
|
76
|
+
canvas.value.addEventListener(state.events[0], startEventHandler, false);
|
|
77
|
+
};
|
|
50
78
|
const startEventHandler = (event) => {
|
|
51
79
|
event.preventDefault();
|
|
52
80
|
state.ctx.beginPath();
|
|
53
81
|
state.ctx.lineWidth = props.lineWidth;
|
|
54
82
|
state.ctx.strokeStyle = props.strokeStyle;
|
|
83
|
+
canvas.value.addEventListener(state.events[1], moveEventHandler, false);
|
|
84
|
+
canvas.value.addEventListener(state.events[2], endEventHandler, false);
|
|
85
|
+
canvas.value.addEventListener(state.events[3], leaveEventHandler, false);
|
|
55
86
|
};
|
|
56
87
|
const moveEventHandler = (event) => {
|
|
57
88
|
event.preventDefault();
|
|
58
|
-
let evt = event.
|
|
59
|
-
let
|
|
60
|
-
let
|
|
89
|
+
let evt = state.isSupportTouch ? event.touches[0] : event;
|
|
90
|
+
let coverPos = canvas.value.getBoundingClientRect();
|
|
91
|
+
let mouseX = evt.clientX - coverPos.left;
|
|
92
|
+
let mouseY = evt.clientY - coverPos.top;
|
|
61
93
|
state.ctx.lineTo(mouseX, mouseY);
|
|
62
94
|
state.ctx.stroke();
|
|
63
95
|
};
|
|
64
96
|
const endEventHandler = (event) => {
|
|
65
97
|
event.preventDefault();
|
|
98
|
+
canvas.value.removeEventListener(state.events[1], moveEventHandler, false);
|
|
99
|
+
canvas.value.removeEventListener(state.events[2], endEventHandler, false);
|
|
66
100
|
};
|
|
67
101
|
const leaveEventHandler = (event) => {
|
|
68
102
|
event.preventDefault();
|
|
103
|
+
canvas.value.removeEventListener(state.events[1], moveEventHandler, false);
|
|
104
|
+
canvas.value.removeEventListener(state.events[2], endEventHandler, false);
|
|
69
105
|
};
|
|
70
106
|
const clear = () => {
|
|
107
|
+
canvas.value.addEventListener(state.events[2], endEventHandler, false);
|
|
71
108
|
state.ctx.clearRect(0, 0, state.canvasWidth, state.canvasHeight);
|
|
72
109
|
state.ctx.closePath();
|
|
73
110
|
emit("clear");
|
|
74
111
|
};
|
|
75
112
|
const confirm = () => {
|
|
76
|
-
onSave();
|
|
113
|
+
onSave(canvas.value);
|
|
77
114
|
};
|
|
78
|
-
const onSave = () => {
|
|
79
|
-
|
|
80
|
-
|
|
115
|
+
const onSave = (canvas2) => {
|
|
116
|
+
let dataurl;
|
|
117
|
+
switch (props.type) {
|
|
118
|
+
case "png":
|
|
119
|
+
dataurl = canvas2.toDataURL("image/png");
|
|
120
|
+
break;
|
|
121
|
+
case "jpg":
|
|
122
|
+
dataurl = canvas2.toDataURL("image/jpeg", 0.8);
|
|
123
|
+
break;
|
|
81
124
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
size: true
|
|
85
|
-
}).exec(async (res) => {
|
|
86
|
-
Taro.canvasToTempFilePath({
|
|
87
|
-
canvas: res[0].node,
|
|
88
|
-
fileType: props.type
|
|
89
|
-
}).then((res2) => {
|
|
90
|
-
emit("confirm", res2.tempFilePath);
|
|
91
|
-
}).catch((e) => {
|
|
92
|
-
emit("confirm", e);
|
|
93
|
-
});
|
|
94
|
-
});
|
|
125
|
+
clear();
|
|
126
|
+
emit("confirm", canvas2, dataurl);
|
|
95
127
|
};
|
|
96
128
|
onMounted(() => {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
const ctx = canvas.getContext("2d");
|
|
104
|
-
state.canvas = canvas;
|
|
105
|
-
state.ctx = ctx;
|
|
106
|
-
state.canvasWidth = res.width;
|
|
107
|
-
state.canvasHeight = res.height;
|
|
108
|
-
}).exec();
|
|
109
|
-
}, 500);
|
|
129
|
+
if (isCanvasSupported()) {
|
|
130
|
+
state.ctx = canvas.value.getContext("2d");
|
|
131
|
+
state.canvasWidth = wrap.value.offsetWidth;
|
|
132
|
+
state.canvasHeight = wrap.value.offsetHeight;
|
|
133
|
+
addEvent();
|
|
134
|
+
}
|
|
110
135
|
});
|
|
111
|
-
return {
|
|
112
|
-
confirm,
|
|
113
|
-
clear,
|
|
114
|
-
classes,
|
|
115
|
-
startEventHandler,
|
|
116
|
-
moveEventHandler,
|
|
117
|
-
endEventHandler,
|
|
118
|
-
leaveEventHandler
|
|
119
|
-
};
|
|
136
|
+
return __spreadProps(__spreadValues({}, toRefs(state)), { canvas, wrap, isCanvasSupported, confirm, clear, classes });
|
|
120
137
|
}
|
|
121
138
|
});
|
|
122
|
-
const _hoisted_1 = {
|
|
123
|
-
|
|
124
|
-
|
|
139
|
+
const _hoisted_1 = {
|
|
140
|
+
class: "nut-signature-inner",
|
|
141
|
+
ref: "wrap"
|
|
142
|
+
};
|
|
143
|
+
const _hoisted_2 = ["height", "width"];
|
|
144
|
+
const _hoisted_3 = {
|
|
145
|
+
key: 1,
|
|
146
|
+
class: "nut-signature-unsopport"
|
|
147
|
+
};
|
|
148
|
+
const _hoisted_4 = /* @__PURE__ */ createTextVNode("\u91CD\u7B7E");
|
|
149
|
+
const _hoisted_5 = /* @__PURE__ */ createTextVNode("\u786E\u8BA4");
|
|
125
150
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
126
151
|
const _component_nut_button = resolveComponent("nut-button");
|
|
127
152
|
return openBlock(), createElementBlock("div", {
|
|
128
153
|
class: normalizeClass(_ctx.classes)
|
|
129
154
|
}, [
|
|
130
155
|
createElementVNode("div", _hoisted_1, [
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
onTouchstart: _cache[0] || (_cache[0] = (...args) => _ctx.startEventHandler && _ctx.startEventHandler(...args)),
|
|
139
|
-
onTouchmove: _cache[1] || (_cache[1] = (...args) => _ctx.moveEventHandler && _ctx.moveEventHandler(...args)),
|
|
140
|
-
onTouchend: _cache[2] || (_cache[2] = (...args) => _ctx.endEventHandler && _ctx.endEventHandler(...args)),
|
|
141
|
-
onTouchleave: _cache[3] || (_cache[3] = (...args) => _ctx.leaveEventHandler && _ctx.leaveEventHandler(...args))
|
|
142
|
-
}, null, 32)
|
|
143
|
-
]),
|
|
156
|
+
(() => _ctx.isCanvasSupported()) ? (openBlock(), createElementBlock("canvas", {
|
|
157
|
+
key: 0,
|
|
158
|
+
ref: "canvas",
|
|
159
|
+
height: _ctx.canvasHeight,
|
|
160
|
+
width: _ctx.canvasWidth
|
|
161
|
+
}, null, 8, _hoisted_2)) : (openBlock(), createElementBlock("p", _hoisted_3, _toDisplayString(_ctx.unSupportTpl), 1))
|
|
162
|
+
], 512),
|
|
144
163
|
createVNode(_component_nut_button, {
|
|
145
164
|
class: "nut-signature-btn",
|
|
146
165
|
type: "default",
|
|
147
|
-
onClick: _cache[
|
|
166
|
+
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.clear())
|
|
148
167
|
}, {
|
|
149
168
|
default: withCtx(() => [
|
|
150
|
-
|
|
169
|
+
_hoisted_4
|
|
151
170
|
]),
|
|
152
171
|
_: 1
|
|
153
172
|
}),
|
|
154
173
|
createVNode(_component_nut_button, {
|
|
155
174
|
class: "nut-signature-btn",
|
|
156
175
|
type: "primary",
|
|
157
|
-
onClick: _cache[
|
|
176
|
+
onClick: _cache[1] || (_cache[1] = ($event) => _ctx.confirm())
|
|
158
177
|
}, {
|
|
159
178
|
default: withCtx(() => [
|
|
160
|
-
|
|
179
|
+
_hoisted_5
|
|
161
180
|
]),
|
|
162
181
|
_: 1
|
|
163
182
|
})
|
|
164
183
|
], 2);
|
|
165
184
|
}
|
|
166
|
-
var
|
|
167
|
-
export {
|
|
185
|
+
var index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
186
|
+
export { index as default };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @nutui/nutui v3.1.19-beta.
|
|
2
|
+
* @nutui/nutui v3.1.19-beta.2 Thu Apr 07 2022 17:52:31 GMT+0800 (中国标准时间)
|
|
3
3
|
* (c) 2022 @jdf2e.
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
import { c as createComponent } from "./component.js";
|
|
7
|
-
import { toRefs, computed, onMounted, resolveComponent, openBlock, createElementBlock, renderSlot, createElementVNode, createBlock, normalizeClass, normalizeStyle,
|
|
7
|
+
import { toRefs, computed, onMounted, resolveComponent, openBlock, createElementBlock, renderSlot, createCommentVNode, createElementVNode, createBlock, normalizeClass, normalizeStyle, Fragment, renderList } from "vue";
|
|
8
8
|
import { _ as _export_sfc } from "./plugin-vue_export-helper.js";
|
|
9
9
|
const component = {
|
|
10
10
|
props: {
|
|
@@ -94,7 +94,10 @@ const _hoisted_2 = {
|
|
|
94
94
|
key: 1,
|
|
95
95
|
class: "skeleton"
|
|
96
96
|
};
|
|
97
|
-
const _hoisted_3 =
|
|
97
|
+
const _hoisted_3 = {
|
|
98
|
+
key: 0,
|
|
99
|
+
class: "skeleton-animation"
|
|
100
|
+
};
|
|
98
101
|
const _hoisted_4 = { class: "content" };
|
|
99
102
|
const _hoisted_5 = { class: "content-line" };
|
|
100
103
|
const _hoisted_6 = {
|
|
@@ -106,7 +109,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
106
109
|
return !_ctx.loading ? (openBlock(), createElementBlock("view", _hoisted_1, [
|
|
107
110
|
renderSlot(_ctx.$slots, "default")
|
|
108
111
|
])) : (openBlock(), createElementBlock("view", _hoisted_2, [
|
|
109
|
-
_hoisted_3,
|
|
112
|
+
_ctx.animated ? (openBlock(), createElementBlock("view", _hoisted_3)) : createCommentVNode("", true),
|
|
110
113
|
createElementVNode("view", _hoisted_4, [
|
|
111
114
|
_ctx.avatar ? (openBlock(), createBlock(_component_nut_avatar, {
|
|
112
115
|
key: 0,
|
|
@@ -122,9 +125,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
122
125
|
}, null, 6)) : createCommentVNode("", true),
|
|
123
126
|
createElementVNode("view", _hoisted_5, [
|
|
124
127
|
_ctx.title ? (openBlock(), createElementBlock("view", _hoisted_6)) : createCommentVNode("", true),
|
|
125
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(Number(_ctx.row), (item,
|
|
128
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(Number(_ctx.row), (item, index2) => {
|
|
126
129
|
return openBlock(), createElementBlock("view", {
|
|
127
|
-
key:
|
|
130
|
+
key: index2,
|
|
128
131
|
class: normalizeClass(_ctx.blockClass),
|
|
129
132
|
style: normalizeStyle({ width: _ctx.width, height: _ctx.height })
|
|
130
133
|
}, null, 6);
|
|
@@ -133,5 +136,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
133
136
|
])
|
|
134
137
|
]));
|
|
135
138
|
}
|
|
136
|
-
var
|
|
137
|
-
export {
|
|
139
|
+
var index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
140
|
+
export { index as default };
|
package/dist/packages/_es/Sku.js
CHANGED
|
@@ -1,12 +1,34 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
1
20
|
/*!
|
|
2
|
-
* @nutui/nutui v3.1.19-beta.
|
|
21
|
+
* @nutui/nutui v3.1.19-beta.2 Thu Apr 07 2022 17:52:31 GMT+0800 (中国标准时间)
|
|
3
22
|
* (c) 2022 @jdf2e.
|
|
4
23
|
* Released under the MIT License.
|
|
5
24
|
*/
|
|
6
25
|
import { resolveComponent, openBlock, createElementBlock, createElementVNode, renderSlot, createBlock, createCommentVNode, toDisplayString, ref, watch, onMounted, Fragment, renderList, normalizeClass, createVNode, withCtx, createSlots } from "vue";
|
|
7
|
-
import { c as createComponent } from "./component.js";
|
|
26
|
+
import { c as createComponent, T as TypeOfFun } from "./component.js";
|
|
8
27
|
import { _ as _export_sfc } from "./plugin-vue_export-helper.js";
|
|
9
|
-
import {
|
|
28
|
+
import { popupProps } from "./Popup.js";
|
|
29
|
+
import "./OverLay.js";
|
|
30
|
+
import "./Icon.js";
|
|
31
|
+
import "./pxCheck.js";
|
|
10
32
|
const { componentName: componentName$4, create: create$4 } = createComponent("sku-header");
|
|
11
33
|
const _sfc_main$4 = create$4({
|
|
12
34
|
props: {
|
|
@@ -68,13 +90,13 @@ const _sfc_main$3 = create$3({
|
|
|
68
90
|
skuInfo.value = [].slice.call(props.sku);
|
|
69
91
|
}
|
|
70
92
|
});
|
|
71
|
-
const changeSaleChild = (attrItem,
|
|
93
|
+
const changeSaleChild = (attrItem, index2, parentItem, parentIndex) => {
|
|
72
94
|
if (attrItem.checkFlag || attrItem.disable) {
|
|
73
95
|
return;
|
|
74
96
|
}
|
|
75
97
|
emit("selectSku", {
|
|
76
98
|
sku: attrItem,
|
|
77
|
-
skuIndex:
|
|
99
|
+
skuIndex: index2,
|
|
78
100
|
parentSku: parentItem,
|
|
79
101
|
parentIndex
|
|
80
102
|
});
|
|
@@ -91,7 +113,7 @@ const _hoisted_3$2 = { class: "nut-sku-select-item-skus" };
|
|
|
91
113
|
const _hoisted_4$2 = ["onClick"];
|
|
92
114
|
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
93
115
|
return openBlock(), createElementBlock("view", _hoisted_1$3, [
|
|
94
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.skuInfo, (item,
|
|
116
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.skuInfo, (item, index2) => {
|
|
95
117
|
return openBlock(), createElementBlock("view", {
|
|
96
118
|
class: "nut-sku-select-item",
|
|
97
119
|
key: item.id
|
|
@@ -101,7 +123,7 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
101
123
|
(openBlock(true), createElementBlock(Fragment, null, renderList(item.list, (itemAttr, itemAttrIndex) => {
|
|
102
124
|
return openBlock(), createElementBlock("view", {
|
|
103
125
|
class: normalizeClass(["nut-sku-select-item-skus-sku", [{ active: !itemAttr.disable && itemAttr.active }, { disable: itemAttr.disable }]]),
|
|
104
|
-
onClick: ($event) => _ctx.changeSaleChild(itemAttr, itemAttrIndex, item,
|
|
126
|
+
onClick: ($event) => _ctx.changeSaleChild(itemAttr, itemAttrIndex, item, index2),
|
|
105
127
|
key: itemAttr.name
|
|
106
128
|
}, toDisplayString(itemAttr.name), 11, _hoisted_4$2);
|
|
107
129
|
}), 128))
|
|
@@ -275,11 +297,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
275
297
|
var SkuOperate = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
|
|
276
298
|
const { componentName, create } = createComponent("sku");
|
|
277
299
|
const _sfc_main = create({
|
|
278
|
-
props: {
|
|
279
|
-
visible: {
|
|
280
|
-
type: Boolean,
|
|
281
|
-
default: false
|
|
282
|
-
},
|
|
300
|
+
props: __spreadProps(__spreadValues({}, popupProps), {
|
|
283
301
|
sku: {
|
|
284
302
|
type: Array,
|
|
285
303
|
default: []
|
|
@@ -288,10 +306,6 @@ const _sfc_main = create({
|
|
|
288
306
|
type: Object,
|
|
289
307
|
default: {}
|
|
290
308
|
},
|
|
291
|
-
showSaleLimit: {
|
|
292
|
-
type: Boolean,
|
|
293
|
-
default: false
|
|
294
|
-
},
|
|
295
309
|
stepperMax: {
|
|
296
310
|
type: [Number, String],
|
|
297
311
|
default: 99999
|
|
@@ -300,14 +314,6 @@ const _sfc_main = create({
|
|
|
300
314
|
type: [Number, String],
|
|
301
315
|
default: 1
|
|
302
316
|
},
|
|
303
|
-
purchased: {
|
|
304
|
-
type: [Number, String],
|
|
305
|
-
default: 0
|
|
306
|
-
},
|
|
307
|
-
showSaleLowest: {
|
|
308
|
-
type: Boolean,
|
|
309
|
-
default: false
|
|
310
|
-
},
|
|
311
317
|
btnOptions: {
|
|
312
318
|
type: Array,
|
|
313
319
|
default: () => ["confirm"]
|
|
@@ -316,17 +322,13 @@ const _sfc_main = create({
|
|
|
316
322
|
type: String,
|
|
317
323
|
default: "\u8D2D\u4E70\u6570\u91CF"
|
|
318
324
|
},
|
|
319
|
-
|
|
320
|
-
type: [Function, Boolean],
|
|
321
|
-
default: false
|
|
322
|
-
},
|
|
323
|
-
saleLimitText: {
|
|
325
|
+
stepperExtraText: {
|
|
324
326
|
type: [Function, Boolean],
|
|
325
327
|
default: false
|
|
326
328
|
},
|
|
327
|
-
|
|
328
|
-
type:
|
|
329
|
-
default:
|
|
329
|
+
btnExtraText: {
|
|
330
|
+
type: String,
|
|
331
|
+
default: ""
|
|
330
332
|
},
|
|
331
333
|
buyText: {
|
|
332
334
|
type: String,
|
|
@@ -340,7 +342,7 @@ const _sfc_main = create({
|
|
|
340
342
|
type: String,
|
|
341
343
|
default: "\u786E\u5B9A"
|
|
342
344
|
}
|
|
343
|
-
},
|
|
345
|
+
}),
|
|
344
346
|
emits: [
|
|
345
347
|
"update:visible",
|
|
346
348
|
"selectSku",
|
|
@@ -351,7 +353,8 @@ const _sfc_main = create({
|
|
|
351
353
|
"close",
|
|
352
354
|
"reduce",
|
|
353
355
|
"add",
|
|
354
|
-
"overLimit"
|
|
356
|
+
"overLimit",
|
|
357
|
+
"clickOverlay"
|
|
355
358
|
],
|
|
356
359
|
components: {
|
|
357
360
|
SkuHeader,
|
|
@@ -370,6 +373,8 @@ const _sfc_main = create({
|
|
|
370
373
|
close();
|
|
371
374
|
}
|
|
372
375
|
});
|
|
376
|
+
onMounted(() => {
|
|
377
|
+
});
|
|
373
378
|
const getSlots = (name) => slots[name];
|
|
374
379
|
const selectSku = (skus) => {
|
|
375
380
|
emit("selectSku", skus);
|
|
@@ -438,7 +443,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
438
443
|
onClickCloseIcon: _cache[1] || (_cache[1] = ($event) => _ctx.closePopup("icon")),
|
|
439
444
|
onClickOverlay: _cache[2] || (_cache[2] = ($event) => _ctx.closePopup("overlay")),
|
|
440
445
|
onClose: _cache[3] || (_cache[3] = ($event) => _ctx.closePopup("close")),
|
|
441
|
-
style: { "height": "75%" }
|
|
446
|
+
style: { "height": "75%" },
|
|
447
|
+
isWrapTeleport: _ctx.isWrapTeleport,
|
|
448
|
+
teleport: _ctx.teleport
|
|
442
449
|
}, {
|
|
443
450
|
default: withCtx(() => [
|
|
444
451
|
createElementVNode("view", _hoisted_1, [
|
|
@@ -475,32 +482,33 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
475
482
|
stepperTitle: _ctx.stepperTitle,
|
|
476
483
|
stepperMax: _ctx.stepperMax,
|
|
477
484
|
stepperMin: _ctx.stepperMin,
|
|
478
|
-
|
|
479
|
-
showSaleLimit: _ctx.showSaleLimit,
|
|
480
|
-
showSaleLowest: _ctx.showSaleLowest,
|
|
481
|
-
saleLowestText: _ctx.saleLowestText,
|
|
482
|
-
saleLimitText: _ctx.saleLimitText,
|
|
483
|
-
purchasedText: _ctx.purchasedText,
|
|
485
|
+
stepperExtraText: _ctx.stepperExtraText,
|
|
484
486
|
onAdd: _ctx.add,
|
|
485
487
|
onReduce: _ctx.reduce,
|
|
486
488
|
onChangeStepper: _ctx.changeStepper,
|
|
487
489
|
onOverLimit: _ctx.stepperOverLimit
|
|
488
|
-
}, null, 8, ["goods", "stepperTitle", "stepperMax", "stepperMin", "
|
|
490
|
+
}, null, 8, ["goods", "stepperTitle", "stepperMax", "stepperMin", "stepperExtraText", "onAdd", "onReduce", "onChangeStepper", "onOverLimit"])) : createCommentVNode("", true),
|
|
489
491
|
renderSlot(_ctx.$slots, "sku-stepper-bottom")
|
|
490
492
|
]),
|
|
491
|
-
|
|
492
|
-
!_ctx.getSlots("sku-operate") ? (openBlock(), createBlock(_component_sku_operate, {
|
|
493
|
-
key: 1,
|
|
493
|
+
createVNode(_component_sku_operate, {
|
|
494
494
|
btnOptions: _ctx.btnOptions,
|
|
495
|
+
btnExtraText: _ctx.btnExtraText,
|
|
495
496
|
buyText: _ctx.buyText,
|
|
496
497
|
addCartText: _ctx.addCartText,
|
|
497
498
|
confirmText: _ctx.confirmText,
|
|
498
499
|
onClickBtnOperate: _ctx.clickBtnOperate
|
|
499
|
-
},
|
|
500
|
+
}, createSlots({ _: 2 }, [
|
|
501
|
+
_ctx.getSlots("sku-operate") ? {
|
|
502
|
+
name: "operate-btn",
|
|
503
|
+
fn: withCtx(() => [
|
|
504
|
+
renderSlot(_ctx.$slots, "sku-operate")
|
|
505
|
+
])
|
|
506
|
+
} : void 0
|
|
507
|
+
]), 1032, ["btnOptions", "btnExtraText", "buyText", "addCartText", "confirmText", "onClickBtnOperate"])
|
|
500
508
|
])
|
|
501
509
|
]),
|
|
502
510
|
_: 3
|
|
503
|
-
}, 8, ["visible"]);
|
|
511
|
+
}, 8, ["visible", "isWrapTeleport", "teleport"]);
|
|
504
512
|
}
|
|
505
|
-
var
|
|
506
|
-
export {
|
|
513
|
+
var index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
514
|
+
export { index as default };
|
|
@@ -18,7 +18,7 @@ var __spreadValues = (a, b) => {
|
|
|
18
18
|
};
|
|
19
19
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
20
|
/*!
|
|
21
|
-
* @nutui/nutui v3.1.19-beta.
|
|
21
|
+
* @nutui/nutui v3.1.19-beta.2 Thu Apr 07 2022 17:52:31 GMT+0800 (中国标准时间)
|
|
22
22
|
* (c) 2022 @jdf2e.
|
|
23
23
|
* Released under the MIT License.
|
|
24
24
|
*/
|