jky-component-lib 0.0.73 → 0.0.75
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/es/components.d.ts +0 -1
- package/dist/es/components.js +1 -4
- package/dist/es/index.js +0 -15
- package/dist/es/menu/Menu.vue.js +42 -40
- package/dist/es/menu/MenuItem.vue.js +43 -41
- package/dist/es/package.json.js +1 -1
- package/dist/es/page-layout/PageLayout.vue.d.ts +1 -1
- package/dist/es/page-layout/PageLayout.vue.js +41 -59
- package/dist/es/style.css +0 -56
- package/dist/es/styles.css +1 -1
- package/dist/lib/components.d.ts +0 -1
- package/dist/lib/components.js +1 -4
- package/dist/lib/index.js +0 -15
- package/dist/lib/menu/Menu.vue.js +42 -40
- package/dist/lib/menu/MenuItem.vue.js +42 -40
- package/dist/lib/package.json.js +1 -1
- package/dist/lib/page-layout/PageLayout.vue.d.ts +1 -1
- package/dist/lib/page-layout/PageLayout.vue.js +40 -58
- package/dist/lib/style.css +0 -56
- package/dist/lib/styles.css +1 -1
- package/package.json +1 -1
- package/dist/es/tabs/TabContent.vue.d.ts +0 -16
- package/dist/es/tabs/TabContent.vue.js +0 -65
- package/dist/es/tabs/TabContent.vue3.js +0 -5
- package/dist/es/tabs/Tabs.vue.d.ts +0 -46
- package/dist/es/tabs/Tabs.vue.js +0 -311
- package/dist/es/tabs/Tabs.vue3.js +0 -5
- package/dist/es/tabs/index.d.ts +0 -9
- package/dist/es/tabs/index.js +0 -8
- package/dist/es/tabs/routeListener.d.ts +0 -19
- package/dist/es/tabs/routeListener.js +0 -26
- package/dist/es/tabs/style.css +0 -29
- package/dist/es/tabs/useTabs.d.ts +0 -27
- package/dist/es/tabs/useTabs.js +0 -59
- package/dist/es/tabs/useTabsStore.d.ts +0 -53
- package/dist/es/tabs/useTabsStore.js +0 -208
- package/dist/lib/tabs/TabContent.vue.d.ts +0 -16
- package/dist/lib/tabs/TabContent.vue.js +0 -65
- package/dist/lib/tabs/TabContent.vue3.js +0 -5
- package/dist/lib/tabs/Tabs.vue.d.ts +0 -46
- package/dist/lib/tabs/Tabs.vue.js +0 -311
- package/dist/lib/tabs/Tabs.vue3.js +0 -5
- package/dist/lib/tabs/index.d.ts +0 -9
- package/dist/lib/tabs/index.js +0 -8
- package/dist/lib/tabs/routeListener.d.ts +0 -19
- package/dist/lib/tabs/routeListener.js +0 -26
- package/dist/lib/tabs/style.css +0 -29
- package/dist/lib/tabs/useTabs.d.ts +0 -27
- package/dist/lib/tabs/useTabs.js +0 -59
- package/dist/lib/tabs/useTabsStore.d.ts +0 -53
- package/dist/lib/tabs/useTabsStore.js +0 -208
package/dist/lib/style.css
CHANGED
|
@@ -81,9 +81,7 @@
|
|
|
81
81
|
--color-red-700: oklch(50.5% .213 27.518);
|
|
82
82
|
--color-red-800: oklch(44.4% .177 26.899);
|
|
83
83
|
--color-red-900: oklch(39.6% .141 25.723);
|
|
84
|
-
--color-orange-100: oklch(95.4% .038 75.164);
|
|
85
84
|
--color-orange-500: oklch(70.5% .213 47.604);
|
|
86
|
-
--color-orange-800: oklch(47% .157 37.304);
|
|
87
85
|
--color-amber-500: oklch(76.9% .188 70.08);
|
|
88
86
|
--color-yellow-50: oklch(98.7% .026 102.212);
|
|
89
87
|
--color-yellow-100: oklch(97.3% .071 103.193);
|
|
@@ -602,10 +600,6 @@
|
|
|
602
600
|
margin-right: calc(var(--spacing) * 4);
|
|
603
601
|
}
|
|
604
602
|
|
|
605
|
-
.mb-0 {
|
|
606
|
-
margin-bottom: calc(var(--spacing) * 0);
|
|
607
|
-
}
|
|
608
|
-
|
|
609
603
|
.mb-1 {
|
|
610
604
|
margin-bottom: calc(var(--spacing) * 1);
|
|
611
605
|
}
|
|
@@ -1785,12 +1779,6 @@
|
|
|
1785
1779
|
margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
|
|
1786
1780
|
}
|
|
1787
1781
|
|
|
1788
|
-
:where(.space-y-2 > :not(:last-child)) {
|
|
1789
|
-
--tw-space-y-reverse: 0;
|
|
1790
|
-
margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
|
|
1791
|
-
margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
|
|
1792
|
-
}
|
|
1793
|
-
|
|
1794
1782
|
:where(.space-y-3 > :not(:last-child)) {
|
|
1795
1783
|
--tw-space-y-reverse: 0;
|
|
1796
1784
|
margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
|
|
@@ -1894,10 +1882,6 @@
|
|
|
1894
1882
|
border-color: var(--color-green-200);
|
|
1895
1883
|
}
|
|
1896
1884
|
|
|
1897
|
-
.border-green-500 {
|
|
1898
|
-
border-color: var(--color-green-500);
|
|
1899
|
-
}
|
|
1900
|
-
|
|
1901
1885
|
.border-red-200 {
|
|
1902
1886
|
border-color: var(--color-red-200);
|
|
1903
1887
|
}
|
|
@@ -1910,10 +1894,6 @@
|
|
|
1910
1894
|
border-color: var(--color-yellow-200);
|
|
1911
1895
|
}
|
|
1912
1896
|
|
|
1913
|
-
.border-yellow-500 {
|
|
1914
|
-
border-color: var(--color-yellow-500);
|
|
1915
|
-
}
|
|
1916
|
-
|
|
1917
1897
|
.border-l-\(--el-color-primary\) {
|
|
1918
1898
|
border-left-color: var(--el-color-primary);
|
|
1919
1899
|
}
|
|
@@ -2016,10 +1996,6 @@
|
|
|
2016
1996
|
background-color: var(--color-green-200);
|
|
2017
1997
|
}
|
|
2018
1998
|
|
|
2019
|
-
.bg-green-500 {
|
|
2020
|
-
background-color: var(--color-green-500);
|
|
2021
|
-
}
|
|
2022
|
-
|
|
2023
1999
|
.bg-green-500\! {
|
|
2024
2000
|
background-color: var(--color-green-500) !important;
|
|
2025
2001
|
}
|
|
@@ -2028,10 +2004,6 @@
|
|
|
2028
2004
|
background-color: var(--color-indigo-50);
|
|
2029
2005
|
}
|
|
2030
2006
|
|
|
2031
|
-
.bg-orange-100 {
|
|
2032
|
-
background-color: var(--color-orange-100);
|
|
2033
|
-
}
|
|
2034
|
-
|
|
2035
2007
|
.bg-purple-50 {
|
|
2036
2008
|
background-color: var(--color-purple-50);
|
|
2037
2009
|
}
|
|
@@ -2040,10 +2012,6 @@
|
|
|
2040
2012
|
background-color: var(--color-purple-100);
|
|
2041
2013
|
}
|
|
2042
2014
|
|
|
2043
|
-
.bg-purple-500 {
|
|
2044
|
-
background-color: var(--color-purple-500);
|
|
2045
|
-
}
|
|
2046
|
-
|
|
2047
2015
|
.bg-purple-500\! {
|
|
2048
2016
|
background-color: var(--color-purple-500) !important;
|
|
2049
2017
|
}
|
|
@@ -2301,10 +2269,6 @@
|
|
|
2301
2269
|
padding-block: calc(var(--spacing) * 6);
|
|
2302
2270
|
}
|
|
2303
2271
|
|
|
2304
|
-
.py-8 {
|
|
2305
|
-
padding-block: calc(var(--spacing) * 8);
|
|
2306
|
-
}
|
|
2307
|
-
|
|
2308
2272
|
.py-12 {
|
|
2309
2273
|
padding-block: calc(var(--spacing) * 12);
|
|
2310
2274
|
}
|
|
@@ -2525,10 +2489,6 @@
|
|
|
2525
2489
|
color: var(--color-indigo-800);
|
|
2526
2490
|
}
|
|
2527
2491
|
|
|
2528
|
-
.text-orange-800 {
|
|
2529
|
-
color: var(--color-orange-800);
|
|
2530
|
-
}
|
|
2531
|
-
|
|
2532
2492
|
.text-purple-100 {
|
|
2533
2493
|
color: var(--color-purple-100);
|
|
2534
2494
|
}
|
|
@@ -2597,10 +2557,6 @@
|
|
|
2597
2557
|
font-style: italic;
|
|
2598
2558
|
}
|
|
2599
2559
|
|
|
2600
|
-
.line-through {
|
|
2601
|
-
text-decoration-line: line-through;
|
|
2602
|
-
}
|
|
2603
|
-
|
|
2604
2560
|
.underline {
|
|
2605
2561
|
text-decoration-line: underline;
|
|
2606
2562
|
}
|
|
@@ -2723,14 +2679,6 @@
|
|
|
2723
2679
|
background-color: var(--color-gray-300);
|
|
2724
2680
|
}
|
|
2725
2681
|
|
|
2726
|
-
.hover\:bg-green-600:hover {
|
|
2727
|
-
background-color: var(--color-green-600);
|
|
2728
|
-
}
|
|
2729
|
-
|
|
2730
|
-
.hover\:bg-purple-600:hover {
|
|
2731
|
-
background-color: var(--color-purple-600);
|
|
2732
|
-
}
|
|
2733
|
-
|
|
2734
2682
|
.hover\:bg-red-200:hover {
|
|
2735
2683
|
background-color: var(--color-red-200);
|
|
2736
2684
|
}
|
|
@@ -2747,10 +2695,6 @@
|
|
|
2747
2695
|
color: var(--color-blue-900);
|
|
2748
2696
|
}
|
|
2749
2697
|
|
|
2750
|
-
.hover\:text-red-700:hover {
|
|
2751
|
-
color: var(--color-red-700);
|
|
2752
|
-
}
|
|
2753
|
-
|
|
2754
2698
|
.hover\:text-red-900:hover {
|
|
2755
2699
|
color: var(--color-red-900);
|
|
2756
2700
|
}
|
package/dist/lib/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5);--jky-form-grid-cols-xs:1;--jky-form-grid-cols-sm:2;--jky-form-grid-cols-md:2;--jky-form-grid-cols-lg:3;--jky-form-grid-cols-xl:3;--jky-form-grid-cols-2xl:4;--jky-form-grid-cols-3xl:4}.jky-form--grid{display:grid;gap:var(--el-form-item-gutter,16px);grid-template-columns:repeat(var(--jky-form-grid-cols-xs),minmax(0,1fr))}.el-form--inline.jky-form--grid .el-form-item{margin-right:0;.el-form-item__content{align-items:flex-start}}@media (min-width:640px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-sm,var(--jky-form-grid-cols-xs)),minmax(0,1fr))}}@media (min-width:768px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-md,var(--jky-form-grid-cols-sm)),minmax(0,1fr))}}@media (min-width:1024px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-lg,var(--jky-form-grid-cols-md)),minmax(0,1fr))}}@media (min-width:1280px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-xl,var(--jky-form-grid-cols-lg)),minmax(0,1fr))}}@media (min-width:1536px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-2xl,var(--jky-form-grid-cols-xl)),minmax(0,1fr))}}@media (min-width:1920px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-3xl,var(--jky-form-grid-cols-2xl)),minmax(0,1fr))}}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}:root{--jky-page-header-bg-color:#1890ff;--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-color:#fff;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-text-size:16px;--jky-page-header-icon-color:#fff;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *));.jky-tabs{--jky-tabs-color:var(--el-text-color-regular);--jky-tabs-active-color:var(--el-color-primary);--jky-tabs-height:40px;--jky-tabs-font-size:14px;.el-tabs__item{color:var(--jky-tabs-color);font-size:var(--jky-tabs-font-size);height:var(--jky-tabs-height);line-height:var(--jky-tabs-height);&.is-active{color:var(--jky-tabs-active-color)}}.el-tabs__active-bar{background-color:var(--jky-tabs-active-color)}}.jky-tabs--route{.el-tabs__item{&.is-closable:hover{.el-tabs__item__close{opacity:1}}}}
|
|
1
|
+
:root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5);--jky-form-grid-cols-xs:1;--jky-form-grid-cols-sm:2;--jky-form-grid-cols-md:2;--jky-form-grid-cols-lg:3;--jky-form-grid-cols-xl:3;--jky-form-grid-cols-2xl:4;--jky-form-grid-cols-3xl:4}.jky-form--grid{display:grid;gap:var(--el-form-item-gutter,16px);grid-template-columns:repeat(var(--jky-form-grid-cols-xs),minmax(0,1fr))}.el-form--inline.jky-form--grid .el-form-item{margin-right:0;.el-form-item__content{align-items:flex-start}}@media (min-width:640px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-sm,var(--jky-form-grid-cols-xs)),minmax(0,1fr))}}@media (min-width:768px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-md,var(--jky-form-grid-cols-sm)),minmax(0,1fr))}}@media (min-width:1024px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-lg,var(--jky-form-grid-cols-md)),minmax(0,1fr))}}@media (min-width:1280px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-xl,var(--jky-form-grid-cols-lg)),minmax(0,1fr))}}@media (min-width:1536px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-2xl,var(--jky-form-grid-cols-xl)),minmax(0,1fr))}}@media (min-width:1920px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-3xl,var(--jky-form-grid-cols-2xl)),minmax(0,1fr))}}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}:root{--jky-page-header-bg-color:#1890ff;--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-color:#fff;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-text-size:16px;--jky-page-header-icon-color:#fff;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *))
|
package/package.json
CHANGED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { TabContentProps } from './types';
|
|
2
|
-
declare const _default: import('vue').DefineComponent<TabContentProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
3
|
-
contextMenu: (data: {
|
|
4
|
-
tab: import('./types').TabItem;
|
|
5
|
-
event: MouseEvent;
|
|
6
|
-
}) => any;
|
|
7
|
-
}, string, import('vue').PublicProps, Readonly<TabContentProps> & Readonly<{
|
|
8
|
-
onContextMenu?: ((data: {
|
|
9
|
-
tab: import('./types').TabItem;
|
|
10
|
-
event: MouseEvent;
|
|
11
|
-
}) => any) | undefined;
|
|
12
|
-
}>, {
|
|
13
|
-
showIcon: boolean;
|
|
14
|
-
showContextMenu: boolean;
|
|
15
|
-
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
16
|
-
export default _default;
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, createCommentVNode, createElementVNode, toDisplayString } from "vue";
|
|
21
|
-
const _hoisted_1 = { class: "jky-tab-content__title" };
|
|
22
|
-
const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, {
|
|
23
|
-
name: "JkyTabContent"
|
|
24
|
-
}), {
|
|
25
|
-
__name: "TabContent",
|
|
26
|
-
props: {
|
|
27
|
-
tab: {},
|
|
28
|
-
showIcon: { type: Boolean, default: true },
|
|
29
|
-
showContextMenu: { type: Boolean, default: false }
|
|
30
|
-
},
|
|
31
|
-
emits: ["contextMenu"],
|
|
32
|
-
setup(__props, { emit: __emit }) {
|
|
33
|
-
const props = __props;
|
|
34
|
-
const emit = __emit;
|
|
35
|
-
const title = computed(() => {
|
|
36
|
-
var _a, _b;
|
|
37
|
-
return props.tab.label || ((_b = (_a = props.tab.route) == null ? void 0 : _a.meta) == null ? void 0 : _b.title) || "";
|
|
38
|
-
});
|
|
39
|
-
const icon = computed(() => {
|
|
40
|
-
var _a, _b;
|
|
41
|
-
return props.tab.icon || ((_b = (_a = props.tab.route) == null ? void 0 : _a.meta) == null ? void 0 : _b.icon);
|
|
42
|
-
});
|
|
43
|
-
function handleContextMenu(e) {
|
|
44
|
-
if (props.showContextMenu) {
|
|
45
|
-
e.preventDefault();
|
|
46
|
-
emit("contextMenu", { tab: props.tab, event: e });
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return (_ctx, _cache) => {
|
|
50
|
-
return openBlock(), createElementBlock("div", {
|
|
51
|
-
class: "jky-tab-content flex items-center gap-1",
|
|
52
|
-
onContextmenu: handleContextMenu
|
|
53
|
-
}, [
|
|
54
|
-
props.showIcon && icon.value ? (openBlock(), createElementBlock("span", {
|
|
55
|
-
key: 0,
|
|
56
|
-
class: normalizeClass(["jky-tab-content__icon text-sm", [icon.value]])
|
|
57
|
-
}, null, 2)) : createCommentVNode("", true),
|
|
58
|
-
createElementVNode("span", _hoisted_1, toDisplayString(title.value), 1)
|
|
59
|
-
], 32);
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
}));
|
|
63
|
-
export {
|
|
64
|
-
_sfc_main as default
|
|
65
|
-
};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { TabItem, TabsProps } from './types';
|
|
2
|
-
declare function __VLS_template(): {
|
|
3
|
-
attrs: Partial<{}>;
|
|
4
|
-
slots: {
|
|
5
|
-
default?(_: {}): any;
|
|
6
|
-
};
|
|
7
|
-
refs: {};
|
|
8
|
-
rootEl: any;
|
|
9
|
-
};
|
|
10
|
-
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
11
|
-
declare const __VLS_component: import('vue').DefineComponent<TabsProps, {
|
|
12
|
-
closeTab: (tabName: string) => void;
|
|
13
|
-
closeOthers: (tabName: string) => void;
|
|
14
|
-
closeAll: () => void;
|
|
15
|
-
refreshTab: (tabName: string) => void;
|
|
16
|
-
getCachedTabs: () => string[];
|
|
17
|
-
getTabList: () => TabItem[];
|
|
18
|
-
getActiveTab: () => string;
|
|
19
|
-
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
20
|
-
"update:modelValue": (value: string) => any;
|
|
21
|
-
routeChange: (route: any) => any;
|
|
22
|
-
tabClick: (tab: any) => any;
|
|
23
|
-
tabRemove: (tabName: string) => any;
|
|
24
|
-
edit: (tabName: string | undefined, action: "add" | "remove") => any;
|
|
25
|
-
tabClose: (tabName: string) => any;
|
|
26
|
-
}, string, import('vue').PublicProps, Readonly<TabsProps> & Readonly<{
|
|
27
|
-
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
28
|
-
onRouteChange?: ((route: any) => any) | undefined;
|
|
29
|
-
onTabClick?: ((tab: any) => any) | undefined;
|
|
30
|
-
onTabRemove?: ((tabName: string) => any) | undefined;
|
|
31
|
-
onEdit?: ((tabName: string | undefined, action: "add" | "remove") => any) | undefined;
|
|
32
|
-
onTabClose?: ((tabName: string) => any) | undefined;
|
|
33
|
-
}>, {
|
|
34
|
-
mode: import('./types').TabsMode;
|
|
35
|
-
cachable: boolean;
|
|
36
|
-
maxCacheSize: number;
|
|
37
|
-
tabStyle: import('./types').TabStyleOptions;
|
|
38
|
-
tabs: TabItem[];
|
|
39
|
-
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
40
|
-
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
41
|
-
export default _default;
|
|
42
|
-
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
43
|
-
new (): {
|
|
44
|
-
$slots: S;
|
|
45
|
-
};
|
|
46
|
-
};
|
package/dist/es/tabs/Tabs.vue.js
DELETED
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
import { defineComponent, useAttrs, inject, shallowRef, computed, onMounted, provide, openBlock, createBlock, unref, mergeProps, withCtx, renderSlot, createElementBlock, Fragment, renderList, createVNode, normalizeStyle, createCommentVNode, markRaw } from "vue";
|
|
21
|
-
import { ElTabs, ElTabPane } from "element-plus";
|
|
22
|
-
import { routerKey } from "vue-router";
|
|
23
|
-
import { onRouteChange } from "./routeListener.js";
|
|
24
|
-
import _sfc_main$1 from "./TabContent.vue.js";
|
|
25
|
-
/* empty css */
|
|
26
|
-
import { createTabsStore } from "./useTabsStore.js";
|
|
27
|
-
const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, {
|
|
28
|
-
name: "JkyTabs",
|
|
29
|
-
inheritAttrs: false
|
|
30
|
-
}), {
|
|
31
|
-
__name: "Tabs",
|
|
32
|
-
props: {
|
|
33
|
-
mode: { default: "default" },
|
|
34
|
-
cachable: { type: Boolean, default: true },
|
|
35
|
-
maxCacheSize: { default: 0 },
|
|
36
|
-
className: {},
|
|
37
|
-
tabStyle: { default: () => ({}) },
|
|
38
|
-
tabs: { default: () => [] },
|
|
39
|
-
persist: { type: Boolean },
|
|
40
|
-
persistKey: {},
|
|
41
|
-
type: {},
|
|
42
|
-
closable: { type: Boolean },
|
|
43
|
-
addable: { type: Boolean },
|
|
44
|
-
modelValue: {},
|
|
45
|
-
defaultValue: {},
|
|
46
|
-
editable: { type: Boolean },
|
|
47
|
-
tabPosition: {},
|
|
48
|
-
beforeLeave: {},
|
|
49
|
-
stretch: { type: Boolean },
|
|
50
|
-
tabindex: {}
|
|
51
|
-
},
|
|
52
|
-
emits: ["tabClick", "tabRemove", "edit", "routeChange", "tabClose", "update:modelValue"],
|
|
53
|
-
setup(__props, { expose: __expose, emit: __emit }) {
|
|
54
|
-
const props = __props;
|
|
55
|
-
const emit = __emit;
|
|
56
|
-
const attrs = useAttrs();
|
|
57
|
-
const router = inject(routerKey, null);
|
|
58
|
-
const store = createTabsStore(props.persist, props.persistKey);
|
|
59
|
-
const closedTabs = shallowRef(/* @__PURE__ */ new Set());
|
|
60
|
-
const tabStyleVars = computed(() => {
|
|
61
|
-
var _a, _b, _c, _d;
|
|
62
|
-
const styles = {};
|
|
63
|
-
if ((_a = props.tabStyle) == null ? void 0 : _a.color)
|
|
64
|
-
styles["--jky-tabs-color"] = props.tabStyle.color;
|
|
65
|
-
if ((_b = props.tabStyle) == null ? void 0 : _b.activeColor)
|
|
66
|
-
styles["--jky-tabs-active-color"] = props.tabStyle.activeColor;
|
|
67
|
-
if ((_c = props.tabStyle) == null ? void 0 : _c.height)
|
|
68
|
-
styles["--jky-tabs-height"] = props.tabStyle.height;
|
|
69
|
-
if ((_d = props.tabStyle) == null ? void 0 : _d.fontSize)
|
|
70
|
-
styles["--jky-tabs-font-size"] = props.tabStyle.fontSize;
|
|
71
|
-
return styles;
|
|
72
|
-
});
|
|
73
|
-
const tabsClass = computed(() => {
|
|
74
|
-
return [
|
|
75
|
-
"jky-tabs",
|
|
76
|
-
props.mode === "route" && "jky-tabs--route",
|
|
77
|
-
props.className,
|
|
78
|
-
attrs.class
|
|
79
|
-
].filter(Boolean).join(" ");
|
|
80
|
-
});
|
|
81
|
-
const EL_TABS_PROPS = [
|
|
82
|
-
"type",
|
|
83
|
-
"closable",
|
|
84
|
-
"addable",
|
|
85
|
-
"modelValue",
|
|
86
|
-
"editable",
|
|
87
|
-
"tabPosition",
|
|
88
|
-
"stretch"
|
|
89
|
-
];
|
|
90
|
-
const elTabsProps = computed(() => {
|
|
91
|
-
const elProps = {};
|
|
92
|
-
Object.keys(props).forEach((key) => {
|
|
93
|
-
if (EL_TABS_PROPS.includes(key)) {
|
|
94
|
-
elProps[key] = props[key];
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
return __spreadValues({}, elProps);
|
|
98
|
-
});
|
|
99
|
-
function initRouteTabs() {
|
|
100
|
-
var _a;
|
|
101
|
-
if (!router) {
|
|
102
|
-
console.warn("JkyTabs: route mode requires router instance. Please provide router via provide/inject.");
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
const route = router.currentRoute.value;
|
|
106
|
-
console.warn("initRouteTabs debug:", {
|
|
107
|
-
hasRouter: !!router,
|
|
108
|
-
currentRoute: {
|
|
109
|
-
name: route.name,
|
|
110
|
-
path: route.path,
|
|
111
|
-
meta: route.meta
|
|
112
|
-
},
|
|
113
|
-
cachable: props.cachable,
|
|
114
|
-
cacheTabs: store.cacheTabs
|
|
115
|
-
});
|
|
116
|
-
if (route.name) {
|
|
117
|
-
store.setActiveTab(route.name);
|
|
118
|
-
}
|
|
119
|
-
if (props.cachable && store.cacheTabs.length > 0) {
|
|
120
|
-
const routes = router.getRoutes();
|
|
121
|
-
const routeMap = new Map(routes.map((route2) => [route2.name, route2]));
|
|
122
|
-
store.cacheTabs.forEach((cachedName) => {
|
|
123
|
-
var _a2;
|
|
124
|
-
const route2 = routeMap.get(cachedName);
|
|
125
|
-
if ((_a2 = route2 == null ? void 0 : route2.meta) == null ? void 0 : _a2.title) {
|
|
126
|
-
const tabItem = {
|
|
127
|
-
name: cachedName,
|
|
128
|
-
label: route2.meta.title,
|
|
129
|
-
closable: route2.meta.closable !== false,
|
|
130
|
-
icon: route2.meta.icon,
|
|
131
|
-
affix: route2.meta.affix,
|
|
132
|
-
route: {
|
|
133
|
-
path: route2.path,
|
|
134
|
-
name: cachedName,
|
|
135
|
-
component: route2.components ? markRaw(Object.values(route2.components)[0]) : void 0,
|
|
136
|
-
meta: route2.meta
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
store.addTab(tabItem);
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
if (route.name && ((_a = route.meta) == null ? void 0 : _a.title)) {
|
|
144
|
-
if (!props.cachable || !store.isCached(route.name)) {
|
|
145
|
-
const routes = router.getRoutes();
|
|
146
|
-
const foundRoute = routes.find((r) => r.name === route.name);
|
|
147
|
-
const tabItem = {
|
|
148
|
-
name: route.name,
|
|
149
|
-
label: route.meta.title,
|
|
150
|
-
closable: route.meta.closable !== false,
|
|
151
|
-
icon: route.meta.icon,
|
|
152
|
-
affix: route.meta.affix,
|
|
153
|
-
route: {
|
|
154
|
-
path: route.path,
|
|
155
|
-
name: route.name,
|
|
156
|
-
component: (foundRoute == null ? void 0 : foundRoute.components) ? markRaw(Object.values(foundRoute.components)[0]) : void 0,
|
|
157
|
-
meta: route.meta
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
store.addTab(tabItem);
|
|
161
|
-
}
|
|
162
|
-
if (props.cachable) {
|
|
163
|
-
store.addCache(route.name);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
function handleTabChange(pane) {
|
|
168
|
-
var _a;
|
|
169
|
-
const newTabName = ((_a = pane.props) == null ? void 0 : _a.name) || pane.name;
|
|
170
|
-
store.setActiveTab(newTabName);
|
|
171
|
-
emit("update:modelValue", newTabName);
|
|
172
|
-
if (props.mode === "route" && router) {
|
|
173
|
-
const tab = store.tabList.find((t) => t.name === newTabName);
|
|
174
|
-
if (tab == null ? void 0 : tab.route) {
|
|
175
|
-
router.push(tab.route.path);
|
|
176
|
-
emit("routeChange", tab.route);
|
|
177
|
-
if (props.cachable) {
|
|
178
|
-
store.addCache(newTabName);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
emit("tabClick", pane);
|
|
183
|
-
}
|
|
184
|
-
function handleCloseTab(tabName) {
|
|
185
|
-
const name = String(tabName);
|
|
186
|
-
if (!name)
|
|
187
|
-
return;
|
|
188
|
-
if (props.mode === "route") {
|
|
189
|
-
store.removeTab(name);
|
|
190
|
-
} else {
|
|
191
|
-
closedTabs.value = /* @__PURE__ */ new Set([...closedTabs.value, name]);
|
|
192
|
-
if (store.activeTab === name && props.tabs && props.tabs.length > 0) {
|
|
193
|
-
const currentIndex = props.tabs.findIndex((tab) => tab.name === name);
|
|
194
|
-
const availableTabs = props.tabs.filter((tab) => !closedTabs.value.has(tab.name));
|
|
195
|
-
if (availableTabs.length > 0) {
|
|
196
|
-
const nextTab = availableTabs[currentIndex] || availableTabs[currentIndex - 1];
|
|
197
|
-
if (nextTab) {
|
|
198
|
-
store.setActiveTab(nextTab.name);
|
|
199
|
-
emit("update:modelValue", nextTab.name);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
emit("tabClose", name);
|
|
205
|
-
emit("tabRemove", name);
|
|
206
|
-
}
|
|
207
|
-
function handleAddTab() {
|
|
208
|
-
emit("edit", void 0, "add");
|
|
209
|
-
}
|
|
210
|
-
function isClosed(name) {
|
|
211
|
-
return closedTabs.value.has(name);
|
|
212
|
-
}
|
|
213
|
-
function closeTab(tabName) {
|
|
214
|
-
handleCloseTab(tabName);
|
|
215
|
-
}
|
|
216
|
-
function closeOthers(tabName) {
|
|
217
|
-
store.closeOther(tabName);
|
|
218
|
-
}
|
|
219
|
-
function closeAll() {
|
|
220
|
-
store.closeAll();
|
|
221
|
-
}
|
|
222
|
-
function refreshTab(tabName) {
|
|
223
|
-
store.refresh(tabName);
|
|
224
|
-
}
|
|
225
|
-
function getCachedTabs() {
|
|
226
|
-
return store.getCacheTabs();
|
|
227
|
-
}
|
|
228
|
-
function getTabList() {
|
|
229
|
-
return store.getTabList();
|
|
230
|
-
}
|
|
231
|
-
function getActiveTab() {
|
|
232
|
-
return store.activeTab;
|
|
233
|
-
}
|
|
234
|
-
if (props.mode === "route") {
|
|
235
|
-
onRouteChange((route) => {
|
|
236
|
-
if (route.name) {
|
|
237
|
-
store.setActiveTab(route.name);
|
|
238
|
-
if (props.cachable) {
|
|
239
|
-
store.addCache(route.name);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}, true);
|
|
243
|
-
}
|
|
244
|
-
onMounted(() => {
|
|
245
|
-
if (props.mode === "route") {
|
|
246
|
-
initRouteTabs();
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
__expose({
|
|
250
|
-
closeTab,
|
|
251
|
-
closeOthers,
|
|
252
|
-
closeAll,
|
|
253
|
-
refreshTab,
|
|
254
|
-
getCachedTabs,
|
|
255
|
-
getTabList,
|
|
256
|
-
getActiveTab
|
|
257
|
-
});
|
|
258
|
-
provide("tabsContext", {
|
|
259
|
-
mode: props.mode,
|
|
260
|
-
cachable: props.cachable,
|
|
261
|
-
activeTab: computed(() => store.activeTab),
|
|
262
|
-
cachedTabs: shallowRef(new Set(store.getCacheTabs())),
|
|
263
|
-
cachedComponents: shallowRef(/* @__PURE__ */ new Map())
|
|
264
|
-
});
|
|
265
|
-
return (_ctx, _cache) => {
|
|
266
|
-
return openBlock(), createBlock(unref(ElTabs), mergeProps({
|
|
267
|
-
"model-value": unref(store).activeTab
|
|
268
|
-
}, elTabsProps.value, {
|
|
269
|
-
class: tabsClass.value,
|
|
270
|
-
style: tabStyleVars.value,
|
|
271
|
-
onTabClick: handleTabChange,
|
|
272
|
-
onTabRemove: handleCloseTab,
|
|
273
|
-
onEdit: handleCloseTab,
|
|
274
|
-
onTabAdd: handleAddTab
|
|
275
|
-
}), {
|
|
276
|
-
default: withCtx(() => [
|
|
277
|
-
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
278
|
-
__props.mode === "route" ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(store).tabList, (tab) => {
|
|
279
|
-
return openBlock(), createBlock(unref(ElTabPane), {
|
|
280
|
-
key: tab.name,
|
|
281
|
-
name: tab.name,
|
|
282
|
-
closable: tab.closable
|
|
283
|
-
}, {
|
|
284
|
-
label: withCtx(() => [
|
|
285
|
-
createVNode(_sfc_main$1, { tab }, null, 8, ["tab"])
|
|
286
|
-
]),
|
|
287
|
-
_: 2
|
|
288
|
-
}, 1032, ["name", "closable"]);
|
|
289
|
-
}), 128)) : __props.tabs && __props.tabs.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(__props.tabs, (tab) => {
|
|
290
|
-
return openBlock(), createBlock(unref(ElTabPane), {
|
|
291
|
-
key: tab.name,
|
|
292
|
-
name: tab.name,
|
|
293
|
-
closable: tab.closable,
|
|
294
|
-
style: normalizeStyle({ display: isClosed(tab.name) ? "none" : "" })
|
|
295
|
-
}, {
|
|
296
|
-
label: withCtx(() => [
|
|
297
|
-
createVNode(_sfc_main$1, { tab }, null, 8, ["tab"])
|
|
298
|
-
]),
|
|
299
|
-
_: 2
|
|
300
|
-
}, 1032, ["name", "closable", "style"]);
|
|
301
|
-
}), 128)) : createCommentVNode("", true)
|
|
302
|
-
])
|
|
303
|
-
]),
|
|
304
|
-
_: 3
|
|
305
|
-
}, 16, ["model-value", "class", "style"]);
|
|
306
|
-
};
|
|
307
|
-
}
|
|
308
|
-
}));
|
|
309
|
-
export {
|
|
310
|
-
_sfc_main as default
|
|
311
|
-
};
|
package/dist/es/tabs/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { InstallWithSFC } from '../utils';
|
|
2
|
-
import { default as Tabs } from './Tabs.vue';
|
|
3
|
-
export declare const JkyTabs: InstallWithSFC<typeof Tabs>;
|
|
4
|
-
export default JkyTabs;
|
|
5
|
-
export { clearRouteListeners, emitRouteChange, onRouteChange } from './routeListener';
|
|
6
|
-
export { default as JkyTabContent } from './TabContent.vue';
|
|
7
|
-
export type * from './types';
|
|
8
|
-
export { useTabs } from './useTabs';
|
|
9
|
-
export { createTabsStore, resetTabsStore, useTabsStore } from './useTabsStore';
|