hys-ui 0.1.0 → 0.2.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/CHANGELOG.md +137 -1
- package/README.md +18 -6
- package/dist/components/HysAccordion/HysAccordion.vue.js +1 -1
- package/dist/components/HysAccordion/HysAccordion2.vue.js +181 -47
- package/dist/components/HysAlert/HysAlert.vue.js +14 -14
- package/dist/components/HysAnimatedNumber/HysAnimatedNumber.vue.js +23 -20
- package/dist/components/HysAutocomplete/HysAutocomplete.vue.js +7 -0
- package/dist/components/HysAutocomplete/HysAutocomplete2.vue.js +627 -0
- package/dist/components/HysAvatar/HysAvatar.vue.js +5 -35
- package/dist/components/HysAvatar/HysAvatar2.vue.js +221 -2
- package/dist/components/HysAvatarGroup/HysAvatarGroup.vue.js +7 -0
- package/dist/components/HysAvatarGroup/HysAvatarGroup2.vue.js +252 -0
- package/dist/components/HysBadge/HysBadge.vue.js +2 -2
- package/dist/components/HysBadge/HysBadge2.vue.js +154 -26
- package/dist/components/HysBreadcrumb/HysBreadcrumb.vue.js +5 -38
- package/dist/components/HysBreadcrumb/HysBreadcrumb2.vue.js +74 -2
- package/dist/components/HysButton/HysButton.vue.js +2 -2
- package/dist/components/HysButton/HysButton2.vue.js +29 -28
- package/dist/components/HysCalendar/HysCalendar.vue.js +5 -84
- package/dist/components/HysCalendar/HysCalendar2.vue.js +803 -2
- package/dist/components/HysCard/HysCard.vue.js +1 -1
- package/dist/components/HysCard/HysCard2.vue.js +177 -44
- package/dist/components/HysCascader/HysCascader.vue.js +5 -182
- package/dist/components/HysCascader/HysCascader2.vue.js +760 -2
- package/dist/components/HysCascader/HysCascaderColumn.vue.js +7 -0
- package/dist/components/HysCascader/HysCascaderColumn2.vue.js +232 -0
- package/dist/components/HysCheckbox/HysCheckbox.vue.js +5 -39
- package/dist/components/HysCheckbox/HysCheckbox2.vue.js +200 -2
- package/dist/components/HysCheckboxGroup/HysCheckboxGroup.vue.js +7 -0
- package/dist/components/HysCheckboxGroup/HysCheckboxGroup2.vue.js +237 -0
- package/dist/components/HysColorPicker/HysColorPicker.vue.js +2 -2
- package/dist/components/HysColorPicker/HysColorPicker2.vue.js +107 -106
- package/dist/components/HysCommandPalette/HysCommandPalette.vue.js +52 -51
- package/dist/components/HysCommentEditor/HysCommentEditor.vue.js +17 -17
- package/dist/components/HysDataGrid/HysDataGrid.vue.js +1 -1
- package/dist/components/HysDataGrid/HysDataGrid2.vue.js +397 -390
- package/dist/components/HysDatePicker/HysDatePicker.vue.js +268 -139
- package/dist/components/HysDatePicker/HysDatePickerControl.vue.js +7 -0
- package/dist/components/HysDatePicker/HysDatePickerControl2.vue.js +807 -0
- package/dist/components/HysDatePicker/HysDatePickerPanel.vue.js +7 -0
- package/dist/components/HysDatePicker/HysDatePickerPanel2.vue.js +357 -0
- package/dist/components/HysDateRangePicker/HysDateRangePicker.vue.js +268 -158
- package/dist/components/HysDivider/HysDivider.vue.js +2 -2
- package/dist/components/HysDivider/HysDivider2.vue.js +33 -13
- package/dist/components/HysDrawer/HysDrawer.vue.js +1 -1
- package/dist/components/HysDrawer/HysDrawer2.vue.js +55 -54
- package/dist/components/HysFileManager/HysFileManager.vue.js +5 -63
- package/dist/components/HysFileManager/HysFileManager2.vue.js +86 -2
- package/dist/components/HysForm/HysForm.vue.js +3 -3
- package/dist/components/HysForm/HysForm2.vue.js +580 -92
- package/dist/components/HysFormItem/HysFormItem.vue.js +5 -69
- package/dist/components/HysFormItem/HysFormItem2.vue.js +521 -2
- package/dist/components/HysGantt/HysGantt.vue.js +5 -264
- package/dist/components/HysGantt/HysGantt2.vue.js +1399 -2
- package/dist/components/HysInput/HysInput.vue.js +2 -2
- package/dist/components/HysInput/HysInput2.vue.js +468 -120
- package/dist/components/HysMention/HysMention.vue.js +2 -2
- package/dist/components/HysMention/HysMention2.vue.js +89 -88
- package/dist/components/HysModal/HysModal.vue.js +2 -2
- package/dist/components/HysModal/HysModal2.vue.js +35 -35
- package/dist/components/HysNotificationCenter/HysNotificationCenter.vue.js +37 -36
- package/dist/components/HysNumberInput/HysNumberInput.vue.js +2 -2
- package/dist/components/HysNumberInput/HysNumberInput2.vue.js +561 -70
- package/dist/components/HysOrgTree/HysOrgTree.vue.js +41 -36
- package/dist/components/HysPagination/HysPagination.vue.js +2 -2
- package/dist/components/HysPagination/HysPagination2.vue.js +93 -91
- package/dist/components/HysPermissionMatrix/HysPermissionMatrix.vue.js +5 -41
- package/dist/components/HysPermissionMatrix/HysPermissionMatrix2.vue.js +101 -2
- package/dist/components/HysRadio/HysRadio.vue.js +7 -0
- package/dist/components/HysRadio/HysRadio2.vue.js +180 -0
- package/dist/components/HysRadioGroup/HysRadioGroup.vue.js +5 -40
- package/dist/components/HysRadioGroup/HysRadioGroup2.vue.js +205 -2
- package/dist/components/HysRating/HysRating.vue.js +1 -1
- package/dist/components/HysRating/HysRating2.vue.js +288 -68
- package/dist/components/HysResizablePanel/HysResizablePanel.vue.js +46 -28
- package/dist/components/HysRichTextEditor/HysRichTextEditor.vue.js +2 -2
- package/dist/components/HysRichTextEditor/HysRichTextEditor2.vue.js +87 -67
- package/dist/components/HysSearch/HysSearch.vue.js +50 -38
- package/dist/components/HysSegmented/HysSegmented.vue.js +5 -58
- package/dist/components/HysSegmented/HysSegmented2.vue.js +273 -2
- package/dist/components/HysSelect/HysSelect.vue.js +3 -2
- package/dist/components/HysSelect/HysSelect2.vue.js +859 -164
- package/dist/components/HysSkeleton/HysSkeleton.vue.js +2 -2
- package/dist/components/HysSkeleton/HysSkeleton2.vue.js +126 -29
- package/dist/components/HysSlider/HysSlider.vue.js +2 -2
- package/dist/components/HysSlider/HysSlider2.vue.js +532 -59
- package/dist/components/HysSlider/SliderTooltip.vue.js +7 -0
- package/dist/components/HysSlider/SliderTooltip2.vue.js +156 -0
- package/dist/components/HysSplitPane/HysSplitPane.vue.js +48 -42
- package/dist/components/HysSteps/HysSteps.vue.js +2 -2
- package/dist/components/HysSteps/HysSteps2.vue.js +111 -36
- package/dist/components/HysSwitch/HysSwitch.vue.js +2 -2
- package/dist/components/HysSwitch/HysSwitch2.vue.js +235 -42
- package/dist/components/HysTable/HysTable.vue.js +1 -1
- package/dist/components/HysTable/HysTable2.vue.js +1471 -82
- package/dist/components/HysTable/HysTableFilterOptions.vue.js +7 -0
- package/dist/components/HysTable/HysTableFilterOptions2.vue.js +133 -0
- package/dist/components/HysTabs/HysTabs.vue.js +2 -2
- package/dist/components/HysTabs/HysTabs2.vue.js +262 -66
- package/dist/components/HysTagInput/HysTagInput.vue.js +43 -42
- package/dist/components/HysTextarea/HysTextarea.vue.js +137 -66
- package/dist/components/HysToast/HysToast.vue.js +2 -2
- package/dist/components/HysToast/HysToast2.vue.js +121 -38
- package/dist/components/HysTour/HysTour.vue.js +47 -42
- package/dist/components/HysTransfer/HysTransfer.vue.js +5 -207
- package/dist/components/HysTransfer/HysTransfer2.vue.js +416 -2
- package/dist/components/HysTransfer/HysTransferPanel.vue.js +7 -0
- package/dist/components/HysTransfer/HysTransferPanel2.vue.js +454 -0
- package/dist/components/HysTree/HysTree.vue.js +2 -3
- package/dist/components/HysTree/HysTree2.vue.js +641 -301
- package/dist/components/HysTreeSelect/HysTreeSelect.vue.js +5 -129
- package/dist/components/HysTreeSelect/HysTreeSelect2.vue.js +558 -2
- package/dist/components/HysTreeSelect/HysTreeSelectPanel.vue.js +7 -0
- package/dist/components/HysTreeSelect/HysTreeSelectPanel2.vue.js +323 -0
- package/dist/components/HysUpload/HysUpload.vue.js +2 -2
- package/dist/components/HysUpload/HysUpload2.vue.js +97 -78
- package/dist/composables/autocomplete.js +50 -0
- package/dist/composables/avatar.js +57 -0
- package/dist/composables/calendar.js +96 -0
- package/dist/composables/cascader.js +79 -0
- package/dist/composables/choice.js +38 -0
- package/dist/composables/choiceModel.js +67 -0
- package/dist/composables/datePicker.js +227 -0
- package/dist/composables/formContext.js +94 -3
- package/dist/composables/formLayout.js +57 -0
- package/dist/composables/formValidation.js +240 -0
- package/dist/composables/ganttConflicts.js +143 -0
- package/dist/composables/numberInput.js +91 -0
- package/dist/composables/rating.js +16 -0
- package/dist/composables/selectOptions.js +54 -0
- package/dist/composables/table.js +150 -0
- package/dist/composables/textInput.js +34 -0
- package/dist/composables/toastEscape.js +16 -0
- package/dist/composables/transfer.js +63 -0
- package/dist/composables/tree.js +118 -0
- package/dist/composables/treeSelect.js +71 -0
- package/dist/composables/useCascader.js +438 -0
- package/dist/composables/useDatePicker.js +425 -0
- package/dist/composables/useDialog.js +16 -16
- package/dist/composables/useFloating.js +98 -52
- package/dist/composables/useGanttDependencies.js +306 -0
- package/dist/composables/useGanttHistory.js +157 -0
- package/dist/composables/useGanttLabelResize.js +100 -0
- package/dist/composables/useHysToast.js +148 -0
- package/dist/composables/useTable.js +474 -0
- package/dist/composables/useTextareaSize.js +72 -0
- package/dist/composables/useTransfer.js +257 -0
- package/dist/composables/useTree.js +439 -0
- package/dist/composables/useTreeSelect.js +361 -0
- package/dist/config.js +18 -15
- package/dist/index.js +149 -136
- package/dist/style.css +1 -1
- package/dist/types/components/HysAccordion/HysAccordion.vue.d.ts +61 -22
- package/dist/types/components/HysAutocomplete/HysAutocomplete.vue.d.ts +201 -0
- package/dist/types/components/HysAvatar/HysAvatar.vue.d.ts +28 -15
- package/dist/types/components/HysAvatarGroup/HysAvatarGroup.vue.d.ts +99 -0
- package/dist/types/components/HysBadge/HysBadge.vue.d.ts +41 -4
- package/dist/types/components/HysBreadcrumb/HysBreadcrumb.vue.d.ts +38 -10
- package/dist/types/components/HysButton/HysButton.vue.d.ts +0 -1
- package/dist/types/components/HysCalendar/HysCalendar.vue.d.ts +119 -29
- package/dist/types/components/HysCard/HysCard.vue.d.ts +57 -5
- package/dist/types/components/HysCascader/HysCascader.vue.d.ts +129 -41
- package/dist/types/components/HysCascader/HysCascaderColumn.vue.d.ts +55 -0
- package/dist/types/components/HysCheckbox/HysCheckbox.vue.d.ts +55 -27
- package/dist/types/components/HysCheckboxGroup/HysCheckboxGroup.vue.d.ts +73 -0
- package/dist/types/components/HysDataGrid/HysDataGrid.vue.d.ts +1 -1
- package/dist/types/components/HysDatePicker/HysDatePicker.vue.d.ts +66 -14
- package/dist/types/components/HysDatePicker/HysDatePickerControl.vue.d.ts +90 -0
- package/dist/types/components/HysDatePicker/HysDatePickerPanel.vue.d.ts +93 -0
- package/dist/types/components/HysDateRangePicker/HysDateRangePicker.vue.d.ts +66 -14
- package/dist/types/components/HysDivider/HysDivider.vue.d.ts +8 -3
- package/dist/types/components/HysDrawer/HysDrawer.vue.d.ts +1 -0
- package/dist/types/components/HysFileManager/HysFileManager.vue.d.ts +8 -4
- package/dist/types/components/HysForm/HysForm.vue.d.ts +110 -18
- package/dist/types/components/HysFormItem/HysFormItem.vue.d.ts +108 -2
- package/dist/types/components/HysGantt/HysGantt.vue.d.ts +88 -4
- package/dist/types/components/HysInput/HysInput.vue.d.ts +52 -29
- package/dist/types/components/HysMention/HysMention.vue.d.ts +2 -2
- package/dist/types/components/HysNumberInput/HysNumberInput.vue.d.ts +93 -33
- package/dist/types/components/HysOrgTree/HysOrgTree.vue.d.ts +4 -1
- package/dist/types/components/HysPagination/HysPagination.vue.d.ts +1 -1
- package/dist/types/components/HysPermissionMatrix/HysPermissionMatrix.vue.d.ts +8 -1
- package/dist/types/components/HysPopover/HysPopover.vue.d.ts +3 -3
- package/dist/types/components/HysProgress/HysProgress.vue.d.ts +1 -1
- package/dist/types/components/HysRadio/HysRadio.vue.d.ts +56 -0
- package/dist/types/components/HysRadioGroup/HysRadioGroup.vue.d.ts +62 -17
- package/dist/types/components/HysRating/HysRating.vue.d.ts +85 -5
- package/dist/types/components/HysResizablePanel/HysResizablePanel.vue.d.ts +6 -0
- package/dist/types/components/HysRichTextEditor/HysRichTextEditor.vue.d.ts +4 -4
- package/dist/types/components/HysSearch/HysSearch.vue.d.ts +2 -2
- package/dist/types/components/HysSegmented/HysSegmented.vue.d.ts +64 -32
- package/dist/types/components/HysSelect/HysSelect.vue.d.ts +120 -14
- package/dist/types/components/HysSkeleton/HysSkeleton.vue.d.ts +30 -2
- package/dist/types/components/HysSlider/HysSlider.vue.d.ts +66 -9
- package/dist/types/components/HysSlider/SliderTooltip.vue.d.ts +22 -0
- package/dist/types/components/HysSplitPane/HysSplitPane.vue.d.ts +6 -0
- package/dist/types/components/HysSteps/HysSteps.vue.d.ts +65 -9
- package/dist/types/components/HysSwitch/HysSwitch.vue.d.ts +76 -17
- package/dist/types/components/HysTable/HysTable.vue.d.ts +206 -32
- package/dist/types/components/HysTable/HysTableFilterOptions.vue.d.ts +18 -0
- package/dist/types/components/HysTabs/HysTabs.vue.d.ts +76 -23
- package/dist/types/components/HysTagInput/HysTagInput.vue.d.ts +5 -5
- package/dist/types/components/HysTextarea/HysTextarea.vue.d.ts +44 -27
- package/dist/types/components/HysToast/HysToast.vue.d.ts +55 -7
- package/dist/types/components/HysTour/HysTour.vue.d.ts +5 -3
- package/dist/types/components/HysTransfer/HysTransfer.vue.d.ts +55 -30
- package/dist/types/components/HysTransfer/HysTransferPanel.vue.d.ts +105 -0
- package/dist/types/components/HysTree/HysTree.vue.d.ts +140 -73
- package/dist/types/components/HysTreeSelect/HysTreeSelect.vue.d.ts +102 -23
- package/dist/types/components/HysTreeSelect/HysTreeSelectPanel.vue.d.ts +56 -0
- package/dist/types/composables/autocomplete.d.ts +106 -0
- package/dist/types/composables/avatar.d.ts +70 -0
- package/dist/types/composables/calendar.d.ts +66 -0
- package/dist/types/composables/cascader.d.ts +192 -0
- package/dist/types/composables/choice.d.ts +110 -0
- package/dist/types/composables/choiceModel.d.ts +11 -0
- package/dist/types/composables/datePicker.d.ts +247 -0
- package/dist/types/composables/formContext.d.ts +138 -8
- package/dist/types/composables/formLayout.d.ts +11 -0
- package/dist/types/composables/formValidation.d.ts +13 -0
- package/dist/types/composables/gantt.d.ts +68 -0
- package/dist/types/composables/ganttConflicts.d.ts +30 -0
- package/dist/types/composables/numberInput.d.ts +45 -0
- package/dist/types/composables/rating.d.ts +18 -0
- package/dist/types/composables/segmented.d.ts +15 -0
- package/dist/types/composables/selectOptions.d.ts +44 -0
- package/dist/types/composables/slider.d.ts +21 -0
- package/dist/types/composables/table.d.ts +309 -0
- package/dist/types/composables/textInput.d.ts +76 -0
- package/dist/types/composables/toastEscape.d.ts +1 -0
- package/dist/types/composables/transfer.d.ts +180 -0
- package/dist/types/composables/tree.d.ts +237 -0
- package/dist/types/composables/treeSelect.d.ts +167 -0
- package/dist/types/composables/useCascader.d.ts +162 -0
- package/dist/types/composables/useDatePicker.d.ts +79 -0
- package/dist/types/composables/useFloating.d.ts +8 -5
- package/dist/types/composables/useGanttDependencies.d.ts +83 -0
- package/dist/types/composables/useGanttHistory.d.ts +42 -0
- package/dist/types/composables/useGanttLabelResize.d.ts +23 -0
- package/dist/types/composables/useHysToast.d.ts +50 -0
- package/dist/types/composables/useTable.d.ts +60 -0
- package/dist/types/composables/useTextareaSize.d.ts +3 -0
- package/dist/types/composables/useTransfer.d.ts +58 -0
- package/dist/types/composables/useTree.d.ts +77 -0
- package/dist/types/composables/useTreeSelect.d.ts +117 -0
- package/dist/types/index.d.ts +38 -7
- package/package.json +47 -11
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
1
|
+
import { defineComponent as D, useModel as E, ref as m, watch as H, onActivated as U, onDeactivated as F, onBeforeUnmount as I, onMounted as O, openBlock as h, createElementBlock as L, mergeProps as $, unref as v, Fragment as P, renderList as j, createElementVNode as w, withModifiers as q, toDisplayString as z, createCommentVNode as G, createVNode as M, withCtx as x, createTextVNode as J, mergeModels as R, nextTick as K } from "vue";
|
|
2
|
+
import { useHysControlState as Q } from "../../composables/formContext.js";
|
|
3
|
+
import { useHysRootAttrs as W } from "../../config.js";
|
|
4
|
+
import X from "../HysModal/HysModal.vue.js";
|
|
5
|
+
import Y from "../HysInput/HysInput.vue.js";
|
|
6
|
+
import Z from "../HysButton/HysButton.vue.js";
|
|
7
|
+
const _ = {
|
|
7
8
|
key: 0,
|
|
8
9
|
class: "hys-ui-ent-toolbar",
|
|
9
10
|
role: "toolbar",
|
|
10
11
|
"aria-label": "文本格式"
|
|
11
|
-
},
|
|
12
|
+
}, ee = ["disabled", "onClick"], te = ["contenteditable", "data-placeholder", "aria-readonly", "aria-disabled"], ue = /* @__PURE__ */ D({
|
|
12
13
|
__name: "HysRichTextEditor",
|
|
13
|
-
props: /* @__PURE__ */
|
|
14
|
+
props: /* @__PURE__ */ R({
|
|
14
15
|
disabled: { type: Boolean },
|
|
15
16
|
readonly: { type: Boolean },
|
|
16
17
|
placeholder: {},
|
|
@@ -19,96 +20,115 @@ const G = {
|
|
|
19
20
|
modelValue: { default: "" },
|
|
20
21
|
modelModifiers: {}
|
|
21
22
|
}),
|
|
22
|
-
emits: /* @__PURE__ */
|
|
23
|
-
setup(
|
|
24
|
-
const i =
|
|
25
|
-
let
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
23
|
+
emits: /* @__PURE__ */ R(["change", "focus", "blur"], ["update:modelValue"]),
|
|
24
|
+
setup(r, { expose: T, emit: V }) {
|
|
25
|
+
const i = r, f = E(r, "modelValue"), y = V, A = W(), n = m(), d = m(!1), s = m(""), p = m(""), { disabled: a } = Q(i), B = [["bold", "粗体"], ["italic", "斜体"], ["insertUnorderedList", "列表"], ["insertOrderedList", "编号"], ["createLink", "链接"], ["undo", "撤销"], ["redo", "重做"]];
|
|
26
|
+
let b = !1, c, u = !0, g = 0;
|
|
27
|
+
function k() {
|
|
28
|
+
g++, d.value = !1, c = void 0;
|
|
29
|
+
}
|
|
30
|
+
H(() => [a.value, i.readonly], k), U(() => {
|
|
31
|
+
u = !0;
|
|
32
|
+
}), F(() => {
|
|
33
|
+
u = !1, k();
|
|
34
|
+
}), I(() => {
|
|
35
|
+
u = !1, k();
|
|
36
|
+
}), O(() => {
|
|
37
|
+
n.value && (n.value.innerHTML = f.value);
|
|
38
|
+
}), H(f, (t) => {
|
|
39
|
+
!b && n.value && n.value.innerHTML !== t && (n.value.innerHTML = t), b = !1;
|
|
30
40
|
});
|
|
31
|
-
function
|
|
41
|
+
function C() {
|
|
32
42
|
var t;
|
|
33
|
-
|
|
43
|
+
a.value || i.readonly || (b = !0, f.value = ((t = n.value) == null ? void 0 : t.innerHTML) || "", y("change", f.value));
|
|
34
44
|
}
|
|
35
|
-
function
|
|
36
|
-
var
|
|
37
|
-
if (!(
|
|
45
|
+
function N(t) {
|
|
46
|
+
var o, e;
|
|
47
|
+
if (!(!u || a.value || i.readonly)) {
|
|
38
48
|
if (t === "createLink") {
|
|
39
|
-
const
|
|
40
|
-
|
|
49
|
+
const l = window.getSelection();
|
|
50
|
+
c = l != null && l.rangeCount && ((o = n.value) != null && o.contains(l.getRangeAt(0).commonAncestorContainer)) ? l.getRangeAt(0).cloneRange() : void 0, s.value = "", p.value = "", d.value = !0;
|
|
41
51
|
return;
|
|
42
52
|
}
|
|
43
|
-
(
|
|
53
|
+
(e = n.value) == null || e.focus(), document.execCommand(t, !1), C();
|
|
44
54
|
}
|
|
45
55
|
}
|
|
46
|
-
async function
|
|
47
|
-
var
|
|
48
|
-
if (
|
|
49
|
-
|
|
56
|
+
async function S() {
|
|
57
|
+
var o;
|
|
58
|
+
if (!u || a.value || i.readonly) return;
|
|
59
|
+
if (!/^https?:\/\//i.test(s.value)) {
|
|
60
|
+
p.value = "请输入 http:// 或 https:// 链接";
|
|
50
61
|
return;
|
|
51
62
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
63
|
+
const t = ++g;
|
|
64
|
+
if (d.value = !1, await K(), !(!u || a.value || i.readonly || t !== g || !((o = n.value) != null && o.isConnected))) {
|
|
65
|
+
if (n.value.focus(), c && n.value.contains(c.commonAncestorContainer)) {
|
|
66
|
+
const e = window.getSelection();
|
|
67
|
+
e == null || e.removeAllRanges(), e == null || e.addRange(c);
|
|
68
|
+
} else {
|
|
69
|
+
const e = window.getSelection();
|
|
70
|
+
if (e && !n.value.contains(e.anchorNode)) {
|
|
71
|
+
const l = document.createRange();
|
|
72
|
+
l.selectNodeContents(n.value), l.collapse(!1), e.removeAllRanges(), e.addRange(l);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
document.execCommand("createLink", !1, s.value), C();
|
|
55
76
|
}
|
|
56
|
-
document.execCommand("createLink", !1, r.value), y();
|
|
57
77
|
}
|
|
58
|
-
return
|
|
78
|
+
return T({ focus: () => {
|
|
59
79
|
var t;
|
|
60
|
-
return (t =
|
|
80
|
+
return (t = n.value) == null ? void 0 : t.focus();
|
|
61
81
|
}, blur: () => {
|
|
62
82
|
var t;
|
|
63
|
-
return (t =
|
|
83
|
+
return (t = n.value) == null ? void 0 : t.blur();
|
|
64
84
|
}, getHTML: () => {
|
|
65
85
|
var t;
|
|
66
|
-
return ((t =
|
|
67
|
-
} }), (t,
|
|
68
|
-
|
|
69
|
-
(
|
|
70
|
-
key:
|
|
86
|
+
return ((t = n.value) == null ? void 0 : t.innerHTML) || "";
|
|
87
|
+
} }), (t, o) => (h(), L("div", $(v(A), { class: "hys-ui-ent-panel" }), [
|
|
88
|
+
r.hideToolbar ? G("", !0) : (h(), L("div", _, [
|
|
89
|
+
(h(), L(P, null, j(B, (e) => w("button", {
|
|
90
|
+
key: e[0],
|
|
71
91
|
type: "button",
|
|
72
|
-
disabled:
|
|
73
|
-
onMousedown:
|
|
92
|
+
disabled: v(a) || r.readonly,
|
|
93
|
+
onMousedown: o[0] || (o[0] = q(() => {
|
|
74
94
|
}, ["prevent"])),
|
|
75
|
-
onClick: (
|
|
76
|
-
},
|
|
95
|
+
onClick: (l) => N(e[0])
|
|
96
|
+
}, z(e[1]), 41, ee)), 64))
|
|
77
97
|
])),
|
|
78
|
-
|
|
98
|
+
w("div", {
|
|
79
99
|
ref_key: "editor",
|
|
80
|
-
ref:
|
|
100
|
+
ref: n,
|
|
81
101
|
class: "hys-ui-ent-editor",
|
|
82
|
-
contenteditable: !
|
|
83
|
-
"data-placeholder":
|
|
102
|
+
contenteditable: !v(a) && !r.readonly,
|
|
103
|
+
"data-placeholder": r.placeholder,
|
|
84
104
|
role: "textbox",
|
|
85
|
-
"aria-readonly":
|
|
86
|
-
"aria-disabled":
|
|
105
|
+
"aria-readonly": r.readonly,
|
|
106
|
+
"aria-disabled": v(a),
|
|
87
107
|
"aria-label": "富文本编辑器",
|
|
88
108
|
"aria-multiline": "true",
|
|
89
|
-
onInput:
|
|
90
|
-
onFocus:
|
|
91
|
-
onBlur:
|
|
92
|
-
}, null, 40,
|
|
93
|
-
|
|
94
|
-
open:
|
|
109
|
+
onInput: C,
|
|
110
|
+
onFocus: o[1] || (o[1] = (e) => y("focus", e)),
|
|
111
|
+
onBlur: o[2] || (o[2] = (e) => y("blur", e))
|
|
112
|
+
}, null, 40, te),
|
|
113
|
+
M(X, {
|
|
114
|
+
open: d.value,
|
|
95
115
|
title: "插入链接",
|
|
96
|
-
onClose:
|
|
116
|
+
onClose: o[4] || (o[4] = (e) => d.value = !1)
|
|
97
117
|
}, {
|
|
98
|
-
footer:
|
|
99
|
-
|
|
100
|
-
default:
|
|
101
|
-
|
|
118
|
+
footer: x(() => [
|
|
119
|
+
M(Z, { onClick: S }, {
|
|
120
|
+
default: x(() => [...o[5] || (o[5] = [
|
|
121
|
+
J("插入", -1)
|
|
102
122
|
])]),
|
|
103
123
|
_: 1
|
|
104
124
|
})
|
|
105
125
|
]),
|
|
106
|
-
default:
|
|
107
|
-
|
|
108
|
-
modelValue:
|
|
109
|
-
"onUpdate:modelValue":
|
|
126
|
+
default: x(() => [
|
|
127
|
+
M(Y, {
|
|
128
|
+
modelValue: s.value,
|
|
129
|
+
"onUpdate:modelValue": o[3] || (o[3] = (e) => s.value = e),
|
|
110
130
|
placeholder: "https://example.com",
|
|
111
|
-
error:
|
|
131
|
+
error: p.value
|
|
112
132
|
}, null, 8, ["modelValue", "error"])
|
|
113
133
|
]),
|
|
114
134
|
_: 1
|
|
@@ -117,5 +137,5 @@ const G = {
|
|
|
117
137
|
}
|
|
118
138
|
});
|
|
119
139
|
export {
|
|
120
|
-
|
|
140
|
+
ue as default
|
|
121
141
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
import { LoaderCircle as
|
|
4
|
-
|
|
1
|
+
import { defineComponent as L, ref as v, watch as V, onBeforeUnmount as N, onDeactivated as w, openBlock as f, createElementBlock as g, mergeProps as z, unref as n, createBlock as k, createElementVNode as H, withKeys as S, createVNode as A, createCommentVNode as D } from "vue";
|
|
2
|
+
import { useHysControlState as E } from "../../composables/formContext.js";
|
|
3
|
+
import { LoaderCircle as F, Search as K, X as R } from "lucide-vue-next";
|
|
4
|
+
import { useHysRootAttrs as T } from "../../config.js";
|
|
5
|
+
const I = ["value", "placeholder", "disabled", "readonly", "aria-label"], $ = /* @__PURE__ */ L({
|
|
5
6
|
__name: "HysSearch",
|
|
6
7
|
props: {
|
|
7
8
|
modelValue: {},
|
|
@@ -14,59 +15,70 @@ const E = ["value", "placeholder", "disabled", "readonly", "aria-label"], S = /*
|
|
|
14
15
|
ariaLabel: {}
|
|
15
16
|
},
|
|
16
17
|
emits: ["update:modelValue", "search", "clear", "focus", "blur"],
|
|
17
|
-
setup(
|
|
18
|
-
const
|
|
19
|
-
let
|
|
20
|
-
function
|
|
21
|
-
clearTimeout(
|
|
18
|
+
setup(a, { expose: B, emit: C }) {
|
|
19
|
+
const r = a, { disabled: u, label: h } = E(r), i = C, x = T(), d = v(), s = v(!1);
|
|
20
|
+
let y, m;
|
|
21
|
+
function t() {
|
|
22
|
+
clearTimeout(y), y = void 0, m = void 0;
|
|
22
23
|
}
|
|
23
|
-
function
|
|
24
|
-
|
|
24
|
+
function b(e) {
|
|
25
|
+
t(), u.value || i("search", e);
|
|
25
26
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
function c(e) {
|
|
28
|
+
u.value || r.readonly || s.value || (t(), m = e, i("update:modelValue", e), y = setTimeout(() => b(e), Number.isFinite(r.delay) ? Math.max(0, r.delay) : 300));
|
|
29
|
+
}
|
|
30
|
+
return V(() => [u.value, r.readonly], t, { flush: "sync" }), V(() => r.modelValue, (e) => {
|
|
31
|
+
m !== void 0 && e !== m && t();
|
|
32
|
+
}), N(t), w(t), B({ focus: () => {
|
|
33
|
+
var e;
|
|
34
|
+
return (e = d.value) == null ? void 0 : e.focus();
|
|
29
35
|
}, blur: () => {
|
|
30
|
-
var
|
|
31
|
-
return (
|
|
32
|
-
} }), (
|
|
33
|
-
|
|
36
|
+
var e;
|
|
37
|
+
return (e = d.value) == null ? void 0 : e.blur();
|
|
38
|
+
} }), (e, l) => (f(), g("div", z(n(x), { class: "hys-ui-ex-search" }), [
|
|
39
|
+
a.loading ? (f(), k(n(F), {
|
|
34
40
|
key: 0,
|
|
35
41
|
class: "hys-ui-icon-spin",
|
|
36
42
|
size: 16
|
|
37
|
-
})) : (
|
|
43
|
+
})) : (f(), k(n(K), {
|
|
38
44
|
key: 1,
|
|
39
45
|
size: 16,
|
|
40
46
|
"aria-hidden": "true"
|
|
41
47
|
})),
|
|
42
|
-
|
|
48
|
+
H("input", {
|
|
43
49
|
ref_key: "input",
|
|
44
|
-
ref:
|
|
50
|
+
ref: d,
|
|
45
51
|
type: "search",
|
|
46
|
-
value:
|
|
47
|
-
placeholder:
|
|
48
|
-
disabled:
|
|
49
|
-
readonly:
|
|
50
|
-
"aria-label":
|
|
51
|
-
onInput:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
value: a.modelValue,
|
|
53
|
+
placeholder: a.placeholder,
|
|
54
|
+
disabled: n(u),
|
|
55
|
+
readonly: a.readonly,
|
|
56
|
+
"aria-label": a.ariaLabel || n(h) || "搜索",
|
|
57
|
+
onInput: l[0] || (l[0] = (o) => c(o.target.value)),
|
|
58
|
+
onCompositionstart: l[1] || (l[1] = (o) => {
|
|
59
|
+
s.value = !0, t();
|
|
60
|
+
}),
|
|
61
|
+
onCompositionend: l[2] || (l[2] = (o) => {
|
|
62
|
+
s.value = !1, c(o.target.value);
|
|
63
|
+
}),
|
|
64
|
+
onKeydown: l[3] || (l[3] = S((o) => !o.isComposing && o.keyCode !== 229 && !s.value && b(a.modelValue), ["enter"])),
|
|
65
|
+
onFocus: l[4] || (l[4] = (o) => i("focus", o)),
|
|
66
|
+
onBlur: l[5] || (l[5] = (o) => i("blur", o))
|
|
67
|
+
}, null, 40, I),
|
|
68
|
+
a.clearable && a.modelValue && !n(u) && !a.readonly ? (f(), g("button", {
|
|
57
69
|
key: 2,
|
|
58
70
|
type: "button",
|
|
59
71
|
"aria-label": "清空搜索",
|
|
60
|
-
onClick:
|
|
61
|
-
var
|
|
62
|
-
|
|
72
|
+
onClick: l[6] || (l[6] = (o) => {
|
|
73
|
+
var p;
|
|
74
|
+
c(""), i("clear"), (p = d.value) == null || p.focus();
|
|
63
75
|
})
|
|
64
76
|
}, [
|
|
65
|
-
|
|
66
|
-
])) :
|
|
77
|
+
A(n(R), { size: 14 })
|
|
78
|
+
])) : D("", !0)
|
|
67
79
|
], 16));
|
|
68
80
|
}
|
|
69
81
|
});
|
|
70
82
|
export {
|
|
71
|
-
|
|
83
|
+
$ as default
|
|
72
84
|
};
|
|
@@ -1,60 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
props: {
|
|
6
|
-
modelValue: {},
|
|
7
|
-
options: {},
|
|
8
|
-
disabled: { type: Boolean },
|
|
9
|
-
block: { type: Boolean },
|
|
10
|
-
size: {},
|
|
11
|
-
ariaLabel: {}
|
|
12
|
-
},
|
|
13
|
-
emits: ["update:modelValue", "change"],
|
|
14
|
-
setup(l, { emit: b }) {
|
|
15
|
-
const y = C(), d = l, s = b, u = h();
|
|
16
|
-
function c(a) {
|
|
17
|
-
var t;
|
|
18
|
-
d.disabled || (t = d.options.find((e) => e.value === a)) != null && t.disabled || (s("update:modelValue", a), s("change", a));
|
|
19
|
-
}
|
|
20
|
-
function k(a) {
|
|
21
|
-
var m, f;
|
|
22
|
-
if (!["ArrowLeft", "ArrowRight", "Home", "End"].includes(a.key) || d.disabled) return;
|
|
23
|
-
const t = d.options.filter((o) => !o.disabled);
|
|
24
|
-
if (!t.length) return;
|
|
25
|
-
a.preventDefault();
|
|
26
|
-
const e = t.findIndex((o) => o.value === d.modelValue), i = t[a.key === "Home" ? 0 : a.key === "End" ? t.length - 1 : (e + (a.key === "ArrowLeft" ? -1 : 1) + t.length) % t.length];
|
|
27
|
-
c(i.value), (f = Array.from(((m = u.value) == null ? void 0 : m.querySelectorAll("button")) || []).find((o) => o.dataset.value === i.value)) == null || f.focus();
|
|
28
|
-
}
|
|
29
|
-
return (a, t) => (n(), r("div", v({
|
|
30
|
-
ref_key: "root",
|
|
31
|
-
ref: u
|
|
32
|
-
}, x(y), {
|
|
33
|
-
class: "hys-ui-ex-segment",
|
|
34
|
-
role: "radiogroup",
|
|
35
|
-
"aria-label": l.ariaLabel || "分段选择",
|
|
36
|
-
style: { display: l.block ? "flex" : void 0 },
|
|
37
|
-
onKeydown: k
|
|
38
|
-
}), [
|
|
39
|
-
(n(!0), r(V, null, A(l.options, (e) => (n(), r("button", {
|
|
40
|
-
key: e.value,
|
|
41
|
-
"data-value": e.value,
|
|
42
|
-
type: "button",
|
|
43
|
-
role: "radio",
|
|
44
|
-
disabled: l.disabled || e.disabled,
|
|
45
|
-
"aria-checked": l.modelValue === e.value,
|
|
46
|
-
tabindex: l.modelValue === e.value ? 0 : -1,
|
|
47
|
-
class: L({ "hys-ui-active": l.modelValue === e.value }),
|
|
48
|
-
style: z({ flex: l.block ? 1 : void 0, padding: l.size === "sm" ? "5px 10px" : l.size === "lg" ? "12px 20px" : void 0 }),
|
|
49
|
-
onClick: (i) => c(e.value)
|
|
50
|
-
}, [
|
|
51
|
-
S(a.$slots, "label", { option: e }, () => [
|
|
52
|
-
w(B(e.label), 1)
|
|
53
|
-
])
|
|
54
|
-
], 14, E))), 128))
|
|
55
|
-
], 16, H));
|
|
56
|
-
}
|
|
57
|
-
});
|
|
1
|
+
import e from "./HysSegmented2.vue.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import o from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const a = /* @__PURE__ */ o(e, [["__scopeId", "data-v-ce15ba8e"]]);
|
|
58
5
|
export {
|
|
59
|
-
|
|
6
|
+
a as default
|
|
60
7
|
};
|