hys-ui 0.6.0 → 0.8.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 +15 -0
- package/LICENSE +19 -0
- package/dist/components/HysDataGrid/HysDataGrid.vue.js +1 -1
- package/dist/components/HysDataGrid/HysDataGrid2.vue.js +1055 -753
- package/dist/components/HysDataGrid/gridColumnLayout.js +46 -0
- package/dist/components/HysDataGrid/gridPresentation.js +17 -0
- package/dist/components/HysDataGrid/useGridContextMenu.js +33 -0
- package/dist/components/HysDatePicker/HysDatePicker.vue.js +102 -48
- package/dist/components/HysDatePicker/HysDatePickerControl.vue.js +2 -2
- package/dist/components/HysDatePicker/HysDatePickerControl2.vue.js +874 -532
- package/dist/components/HysDatePicker/HysDatePickerPanel.vue.js +2 -2
- package/dist/components/HysDatePicker/HysDatePickerPanel2.vue.js +209 -168
- package/dist/components/HysDateRangePicker/HysDateRangePicker.vue.js +102 -48
- package/dist/components/HysDescriptions/HysDescriptions.vue.js +7 -0
- package/dist/components/HysDescriptions/HysDescriptions2.vue.js +146 -0
- package/dist/components/HysForm/HysForm2.vue.js +9 -8
- package/dist/components/HysIcon/HysIcon.vue.js +373 -0
- package/dist/components/HysIcon/HysIcon2.vue.js +5 -0
- package/dist/components/HysIcon/IconGraphic/IconGraphic.vue.js +147 -0
- package/dist/components/HysIcon/IconGraphic/IconGraphic2.vue.js +4 -0
- package/dist/components/HysIcon/IconPickerPanel/IconPickerPanel.vue.js +7 -0
- package/dist/components/HysIcon/IconPickerPanel/IconPickerPanel2.vue.js +440 -0
- package/dist/components/HysIcon/IconReferenceGraphic/IconReferenceGraphic.vue.js +29 -0
- package/dist/components/HysIcon/IconReferenceGraphic/IconReferenceGraphic2.vue.js +4 -0
- package/dist/components/HysIcon/IconTooltip/IconTooltip.vue.js +19 -0
- package/dist/components/HysIcon/IconTooltip/IconTooltip2.vue.js +4 -0
- package/dist/components/HysIcon/builtins/access.js +180 -0
- package/dist/components/HysIcon/builtins/actions.js +327 -0
- package/dist/components/HysIcon/builtins/business.js +364 -0
- package/dist/components/HysIcon/builtins/catalog/access-1.json.js +51 -0
- package/dist/components/HysIcon/builtins/catalog/access-2.json.js +35 -0
- package/dist/components/HysIcon/builtins/catalog/accessibility.json.js +26 -0
- package/dist/components/HysIcon/builtins/catalog/arrows-1.json.js +45 -0
- package/dist/components/HysIcon/builtins/catalog/arrows-2.json.js +46 -0
- package/dist/components/HysIcon/builtins/catalog/arrows-3.json.js +42 -0
- package/dist/components/HysIcon/builtins/catalog/charts-1.json.js +50 -0
- package/dist/components/HysIcon/builtins/catalog/charts-2.json.js +13 -0
- package/dist/components/HysIcon/builtins/catalog/commerce.json.js +43 -0
- package/dist/components/HysIcon/builtins/catalog/communication-1.json.js +49 -0
- package/dist/components/HysIcon/builtins/catalog/communication-2.json.js +37 -0
- package/dist/components/HysIcon/builtins/catalog/design-1.json.js +61 -0
- package/dist/components/HysIcon/builtins/catalog/design-2.json.js +27 -0
- package/dist/components/HysIcon/builtins/catalog/development-1.json.js +58 -0
- package/dist/components/HysIcon/builtins/catalog/development-2.json.js +60 -0
- package/dist/components/HysIcon/builtins/catalog/development-3.json.js +25 -0
- package/dist/components/HysIcon/builtins/catalog/devices-1.json.js +52 -0
- package/dist/components/HysIcon/builtins/catalog/devices-2.json.js +55 -0
- package/dist/components/HysIcon/builtins/catalog/devices-3.json.js +23 -0
- package/dist/components/HysIcon/builtins/catalog/education.json.js +34 -0
- package/dist/components/HysIcon/builtins/catalog/emoji.json.js +24 -0
- package/dist/components/HysIcon/builtins/catalog/files-1.json.js +45 -0
- package/dist/components/HysIcon/builtins/catalog/files-2.json.js +47 -0
- package/dist/components/HysIcon/builtins/catalog/files-3.json.js +8 -0
- package/dist/components/HysIcon/builtins/catalog/food-1.json.js +67 -0
- package/dist/components/HysIcon/builtins/catalog/food-2.json.js +40 -0
- package/dist/components/HysIcon/builtins/catalog/home.json.js +36 -0
- package/dist/components/HysIcon/builtins/catalog/layout-1.json.js +46 -0
- package/dist/components/HysIcon/builtins/catalog/layout-2.json.js +45 -0
- package/dist/components/HysIcon/builtins/catalog/manifest.json.js +4 -0
- package/dist/components/HysIcon/builtins/catalog/maps-1.json.js +61 -0
- package/dist/components/HysIcon/builtins/catalog/maps-2.json.js +24 -0
- package/dist/components/HysIcon/builtins/catalog/media-1.json.js +57 -0
- package/dist/components/HysIcon/builtins/catalog/media-2.json.js +13 -0
- package/dist/components/HysIcon/builtins/catalog/medical.json.js +30 -0
- package/dist/components/HysIcon/builtins/catalog/nature.json.js +54 -0
- package/dist/components/HysIcon/builtins/catalog/recreation.json.js +51 -0
- package/dist/components/HysIcon/builtins/catalog/shapes.json.js +54 -0
- package/dist/components/HysIcon/builtins/catalog/text-1.json.js +52 -0
- package/dist/components/HysIcon/builtins/catalog/text-2.json.js +54 -0
- package/dist/components/HysIcon/builtins/catalog/text-3.json.js +58 -0
- package/dist/components/HysIcon/builtins/catalog/text-4.json.js +41 -0
- package/dist/components/HysIcon/builtins/catalog/time.json.js +39 -0
- package/dist/components/HysIcon/builtins/catalog/transport-1.json.js +57 -0
- package/dist/components/HysIcon/builtins/catalog/transport-2.json.js +7 -0
- package/dist/components/HysIcon/builtins/catalog/weather.json.js +46 -0
- package/dist/components/HysIcon/builtins/communication.js +314 -0
- package/dist/components/HysIcon/builtins/documents.js +315 -0
- package/dist/components/HysIcon/builtins/extendedCatalog.js +75 -0
- package/dist/components/HysIcon/builtins/iconInCategory.js +11 -0
- package/dist/components/HysIcon/builtins/media.js +255 -0
- package/dist/components/HysIcon/builtins/navigation.js +276 -0
- package/dist/components/HysIcon/builtins/technology.js +189 -0
- package/dist/components/HysIcon/iconBuiltins.js +228 -0
- package/dist/components/HysIcon/iconConfig.js +30 -0
- package/dist/components/HysIcon/iconRegistry.js +183 -0
- package/dist/components/HysIcon/iconSafety.js +191 -0
- package/dist/components/HysIcon/iconStyle.js +70 -0
- package/dist/components/HysIcon/useIconResource.js +75 -0
- package/dist/components/HysPopconfirm/HysPopconfirm.vue.js +7 -0
- package/dist/components/HysPopconfirm/HysPopconfirm2.vue.js +346 -0
- package/dist/components/HysPopconfirm/usePopconfirmAction.js +32 -0
- package/dist/components/HysResult/HysResult.vue.js +7 -0
- package/dist/components/HysResult/HysResult2.vue.js +124 -0
- package/dist/components/HysSpace/HysSpace.vue.js +7 -0
- package/dist/components/HysSpace/HysSpace2.vue.js +79 -0
- package/dist/components/HysSpace/spaceItems.js +17 -0
- package/dist/components/HysSpin/HysSpin.vue.js +7 -0
- package/dist/components/HysSpin/HysSpin2.vue.js +427 -0
- package/dist/components/HysSpin/SpinGlyph/SpinGlyph.vue.js +334 -0
- package/dist/components/HysSpin/SpinGlyph/SpinGlyph2.vue.js +5 -0
- package/dist/components/HysSpin/SpinPortal/SpinPortal.vue.js +7 -0
- package/dist/components/HysSpin/SpinPortal/SpinPortal2.vue.js +66 -0
- package/dist/components/HysSpin/SpinPortal/spinTarget.js +57 -0
- package/dist/components/HysSpin/spinCatalog.js +35 -0
- package/dist/components/HysSpin/spinConfig.js +32 -0
- package/dist/components/HysSpin/spinService.js +160 -0
- package/dist/components/HysSpin/spinStyle.js +39 -0
- package/dist/components/HysSpin/useHysSpinTask.js +92 -0
- package/dist/components/HysSpin/useSpinFullscreen.js +60 -0
- package/dist/components/HysSpin/useSpinVisibility.js +59 -0
- package/dist/components/HysSplitPane/HysSplitPane.vue.js +285 -204
- package/dist/components/HysSplitPane/splitPaneResize.js +75 -0
- package/dist/components/HysTabPane/HysTabPane.vue.js +49 -0
- package/dist/components/HysTabPane/HysTabPane2.vue.js +4 -0
- package/dist/components/HysTable/HysTable.vue.js +3 -3
- package/dist/components/HysTable/HysTable2.vue.js +412 -383
- package/dist/components/HysTable/tableSearch.js +24 -0
- package/dist/components/HysTabs/HysTabs.vue.js +172 -5
- package/dist/components/HysTabs/HysTabs2.vue.js +2 -275
- package/dist/components/HysTabs/TabsMore/TabsMore.vue.js +7 -0
- package/dist/components/HysTabs/TabsMore/TabsMore2.vue.js +133 -0
- package/dist/components/HysTabs/TabsPanels/TabsPanels.vue.js +161 -0
- package/dist/components/HysTabs/TabsPanels/TabsPanels2.vue.js +4 -0
- package/dist/components/HysTabs/TabsPrompts/TabsPrompts.vue.js +4 -0
- package/dist/components/HysTabs/TabsPrompts/TabsPrompts2.vue.js +88 -0
- package/dist/components/HysTabs/TabsSlot/TabsSlot.js +13 -0
- package/dist/components/HysTabs/TabsWorkbench/TabsWorkbench.vue.js +7 -0
- package/dist/components/HysTabs/TabsWorkbench/TabsWorkbench2.vue.js +687 -0
- package/dist/components/HysTabs/tabsConfig.js +35 -0
- package/dist/components/HysTabs/tabsItems.js +79 -0
- package/dist/components/HysTabs/tabsPersistence.js +118 -0
- package/dist/components/HysTabs/useHysRouteTabs.js +77 -0
- package/dist/components/HysTabs/useTabsDragGhost.js +47 -0
- package/dist/components/HysTabs/useTabsNav.js +127 -0
- package/dist/components/HysTabs/useTabsOverlays.js +52 -0
- package/dist/components/HysTabs/useTabsPanels.js +101 -0
- package/dist/components/HysTabs/useTabsPointer.js +131 -0
- package/dist/components/HysTabs/useTabsState.js +263 -0
- package/dist/composables/datePicker.js +153 -94
- package/dist/composables/datePickerModel.js +156 -0
- package/dist/composables/datePickerPanels.js +78 -0
- package/dist/composables/datePickerRules.js +166 -0
- package/dist/composables/floatingPosition.js +32 -13
- package/dist/composables/formLayout.js +20 -42
- package/dist/composables/popupSurfaceStyle.js +30 -0
- package/dist/composables/useContainerWidth.js +24 -0
- package/dist/composables/useDatePicker.js +274 -381
- package/dist/composables/useFloating.js +42 -41
- package/dist/composables/usePageVisibility.js +19 -0
- package/dist/composables/usePopupSurface.js +153 -162
- package/dist/composables/usePopupSurfaceInteractions.js +91 -90
- package/dist/composables/useSplitPaneDrag.js +29 -26
- package/dist/composables/useSvgInstanceId.js +15 -0
- package/dist/composables/useTable.js +321 -306
- package/dist/composables/useTabularRowNavigation.js +46 -0
- package/dist/index.js +229 -185
- package/dist/internal/MultiSplitPane.vue.js +246 -205
- package/dist/internal/PopupSurfacePanel.vue.js +2 -2
- package/dist/internal/PopupSurfacePanel2.vue.js +35 -30
- package/dist/style.css +1 -1
- package/dist/types/components/HysDataGrid/HysDataGrid.vue.d.ts +40 -2
- package/dist/types/components/HysDataGrid/gridColumnLayout.d.ts +22 -0
- package/dist/types/components/HysDataGrid/gridPresentation.d.ts +47 -0
- package/dist/types/components/HysDataGrid/useGridContextMenu.d.ts +14 -0
- package/dist/types/components/HysDatePicker/HysDatePicker.vue.d.ts +6 -9
- package/dist/types/components/HysDatePicker/HysDatePickerControl.vue.d.ts +12 -0
- package/dist/types/components/HysDatePicker/HysDatePickerPanel.vue.d.ts +6 -0
- package/dist/types/components/HysDateRangePicker/HysDateRangePicker.vue.d.ts +6 -9
- package/dist/types/components/HysDescriptions/HysDescriptions.vue.d.ts +20 -0
- package/dist/types/components/HysDescriptions/descriptionsTypes.d.ts +54 -0
- package/dist/types/components/HysForm/HysForm.vue.d.ts +1 -1
- package/dist/types/components/HysFormItem/HysFormItem.vue.d.ts +1 -1
- package/dist/types/components/HysIcon/HysIcon.vue.d.ts +76 -0
- package/dist/types/components/HysIcon/IconGraphic/IconGraphic.vue.d.ts +43 -0
- package/dist/types/components/HysIcon/IconPickerPanel/IconPickerPanel.vue.d.ts +17 -0
- package/dist/types/components/HysIcon/IconReferenceGraphic/IconReferenceGraphic.vue.d.ts +10 -0
- package/dist/types/components/HysIcon/IconTooltip/IconTooltip.vue.d.ts +11 -0
- package/dist/types/components/HysIcon/builtins/access.d.ts +15 -0
- package/dist/types/components/HysIcon/builtins/actions.d.ts +30 -0
- package/dist/types/components/HysIcon/builtins/business.d.ts +31 -0
- package/dist/types/components/HysIcon/builtins/communication.d.ts +27 -0
- package/dist/types/components/HysIcon/builtins/documents.d.ts +29 -0
- package/dist/types/components/HysIcon/builtins/extendedCatalog.d.ts +2 -0
- package/dist/types/components/HysIcon/builtins/iconInCategory.d.ts +2 -0
- package/dist/types/components/HysIcon/builtins/media.d.ts +24 -0
- package/dist/types/components/HysIcon/builtins/navigation.d.ts +30 -0
- package/dist/types/components/HysIcon/builtins/technology.d.ts +18 -0
- package/dist/types/components/HysIcon/iconBuiltins.d.ts +2 -0
- package/dist/types/components/HysIcon/iconConfig.d.ts +10 -0
- package/dist/types/components/HysIcon/iconRegistry.d.ts +5 -0
- package/dist/types/components/HysIcon/iconSafety.d.ts +8 -0
- package/dist/types/components/HysIcon/iconStyle.d.ts +6 -0
- package/dist/types/components/HysIcon/iconTypes.d.ts +192 -0
- package/dist/types/components/HysIcon/useIconResource.d.ts +14 -0
- package/dist/types/components/HysPopconfirm/HysPopconfirm.vue.d.ts +85 -0
- package/dist/types/components/HysPopconfirm/popconfirmTypes.d.ts +72 -0
- package/dist/types/components/HysPopconfirm/usePopconfirmAction.d.ts +6 -0
- package/dist/types/components/HysProgress/HysProgress.vue.d.ts +1 -1
- package/dist/types/components/HysResult/HysResult.vue.d.ts +22 -0
- package/dist/types/components/HysResult/resultTypes.d.ts +32 -0
- package/dist/types/components/HysSpace/HysSpace.vue.d.ts +15 -0
- package/dist/types/components/HysSpace/spaceItems.d.ts +9 -0
- package/dist/types/components/HysSpace/spaceTypes.d.ts +20 -0
- package/dist/types/components/HysSpin/HysSpin.vue.d.ts +84 -0
- package/dist/types/components/HysSpin/SpinGlyph/SpinGlyph.vue.d.ts +16 -0
- package/dist/types/components/HysSpin/SpinPortal/SpinPortal.vue.d.ts +21 -0
- package/dist/types/components/HysSpin/SpinPortal/spinTarget.d.ts +3 -0
- package/dist/types/components/HysSpin/spinCatalog.d.ts +122 -0
- package/dist/types/components/HysSpin/spinConfig.d.ts +10 -0
- package/dist/types/components/HysSpin/spinService.d.ts +7 -0
- package/dist/types/components/HysSpin/spinStyle.d.ts +5 -0
- package/dist/types/components/HysSpin/spinTypes.d.ts +133 -0
- package/dist/types/components/HysSpin/useHysSpinTask.d.ts +4 -0
- package/dist/types/components/HysSpin/useSpinFullscreen.d.ts +17 -0
- package/dist/types/components/HysSpin/useSpinVisibility.d.ts +10 -0
- package/dist/types/components/HysSplitPane/HysSplitPane.vue.d.ts +25 -2
- package/dist/types/components/HysSplitPane/splitPaneResize.d.ts +17 -0
- package/dist/types/components/HysTabPane/HysTabPane.vue.d.ts +11 -0
- package/dist/types/components/HysTable/HysTable.vue.d.ts +16 -10
- package/dist/types/components/HysTable/tableSearch.d.ts +2 -0
- package/dist/types/components/HysTabs/HysTabs.vue.d.ts +83 -74
- package/dist/types/components/HysTabs/TabsMore/TabsMore.vue.d.ts +14 -0
- package/dist/types/components/HysTabs/TabsPanels/TabsPanels.vue.d.ts +17 -0
- package/dist/types/components/HysTabs/TabsPrompts/TabsPrompts.vue.d.ts +7 -0
- package/dist/types/components/HysTabs/TabsSlot/TabsSlot.d.ts +9 -0
- package/dist/types/components/HysTabs/TabsWorkbench/TabsWorkbench.vue.d.ts +32 -0
- package/dist/types/components/HysTabs/tabsConfig.d.ts +4 -0
- package/dist/types/components/HysTabs/tabsItems.d.ts +14 -0
- package/dist/types/components/HysTabs/tabsPersistence.d.ts +6 -0
- package/dist/types/components/HysTabs/tabsTypes.d.ts +236 -0
- package/dist/types/components/HysTabs/useHysRouteTabs.d.ts +22 -0
- package/dist/types/components/HysTabs/useTabsDragGhost.d.ts +22 -0
- package/dist/types/components/HysTabs/useTabsNav.d.ts +20 -0
- package/dist/types/components/HysTabs/useTabsOverlays.d.ts +54 -0
- package/dist/types/components/HysTabs/useTabsPanels.d.ts +14 -0
- package/dist/types/components/HysTabs/useTabsPointer.d.ts +30 -0
- package/dist/types/components/HysTabs/useTabsState.d.ts +32 -0
- package/dist/types/components/HysTagInput/HysTagInput.vue.d.ts +2 -2
- package/dist/types/components/HysToast/toastPresentation.d.ts +1 -1
- package/dist/types/components/HysVirtualTable/HysVirtualTable.vue.d.ts +2 -2
- package/dist/types/composables/dataGrid.d.ts +34 -0
- package/dist/types/composables/datePicker.d.ts +14 -214
- package/dist/types/composables/datePickerModel.d.ts +63 -0
- package/dist/types/composables/datePickerPanels.d.ts +23 -0
- package/dist/types/composables/datePickerRules.d.ts +31 -0
- package/dist/types/composables/datePickerTypes.d.ts +277 -0
- package/dist/types/composables/floatingPosition.d.ts +1 -1
- package/dist/types/composables/formLayout.d.ts +1 -2
- package/dist/types/composables/popupSurfaceStyle.d.ts +7 -0
- package/dist/types/composables/table.d.ts +10 -1
- package/dist/types/composables/toastQueue.d.ts +4 -4
- package/dist/types/composables/toastQueueModel.d.ts +2 -2
- package/dist/types/composables/useColorPicker.d.ts +2 -4
- package/dist/types/composables/useContainerWidth.d.ts +2 -0
- package/dist/types/composables/useContextMenu.d.ts +2 -4
- package/dist/types/composables/useDatePicker.d.ts +20 -11
- package/dist/types/composables/useFloating.d.ts +4 -5
- package/dist/types/composables/usePageVisibility.d.ts +1 -0
- package/dist/types/composables/usePopupSurface.d.ts +9 -3
- package/dist/types/composables/usePopupSurfaceInteractions.d.ts +4 -2
- package/dist/types/composables/useSplitPaneDrag.d.ts +2 -2
- package/dist/types/composables/useSvgInstanceId.d.ts +1 -0
- package/dist/types/composables/useTable.d.ts +2 -0
- package/dist/types/composables/useTabularRowNavigation.d.ts +18 -0
- package/dist/types/index.d.ts +31 -3
- package/dist/types/internal/MultiSplitPane.vue.d.ts +10 -1
- package/dist/types/internal/PopupSurfacePanel.vue.d.ts +3 -0
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { inject as r, computed as s, toValue as i, provide as u, shallowRef as c } from "vue";
|
|
2
|
+
const o = Symbol("hys-tabs-config"), a = c({});
|
|
3
|
+
function f(t) {
|
|
4
|
+
a.value = t;
|
|
5
|
+
}
|
|
6
|
+
function m(t) {
|
|
7
|
+
u(o, [...r(o, []), t]);
|
|
8
|
+
}
|
|
9
|
+
function p(t) {
|
|
10
|
+
const n = r(o, []);
|
|
11
|
+
return s(() => ({
|
|
12
|
+
type: "line",
|
|
13
|
+
size: "md",
|
|
14
|
+
trigger: "click",
|
|
15
|
+
activation: "auto",
|
|
16
|
+
lazy: !0,
|
|
17
|
+
animated: !0,
|
|
18
|
+
animation: "fade",
|
|
19
|
+
showScrollButtons: !0,
|
|
20
|
+
autoActivate: !0,
|
|
21
|
+
titleTooltip: !0,
|
|
22
|
+
moreSearch: !0,
|
|
23
|
+
confirmDirty: !0,
|
|
24
|
+
...i(a.value.defaults),
|
|
25
|
+
...Object.assign({}, ...n.map((e) => i(e.defaults))),
|
|
26
|
+
...Object.fromEntries(
|
|
27
|
+
Object.entries(t).filter(([, e]) => e !== void 0)
|
|
28
|
+
)
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
f as configureHysTabs,
|
|
33
|
+
m as provideHysTabs,
|
|
34
|
+
p as useTabsOptions
|
|
35
|
+
};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { isVNode as f, Fragment as u } from "vue";
|
|
2
|
+
import d from "../HysTabPane/HysTabPane.vue.js";
|
|
3
|
+
const p = (e) => typeof e + ":" + e;
|
|
4
|
+
function y(e) {
|
|
5
|
+
return Array.from(
|
|
6
|
+
p(e),
|
|
7
|
+
(n) => n.codePointAt(0).toString(36)
|
|
8
|
+
).join("-");
|
|
9
|
+
}
|
|
10
|
+
const s = (e) => !e.hidden && !e.disabled;
|
|
11
|
+
function v(e) {
|
|
12
|
+
const n = /* @__PURE__ */ new Set(), i = [], t = [];
|
|
13
|
+
for (const r of e)
|
|
14
|
+
typeof r.value != "string" && !Number.isFinite(r.value) || n.has(r.value) || (n.add(r.value), (r.pinned ? i : t).push(r));
|
|
15
|
+
return [...i, ...t];
|
|
16
|
+
}
|
|
17
|
+
function g(e, n, i) {
|
|
18
|
+
const t = n.findIndex((a) => a.value === i), r = new Set(e.filter(s).map((a) => a.value));
|
|
19
|
+
return (t < 0 ? void 0 : [...n.slice(t + 1), ...n.slice(0, t).reverse()].find(
|
|
20
|
+
(a) => r.has(a.value)
|
|
21
|
+
)) ?? e.find(s);
|
|
22
|
+
}
|
|
23
|
+
function A(e) {
|
|
24
|
+
return typeof e != "number" ? e : Number.isFinite(e) ? Math.max(0, e) + "px" : void 0;
|
|
25
|
+
}
|
|
26
|
+
const x = (e, n, i) => Number.isFinite(e) ? Math.min(i, Math.max(0, Math.floor(e))) : n;
|
|
27
|
+
function F(e) {
|
|
28
|
+
const n = [];
|
|
29
|
+
function i(t) {
|
|
30
|
+
if (Array.isArray(t)) {
|
|
31
|
+
t.forEach(i);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (!f(t)) return;
|
|
35
|
+
if (t.type === u) {
|
|
36
|
+
i(t.children);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (t.type !== d) return;
|
|
40
|
+
const r = {};
|
|
41
|
+
for (const [a, o] of Object.entries(t.props ?? {})) {
|
|
42
|
+
const c = a.replace(
|
|
43
|
+
/-([a-z])/g,
|
|
44
|
+
(b, l) => l.toUpperCase()
|
|
45
|
+
);
|
|
46
|
+
r[c] = o === "" && [
|
|
47
|
+
"disabled",
|
|
48
|
+
"readonly",
|
|
49
|
+
"hidden",
|
|
50
|
+
"closable",
|
|
51
|
+
"movable",
|
|
52
|
+
"pinned",
|
|
53
|
+
"favorite",
|
|
54
|
+
"dirty",
|
|
55
|
+
"unread",
|
|
56
|
+
"dot",
|
|
57
|
+
"lazy",
|
|
58
|
+
"cache",
|
|
59
|
+
"forceRender",
|
|
60
|
+
"preload"
|
|
61
|
+
].includes(c) ? !0 : o;
|
|
62
|
+
}
|
|
63
|
+
typeof r.label != "string" && (r.label = String(r.value ?? "")), n.push({
|
|
64
|
+
item: r,
|
|
65
|
+
slots: typeof t.children == "object" && t.children && !Array.isArray(t.children) ? t.children : { default: () => t.children }
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return i(e), n;
|
|
69
|
+
}
|
|
70
|
+
export {
|
|
71
|
+
x as bounded,
|
|
72
|
+
F as collectTabPanes,
|
|
73
|
+
g as neighbor,
|
|
74
|
+
v as orderedTabs,
|
|
75
|
+
y as tabIdToken,
|
|
76
|
+
A as tabLength,
|
|
77
|
+
p as tabToken,
|
|
78
|
+
s as usable
|
|
79
|
+
};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { onMounted as V, onActivated as j, onDeactivated as B, onBeforeUnmount as D, watch as L, nextTick as q } from "vue";
|
|
2
|
+
import { orderedTabs as P, bounded as E, usable as U } from "./tabsItems.js";
|
|
3
|
+
const T = (e) => typeof e == "string" || typeof e == "number" && Number.isFinite(e), A = ({
|
|
4
|
+
value: e,
|
|
5
|
+
label: r,
|
|
6
|
+
pinned: m,
|
|
7
|
+
favorite: v
|
|
8
|
+
}) => ({
|
|
9
|
+
value: e,
|
|
10
|
+
label: r,
|
|
11
|
+
pinned: !!m,
|
|
12
|
+
favorite: !!v
|
|
13
|
+
});
|
|
14
|
+
function F(e) {
|
|
15
|
+
if (!e || typeof e != "object") return;
|
|
16
|
+
const r = e;
|
|
17
|
+
if (!(!T(r.value) || typeof r.label != "string"))
|
|
18
|
+
return {
|
|
19
|
+
value: r.value,
|
|
20
|
+
label: r.label,
|
|
21
|
+
pinned: r.pinned === !0,
|
|
22
|
+
favorite: r.favorite === !0
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function G(e, r, m, v) {
|
|
26
|
+
let y, s = !1, l = !1, u = 0;
|
|
27
|
+
function x() {
|
|
28
|
+
return e().storage === "local" ? window.localStorage : window.sessionStorage;
|
|
29
|
+
}
|
|
30
|
+
function g() {
|
|
31
|
+
const a = e().storageKey;
|
|
32
|
+
if (!s || !a) return !1;
|
|
33
|
+
try {
|
|
34
|
+
const o = e().persistScroll ? m() : void 0, f = {
|
|
35
|
+
version: 1,
|
|
36
|
+
active: r.active.value,
|
|
37
|
+
items: r.all.value.map(A),
|
|
38
|
+
recent: r.recent.value,
|
|
39
|
+
closed: r.closed.value.map((d) => ({
|
|
40
|
+
item: A(d.item),
|
|
41
|
+
index: d.index
|
|
42
|
+
})),
|
|
43
|
+
scroll: o ? [o.scrollLeft, o.scrollTop] : void 0
|
|
44
|
+
};
|
|
45
|
+
return x().setItem(a, JSON.stringify(f)), !0;
|
|
46
|
+
} catch (o) {
|
|
47
|
+
return v("storageError", o), !1;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function b() {
|
|
51
|
+
!s || !e().storageKey || (clearTimeout(y), y = setTimeout(g, 100));
|
|
52
|
+
}
|
|
53
|
+
async function w() {
|
|
54
|
+
const a = ++u, o = e().storageKey;
|
|
55
|
+
if (s = !1, clearTimeout(y), !(!l || !o))
|
|
56
|
+
try {
|
|
57
|
+
const f = x().getItem(o);
|
|
58
|
+
if (f) {
|
|
59
|
+
let d = function(i, c = !1) {
|
|
60
|
+
var N, I;
|
|
61
|
+
const n = J.get(i.value) ?? ((I = (N = e()).restoreItem) == null ? void 0 : I.call(N, i));
|
|
62
|
+
return n ? { ...n, ...i } : c || e().workbench && e().items === void 0 ? i : void 0;
|
|
63
|
+
};
|
|
64
|
+
const t = JSON.parse(f);
|
|
65
|
+
if ((t == null ? void 0 : t.version) !== 1 || !Array.isArray(t.items)) return;
|
|
66
|
+
const J = new Map(r.all.value.map((i) => [i.value, i])), h = t.items.flatMap((i) => {
|
|
67
|
+
const c = F(i), n = c && d(c);
|
|
68
|
+
return n ? [n] : [];
|
|
69
|
+
}), O = new Set(h.map((i) => i.value)), k = P(
|
|
70
|
+
e().items === void 0 && e().workbench ? h : [
|
|
71
|
+
...h,
|
|
72
|
+
...r.all.value.filter((i) => !O.has(i.value))
|
|
73
|
+
]
|
|
74
|
+
);
|
|
75
|
+
r.write(k);
|
|
76
|
+
const M = E(e().historyLimit, 20, 200);
|
|
77
|
+
if (r.recent.value = Array.isArray(t.recent) ? [...new Set(t.recent.filter(T))].slice(0, M) : [], r.closed.value = (Array.isArray(t.closed) ? t.closed : []).slice(0, M).flatMap((i) => {
|
|
78
|
+
const c = F(i == null ? void 0 : i.item), n = c && d(c, !0);
|
|
79
|
+
return n ? [{ item: n, index: E(i.index, 0, k.length) }] : [];
|
|
80
|
+
}), await q(), a !== u || !l) return;
|
|
81
|
+
T(t.active) && r.byKey.value.has(t.active) && U(r.byKey.value.get(t.active)) && (e().modelValue === void 0 ? r.current.value = t.active : r.active.value !== t.active && v("update:modelValue", t.active));
|
|
82
|
+
const S = e().persistScroll ? m() : void 0;
|
|
83
|
+
S && Array.isArray(t.scroll) && t.scroll.length === 2 && t.scroll.every(Number.isFinite) && (await q(), a === u && l && (S.scrollLeft = t.scroll[0], S.scrollTop = t.scroll[1]));
|
|
84
|
+
}
|
|
85
|
+
} catch (f) {
|
|
86
|
+
a === u && v("storageError", f);
|
|
87
|
+
} finally {
|
|
88
|
+
a === u && l && (s = !0, b());
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function K() {
|
|
92
|
+
s && g(), l = s = !1, u++, clearTimeout(y);
|
|
93
|
+
}
|
|
94
|
+
return V(() => {
|
|
95
|
+
l = !0, w();
|
|
96
|
+
}), j(() => {
|
|
97
|
+
l || (l = !0, w());
|
|
98
|
+
}), B(K), D(K), L(
|
|
99
|
+
[() => e().storageKey, () => e().storage],
|
|
100
|
+
() => void w()
|
|
101
|
+
), L(
|
|
102
|
+
() => [
|
|
103
|
+
r.active.value,
|
|
104
|
+
r.all.value.map(A),
|
|
105
|
+
r.closed.value,
|
|
106
|
+
r.recent.value
|
|
107
|
+
],
|
|
108
|
+
b
|
|
109
|
+
), {
|
|
110
|
+
save: g,
|
|
111
|
+
scrolled: () => {
|
|
112
|
+
e().persistScroll && b();
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
export {
|
|
117
|
+
G as useTabsPersistence
|
|
118
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { shallowRef as i, ref as L, watch as E, toValue as h, onScopeDispose as T, nextTick as C } from "vue";
|
|
2
|
+
import { orderedTabs as M, neighbor as R, usable as x } from "./tabsItems.js";
|
|
3
|
+
function D(a) {
|
|
4
|
+
const t = i([]), c = L(), o = i([]);
|
|
5
|
+
let v;
|
|
6
|
+
const b = (e) => {
|
|
7
|
+
var r;
|
|
8
|
+
return ((r = a.allow) == null ? void 0 : r.call(a, e, h(a.route))) !== !1;
|
|
9
|
+
};
|
|
10
|
+
function d(e) {
|
|
11
|
+
t.value = M(e.filter(b));
|
|
12
|
+
}
|
|
13
|
+
E(
|
|
14
|
+
() => {
|
|
15
|
+
const e = h(a.route), r = a.resolve(e);
|
|
16
|
+
return r && b(r) ? r : void 0;
|
|
17
|
+
},
|
|
18
|
+
(e) => {
|
|
19
|
+
if (d(t.value), !e) {
|
|
20
|
+
c.value = void 0;
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const r = t.value.find((u) => u.value === e.value);
|
|
24
|
+
d(
|
|
25
|
+
r ? t.value.map(
|
|
26
|
+
(u) => u === r ? {
|
|
27
|
+
...e,
|
|
28
|
+
label: u.label,
|
|
29
|
+
pinned: u.pinned,
|
|
30
|
+
favorite: u.favorite
|
|
31
|
+
} : u
|
|
32
|
+
) : [...t.value, e]
|
|
33
|
+
), c.value = e.value;
|
|
34
|
+
const l = Number.isFinite(a.historyLimit) ? Math.max(0, Math.min(200, a.historyLimit)) : 30;
|
|
35
|
+
o.value = [
|
|
36
|
+
e.value,
|
|
37
|
+
...o.value.filter((u) => u !== e.value)
|
|
38
|
+
].slice(0, l);
|
|
39
|
+
},
|
|
40
|
+
{ immediate: !0 }
|
|
41
|
+
);
|
|
42
|
+
async function s(e, r) {
|
|
43
|
+
var f;
|
|
44
|
+
if (!b(e) || !x(e) || r != null && r.aborted) return !1;
|
|
45
|
+
v == null || v.abort();
|
|
46
|
+
const l = new AbortController();
|
|
47
|
+
v = l;
|
|
48
|
+
const u = () => l.abort();
|
|
49
|
+
r == null || r.addEventListener("abort", u, { once: !0 });
|
|
50
|
+
try {
|
|
51
|
+
const n = await a.navigate(e, l.signal);
|
|
52
|
+
return await C(), n !== !1 && !l.signal.aborted && c.value === e.value;
|
|
53
|
+
} catch (n) {
|
|
54
|
+
return l.signal.aborted || (f = a.onError) == null || f.call(a, n), !1;
|
|
55
|
+
} finally {
|
|
56
|
+
r == null || r.removeEventListener("abort", u), v === l && (v = void 0);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async function w(e) {
|
|
60
|
+
const r = t.value.find((l) => l.value === e);
|
|
61
|
+
return !!r && (c.value === e || await s(r));
|
|
62
|
+
}
|
|
63
|
+
async function m(e, r) {
|
|
64
|
+
var u;
|
|
65
|
+
if (c.value !== e) return !0;
|
|
66
|
+
const l = R(
|
|
67
|
+
t.value.filter((f) => f.value !== e && b(f)),
|
|
68
|
+
t.value,
|
|
69
|
+
e
|
|
70
|
+
) ?? ((u = a.fallback) == null ? void 0 : u.call(a));
|
|
71
|
+
return !!l && l.value !== e && await s(l, r == null ? void 0 : r.signal);
|
|
72
|
+
}
|
|
73
|
+
return T(() => v == null ? void 0 : v.abort()), { items: t, active: c, history: o, setItems: d, select: w, beforeClose: m };
|
|
74
|
+
}
|
|
75
|
+
export {
|
|
76
|
+
D as useHysRouteTabs
|
|
77
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { shallowRef as B, ref as C, nextTick as x } from "vue";
|
|
2
|
+
const u = ({ x: l, y: t }) => `translate3d(${l}px,${t}px,0)`;
|
|
3
|
+
function k() {
|
|
4
|
+
const l = B(), t = C();
|
|
5
|
+
let s, n, i, r = 0;
|
|
6
|
+
function v() {
|
|
7
|
+
r++, i == null || i.cancel(), i = void 0, s = n = void 0, l.value = void 0;
|
|
8
|
+
}
|
|
9
|
+
function d(o, e) {
|
|
10
|
+
s && (n = { x: s.x + o, y: s.y + e }, t.value && (t.value.style.transform = u(n)));
|
|
11
|
+
}
|
|
12
|
+
function m(o, e, a) {
|
|
13
|
+
v(), s = { x: e.left - a.x, y: e.top - a.y }, l.value = { label: o.label, width: e.width, height: e.height }, d(a.x, a.y), x(() => {
|
|
14
|
+
t.value && n && (t.value.style.transform = u(n));
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async function w(o, e, a, p) {
|
|
18
|
+
var g;
|
|
19
|
+
const h = r;
|
|
20
|
+
if (o && await o, await x(), h !== r) return;
|
|
21
|
+
const f = e(), c = t.value;
|
|
22
|
+
if (a && n && f && (c != null && c.animate)) {
|
|
23
|
+
const y = (g = f.offsetParent) == null ? void 0 : g.getBoundingClientRect(), R = y ? {
|
|
24
|
+
x: y.left + f.offsetLeft,
|
|
25
|
+
y: y.top + f.offsetTop
|
|
26
|
+
} : {
|
|
27
|
+
x: f.getBoundingClientRect().left,
|
|
28
|
+
y: f.getBoundingClientRect().top
|
|
29
|
+
};
|
|
30
|
+
try {
|
|
31
|
+
i = c.animate(
|
|
32
|
+
[
|
|
33
|
+
{ transform: u(n), opacity: 0.95 },
|
|
34
|
+
{ transform: u(R), opacity: 0 }
|
|
35
|
+
],
|
|
36
|
+
{ duration: a, easing: p, fill: "forwards" }
|
|
37
|
+
), await i.finished;
|
|
38
|
+
} catch {
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
h === r && v();
|
|
42
|
+
}
|
|
43
|
+
return { ghost: l, element: t, show: m, move: d, land: w, clear: v };
|
|
44
|
+
}
|
|
45
|
+
export {
|
|
46
|
+
k as useTabsDragGhost
|
|
47
|
+
};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { ref as D, shallowRef as N, computed as te, watch as P, nextTick as U, onMounted as oe, onActivated as ne, onDeactivated as le, onBeforeUnmount as re } from "vue";
|
|
2
|
+
import { tabToken as V } from "./tabsItems.js";
|
|
3
|
+
function ue(r, F, T, i, j, G) {
|
|
4
|
+
const s = D(), B = D(), x = D(!1), R = D(!1), C = N([]), A = N({}), L = /* @__PURE__ */ new Map(), m = (e) => L.get(V(e));
|
|
5
|
+
function I(e, t) {
|
|
6
|
+
const o = V(e);
|
|
7
|
+
t ? L.set(o, t) : L.delete(o);
|
|
8
|
+
}
|
|
9
|
+
const p = () => !!s.value && getComputedStyle(s.value).direction === "rtl", O = te(() => x.value || R.value);
|
|
10
|
+
let v = 0, f, S = !1, W = 0;
|
|
11
|
+
function J() {
|
|
12
|
+
var $, q;
|
|
13
|
+
const e = s.value, t = B.value;
|
|
14
|
+
if (!e || !t) return;
|
|
15
|
+
const o = e.getBoundingClientRect(), n = t.getBoundingClientRect(), l = i(), w = !l && p(), g = r().overflow !== "wrap", a = l ? o.top : o.left, c = l ? o.bottom : o.right, z = l ? n.top : n.left, b = l ? n.bottom : n.right;
|
|
16
|
+
x.value = g && (w ? b > c + 2 : z < a - 2), R.value = g && (w ? z < a - 2 : b > c + 2);
|
|
17
|
+
const ee = r().workbench || r().overflow === "menu" || r().overflow === "clip", E = O.value && ee ? F().filter((y) => {
|
|
18
|
+
var H, K;
|
|
19
|
+
const h = (K = (H = m(y.value)) == null ? void 0 : H.closest(".hys-ui-tab-item")) == null ? void 0 : K.getBoundingClientRect();
|
|
20
|
+
return h && (l ? h.top < a - 2 || h.bottom > c + 2 : h.left < a - 2 || h.right > c + 2);
|
|
21
|
+
}).map((y) => y.value) : [];
|
|
22
|
+
(E.length !== C.value.length || E.some((y, h) => y !== C.value[h])) && (C.value = E);
|
|
23
|
+
const d = (q = ($ = m(T())) == null ? void 0 : $.closest(".hys-ui-tab-item")) == null ? void 0 : q.getBoundingClientRect();
|
|
24
|
+
if (!d || !d.width || !d.height) {
|
|
25
|
+
A.value = { opacity: 0 };
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
A.value = l ? {
|
|
29
|
+
height: d.height + "px",
|
|
30
|
+
transform: `translateY(${d.top - n.top}px)`
|
|
31
|
+
} : {
|
|
32
|
+
width: d.width + "px",
|
|
33
|
+
transform: `translateX(${d.left - n.left}px)`
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function u() {
|
|
37
|
+
!S || v || (v = requestAnimationFrame(() => {
|
|
38
|
+
v = 0, J();
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
function M(e, t = !1) {
|
|
42
|
+
const o = s.value;
|
|
43
|
+
!o || !e || r().overflow === "wrap" || (!t || typeof o.scrollBy != "function" ? i() ? o.scrollTop += e : o.scrollLeft += e : o.scrollBy({
|
|
44
|
+
[i() ? "top" : "left"]: e,
|
|
45
|
+
behavior: j() ? "smooth" : "auto"
|
|
46
|
+
}), u());
|
|
47
|
+
}
|
|
48
|
+
function Q(e) {
|
|
49
|
+
const t = s.value;
|
|
50
|
+
t && M(
|
|
51
|
+
e * (i() ? t.clientHeight : t.clientWidth) * 0.8 * (i() || !p() ? 1 : -1),
|
|
52
|
+
!0
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
function k(e = T()) {
|
|
56
|
+
var b;
|
|
57
|
+
const t = s.value, o = (b = m(e)) == null ? void 0 : b.closest(".hys-ui-tab-item");
|
|
58
|
+
if (!t || !o || r().overflow === "wrap") {
|
|
59
|
+
u();
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const n = t.getBoundingClientRect(), l = o.getBoundingClientRect(), [w, g, a, c] = i() ? [n.top, n.bottom, l.top, l.bottom] : [n.left, n.right, l.left, l.right], z = r().scrollAlign === "center" ? (a + c - w - g) / 2 : a < w ? a - w : c > g ? c - g : 0;
|
|
63
|
+
M(z), u();
|
|
64
|
+
}
|
|
65
|
+
function Z(e) {
|
|
66
|
+
var t;
|
|
67
|
+
(t = m(e)) == null || t.focus({ preventScroll: !0 }), k(e);
|
|
68
|
+
}
|
|
69
|
+
function _(e) {
|
|
70
|
+
const t = r().wheel;
|
|
71
|
+
if (t !== "scroll" && t !== "switch") return;
|
|
72
|
+
const o = e.deltaY || e.deltaX;
|
|
73
|
+
if (!(!o || e.ctrlKey)) {
|
|
74
|
+
if (t === "switch") {
|
|
75
|
+
if (e.preventDefault(), Date.now() - W < 140) return;
|
|
76
|
+
W = Date.now(), G(Math.sign(o), "wheel");
|
|
77
|
+
} else if (O.value) {
|
|
78
|
+
const n = o * (i() || !p() || e.deltaX ? 1 : -1);
|
|
79
|
+
if (Math.sign(n) * (i() || !p() ? 1 : -1) > 0 ? !R.value : !x.value) return;
|
|
80
|
+
e.preventDefault(), M(
|
|
81
|
+
n * (e.deltaMode === 1 ? 16 : e.deltaMode === 2 ? 120 : 1)
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function X() {
|
|
87
|
+
S = !1, f == null || f.disconnect(), f = void 0, v && cancelAnimationFrame(v), v = 0, window.removeEventListener("resize", u);
|
|
88
|
+
}
|
|
89
|
+
function Y() {
|
|
90
|
+
X(), S = !0, typeof ResizeObserver < "u" ? (f = new ResizeObserver(u), s.value && f.observe(s.value), B.value && f.observe(B.value)) : window.addEventListener("resize", u), U(() => k());
|
|
91
|
+
}
|
|
92
|
+
return P(
|
|
93
|
+
() => [T(), i(), r().overflow],
|
|
94
|
+
() => void U(() => k()),
|
|
95
|
+
{ flush: "post" }
|
|
96
|
+
), P(
|
|
97
|
+
() => F().map((e) => [
|
|
98
|
+
e.value,
|
|
99
|
+
e.label,
|
|
100
|
+
e.width,
|
|
101
|
+
e.badge,
|
|
102
|
+
e.dirty
|
|
103
|
+
]),
|
|
104
|
+
u,
|
|
105
|
+
{ flush: "post" }
|
|
106
|
+
), oe(Y), ne(Y), le(X), re(X), {
|
|
107
|
+
nav: s,
|
|
108
|
+
track: B,
|
|
109
|
+
before: x,
|
|
110
|
+
after: R,
|
|
111
|
+
hasOverflow: O,
|
|
112
|
+
overflowed: C,
|
|
113
|
+
indicator: A,
|
|
114
|
+
setButton: I,
|
|
115
|
+
button: m,
|
|
116
|
+
rtl: p,
|
|
117
|
+
scroll: Q,
|
|
118
|
+
scrollTo: k,
|
|
119
|
+
scrollPixels: M,
|
|
120
|
+
focus: Z,
|
|
121
|
+
wheel: _,
|
|
122
|
+
schedule: u
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
export {
|
|
126
|
+
ue as useTabsNav
|
|
127
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ref as m, shallowRef as v, onActivated as y, onDeactivated as g, onBeforeUnmount as k, nextTick as d } from "vue";
|
|
2
|
+
function C(c) {
|
|
3
|
+
const n = m(), s = m(), r = v(), a = v();
|
|
4
|
+
let t = !0, e = 0;
|
|
5
|
+
async function w(o) {
|
|
6
|
+
var p;
|
|
7
|
+
const u = ++e;
|
|
8
|
+
try {
|
|
9
|
+
if (!r.value) {
|
|
10
|
+
const i = await import("../HysContextMenu/HysContextMenu.vue.js");
|
|
11
|
+
if (!t || u !== e) return;
|
|
12
|
+
r.value = i.default;
|
|
13
|
+
}
|
|
14
|
+
await d(), t && u === e && await ((p = n.value) == null ? void 0 : p.show(o));
|
|
15
|
+
} catch (i) {
|
|
16
|
+
t && u === e && c("guardError", i);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function f() {
|
|
20
|
+
var o;
|
|
21
|
+
e++, (o = n.value) == null || o.hide();
|
|
22
|
+
}
|
|
23
|
+
async function h() {
|
|
24
|
+
try {
|
|
25
|
+
if (!a.value) {
|
|
26
|
+
const o = await import("./TabsPrompts/TabsPrompts.vue.js");
|
|
27
|
+
if (!t) return;
|
|
28
|
+
a.value = o.default;
|
|
29
|
+
}
|
|
30
|
+
return await d(), t ? s.value : void 0;
|
|
31
|
+
} catch (o) {
|
|
32
|
+
t && c("guardError", o);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function l() {
|
|
36
|
+
t = !1, f();
|
|
37
|
+
}
|
|
38
|
+
return y(() => {
|
|
39
|
+
t = !0;
|
|
40
|
+
}), g(l), k(l), {
|
|
41
|
+
menu: n,
|
|
42
|
+
prompts: s,
|
|
43
|
+
menuComponent: r,
|
|
44
|
+
promptComponent: a,
|
|
45
|
+
showMenu: w,
|
|
46
|
+
closeMenu: f,
|
|
47
|
+
prompt: h
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
C as useTabsOverlays
|
|
52
|
+
};
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { shallowReactive as z, reactive as j, shallowRef as q, watch as k, onMounted as B, onActivated as C, onDeactivated as D, onBeforeUnmount as F } from "vue";
|
|
2
|
+
function K(u, s, h, b) {
|
|
3
|
+
const d = z(/* @__PURE__ */ new Map()), m = j(/* @__PURE__ */ new Map()), f = q([]), i = /* @__PURE__ */ new Map();
|
|
4
|
+
let v = !1, l = !0;
|
|
5
|
+
function P(e) {
|
|
6
|
+
const r = [e, ...f.value.filter((t) => t !== e)], o = u().cacheLimit;
|
|
7
|
+
if (o === void 0 || !Number.isFinite(o)) {
|
|
8
|
+
f.value = r;
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const n = Math.max(1, Math.floor(o)), y = new Set(
|
|
12
|
+
s().filter((t) => t.forceRender).map((t) => t.value)
|
|
13
|
+
), a = /* @__PURE__ */ new Set([
|
|
14
|
+
...r.slice(0, n),
|
|
15
|
+
h(),
|
|
16
|
+
...y
|
|
17
|
+
]);
|
|
18
|
+
for (const t of r) a.has(t) || g(t);
|
|
19
|
+
f.value = r.filter((t) => a.has(t));
|
|
20
|
+
}
|
|
21
|
+
function g(e) {
|
|
22
|
+
var r;
|
|
23
|
+
(r = i.get(e)) == null || r.controller.abort(), i.delete(e), d.delete(e);
|
|
24
|
+
}
|
|
25
|
+
function M(e, r = !1) {
|
|
26
|
+
const o = s().find((c) => c.value === e);
|
|
27
|
+
if (!l || !o || o.hidden) return Promise.resolve(!1);
|
|
28
|
+
if (!o.load) return Promise.resolve(!0);
|
|
29
|
+
const n = i.get(e);
|
|
30
|
+
if (n) return n.promise;
|
|
31
|
+
const y = d.get(e);
|
|
32
|
+
if (!r && y) return Promise.resolve(y.state === "ready");
|
|
33
|
+
const a = new AbortController(), t = { controller: a, promise: Promise.resolve(!1) };
|
|
34
|
+
return i.set(e, t), d.set(e, { state: "loading" }), b("loadStart", e), t.promise = new Promise((c) => {
|
|
35
|
+
const S = () => c(!1);
|
|
36
|
+
a.signal.addEventListener("abort", S, { once: !0 }), Promise.resolve().then(() => a.signal.aborted ? null : o.load({ item: o, signal: a.signal })).then(
|
|
37
|
+
(p) => {
|
|
38
|
+
if (i.get(e) !== t || a.signal.aborted)
|
|
39
|
+
return c(!1);
|
|
40
|
+
d.set(e, { state: "ready", content: p }), b("load", e, p), c(!0);
|
|
41
|
+
},
|
|
42
|
+
(p) => {
|
|
43
|
+
i.get(e) === t && !a.signal.aborted && (d.set(e, { state: "error", error: p }), b("loadError", e, p)), c(!1);
|
|
44
|
+
}
|
|
45
|
+
).finally(() => {
|
|
46
|
+
a.signal.removeEventListener("abort", S), i.get(e) === t && i.delete(e);
|
|
47
|
+
});
|
|
48
|
+
}), t.promise;
|
|
49
|
+
}
|
|
50
|
+
function R(e) {
|
|
51
|
+
return !l || !s().some((r) => r.value === e && !r.hidden) ? Promise.resolve(!1) : (P(e), M(e));
|
|
52
|
+
}
|
|
53
|
+
function E(e = h()) {
|
|
54
|
+
return !l || !s().some((r) => r.value === e && !r.hidden) ? Promise.resolve(!1) : (g(e), m.set(e, (m.get(e) ?? 0) + 1), P(e), M(e, !0));
|
|
55
|
+
}
|
|
56
|
+
function w() {
|
|
57
|
+
if (!v || !l) return;
|
|
58
|
+
const e = u().preload, r = Array.isArray(e) ? new Set(e) : void 0, o = h();
|
|
59
|
+
for (const n of s())
|
|
60
|
+
!n.hidden && (n.forceRender || n.preload || e === !0 || r != null && r.has(n.value)) && R(n.value);
|
|
61
|
+
s().some((n) => n.value === o && !n.hidden) && R(o);
|
|
62
|
+
}
|
|
63
|
+
function L(e) {
|
|
64
|
+
return !e.hidden && (h() === e.value || e.forceRender || !u().destroyOnHide && e.cache !== !1 && (!(e.lazy ?? u().lazy) || f.value.includes(e.value)));
|
|
65
|
+
}
|
|
66
|
+
let x = /* @__PURE__ */ new Map();
|
|
67
|
+
k(
|
|
68
|
+
() => s().map((e) => [e.value, e.load, e.hidden]),
|
|
69
|
+
(e) => {
|
|
70
|
+
const r = new Map(
|
|
71
|
+
e.filter(([, , o]) => !o).map(([o, n]) => [o, n])
|
|
72
|
+
);
|
|
73
|
+
for (const [o, n] of x)
|
|
74
|
+
r.has(o) && r.get(o) === n || (g(o), r.has(o) || m.delete(o));
|
|
75
|
+
x = r, f.value = f.value.filter((o) => r.has(o)), w();
|
|
76
|
+
},
|
|
77
|
+
{ immediate: !0 }
|
|
78
|
+
), k(
|
|
79
|
+
h,
|
|
80
|
+
(e, r) => {
|
|
81
|
+
var o;
|
|
82
|
+
r !== void 0 && ((o = s().find((n) => n.value === r)) == null ? void 0 : o.cache) === !1 && g(r), s().some((n) => n.value === e && !n.hidden) && (P(e), v && M(e));
|
|
83
|
+
},
|
|
84
|
+
{ immediate: !0 }
|
|
85
|
+
), k(
|
|
86
|
+
() => [u().preload, ...s().map((e) => e.preload)],
|
|
87
|
+
w
|
|
88
|
+
);
|
|
89
|
+
function A() {
|
|
90
|
+
l = !1;
|
|
91
|
+
for (const e of i.keys()) g(e);
|
|
92
|
+
}
|
|
93
|
+
return B(() => {
|
|
94
|
+
v = !0, w();
|
|
95
|
+
}), C(() => {
|
|
96
|
+
l = !0, w();
|
|
97
|
+
}), D(A), F(A), { loaded: d, versions: m, render: L, preload: R, reload: E };
|
|
98
|
+
}
|
|
99
|
+
export {
|
|
100
|
+
K as useTabsPanels
|
|
101
|
+
};
|