@varlet/ui 3.1.0-alpha.1709717246484 → 3.1.0
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/es/button/Button.mjs +10 -10
- package/es/button/props.mjs +3 -1
- package/es/date-picker/date-picker.css +1 -1
- package/es/index.bundle.mjs +1 -1
- package/es/index.mjs +1 -1
- package/es/picker/props.mjs +2 -3
- package/es/popup/props.mjs +6 -7
- package/es/select/useSelectController.mjs +2 -4
- package/es/slider/Slider.mjs +124 -41
- package/es/snackbar/style/index.mjs +1 -1
- package/es/style.css +1 -1
- package/es/themes/dark/datePicker.mjs +1 -0
- package/es/themes/dark/timePicker.mjs +2 -1
- package/es/themes/md3-dark/datePicker.mjs +1 -0
- package/es/themes/md3-dark/timePicker.mjs +2 -1
- package/es/themes/md3-light/datePicker.mjs +1 -0
- package/es/themes/md3-light/timePicker.mjs +2 -1
- package/es/time-picker/timePicker.css +1 -1
- package/es/tooltip/props.mjs +5 -6
- package/es/varlet.esm.js +4679 -4620
- package/highlight/web-types.en-US.json +37 -2
- package/lib/style.css +1 -1
- package/lib/varlet.cjs.js +162 -73
- package/package.json +7 -7
- package/types/picker.d.ts +4 -0
- package/types/popup.d.ts +2 -0
- package/types/styleVars.d.ts +4 -0
- package/types/tooltip.d.ts +1 -0
- package/umd/varlet.js +6 -6
package/es/button/Button.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import { computed, defineComponent, ref } from "vue";
|
|
|
6
6
|
import { props } from "./props.mjs";
|
|
7
7
|
import { createNamespace, formatElevation } from "../utils/components.mjs";
|
|
8
8
|
import { useButtonGroup } from "./provide.mjs";
|
|
9
|
-
import {
|
|
9
|
+
import { call, normalizeToArray } from "@varlet/shared";
|
|
10
10
|
const { name, n, classes } = createNamespace("button");
|
|
11
11
|
import { resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot, createElementVNode as _createElementVNode, createVNode as _createVNode, normalizeStyle as _normalizeStyle, resolveDirective as _resolveDirective, createElementBlock as _createElementBlock, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from "vue";
|
|
12
12
|
const _withScopeId = (n2) => (_pushScopeId(""), n2 = n2(), _popScopeId(), n2);
|
|
@@ -51,7 +51,7 @@ function __render__(_ctx, _cache) {
|
|
|
51
51
|
"var-button-cover": "",
|
|
52
52
|
color: _ctx.loadingColor,
|
|
53
53
|
type: _ctx.loadingType,
|
|
54
|
-
size: _ctx.loadingSize,
|
|
54
|
+
size: _ctx.loadingSize || _ctx.states.size,
|
|
55
55
|
radius: _ctx.loadingRadius
|
|
56
56
|
}, null, 8, ["class", "color", "type", "size", "radius"])) : _createCommentVNode("v-if", true),
|
|
57
57
|
_createElementVNode(
|
|
@@ -88,11 +88,12 @@ const __sfc__ = defineComponent({
|
|
|
88
88
|
const { buttonGroup } = useButtonGroup();
|
|
89
89
|
const { hovering, handleHovering } = useHoverOverlay();
|
|
90
90
|
const states = computed(() => {
|
|
91
|
+
var _a, _b, _c, _d, _e, _f;
|
|
91
92
|
if (!buttonGroup) {
|
|
92
93
|
return {
|
|
93
94
|
elevation: formatElevation(props2.elevation, 2),
|
|
94
|
-
type: props2.type != null ?
|
|
95
|
-
size: props2.size != null ?
|
|
95
|
+
type: (_a = props2.type) != null ? _a : "default",
|
|
96
|
+
size: (_b = props2.size) != null ? _b : "normal",
|
|
96
97
|
color: props2.color,
|
|
97
98
|
text: props2.text,
|
|
98
99
|
textColor: props2.textColor,
|
|
@@ -103,10 +104,10 @@ const __sfc__ = defineComponent({
|
|
|
103
104
|
const { type, size, color, textColor, mode } = buttonGroup;
|
|
104
105
|
return {
|
|
105
106
|
elevation: "",
|
|
106
|
-
type: props2.type != null ?
|
|
107
|
-
size: props2.size != null ?
|
|
108
|
-
color: props2.color != null ?
|
|
109
|
-
textColor: props2.textColor != null ?
|
|
107
|
+
type: (_c = props2.type) != null ? _c : type.value,
|
|
108
|
+
size: (_d = props2.size) != null ? _d : size.value,
|
|
109
|
+
color: (_e = props2.color) != null ? _e : color.value,
|
|
110
|
+
textColor: (_f = props2.textColor) != null ? _f : textColor.value,
|
|
110
111
|
text: mode.value === "text" || mode.value === "outline",
|
|
111
112
|
outline: mode.value === "outline",
|
|
112
113
|
iconContainer: mode.value === "icon-container"
|
|
@@ -115,8 +116,7 @@ const __sfc__ = defineComponent({
|
|
|
115
116
|
function attemptAutoLoading(result) {
|
|
116
117
|
if (props2.autoLoading) {
|
|
117
118
|
pending.value = true;
|
|
118
|
-
|
|
119
|
-
Promise.all(result).then(() => {
|
|
119
|
+
Promise.all(normalizeToArray(result)).then(() => {
|
|
120
120
|
pending.value = false;
|
|
121
121
|
}).catch(() => {
|
|
122
122
|
pending.value = false;
|
package/es/button/props.mjs
CHANGED
|
@@ -46,7 +46,9 @@ const props = {
|
|
|
46
46
|
},
|
|
47
47
|
loadingRadius: [Number, String],
|
|
48
48
|
loadingType: pickProps(loadingProps, "type"),
|
|
49
|
-
loadingSize: pickProps(loadingProps, "size"),
|
|
49
|
+
loadingSize: __spreadProps(__spreadValues({}, pickProps(loadingProps, "size")), {
|
|
50
|
+
default: void 0
|
|
51
|
+
}),
|
|
50
52
|
loadingColor: __spreadProps(__spreadValues({}, pickProps(loadingProps, "color")), {
|
|
51
53
|
default: "currentColor"
|
|
52
54
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root { --date-picker-border-radius: 4px; --date-picker-font-size: var(--font-size-md); --date-picker-min-width: 290px; --date-picker-main-color: rgba(0, 0, 0, 0.87); --date-picker-title-hint-color: #fff; --date-picker-title-hint-font-size: var(--font-size-md); --date-picker-title-height: 105px; --date-picker-title-padding: 16px; --date-picker-title-background: var(--color-primary); --date-picker-title-color: #fff; --date-picker-title-year-font-size: var(--font-size-md); --date-picker-title-year-font-weight: 500; --date-picker-title-year-margin-bottom: 8px; --date-picker-title-date-height: 48px; --date-picker-title-date-font-size: 34px; --date-picker-title-date-font-weight: 500; --date-picker-title-date-range-font-size: 20px; --date-picker-body-background-color: #fff; --date-picker-body-height: 280px; --date-picker-body-padding: 0; --date-picker-header-padding: 4px 16px; --date-picker-header-color: #555; --date-picker-actions-padding: 0 8px 12px 8px; --date-picker-header-arrow-filter: opacity(0.54); --month-picker-padding: 0 12px; --month-picker-item-width: 33%; --month-picker-item-height: 56px; --month-picker-item-button-max-width: 140px; --year-picker-padding: 0 12px; --year-picker-item-width: 33%; --year-picker-item-height: 56px; --year-picker-item-button-max-width: 140px; --day-picker-content-item-width: 14.28%; --day-picker-content-item-font-size: var(--font-size-sm); --day-picker-content-item-padding: 2px 0; --day-picker-content-item-button-width: 32px; --day-picker-content-item-button-height: 32px; --day-picker-content-item-button-font-size: var(--font-size-sm); --day-picker-head-item-color: rgba(0, 0, 0, 0.38); --day-picker-head-item-padding: 8px 0; --day-picker-head-item-font-weight: 600;}.var-date-picker { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); border-radius: var(--date-picker-border-radius); contain: layout style; display: flex; width: 100%; flex-direction: column; font-size: var(--date-picker-font-size); position: relative; min-width: var(--date-picker-min-width); overflow: hidden;}.var-date-picker ul { list-style: none; margin: 0; padding: 0;}.var-date-picker__title { min-height: var(--date-picker-title-height); padding: var(--date-picker-title-padding); color: var(--date-picker-title-color); background: var(--date-picker-title-background); display: flex; justify-content: space-between; flex-direction: column; flex-wrap: wrap;}.var-date-picker__title-select { display: inline-flex; align-items: center; justify-content: space-between; margin-bottom: var(--date-picker-title-year-margin-bottom);}.var-date-picker__title-hint { color: var(--date-picker-title-hint-color); font-size: var(--date-picker-title-hint-font-size);}.var-date-picker__title-year { cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); font-size: var(--date-picker-title-year-font-size); font-weight: var(--date-picker-title-year-font-weight); transition: 0.3s var(--cubic-bezier); margin-bottom: 0;}.var-date-picker__title-year--active { opacity: 1;}.var-date-picker__title-date { height: var(--date-picker-title-date-height); overflow: hidden; font-size: var(--date-picker-title-date-font-size); text-align: left; font-weight: var(--date-picker-title-date-font-weight); position: relative; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); display: flex; align-items: center; opacity: 0.6; transition: 0.3s var(--cubic-bezier);}.var-date-picker__title-date--active { opacity: 1;}.var-date-picker__title-date--range { font-size: var(--date-picker-title-date-range-font-size);}.var-date-picker__body { position: relative; overflow: auto; height: var(--date-picker-body-height); background-color: var(--date-picker-body-background-color); padding: var(--date-picker-body-padding);}.var-date-picker__body::-webkit-scrollbar { display: none; width: 0; background: transparent;}.var-date-picker__actions { background-color: var(--date-picker-body-background-color); padding: var(--date-picker-actions-padding); display: flex; justify-content: flex-end;}.var-date-picker-header { padding: var(--date-picker-header-padding); align-items: center; display: flex; justify-content: space-between; position: relative; color: var(--date-picker-header-color); background-color: var(--date-picker-body-background-color);}.var-date-picker-header__value { flex: 1; text-align: center; position: relative; overflow: hidden; font-weight: 700; cursor: pointer; user-select: none;}.var-date-picker-header__value div { width: 100%;}.var-date-picker-header__arrow[var-date-picker-header-cover] { filter: var(--date-picker-header-arrow-filter);}.var-date-picker .var-month-picker__content { padding: var(--month-picker-padding);}.var-date-picker .var-month-picker__content ul { display: flex; flex-wrap: wrap; justify-content: space-between;}.var-date-picker .var-month-picker__content ul li { width: var(--month-picker-item-width); display: flex; height: var(--month-picker-item-height); align-items: center; justify-content: center;}.var-date-picker .var-month-picker__button[var-month-picker-cover] { width: 100%; max-width: var(--month-picker-item-button-max-width);}.var-date-picker .var-month-picker__button[var-date-picker-color-cover='true'] { color: var(--date-picker-main-color);}.var-date-picker .var-month-picker__button--disabled { color: var(--color-text-disabled) !important; cursor: not-allowed;}.var-date-picker .var-year-picker { padding: var(--year-picker-padding); display: flex; flex-wrap: wrap; justify-content: space-between;}.var-date-picker .var-year-picker li { width: var(--year-picker-item-width); display: flex; height: var(--year-picker-item-height); align-items: center; justify-content: center;}.var-date-picker .var-year-picker__button[var-year-picker-cover] { width: 100%; max-width: var(--year-picker-item-button-max-width);}.var-date-picker .var-year-picker__button[var-date-picker-color-cover='true'] { color: var(--date-picker-main-color);}.var-date-picker .var-year-picker__button--disabled { color: var(--color-text-disabled) !important; cursor: not-allowed;}.var-date-picker .var-day-picker__content ul { display: flex; flex-wrap: wrap;}.var-date-picker .var-day-picker__content ul li { position: relative; display: flex; justify-content: center; width: var(--day-picker-content-item-width); font-size: var(--day-picker-content-item-font-size); padding: var(--day-picker-content-item-padding);}.var-date-picker .var-day-picker__head li { color: var(--day-picker-head-item-color); padding: var(--day-picker-head-item-padding); font-weight: var(--day-picker-head-item-font-weight);}.var-date-picker .var-day-picker__button[var-day-picker-cover] { width: var(--day-picker-content-item-button-width); height: var(--day-picker-content-item-button-height); font-size: var(--day-picker-content-item-button-font-size);}.var-date-picker .var-day-picker__button:not(.var-day-picker__button--usable) { cursor: unset;}.var-date-picker .var-day-picker__button[var-date-picker-color-cover='true'] { color: var(--date-picker-main-color);}.var-date-picker .var-day-picker__button--disabled { color: var(--color-text-disabled) !important; cursor: not-allowed;}.var-date-picker-translatey-enter-from { opacity: 0; transform: translateY(100%);}.var-date-picker-translatey-enter-active,.var-date-picker-reverse-translatey-enter-active { transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatey-leave-active,.var-date-picker-reverse-translatey-leave-active { position: absolute; transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatey-leave-to { opacity: 0; transform: translateY(-100%);}.var-date-picker-reverse-translatey-enter-from { opacity: 0; transform: translateY(-100%);}.var-date-picker-reverse-translatey-leave-to { opacity: 0; transform: translateY(100%);}.var-date-picker-panel-fade-enter-from,.var-date-picker-panel-fade-leave-to { transition: 0.3s var(--cubic-bezier); opacity: 0;}.var-date-picker-panel-fade-leave-active { position: absolute;}.var-date-picker-translatex-enter-from { opacity: 0; transform: translateX(100%);}.var-date-picker-reverse-translatex-enter-from { opacity: 0; transform: translateX(-100%);}.var-date-picker-translatex-enter-active,.var-date-picker-reverse-translatex-enter-active { transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatex-leave-active,.var-date-picker-reverse-translatex-leave-active { position: absolute; transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatex-leave-to { opacity: 0; transform: translateX(-100%);}.var-date-picker-reverse-translatex-leave-to { opacity: 0; transform: translateX(100%);}
|
|
1
|
+
:root { --date-picker-border-radius: 4px; --date-picker-font-size: var(--font-size-md); --date-picker-min-width: 290px; --date-picker-main-color: rgba(0, 0, 0, 0.87); --date-picker-title-hint-color: #fff; --date-picker-title-hint-font-size: var(--font-size-md); --date-picker-title-height: 105px; --date-picker-title-padding: 16px; --date-picker-title-background: var(--color-primary); --date-picker-title-color: #fff; --date-picker-title-year-font-size: var(--font-size-md); --date-picker-title-year-font-weight: 500; --date-picker-title-year-margin-bottom: 8px; --date-picker-title-date-height: 48px; --date-picker-title-date-font-size: 34px; --date-picker-title-date-font-weight: 500; --date-picker-title-date-range-font-size: 20px; --date-picker-title-date-justify-content: normal; --date-picker-body-background-color: #fff; --date-picker-body-height: 280px; --date-picker-body-padding: 0; --date-picker-header-padding: 4px 16px; --date-picker-header-color: #555; --date-picker-actions-padding: 0 8px 12px 8px; --date-picker-header-arrow-filter: opacity(0.54); --month-picker-padding: 0 12px; --month-picker-item-width: 33%; --month-picker-item-height: 56px; --month-picker-item-button-max-width: 140px; --year-picker-padding: 0 12px; --year-picker-item-width: 33%; --year-picker-item-height: 56px; --year-picker-item-button-max-width: 140px; --day-picker-content-item-width: 14.28%; --day-picker-content-item-font-size: var(--font-size-sm); --day-picker-content-item-padding: 2px 0; --day-picker-content-item-button-width: 32px; --day-picker-content-item-button-height: 32px; --day-picker-content-item-button-font-size: var(--font-size-sm); --day-picker-head-item-color: rgba(0, 0, 0, 0.38); --day-picker-head-item-padding: 8px 0; --day-picker-head-item-font-weight: 600;}.var-date-picker { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); border-radius: var(--date-picker-border-radius); contain: layout style; display: flex; width: 100%; flex-direction: column; font-size: var(--date-picker-font-size); position: relative; min-width: var(--date-picker-min-width); overflow: hidden;}.var-date-picker ul { list-style: none; margin: 0; padding: 0;}.var-date-picker__title { min-height: var(--date-picker-title-height); padding: var(--date-picker-title-padding); color: var(--date-picker-title-color); background: var(--date-picker-title-background); display: flex; justify-content: space-between; flex-direction: column; flex-wrap: wrap;}.var-date-picker__title-select { display: inline-flex; align-items: center; justify-content: space-between; margin-bottom: var(--date-picker-title-year-margin-bottom);}.var-date-picker__title-hint { color: var(--date-picker-title-hint-color); font-size: var(--date-picker-title-hint-font-size);}.var-date-picker__title-year { cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); font-size: var(--date-picker-title-year-font-size); font-weight: var(--date-picker-title-year-font-weight); transition: 0.3s var(--cubic-bezier); margin-bottom: 0;}.var-date-picker__title-year--active { opacity: 1;}.var-date-picker__title-date { height: var(--date-picker-title-date-height); overflow: hidden; font-size: var(--date-picker-title-date-font-size); text-align: left; font-weight: var(--date-picker-title-date-font-weight); position: relative; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); display: flex; align-items: center; justify-content: var(--date-picker-title-date-justify-content); opacity: 0.6; transition: 0.3s var(--cubic-bezier);}.var-date-picker__title-date--active { opacity: 1;}.var-date-picker__title-date--range { font-size: var(--date-picker-title-date-range-font-size);}.var-date-picker__body { position: relative; overflow: auto; height: var(--date-picker-body-height); background-color: var(--date-picker-body-background-color); padding: var(--date-picker-body-padding);}.var-date-picker__body::-webkit-scrollbar { display: none; width: 0; background: transparent;}.var-date-picker__actions { background-color: var(--date-picker-body-background-color); padding: var(--date-picker-actions-padding); display: flex; justify-content: flex-end;}.var-date-picker-header { padding: var(--date-picker-header-padding); align-items: center; display: flex; justify-content: space-between; position: relative; color: var(--date-picker-header-color); background-color: var(--date-picker-body-background-color);}.var-date-picker-header__value { flex: 1; text-align: center; position: relative; overflow: hidden; font-weight: 700; cursor: pointer; user-select: none;}.var-date-picker-header__value div { width: 100%;}.var-date-picker-header__arrow[var-date-picker-header-cover] { filter: var(--date-picker-header-arrow-filter);}.var-date-picker .var-month-picker__content { padding: var(--month-picker-padding);}.var-date-picker .var-month-picker__content ul { display: flex; flex-wrap: wrap; justify-content: space-between;}.var-date-picker .var-month-picker__content ul li { width: var(--month-picker-item-width); display: flex; height: var(--month-picker-item-height); align-items: center; justify-content: center;}.var-date-picker .var-month-picker__button[var-month-picker-cover] { width: 100%; max-width: var(--month-picker-item-button-max-width);}.var-date-picker .var-month-picker__button[var-date-picker-color-cover='true'] { color: var(--date-picker-main-color);}.var-date-picker .var-month-picker__button--disabled { color: var(--color-text-disabled) !important; cursor: not-allowed;}.var-date-picker .var-year-picker { padding: var(--year-picker-padding); display: flex; flex-wrap: wrap; justify-content: space-between;}.var-date-picker .var-year-picker li { width: var(--year-picker-item-width); display: flex; height: var(--year-picker-item-height); align-items: center; justify-content: center;}.var-date-picker .var-year-picker__button[var-year-picker-cover] { width: 100%; max-width: var(--year-picker-item-button-max-width);}.var-date-picker .var-year-picker__button[var-date-picker-color-cover='true'] { color: var(--date-picker-main-color);}.var-date-picker .var-year-picker__button--disabled { color: var(--color-text-disabled) !important; cursor: not-allowed;}.var-date-picker .var-day-picker__content ul { display: flex; flex-wrap: wrap;}.var-date-picker .var-day-picker__content ul li { position: relative; display: flex; justify-content: center; width: var(--day-picker-content-item-width); font-size: var(--day-picker-content-item-font-size); padding: var(--day-picker-content-item-padding);}.var-date-picker .var-day-picker__head li { color: var(--day-picker-head-item-color); padding: var(--day-picker-head-item-padding); font-weight: var(--day-picker-head-item-font-weight);}.var-date-picker .var-day-picker__button[var-day-picker-cover] { width: var(--day-picker-content-item-button-width); height: var(--day-picker-content-item-button-height); font-size: var(--day-picker-content-item-button-font-size);}.var-date-picker .var-day-picker__button:not(.var-day-picker__button--usable) { cursor: unset;}.var-date-picker .var-day-picker__button[var-date-picker-color-cover='true'] { color: var(--date-picker-main-color);}.var-date-picker .var-day-picker__button--disabled { color: var(--color-text-disabled) !important; cursor: not-allowed;}.var-date-picker-translatey-enter-from { opacity: 0; transform: translateY(100%);}.var-date-picker-translatey-enter-active,.var-date-picker-reverse-translatey-enter-active { transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatey-leave-active,.var-date-picker-reverse-translatey-leave-active { position: absolute; transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatey-leave-to { opacity: 0; transform: translateY(-100%);}.var-date-picker-reverse-translatey-enter-from { opacity: 0; transform: translateY(-100%);}.var-date-picker-reverse-translatey-leave-to { opacity: 0; transform: translateY(100%);}.var-date-picker-panel-fade-enter-from,.var-date-picker-panel-fade-leave-to { transition: 0.3s var(--cubic-bezier); opacity: 0;}.var-date-picker-panel-fade-leave-active { position: absolute;}.var-date-picker-translatex-enter-from { opacity: 0; transform: translateX(100%);}.var-date-picker-reverse-translatex-enter-from { opacity: 0; transform: translateX(-100%);}.var-date-picker-translatex-enter-active,.var-date-picker-reverse-translatex-enter-active { transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatex-leave-active,.var-date-picker-reverse-translatex-leave-active { position: absolute; transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatex-leave-to { opacity: 0; transform: translateX(-100%);}.var-date-picker-reverse-translatex-leave-to { opacity: 0; transform: translateX(100%);}
|
package/es/index.bundle.mjs
CHANGED
|
@@ -262,7 +262,7 @@ import './tooltip/style/index.mjs'
|
|
|
262
262
|
import './uploader/style/index.mjs'
|
|
263
263
|
import './watermark/style/index.mjs'
|
|
264
264
|
|
|
265
|
-
const version = '3.1.0
|
|
265
|
+
const version = '3.1.0'
|
|
266
266
|
|
|
267
267
|
function install(app) {
|
|
268
268
|
ActionSheet.install && app.use(ActionSheet)
|
package/es/index.mjs
CHANGED
|
@@ -174,7 +174,7 @@ export * from './tooltip/index.mjs'
|
|
|
174
174
|
export * from './uploader/index.mjs'
|
|
175
175
|
export * from './watermark/index.mjs'
|
|
176
176
|
|
|
177
|
-
const version = '3.1.0
|
|
177
|
+
const version = '3.1.0'
|
|
178
178
|
|
|
179
179
|
function install(app) {
|
|
180
180
|
ActionSheet.install && app.use(ActionSheet)
|
package/es/picker/props.mjs
CHANGED
|
@@ -65,6 +65,7 @@ const props = __spreadValues({
|
|
|
65
65
|
"show",
|
|
66
66
|
"onUpdate:show",
|
|
67
67
|
"closeOnClickOverlay",
|
|
68
|
+
"closeOnKeyEscape",
|
|
68
69
|
"teleport",
|
|
69
70
|
"safeArea",
|
|
70
71
|
"onOpen",
|
|
@@ -73,9 +74,7 @@ const props = __spreadValues({
|
|
|
73
74
|
"onClosed",
|
|
74
75
|
"onClickOverlay",
|
|
75
76
|
"onRouteChange",
|
|
76
|
-
|
|
77
|
-
"onKeyEscape",
|
|
78
|
-
"closeOnKeyEscape"
|
|
77
|
+
"onKeyEscape"
|
|
79
78
|
]));
|
|
80
79
|
export {
|
|
81
80
|
props
|
package/es/popup/props.mjs
CHANGED
|
@@ -20,6 +20,10 @@ const props = {
|
|
|
20
20
|
type: Boolean,
|
|
21
21
|
default: true
|
|
22
22
|
},
|
|
23
|
+
closeOnKeyEscape: {
|
|
24
|
+
type: Boolean,
|
|
25
|
+
default: true
|
|
26
|
+
},
|
|
23
27
|
defaultStyle: {
|
|
24
28
|
type: Boolean,
|
|
25
29
|
default: true
|
|
@@ -34,16 +38,11 @@ const props = {
|
|
|
34
38
|
onOpened: defineListenerProp(),
|
|
35
39
|
onClose: defineListenerProp(),
|
|
36
40
|
onClosed: defineListenerProp(),
|
|
41
|
+
onKeyEscape: defineListenerProp(),
|
|
37
42
|
onClickOverlay: defineListenerProp(),
|
|
38
43
|
"onUpdate:show": defineListenerProp(),
|
|
39
44
|
// internal for Dialog
|
|
40
|
-
onRouteChange: defineListenerProp()
|
|
41
|
-
// internal for esc
|
|
42
|
-
onKeyEscape: defineListenerProp(),
|
|
43
|
-
closeOnKeyEscape: {
|
|
44
|
-
type: Boolean,
|
|
45
|
-
default: true
|
|
46
|
-
}
|
|
45
|
+
onRouteChange: defineListenerProp()
|
|
47
46
|
};
|
|
48
47
|
export {
|
|
49
48
|
props
|
|
@@ -34,10 +34,8 @@ function useSelectController(options) {
|
|
|
34
34
|
return (_a = option == null ? void 0 : option.label.value) != null ? _a : "";
|
|
35
35
|
}
|
|
36
36
|
function findValueOrLabel({ value, label: label2 }) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
return label2.value;
|
|
37
|
+
var _a;
|
|
38
|
+
return (_a = value.value) != null ? _a : label2.value;
|
|
41
39
|
}
|
|
42
40
|
function getSelectedValue(option) {
|
|
43
41
|
const multiple = multipleGetter();
|
package/es/slider/Slider.mjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import VarFormDetails from "../form-details/index.mjs";
|
|
2
2
|
import VarHoverOverlay, { useHoverOverlay } from "../hover-overlay/index.mjs";
|
|
3
3
|
import Hover from "../hover/index.mjs";
|
|
4
|
-
import { defineComponent, ref, onBeforeUnmount, computed, reactive, nextTick, watch
|
|
4
|
+
import { defineComponent, ref, onBeforeUnmount, computed, reactive, nextTick, watch } from "vue";
|
|
5
5
|
import { useValidation, createNamespace } from "../utils/components.mjs";
|
|
6
6
|
import { useForm } from "../form/provide.mjs";
|
|
7
7
|
import { getLeft, toSizeUnit } from "../utils/elements.mjs";
|
|
8
8
|
import { warn } from "../utils/logger.mjs";
|
|
9
|
-
import { isArray, isNumber, toNumber, getRect, preventDefault, call } from "@varlet/shared";
|
|
9
|
+
import { isArray, isNumber, toNumber, getRect, preventDefault, call, hasOwn } from "@varlet/shared";
|
|
10
10
|
import { props, Thumbs } from "./props.mjs";
|
|
11
|
-
import { onSmartMounted } from "@varlet/use";
|
|
11
|
+
import { onSmartMounted, onWindowResize, useEventListener } from "@varlet/use";
|
|
12
12
|
const { name, n, classes } = createNamespace("slider");
|
|
13
13
|
import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, resolveDirective as _resolveDirective, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from "vue";
|
|
14
14
|
const _withScopeId = (n2) => (_pushScopeId(""), n2 = n2(), _popScopeId(), n2);
|
|
15
|
-
const _hoisted_1 = ["onTouchstart"];
|
|
15
|
+
const _hoisted_1 = ["tabindex", "onTouchstart", "onFocusin", "onFocusout"];
|
|
16
16
|
function __render__(_ctx, _cache) {
|
|
17
17
|
const _component_var_hover_overlay = _resolveComponent("var-hover-overlay");
|
|
18
18
|
const _component_var_form_details = _resolveComponent("var-form-details");
|
|
@@ -73,7 +73,10 @@ function __render__(_ctx, _cache) {
|
|
|
73
73
|
class: _normalizeClass(_ctx.n(`${_ctx.direction}-thumb`)),
|
|
74
74
|
key: item.enumValue,
|
|
75
75
|
style: _normalizeStyle(_ctx.thumbStyle(item)),
|
|
76
|
-
|
|
76
|
+
tabindex: _ctx.isDisabled ? void 0 : "0",
|
|
77
|
+
onTouchstart: _withModifiers(($event) => _ctx.start($event, item.enumValue), ["stop"]),
|
|
78
|
+
onFocusin: ($event) => _ctx.handleFocus(item),
|
|
79
|
+
onFocusout: ($event) => _ctx.handleBlur(item)
|
|
77
80
|
}, [
|
|
78
81
|
_renderSlot(_ctx.$slots, "button", {
|
|
79
82
|
currentValue: item.text
|
|
@@ -107,8 +110,9 @@ function __render__(_ctx, _cache) {
|
|
|
107
110
|
},
|
|
108
111
|
[
|
|
109
112
|
_createVNode(_component_var_hover_overlay, {
|
|
110
|
-
hovering: item.hovering
|
|
111
|
-
|
|
113
|
+
hovering: !_ctx.isDisabled && item.hovering,
|
|
114
|
+
focusing: !_ctx.isDisabled && item.focusing
|
|
115
|
+
}, null, 8, ["hovering", "focusing"])
|
|
112
116
|
],
|
|
113
117
|
6
|
|
114
118
|
/* CLASS, STYLE */
|
|
@@ -175,6 +179,8 @@ const __sfc__ = defineComponent({
|
|
|
175
179
|
const isDisabled = computed(() => props2.disabled || (form == null ? void 0 : form.disabled.value));
|
|
176
180
|
const isReadonly = computed(() => props2.readonly || (form == null ? void 0 : form.readonly.value));
|
|
177
181
|
const isVertical = computed(() => props2.direction === "vertical");
|
|
182
|
+
const focusingFirst = ref(false);
|
|
183
|
+
const focusingSecond = ref(false);
|
|
178
184
|
const { bindForm, form } = useForm();
|
|
179
185
|
const { errorMessage, validateWithTrigger: vt, validate: v, resetValidation } = useValidation();
|
|
180
186
|
const { hovering: hoveringFirst, handleHovering: handleHoveringFirst } = useHoverOverlay();
|
|
@@ -188,15 +194,23 @@ const __sfc__ = defineComponent({
|
|
|
188
194
|
value: getValue(modelValue[0]),
|
|
189
195
|
enumValue: Thumbs.First,
|
|
190
196
|
text: toPrecision(modelValue[0]),
|
|
191
|
-
hovering:
|
|
192
|
-
|
|
197
|
+
hovering: hoveringFirst.value,
|
|
198
|
+
focusing: focusingFirst.value,
|
|
199
|
+
handleHovering: handleHoveringFirst,
|
|
200
|
+
handleFocusing(value) {
|
|
201
|
+
focusingFirst.value = value;
|
|
202
|
+
}
|
|
193
203
|
},
|
|
194
204
|
{
|
|
195
205
|
value: getValue(modelValue[1]),
|
|
196
206
|
enumValue: Thumbs.Second,
|
|
197
207
|
text: toPrecision(modelValue[1]),
|
|
198
|
-
hovering:
|
|
199
|
-
|
|
208
|
+
hovering: hoveringSecond.value,
|
|
209
|
+
focusing: focusingSecond.value,
|
|
210
|
+
handleHovering: handleHoveringSecond,
|
|
211
|
+
handleFocusing(value) {
|
|
212
|
+
focusingSecond.value = value;
|
|
213
|
+
}
|
|
200
214
|
}
|
|
201
215
|
];
|
|
202
216
|
} else if (isNumber(modelValue)) {
|
|
@@ -205,8 +219,12 @@ const __sfc__ = defineComponent({
|
|
|
205
219
|
value: getValue(modelValue),
|
|
206
220
|
enumValue: Thumbs.First,
|
|
207
221
|
text: toPrecision(modelValue),
|
|
208
|
-
hovering:
|
|
209
|
-
|
|
222
|
+
hovering: hoveringFirst.value,
|
|
223
|
+
focusing: focusingFirst.value,
|
|
224
|
+
handleHovering: handleHoveringFirst,
|
|
225
|
+
handleFocusing(value) {
|
|
226
|
+
focusingFirst.value = value;
|
|
227
|
+
}
|
|
210
228
|
}
|
|
211
229
|
];
|
|
212
230
|
}
|
|
@@ -240,19 +258,24 @@ const __sfc__ = defineComponent({
|
|
|
240
258
|
};
|
|
241
259
|
call(bindForm, sliderProvider);
|
|
242
260
|
watch([() => props2.modelValue, () => props2.step], ([modelValue, step]) => {
|
|
243
|
-
if (!stepValidator() || !valueValidator() || isScroll.value)
|
|
261
|
+
if (!stepValidator() || !valueValidator() || isScroll.value) {
|
|
244
262
|
return;
|
|
263
|
+
}
|
|
245
264
|
setProps(modelValue, toNumber(step));
|
|
246
265
|
});
|
|
247
266
|
watch(maxDistance, () => setProps());
|
|
248
267
|
onSmartMounted(() => {
|
|
249
|
-
if (!stepValidator() || !valueValidator())
|
|
268
|
+
if (!stepValidator() || !valueValidator()) {
|
|
250
269
|
return;
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
onBeforeUnmount(() => {
|
|
254
|
-
removeDocumentEvents();
|
|
270
|
+
}
|
|
271
|
+
resizeMaxDistance();
|
|
255
272
|
});
|
|
273
|
+
onBeforeUnmount(removeDocumentEvents);
|
|
274
|
+
useEventListener(() => window, "keydown", handleKeydown);
|
|
275
|
+
onWindowResize(resizeMaxDistance);
|
|
276
|
+
function resizeMaxDistance() {
|
|
277
|
+
maxDistance.value = sliderEl.value[isVertical.value ? "offsetHeight" : "offsetWidth"];
|
|
278
|
+
}
|
|
256
279
|
function validate() {
|
|
257
280
|
return v(props2.rules, props2.modelValue);
|
|
258
281
|
}
|
|
@@ -269,8 +292,9 @@ const __sfc__ = defineComponent({
|
|
|
269
292
|
}
|
|
270
293
|
function getOffset(e) {
|
|
271
294
|
const currentTarget = e.currentTarget;
|
|
272
|
-
if (!currentTarget)
|
|
295
|
+
if (!currentTarget) {
|
|
273
296
|
return 0;
|
|
297
|
+
}
|
|
274
298
|
if (!isVertical.value) {
|
|
275
299
|
return e.clientX - getLeft(currentTarget);
|
|
276
300
|
}
|
|
@@ -284,36 +308,49 @@ const __sfc__ = defineComponent({
|
|
|
284
308
|
};
|
|
285
309
|
}
|
|
286
310
|
function showLabel(type) {
|
|
287
|
-
if (props2.labelVisible === "always")
|
|
311
|
+
if (props2.labelVisible === "always") {
|
|
288
312
|
return true;
|
|
289
|
-
|
|
313
|
+
}
|
|
314
|
+
if (props2.labelVisible === "never") {
|
|
290
315
|
return false;
|
|
316
|
+
}
|
|
291
317
|
return thumbsProps[type].active;
|
|
292
318
|
}
|
|
293
319
|
function getValue(value) {
|
|
294
320
|
const { min, max } = props2;
|
|
295
|
-
if (value < toNumber(min))
|
|
321
|
+
if (value < toNumber(min)) {
|
|
296
322
|
return 0;
|
|
297
|
-
|
|
323
|
+
}
|
|
324
|
+
if (value > toNumber(max)) {
|
|
298
325
|
return 100;
|
|
326
|
+
}
|
|
299
327
|
return (value - toNumber(min)) / scope.value * 100;
|
|
300
328
|
}
|
|
301
329
|
function toPrecision(value) {
|
|
302
|
-
if (!isNumber(value))
|
|
330
|
+
if (!isNumber(value)) {
|
|
303
331
|
return 0;
|
|
332
|
+
}
|
|
304
333
|
let num = value;
|
|
305
|
-
if (num < Number(props2.min))
|
|
334
|
+
if (num < Number(props2.min)) {
|
|
306
335
|
num = Number(props2.min);
|
|
307
|
-
|
|
336
|
+
}
|
|
337
|
+
if (num > Number(props2.max)) {
|
|
308
338
|
num = Number(props2.max);
|
|
339
|
+
}
|
|
309
340
|
const isInteger = parseInt(`${num}`, 10) === num;
|
|
310
341
|
return isInteger ? num : toNumber(num.toPrecision(5));
|
|
311
342
|
}
|
|
312
343
|
function hover(value, item) {
|
|
313
|
-
if (isDisabled.value)
|
|
344
|
+
if (isDisabled.value) {
|
|
314
345
|
return;
|
|
346
|
+
}
|
|
315
347
|
item.handleHovering(value);
|
|
316
348
|
}
|
|
349
|
+
function emitChange(value) {
|
|
350
|
+
call(props2.onChange, value);
|
|
351
|
+
call(props2["onUpdate:modelValue"], value);
|
|
352
|
+
validateWithTrigger();
|
|
353
|
+
}
|
|
317
354
|
function setPercent(moveDistance, type) {
|
|
318
355
|
let rangeValue = [];
|
|
319
356
|
const { step, range, modelValue, onChange, min } = props2;
|
|
@@ -327,14 +364,13 @@ const __sfc__ = defineComponent({
|
|
|
327
364
|
}
|
|
328
365
|
if (prevValue !== curValue) {
|
|
329
366
|
const value = range ? rangeValue.map((value2) => toPrecision(value2)) : toPrecision(curValue);
|
|
330
|
-
|
|
331
|
-
call(props2["onUpdate:modelValue"], value);
|
|
332
|
-
validateWithTrigger();
|
|
367
|
+
emitChange(value);
|
|
333
368
|
}
|
|
334
369
|
}
|
|
335
370
|
function getType(offset) {
|
|
336
|
-
if (!props2.range)
|
|
371
|
+
if (!props2.range) {
|
|
337
372
|
return Thumbs.First;
|
|
373
|
+
}
|
|
338
374
|
const thumb1Distance = thumbsProps[Thumbs.First].percentValue * unitWidth.value;
|
|
339
375
|
const thumb2Distance = thumbsProps[Thumbs.Second].percentValue * unitWidth.value;
|
|
340
376
|
const offsetToThumb1 = Math.abs(offset - thumb1Distance);
|
|
@@ -352,15 +388,15 @@ const __sfc__ = defineComponent({
|
|
|
352
388
|
document.removeEventListener("touchcancel", end);
|
|
353
389
|
}
|
|
354
390
|
function start(event, type) {
|
|
355
|
-
|
|
356
|
-
maxDistance.value = sliderEl.value.offsetWidth;
|
|
391
|
+
resizeMaxDistance();
|
|
357
392
|
if (!isDisabled.value) {
|
|
358
393
|
thumbsProps[type].active = true;
|
|
359
394
|
}
|
|
360
395
|
activeThumb = type;
|
|
361
396
|
addDocumentEvents();
|
|
362
|
-
if (isDisabled.value || isReadonly.value)
|
|
397
|
+
if (isDisabled.value || isReadonly.value) {
|
|
363
398
|
return;
|
|
399
|
+
}
|
|
364
400
|
call(props2.onStart);
|
|
365
401
|
isScroll.value = true;
|
|
366
402
|
const { clientX, clientY } = event.touches[0];
|
|
@@ -368,15 +404,17 @@ const __sfc__ = defineComponent({
|
|
|
368
404
|
}
|
|
369
405
|
function move(event) {
|
|
370
406
|
preventDefault(event);
|
|
371
|
-
if (isDisabled.value || isReadonly.value || !isScroll.value)
|
|
407
|
+
if (isDisabled.value || isReadonly.value || !isScroll.value) {
|
|
372
408
|
return;
|
|
409
|
+
}
|
|
373
410
|
const { startPosition, currentOffset } = thumbsProps[activeThumb];
|
|
374
411
|
const { clientX, clientY } = event.touches[0];
|
|
375
412
|
let moveDistance = (isVertical.value ? startPosition - clientY : clientX - startPosition) + currentOffset;
|
|
376
|
-
if (moveDistance <= 0)
|
|
413
|
+
if (moveDistance <= 0) {
|
|
377
414
|
moveDistance = 0;
|
|
378
|
-
else if (moveDistance >= maxDistance.value)
|
|
415
|
+
} else if (moveDistance >= maxDistance.value) {
|
|
379
416
|
moveDistance = maxDistance.value;
|
|
417
|
+
}
|
|
380
418
|
setPercent(moveDistance, activeThumb);
|
|
381
419
|
}
|
|
382
420
|
function end() {
|
|
@@ -385,8 +423,9 @@ const __sfc__ = defineComponent({
|
|
|
385
423
|
if (!isDisabled.value) {
|
|
386
424
|
thumbsProps[activeThumb].active = false;
|
|
387
425
|
}
|
|
388
|
-
if (isDisabled.value || isReadonly.value)
|
|
426
|
+
if (isDisabled.value || isReadonly.value) {
|
|
389
427
|
return;
|
|
428
|
+
}
|
|
390
429
|
let rangeValue = [];
|
|
391
430
|
thumbsProps[activeThumb].currentOffset = thumbsProps[activeThumb].percentValue * unitWidth.value;
|
|
392
431
|
const curValue = thumbsProps[activeThumb].percentValue * toNumber(step) + toNumber(min);
|
|
@@ -438,10 +477,12 @@ const __sfc__ = defineComponent({
|
|
|
438
477
|
function setProps(modelValue = props2.modelValue, step = toNumber(props2.step)) {
|
|
439
478
|
const getPercent = (value) => {
|
|
440
479
|
const { min, max } = props2;
|
|
441
|
-
if (value < toNumber(min))
|
|
480
|
+
if (value < toNumber(min)) {
|
|
442
481
|
return 0;
|
|
443
|
-
|
|
482
|
+
}
|
|
483
|
+
if (value > toNumber(max)) {
|
|
444
484
|
return scope.value / step;
|
|
485
|
+
}
|
|
445
486
|
return (value - toNumber(min)) / step;
|
|
446
487
|
};
|
|
447
488
|
if (props2.range && isArray(modelValue)) {
|
|
@@ -458,6 +499,46 @@ const __sfc__ = defineComponent({
|
|
|
458
499
|
call(props2["onUpdate:modelValue"], resetValue);
|
|
459
500
|
resetValidation();
|
|
460
501
|
}
|
|
502
|
+
function moveFocusingThumb(offset, value) {
|
|
503
|
+
const stepValue = Number(props2.step);
|
|
504
|
+
if (isArray(value)) {
|
|
505
|
+
const updatedFirstValue = value[0] + (focusingFirst.value ? offset * stepValue : 0);
|
|
506
|
+
const updatedSecondValue = value[1] + (focusingSecond.value ? offset * stepValue : 0);
|
|
507
|
+
return [updatedFirstValue, updatedSecondValue].map(toPrecision);
|
|
508
|
+
}
|
|
509
|
+
return toPrecision(value + offset * stepValue);
|
|
510
|
+
}
|
|
511
|
+
function handleKeydown(event) {
|
|
512
|
+
const keyToOffset = {
|
|
513
|
+
ArrowRight: 1,
|
|
514
|
+
ArrowUp: 1,
|
|
515
|
+
ArrowLeft: -1,
|
|
516
|
+
ArrowDown: -1
|
|
517
|
+
};
|
|
518
|
+
const { key } = event;
|
|
519
|
+
if (!hasOwn(keyToOffset, key) || isReadonly.value || isDisabled.value) {
|
|
520
|
+
return;
|
|
521
|
+
}
|
|
522
|
+
if (props2.range && !focusingFirst.value && !focusingSecond.value) {
|
|
523
|
+
return;
|
|
524
|
+
}
|
|
525
|
+
if (!props2.range && !focusingFirst.value) {
|
|
526
|
+
return;
|
|
527
|
+
}
|
|
528
|
+
preventDefault(event);
|
|
529
|
+
const offset = keyToOffset[key];
|
|
530
|
+
const value = moveFocusingThumb(offset, props2.modelValue);
|
|
531
|
+
emitChange(value);
|
|
532
|
+
}
|
|
533
|
+
function handleFocus(item) {
|
|
534
|
+
if (isDisabled.value) {
|
|
535
|
+
return;
|
|
536
|
+
}
|
|
537
|
+
item.handleFocusing(true);
|
|
538
|
+
}
|
|
539
|
+
function handleBlur(item) {
|
|
540
|
+
item.handleFocusing(false);
|
|
541
|
+
}
|
|
461
542
|
return {
|
|
462
543
|
Thumbs,
|
|
463
544
|
sliderEl,
|
|
@@ -467,6 +548,8 @@ const __sfc__ = defineComponent({
|
|
|
467
548
|
errorMessage,
|
|
468
549
|
thumbsProps,
|
|
469
550
|
thumbList,
|
|
551
|
+
handleFocus,
|
|
552
|
+
handleBlur,
|
|
470
553
|
n,
|
|
471
554
|
classes,
|
|
472
555
|
thumbStyle,
|