@sdata/web-vue 3.21.0 → 3.22.1
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/dist/sd.css +1 -0
- package/dist/sd.min.css +1 -1
- package/es/cascader/cascader-option.js +7 -3
- package/es/cascader/cascader-panel.vue.d.ts +1 -0
- package/es/cascader/cascader-panel.vue_vue_type_script_setup_true_lang.js +7 -2
- package/es/cascader/cascader.vue.d.ts +1 -0
- package/es/cascader/cascader.vue_vue_type_script_setup_true_lang.js +6 -1
- package/es/cascader/context.d.ts +1 -0
- package/es/cascader/style/index.css +1 -0
- package/es/cascader/style/index.scss +1 -0
- package/es/cascader/types.d.ts +2 -0
- package/es/index.css +1 -0
- package/es/select/index.d.ts +15 -0
- package/es/select/interface.d.ts +1 -0
- package/es/select/select.d.ts +9 -0
- package/es/select/select.js +13 -2
- package/es/sender/use-speech.js +32 -12
- package/es/tree-select/interface.d.ts +1 -0
- package/es/tree-select/panel.d.ts +1 -0
- package/es/tree-select/panel.js +5 -0
- package/es/tree-select/tree-select.vue.d.ts +9 -0
- package/es/tree-select/tree-select.vue_vue_type_script_setup_true_lang.js +18 -4
- package/json/vetur-attributes.json +6 -0
- package/json/vetur-tags.json +3 -1
- package/json/web-types.json +17 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getPrefixCls } from "../_utils/global-config.js";
|
|
2
2
|
import { isFunction } from "../_utils/is.js";
|
|
3
3
|
import IconLoading from "../icon/icon-loading/index.js";
|
|
4
|
-
import { PerformantEllipsis } from "../ellipsis/index.js";
|
|
4
|
+
import Ellipsis, { PerformantEllipsis } from "../ellipsis/index.js";
|
|
5
5
|
import IconRight from "../icon/icon-right/index.js";
|
|
6
6
|
import Checkbox from "../checkbox/index.js";
|
|
7
7
|
import Radio from "../radio/index.js";
|
|
@@ -82,15 +82,19 @@ var cascader_option_default = /* @__PURE__ */ defineComponent({
|
|
|
82
82
|
}
|
|
83
83
|
return getCheckedStatus(props.option, cascaderCtx.valueMap);
|
|
84
84
|
});
|
|
85
|
+
const renderEllipsis = (label) => {
|
|
86
|
+
if (cascaderCtx.ellipsis === false) return label;
|
|
87
|
+
return createVNode(cascaderCtx.ellipsis === "performant-ellipsis" ? PerformantEllipsis : Ellipsis, null, _isSlot(label) ? label : { default: () => [label] });
|
|
88
|
+
};
|
|
85
89
|
const renderLabelContent = () => {
|
|
86
90
|
var _cascaderCtx$slots;
|
|
87
91
|
if (props.pathLabel) {
|
|
88
92
|
var _cascaderCtx$formatLa, _cascaderCtx$formatLa2;
|
|
89
93
|
const label = (_cascaderCtx$formatLa = cascaderCtx === null || cascaderCtx === void 0 || (_cascaderCtx$formatLa2 = cascaderCtx.formatLabel) === null || _cascaderCtx$formatLa2 === void 0 ? void 0 : _cascaderCtx$formatLa2.call(cascaderCtx, props.option.path.map((item) => item.raw))) !== null && _cascaderCtx$formatLa !== void 0 ? _cascaderCtx$formatLa : getOptionLabel(props.option, { separator: cascaderCtx.separator });
|
|
90
|
-
return
|
|
94
|
+
return renderEllipsis(label);
|
|
91
95
|
}
|
|
92
96
|
if ((_cascaderCtx$slots = cascaderCtx.slots) === null || _cascaderCtx$slots === void 0 ? void 0 : _cascaderCtx$slots.option) return cascaderCtx.slots.option({ data: props.option });
|
|
93
|
-
return
|
|
97
|
+
return renderEllipsis(props.option.label);
|
|
94
98
|
};
|
|
95
99
|
const renderIcon = () => {
|
|
96
100
|
if (isLoading.value) return createVNode(IconLoading, null, null);
|
|
@@ -12,6 +12,7 @@ declare const __VLS_base: import("vue").DefineComponent<CascaderPanelProps, {},
|
|
|
12
12
|
"onUpdate:modelValue"?: ((value: CascaderModelValue) => any) | undefined;
|
|
13
13
|
}>, {
|
|
14
14
|
options: CascaderOption[];
|
|
15
|
+
ellipsis: boolean | "performant-ellipsis";
|
|
15
16
|
multiple: boolean;
|
|
16
17
|
valueKey: string;
|
|
17
18
|
expandTrigger: import("./types").CascaderExpandTrigger;
|
|
@@ -18,6 +18,10 @@ var cascader_panel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
18
18
|
type: Boolean,
|
|
19
19
|
default: false
|
|
20
20
|
},
|
|
21
|
+
ellipsis: {
|
|
22
|
+
type: [Boolean, String],
|
|
23
|
+
default: true
|
|
24
|
+
},
|
|
21
25
|
modelValue: {},
|
|
22
26
|
defaultValue: {},
|
|
23
27
|
options: { default: () => [] },
|
|
@@ -45,7 +49,7 @@ var cascader_panel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
45
49
|
if (pathMode) return;
|
|
46
50
|
return "";
|
|
47
51
|
};
|
|
48
|
-
const { options, checkStrictly, loadMore, modelValue, valueKey, expandChild, expandTrigger, multiple, pathMode } = toRefs(props);
|
|
52
|
+
const { options, checkStrictly, loadMore, modelValue, valueKey, expandChild, expandTrigger, multiple, ellipsis, pathMode } = toRefs(props);
|
|
49
53
|
const _value = ref((_props$defaultValue = props.defaultValue) !== null && _props$defaultValue !== void 0 ? _props$defaultValue : getDefaultValue(props.multiple, props.pathMode));
|
|
50
54
|
watch(modelValue, (nextModelValue) => {
|
|
51
55
|
if (isUndefined(nextModelValue) || isNull(nextModelValue)) _value.value = getDefaultValue(props.multiple, props.pathMode);
|
|
@@ -148,7 +152,8 @@ var cascader_panel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
148
152
|
addLazyLoadOptions,
|
|
149
153
|
slots,
|
|
150
154
|
valueMap: computedValueMap,
|
|
151
|
-
expandTrigger: expandTrigger.value
|
|
155
|
+
expandTrigger: expandTrigger.value,
|
|
156
|
+
ellipsis: ellipsis.value
|
|
152
157
|
}));
|
|
153
158
|
const handleKeyDown = getKeyDownHandler(/* @__PURE__ */ new Map([
|
|
154
159
|
[KEYBOARD_KEY.ENTER, (_ev) => {
|
|
@@ -54,6 +54,7 @@ declare const __VLS_base: import("vue").DefineComponent<CascaderProps, {}, {}, {
|
|
|
54
54
|
onShowChange?: ((visible: boolean) => any) | undefined;
|
|
55
55
|
}>, {
|
|
56
56
|
options: CascaderOption[];
|
|
57
|
+
ellipsis: boolean | "performant-ellipsis";
|
|
57
58
|
separator: string;
|
|
58
59
|
multiple: boolean;
|
|
59
60
|
disabled: boolean;
|
|
@@ -35,6 +35,10 @@ var cascader_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
35
35
|
type: Boolean,
|
|
36
36
|
default: false
|
|
37
37
|
},
|
|
38
|
+
ellipsis: {
|
|
39
|
+
type: [Boolean, String],
|
|
40
|
+
default: true
|
|
41
|
+
},
|
|
38
42
|
modelValue: {},
|
|
39
43
|
defaultValue: {},
|
|
40
44
|
options: { default: () => [] },
|
|
@@ -149,7 +153,7 @@ var cascader_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
149
153
|
if (pathMode) return;
|
|
150
154
|
return "";
|
|
151
155
|
};
|
|
152
|
-
const { options, checkStrictly, loadMore, formatLabel, modelValue, disabled, valueKey, expandTrigger, expandChild, pathMode, multiple, popupVisible, show, defaultPopupVisible, defaultShow, error, size, placeholder, loading, spinProps, maxTagCount, tagNowrap, popupContainer, floatingOptions, searchOptionOnlyLabel } = toRefs(props);
|
|
156
|
+
const { options, checkStrictly, loadMore, formatLabel, modelValue, disabled, valueKey, expandTrigger, expandChild, pathMode, multiple, ellipsis, popupVisible, show, defaultPopupVisible, defaultShow, error, size, placeholder, loading, spinProps, maxTagCount, tagNowrap, popupContainer, floatingOptions, searchOptionOnlyLabel } = toRefs(props);
|
|
153
157
|
const resolvedSpinProps = computed(() => _objectSpread2(_objectSpread2({}, configCtx === null || configCtx === void 0 ? void 0 : configCtx.cascaderSpinProps), spinProps.value));
|
|
154
158
|
const _value = ref((_props$defaultValue = props.defaultValue) !== null && _props$defaultValue !== void 0 ? _props$defaultValue : getDefaultValue(props.multiple, props.pathMode));
|
|
155
159
|
const _inputValue = ref(props.defaultInputValue);
|
|
@@ -405,6 +409,7 @@ var cascader_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
405
409
|
setSelectedPath,
|
|
406
410
|
loadMore,
|
|
407
411
|
expandTrigger,
|
|
412
|
+
ellipsis,
|
|
408
413
|
addLazyLoadOptions,
|
|
409
414
|
formatLabel,
|
|
410
415
|
separator: props.separator,
|
package/es/cascader/context.d.ts
CHANGED
|
@@ -136,6 +136,7 @@ $cascader-prefix-cls: string.unquote('#{theme.$prefix}-cascader');
|
|
|
136
136
|
color: $cascader-color-item-text;
|
|
137
137
|
font-size: $cascader-font-item-size;
|
|
138
138
|
line-height: $cascader-size-item-height;
|
|
139
|
+
text-align: left;
|
|
139
140
|
background-color: transparent;
|
|
140
141
|
cursor: pointer;
|
|
141
142
|
|
package/es/cascader/types.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export interface CascaderTriggerSlotProps {
|
|
|
20
20
|
export interface CascaderProps extends FitWidthProps {
|
|
21
21
|
pathMode?: boolean;
|
|
22
22
|
multiple?: boolean;
|
|
23
|
+
ellipsis?: boolean | 'performant-ellipsis';
|
|
23
24
|
modelValue?: CascaderModelValue;
|
|
24
25
|
defaultValue?: CascaderModelValue;
|
|
25
26
|
options?: CascaderOption[];
|
|
@@ -76,6 +77,7 @@ export type CascaderEmits = {
|
|
|
76
77
|
export interface CascaderPanelProps {
|
|
77
78
|
pathMode?: boolean;
|
|
78
79
|
multiple?: boolean;
|
|
80
|
+
ellipsis?: boolean | 'performant-ellipsis';
|
|
79
81
|
modelValue?: CascaderModelValue;
|
|
80
82
|
defaultValue?: CascaderModelValue;
|
|
81
83
|
options?: CascaderOption[];
|
package/es/index.css
CHANGED
|
@@ -17783,6 +17783,7 @@ body.sd-tour-active .sd-tour-popover * {
|
|
|
17783
17783
|
color: var(--sd-color-text-1);
|
|
17784
17784
|
font-size: 14px;
|
|
17785
17785
|
line-height: 36px;
|
|
17786
|
+
text-align: left;
|
|
17786
17787
|
background-color: transparent;
|
|
17787
17788
|
cursor: pointer;
|
|
17788
17789
|
}
|
package/es/select/index.d.ts
CHANGED
|
@@ -116,6 +116,10 @@ declare const Select: {
|
|
|
116
116
|
type: import("vue").PropType<import("./interface").SelectOption[]>;
|
|
117
117
|
default: () => never[];
|
|
118
118
|
};
|
|
119
|
+
ellipsis: {
|
|
120
|
+
type: import("vue").PropType<boolean | "performant-ellipsis">;
|
|
121
|
+
default: boolean;
|
|
122
|
+
};
|
|
119
123
|
virtualListProps: {
|
|
120
124
|
type: import("vue").PropType<import("../_components/virtual-list/interface").VirtualListProps>;
|
|
121
125
|
};
|
|
@@ -197,6 +201,7 @@ declare const Select: {
|
|
|
197
201
|
}, import("vue").PublicProps, {
|
|
198
202
|
options: import("./interface").SelectOption[];
|
|
199
203
|
show: boolean;
|
|
204
|
+
ellipsis: boolean | "performant-ellipsis";
|
|
200
205
|
scrollbar: boolean | import("..").ScrollbarProps;
|
|
201
206
|
multiple: boolean;
|
|
202
207
|
disabled: boolean;
|
|
@@ -1474,6 +1479,10 @@ declare const Select: {
|
|
|
1474
1479
|
type: import("vue").PropType<import("./interface").SelectOption[]>;
|
|
1475
1480
|
default: () => never[];
|
|
1476
1481
|
};
|
|
1482
|
+
ellipsis: {
|
|
1483
|
+
type: import("vue").PropType<boolean | "performant-ellipsis">;
|
|
1484
|
+
default: boolean;
|
|
1485
|
+
};
|
|
1477
1486
|
virtualListProps: {
|
|
1478
1487
|
type: import("vue").PropType<import("../_components/virtual-list/interface").VirtualListProps>;
|
|
1479
1488
|
};
|
|
@@ -1540,6 +1549,7 @@ declare const Select: {
|
|
|
1540
1549
|
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, {
|
|
1541
1550
|
options: import("./interface").SelectOption[];
|
|
1542
1551
|
show: boolean;
|
|
1552
|
+
ellipsis: boolean | "performant-ellipsis";
|
|
1543
1553
|
scrollbar: boolean | import("..").ScrollbarProps;
|
|
1544
1554
|
multiple: boolean;
|
|
1545
1555
|
disabled: boolean;
|
|
@@ -1691,6 +1701,10 @@ declare const Select: {
|
|
|
1691
1701
|
type: import("vue").PropType<import("./interface").SelectOption[]>;
|
|
1692
1702
|
default: () => never[];
|
|
1693
1703
|
};
|
|
1704
|
+
ellipsis: {
|
|
1705
|
+
type: import("vue").PropType<boolean | "performant-ellipsis">;
|
|
1706
|
+
default: boolean;
|
|
1707
|
+
};
|
|
1694
1708
|
virtualListProps: {
|
|
1695
1709
|
type: import("vue").PropType<import("../_components/virtual-list/interface").VirtualListProps>;
|
|
1696
1710
|
};
|
|
@@ -1772,6 +1786,7 @@ declare const Select: {
|
|
|
1772
1786
|
}, string, {
|
|
1773
1787
|
options: import("./interface").SelectOption[];
|
|
1774
1788
|
show: boolean;
|
|
1789
|
+
ellipsis: boolean | "performant-ellipsis";
|
|
1775
1790
|
scrollbar: boolean | import("..").ScrollbarProps;
|
|
1776
1791
|
multiple: boolean;
|
|
1777
1792
|
disabled: boolean;
|
package/es/select/interface.d.ts
CHANGED
|
@@ -56,6 +56,7 @@ export type FilterOption = boolean | ((inputValue: string, option: SelectOptionD
|
|
|
56
56
|
export type SelectFallbackOption = (value: SelectOptionValue) => SelectOptionData;
|
|
57
57
|
export interface SelectProps extends FitWidthProps {
|
|
58
58
|
options?: SelectOption[];
|
|
59
|
+
ellipsis?: boolean | 'performant-ellipsis';
|
|
59
60
|
multiple?: boolean;
|
|
60
61
|
value?: SelectModelValue;
|
|
61
62
|
modelValue?: SelectModelValue;
|
package/es/select/select.d.ts
CHANGED
|
@@ -121,6 +121,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
121
121
|
type: PropType<SelectOption[]>;
|
|
122
122
|
default: () => never[];
|
|
123
123
|
};
|
|
124
|
+
ellipsis: {
|
|
125
|
+
type: PropType<boolean | "performant-ellipsis">;
|
|
126
|
+
default: boolean;
|
|
127
|
+
};
|
|
124
128
|
virtualListProps: {
|
|
125
129
|
type: PropType<VirtualListProps>;
|
|
126
130
|
};
|
|
@@ -298,6 +302,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
298
302
|
type: PropType<SelectOption[]>;
|
|
299
303
|
default: () => never[];
|
|
300
304
|
};
|
|
305
|
+
ellipsis: {
|
|
306
|
+
type: PropType<boolean | "performant-ellipsis">;
|
|
307
|
+
default: boolean;
|
|
308
|
+
};
|
|
301
309
|
virtualListProps: {
|
|
302
310
|
type: PropType<VirtualListProps>;
|
|
303
311
|
};
|
|
@@ -364,6 +372,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
364
372
|
}>, {
|
|
365
373
|
options: SelectOption[];
|
|
366
374
|
show: boolean;
|
|
375
|
+
ellipsis: boolean | "performant-ellipsis";
|
|
367
376
|
scrollbar: boolean | ScrollbarProps;
|
|
368
377
|
multiple: boolean;
|
|
369
378
|
disabled: boolean;
|
package/es/select/select.js
CHANGED
|
@@ -13,6 +13,7 @@ import Tooltip from "../tooltip/index.js";
|
|
|
13
13
|
import { getKeyFromValue, hasEmptyStringKey, isGroupOptionInfo, isValidOption } from "./utils.js";
|
|
14
14
|
import { useSelect } from "./hooks/use-select.js";
|
|
15
15
|
import select_dropdown_default from "./select-dropdown.js";
|
|
16
|
+
import Ellipsis, { PerformantEllipsis } from "../ellipsis/index.js";
|
|
16
17
|
import { debounce } from "../_utils/debounce.js";
|
|
17
18
|
import select_view_default from "../_components/select-view/select-view.js";
|
|
18
19
|
import { useAllowSearch } from "../_hooks/use-allow-search.js";
|
|
@@ -169,6 +170,14 @@ var select_default = /* @__PURE__ */ defineComponent({
|
|
|
169
170
|
type: Array,
|
|
170
171
|
default: () => []
|
|
171
172
|
},
|
|
173
|
+
/**
|
|
174
|
+
* @zh 是否使用 Ellipsis 组件渲染选项。传入 `performant-ellipsis` 时使用高性能省略实现
|
|
175
|
+
* @en Whether to render options with the Ellipsis component. Use `performant-ellipsis` for the performant implementation
|
|
176
|
+
*/
|
|
177
|
+
ellipsis: {
|
|
178
|
+
type: [Boolean, String],
|
|
179
|
+
default: true
|
|
180
|
+
},
|
|
172
181
|
virtualListProps: { type: Object },
|
|
173
182
|
triggerProps: { type: Object },
|
|
174
183
|
floatingOptions: { type: Object },
|
|
@@ -478,8 +487,10 @@ var select_default = /* @__PURE__ */ defineComponent({
|
|
|
478
487
|
return props.multiple ? labels : (_labels$ = labels[0]) !== null && _labels$ !== void 0 ? _labels$ : "";
|
|
479
488
|
});
|
|
480
489
|
const triggerSelectedOptions = computed(() => selectViewValue.value.map((item) => item.option).filter((option) => Boolean(option)));
|
|
481
|
-
const
|
|
482
|
-
|
|
490
|
+
const renderOptionEllipsis = (label) => {
|
|
491
|
+
if (props.ellipsis === false) return label;
|
|
492
|
+
return createVNode(props.ellipsis === "performant-ellipsis" ? PerformantEllipsis : Ellipsis, null, _isSlot(label) ? label : { default: () => [label] });
|
|
493
|
+
};
|
|
483
494
|
const getOptionContentFunc = (optionInfo) => {
|
|
484
495
|
if (isFunction(slots.option)) return () => {
|
|
485
496
|
var _slots$option;
|
package/es/sender/use-speech.js
CHANGED
|
@@ -66,6 +66,7 @@ function useSpeech(allowSpeech, options) {
|
|
|
66
66
|
const sequence = shallowRef(0);
|
|
67
67
|
let generatedWorkletUrl;
|
|
68
68
|
let resolveWorkletFlush;
|
|
69
|
+
let workletReady = false;
|
|
69
70
|
let disposed = false;
|
|
70
71
|
const recording = computed(() => controlled.value && typeof config.value === "object" ? Boolean(config.value.recording) : internalRecording.value);
|
|
71
72
|
const available = computed(() => Boolean(config.value) && (controlled.value || supported.value) && !(captureError.value && isPermissionDeniedError(captureError.value.error)));
|
|
@@ -138,24 +139,33 @@ function useSpeech(allowSpeech, options) {
|
|
|
138
139
|
});
|
|
139
140
|
const releaseResources = function() {
|
|
140
141
|
var _ref = _asyncToGenerator(function* () {
|
|
141
|
-
var _workletNode$value2, _sourceNode$value, _stream$value, _audioContext$value
|
|
142
|
+
var _workletNode$value2, _sourceNode$value, _stream$value, _audioContext$value;
|
|
142
143
|
(_workletNode$value2 = workletNode.value) === null || _workletNode$value2 === void 0 || _workletNode$value2.disconnect();
|
|
143
144
|
(_sourceNode$value = sourceNode.value) === null || _sourceNode$value === void 0 || _sourceNode$value.disconnect();
|
|
144
145
|
(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((track) => track.stop());
|
|
145
|
-
if (((_audioContext$value = audioContext.value) === null || _audioContext$value === void 0 ? void 0 : _audioContext$value.state)
|
|
146
|
+
if (((_audioContext$value = audioContext.value) === null || _audioContext$value === void 0 ? void 0 : _audioContext$value.state) === "running") yield audioContext.value.suspend();
|
|
146
147
|
if (socket.value && (socket.value.readyState === WebSocket.OPEN || socket.value.readyState === WebSocket.CONNECTING)) socket.value.close(1e3, "speech-ended");
|
|
147
148
|
workletNode.value = void 0;
|
|
148
149
|
sourceNode.value = void 0;
|
|
149
150
|
stream.value = void 0;
|
|
150
|
-
audioContext.value = void 0;
|
|
151
151
|
socket.value = void 0;
|
|
152
152
|
});
|
|
153
153
|
return function releaseResources() {
|
|
154
154
|
return _ref.apply(this, arguments);
|
|
155
155
|
};
|
|
156
156
|
}();
|
|
157
|
+
const closeAudioContext = function() {
|
|
158
|
+
var _ref2 = _asyncToGenerator(function* () {
|
|
159
|
+
if (audioContext.value && audioContext.value.state !== "closed") yield audioContext.value.close();
|
|
160
|
+
audioContext.value = void 0;
|
|
161
|
+
workletReady = false;
|
|
162
|
+
});
|
|
163
|
+
return function closeAudioContext() {
|
|
164
|
+
return _ref2.apply(this, arguments);
|
|
165
|
+
};
|
|
166
|
+
}();
|
|
157
167
|
const stopCapture = function() {
|
|
158
|
-
var
|
|
168
|
+
var _ref3 = _asyncToGenerator(function* (reason = "manual") {
|
|
159
169
|
var _socket$value, _config$value$onRecor, _config$value;
|
|
160
170
|
if (!internalRecording.value) return;
|
|
161
171
|
yield flushWorklet();
|
|
@@ -177,11 +187,11 @@ function useSpeech(allowSpeech, options) {
|
|
|
177
187
|
});
|
|
178
188
|
});
|
|
179
189
|
return function stopCapture() {
|
|
180
|
-
return
|
|
190
|
+
return _ref3.apply(this, arguments);
|
|
181
191
|
};
|
|
182
192
|
}();
|
|
183
193
|
const startCapture = function() {
|
|
184
|
-
var
|
|
194
|
+
var _ref4 = _asyncToGenerator(function* () {
|
|
185
195
|
if (requesting.value || internalRecording.value || !available.value) return;
|
|
186
196
|
requesting.value = true;
|
|
187
197
|
captureError.value = void 0;
|
|
@@ -207,10 +217,18 @@ function useSpeech(allowSpeech, options) {
|
|
|
207
217
|
}
|
|
208
218
|
}
|
|
209
219
|
phase = "audioContext";
|
|
210
|
-
|
|
211
|
-
|
|
220
|
+
let nextAudioContext = audioContext.value;
|
|
221
|
+
if (!nextAudioContext) {
|
|
222
|
+
nextAudioContext = resolveAudioContext();
|
|
223
|
+
audioContext.value = nextAudioContext;
|
|
224
|
+
workletReady = false;
|
|
225
|
+
}
|
|
226
|
+
if (nextAudioContext.state === "suspended") yield nextAudioContext.resume();
|
|
212
227
|
phase = "audioWorklet";
|
|
213
|
-
|
|
228
|
+
if (!workletReady) {
|
|
229
|
+
yield nextAudioContext.audioWorklet.addModule(resolveWorkletUrl());
|
|
230
|
+
workletReady = true;
|
|
231
|
+
}
|
|
214
232
|
if (disposed) {
|
|
215
233
|
yield releaseResources();
|
|
216
234
|
return;
|
|
@@ -271,16 +289,17 @@ function useSpeech(allowSpeech, options) {
|
|
|
271
289
|
captureError.value = errorEvent;
|
|
272
290
|
options.onError(errorEvent);
|
|
273
291
|
yield releaseResources();
|
|
292
|
+
yield closeAudioContext();
|
|
274
293
|
} finally {
|
|
275
294
|
requesting.value = false;
|
|
276
295
|
}
|
|
277
296
|
});
|
|
278
297
|
return function startCapture() {
|
|
279
|
-
return
|
|
298
|
+
return _ref4.apply(this, arguments);
|
|
280
299
|
};
|
|
281
300
|
}();
|
|
282
301
|
const trigger = function() {
|
|
283
|
-
var
|
|
302
|
+
var _ref5 = _asyncToGenerator(function* (breakRecording = false) {
|
|
284
303
|
if (breakRecording && !recording.value) return;
|
|
285
304
|
if (controlled.value && typeof config.value === "object") {
|
|
286
305
|
var _config$value$onRecor2, _config$value2;
|
|
@@ -307,7 +326,7 @@ function useSpeech(allowSpeech, options) {
|
|
|
307
326
|
else yield startCapture();
|
|
308
327
|
});
|
|
309
328
|
return function trigger() {
|
|
310
|
-
return
|
|
329
|
+
return _ref5.apply(this, arguments);
|
|
311
330
|
};
|
|
312
331
|
}();
|
|
313
332
|
onMounted(() => {
|
|
@@ -324,6 +343,7 @@ function useSpeech(allowSpeech, options) {
|
|
|
324
343
|
disposed = true;
|
|
325
344
|
if (internalRecording.value) yield stopCapture("unmount");
|
|
326
345
|
else yield releaseResources();
|
|
346
|
+
yield closeAudioContext();
|
|
327
347
|
if (generatedWorkletUrl) URL.revokeObjectURL(generatedWorkletUrl);
|
|
328
348
|
}));
|
|
329
349
|
return {
|
|
@@ -47,6 +47,7 @@ export interface TreeSelectProps extends FitWidthProps {
|
|
|
47
47
|
fieldNames: TreeFieldNames | undefined;
|
|
48
48
|
data: TreeNodeData[];
|
|
49
49
|
options: TreeNodeData[] | undefined;
|
|
50
|
+
ellipsis: TreeProps['ellipsis'] | undefined;
|
|
50
51
|
labelInValue: boolean;
|
|
51
52
|
treeCheckable: boolean;
|
|
52
53
|
checkable: boolean | undefined;
|
|
@@ -4,6 +4,7 @@ import { ScrollbarProps } from '../scrollbar';
|
|
|
4
4
|
import { TreeProps, TreeNodeKey } from '../tree/interface';
|
|
5
5
|
type TreeSelectPanelComponent = DefineComponent<{
|
|
6
6
|
treeProps: Partial<TreeProps> | undefined;
|
|
7
|
+
ellipsis: TreeProps['ellipsis'];
|
|
7
8
|
selectedKeys: TreeNodeKey[] | undefined;
|
|
8
9
|
showCheckable: boolean;
|
|
9
10
|
treeSlots: Slots;
|
package/es/tree-select/panel.js
CHANGED
|
@@ -16,6 +16,10 @@ var panel_default = /* @__PURE__ */ defineComponent({
|
|
|
16
16
|
type: Object,
|
|
17
17
|
default: () => ({})
|
|
18
18
|
},
|
|
19
|
+
ellipsis: {
|
|
20
|
+
type: [Boolean, String],
|
|
21
|
+
default: false
|
|
22
|
+
},
|
|
19
23
|
selectedKeys: { type: Array },
|
|
20
24
|
showCheckable: { type: Boolean },
|
|
21
25
|
treeSlots: {
|
|
@@ -54,6 +58,7 @@ var panel_default = /* @__PURE__ */ defineComponent({
|
|
|
54
58
|
};
|
|
55
59
|
const renderTree = () => {
|
|
56
60
|
return createVNode(Tree, mergeProps({ "ref": refTree }, computedTreeProps.value, {
|
|
61
|
+
"ellipsis": props.ellipsis,
|
|
57
62
|
"onSelect": onSelect,
|
|
58
63
|
"onCheck": onCheck
|
|
59
64
|
}), props.treeSlots);
|
|
@@ -111,6 +111,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
111
111
|
options: {
|
|
112
112
|
type: PropType<TreeNodeData[]>;
|
|
113
113
|
};
|
|
114
|
+
ellipsis: {
|
|
115
|
+
type: PropType<TreeProps["ellipsis"]>;
|
|
116
|
+
default: undefined;
|
|
117
|
+
};
|
|
114
118
|
labelInValue: {
|
|
115
119
|
type: BooleanConstructor;
|
|
116
120
|
};
|
|
@@ -302,6 +306,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
302
306
|
options: {
|
|
303
307
|
type: PropType<TreeNodeData[]>;
|
|
304
308
|
};
|
|
309
|
+
ellipsis: {
|
|
310
|
+
type: PropType<TreeProps["ellipsis"]>;
|
|
311
|
+
default: undefined;
|
|
312
|
+
};
|
|
305
313
|
labelInValue: {
|
|
306
314
|
type: BooleanConstructor;
|
|
307
315
|
};
|
|
@@ -420,6 +428,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
420
428
|
"onPopup-visible-change"?: ((_visible: boolean) => any) | undefined;
|
|
421
429
|
}>, {
|
|
422
430
|
show: boolean;
|
|
431
|
+
ellipsis: import("../tree/interface").TreeEllipsis;
|
|
423
432
|
separator: string;
|
|
424
433
|
scrollbar: boolean | ScrollbarProps;
|
|
425
434
|
border: boolean;
|
|
@@ -167,6 +167,14 @@ var tree_select_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
167
167
|
* */
|
|
168
168
|
options: { type: Array },
|
|
169
169
|
/**
|
|
170
|
+
* @zh 是否使用 Ellipsis 组件渲染选项。传入 `performant-ellipsis` 时使用高性能省略实现
|
|
171
|
+
* @en Whether to render options with the Ellipsis component. Use `performant-ellipsis` for the performant implementation
|
|
172
|
+
*/
|
|
173
|
+
ellipsis: {
|
|
174
|
+
type: [Boolean, String],
|
|
175
|
+
default: void 0
|
|
176
|
+
},
|
|
177
|
+
/**
|
|
170
178
|
* @zh 设置value格式。默认是string,设置为true时候,value格式为: { label: string, value: string }
|
|
171
179
|
* @en Set the value format. The default is string, when set to true, the value format is: {label: string, value: string}
|
|
172
180
|
* */
|
|
@@ -439,8 +447,8 @@ var tree_select_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
439
447
|
});
|
|
440
448
|
const { mergedAllowClear } = useAllowClear(computed(() => props.allowClear || props.clearable));
|
|
441
449
|
const { mergedDropdownVirtualListProps } = useDropdownVirtualListProps(computed(() => {
|
|
442
|
-
var _props$virtualListPro, _treeProps$value;
|
|
443
|
-
return (_props$virtualListPro = props.virtualListProps) !== null && _props$virtualListPro !== void 0 ? _props$virtualListPro : (_treeProps$value = treeProps.value) === null || _treeProps$value === void 0 ? void 0 : _treeProps$value.virtualListProps;
|
|
450
|
+
var _ref, _props$virtualListPro, _treeProps$value;
|
|
451
|
+
return (_ref = (_props$virtualListPro = props.virtualListProps) !== null && _props$virtualListPro !== void 0 ? _props$virtualListPro : (_treeProps$value = treeProps.value) === null || _treeProps$value === void 0 ? void 0 : _treeProps$value.virtualListProps) !== null && _ref !== void 0 ? _ref : props.virtualScroll === true ? {} : void 0;
|
|
444
452
|
}));
|
|
445
453
|
const TreeSelectEmpty = configCtx === null || configCtx === void 0 || (_configCtx$slots$empt = (_configCtx$slots = configCtx.slots).empty) === null || _configCtx$slots$empt === void 0 || (_configCtx$slots$empt = _configCtx$slots$empt.call(_configCtx$slots, { component: "tree-select" })) === null || _configCtx$slots$empt === void 0 ? void 0 : _configCtx$slots$empt[0];
|
|
446
454
|
const mergedModelValue = computed(() => modelValue.value);
|
|
@@ -454,9 +462,13 @@ var tree_select_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
454
462
|
return (_checkStrategy$value = checkStrategy.value) !== null && _checkStrategy$value !== void 0 ? _checkStrategy$value : props.treeCheckedStrategy;
|
|
455
463
|
});
|
|
456
464
|
const mergedTreeProps = computed(() => {
|
|
465
|
+
var _ref3, _props$ellipsis2, _treeProps$value3;
|
|
457
466
|
const resolvedVirtualListProps = resolveDropdownVirtualListProps(mergedDropdownVirtualListProps.value, props.triggerProps);
|
|
458
|
-
if (virtualScroll.value !== false)
|
|
459
|
-
|
|
467
|
+
if (virtualScroll.value !== false) {
|
|
468
|
+
var _ref2, _props$ellipsis, _treeProps$value2;
|
|
469
|
+
return _objectSpread2(_objectSpread2({}, treeProps.value), {}, { ellipsis: (_ref2 = (_props$ellipsis = props.ellipsis) !== null && _props$ellipsis !== void 0 ? _props$ellipsis : (_treeProps$value2 = treeProps.value) === null || _treeProps$value2 === void 0 ? void 0 : _treeProps$value2.ellipsis) !== null && _ref2 !== void 0 ? _ref2 : true }, resolvedVirtualListProps ? { virtualListProps: resolvedVirtualListProps } : {});
|
|
470
|
+
}
|
|
471
|
+
const nextTreeProps = _objectSpread2(_objectSpread2({}, treeProps.value), {}, { ellipsis: (_ref3 = (_props$ellipsis2 = props.ellipsis) !== null && _props$ellipsis2 !== void 0 ? _props$ellipsis2 : (_treeProps$value3 = treeProps.value) === null || _treeProps$value3 === void 0 ? void 0 : _treeProps$value3.ellipsis) !== null && _ref3 !== void 0 ? _ref3 : true });
|
|
460
472
|
delete nextTreeProps.virtualListProps;
|
|
461
473
|
return nextTreeProps;
|
|
462
474
|
});
|
|
@@ -672,6 +684,7 @@ var tree_select_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
672
684
|
"selected-keys": unref(selectedKeys),
|
|
673
685
|
"show-checkable": mergedTreeCheckable.value,
|
|
674
686
|
scrollbar: __props.scrollbar,
|
|
687
|
+
ellipsis: mergedTreeProps.value.ellipsis,
|
|
675
688
|
"tree-props": _objectSpread2(_objectSpread2({
|
|
676
689
|
actionOnNodeClick: unref(selectable) === "leaf" ? "expand" : void 0,
|
|
677
690
|
blockNode: true
|
|
@@ -694,6 +707,7 @@ var tree_select_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
694
707
|
"selected-keys",
|
|
695
708
|
"show-checkable",
|
|
696
709
|
"scrollbar",
|
|
710
|
+
"ellipsis",
|
|
697
711
|
"tree-props",
|
|
698
712
|
"tree-slots"
|
|
699
713
|
])),
|
|
@@ -2986,6 +2986,9 @@
|
|
|
2986
2986
|
"description": "Whether it is read-only",
|
|
2987
2987
|
"type": "boolean|string"
|
|
2988
2988
|
},
|
|
2989
|
+
"sd-select/ellipsis": {
|
|
2990
|
+
"description": "Whether to render options with the Ellipsis component. Use `performant-ellipsis` for the performant implementation"
|
|
2991
|
+
},
|
|
2989
2992
|
"sd-sender-header/open": {
|
|
2990
2993
|
"description": "Whether the header is expanded",
|
|
2991
2994
|
"type": "boolean"
|
|
@@ -4309,6 +4312,9 @@
|
|
|
4309
4312
|
"sd-tree-select/options": {
|
|
4310
4313
|
"description": "Data, Naive compatibility alias"
|
|
4311
4314
|
},
|
|
4315
|
+
"sd-tree-select/ellipsis": {
|
|
4316
|
+
"description": "Whether to render options with the Ellipsis component. Use `performant-ellipsis` for the performant implementation"
|
|
4317
|
+
},
|
|
4312
4318
|
"sd-tree-select/label-in-value": {
|
|
4313
4319
|
"description": "Set the value format. The default is string, when set to true, the value format is: {label: string, value: string}",
|
|
4314
4320
|
"type": "boolean"
|
package/json/vetur-tags.json
CHANGED
|
@@ -1211,7 +1211,8 @@
|
|
|
1211
1211
|
"fit-width",
|
|
1212
1212
|
"max-wfull",
|
|
1213
1213
|
"spin-props",
|
|
1214
|
-
"readonly"
|
|
1214
|
+
"readonly",
|
|
1215
|
+
"ellipsis"
|
|
1215
1216
|
]
|
|
1216
1217
|
},
|
|
1217
1218
|
"sd-selectable-card": {
|
|
@@ -1726,6 +1727,7 @@
|
|
|
1726
1727
|
"field-names",
|
|
1727
1728
|
"data",
|
|
1728
1729
|
"options",
|
|
1730
|
+
"ellipsis",
|
|
1729
1731
|
"label-in-value",
|
|
1730
1732
|
"tree-checkable",
|
|
1731
1733
|
"checkable",
|
package/json/web-types.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
|
|
3
3
|
"framework": "vue",
|
|
4
4
|
"name": "@sdata/web-vue",
|
|
5
|
-
"version": "3.
|
|
5
|
+
"version": "3.22.0",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"types-syntax": "typescript",
|
|
@@ -7277,6 +7277,14 @@
|
|
|
7277
7277
|
"type": "boolean|string",
|
|
7278
7278
|
"kind": "expression"
|
|
7279
7279
|
}
|
|
7280
|
+
},
|
|
7281
|
+
{
|
|
7282
|
+
"name": "ellipsis",
|
|
7283
|
+
"description": "Whether to render options with the Ellipsis component. Use `performant-ellipsis` for the performant implementation",
|
|
7284
|
+
"value": {
|
|
7285
|
+
"type": "boolean | 'performant-ellipsis'",
|
|
7286
|
+
"kind": "expression"
|
|
7287
|
+
}
|
|
7280
7288
|
}
|
|
7281
7289
|
],
|
|
7282
7290
|
"events": [],
|
|
@@ -10407,6 +10415,14 @@
|
|
|
10407
10415
|
"kind": "expression"
|
|
10408
10416
|
}
|
|
10409
10417
|
},
|
|
10418
|
+
{
|
|
10419
|
+
"name": "ellipsis",
|
|
10420
|
+
"description": "Whether to render options with the Ellipsis component. Use `performant-ellipsis` for the performant implementation",
|
|
10421
|
+
"value": {
|
|
10422
|
+
"type": "TreeProps['ellipsis']",
|
|
10423
|
+
"kind": "expression"
|
|
10424
|
+
}
|
|
10425
|
+
},
|
|
10410
10426
|
{
|
|
10411
10427
|
"name": "label-in-value",
|
|
10412
10428
|
"description": "Set the value format. The default is string, when set to true, the value format is: {label: string, value: string}",
|