@opendesign-plus/components 0.0.1-rc.39 → 0.0.1-rc.40

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.
Files changed (86) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +52 -54
  3. package/dist/components/header/OHeader.vue.d.ts +7 -1
  4. package/dist/components/header/OHeaderMobile.vue.d.ts +6 -14
  5. package/dist/components/header/components/HeaderFlatten.vue.d.ts +19 -0
  6. package/dist/components/header/components/HeaderNav.vue.d.ts +3 -0
  7. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +0 -2
  8. package/dist/components/header/index.d.ts +18 -10
  9. package/dist/components/header/types.d.ts +8 -4
  10. package/dist/components/header-search/OHeaderSearch.vue.d.ts +5 -2
  11. package/dist/components/header-search/index.d.ts +3 -0
  12. package/dist/components/header-user/OHeaderUser.vue.d.ts +2 -6
  13. package/dist/components/header-user/index.d.ts +3 -18
  14. package/dist/components/meeting/OMeetingCalendar.vue.d.ts +6 -1
  15. package/dist/components/meeting/index.d.ts +18 -5
  16. package/dist/components/meeting/types.d.ts +1 -0
  17. package/dist/components.cjs.js +39 -39
  18. package/dist/components.css +1 -1
  19. package/dist/components.es.js +10188 -9853
  20. package/dist/treeshaking/_virtual/icon-avatar-line.mjs +1 -2
  21. package/dist/treeshaking/_virtual/icon-chevron-right.mjs +4 -1
  22. package/dist/treeshaking/_virtual/icon-header-search.mjs +4 -10
  23. package/dist/treeshaking/_virtual/icon-locale.mjs +0 -1
  24. package/dist/treeshaking/_virtual/icon-moon.mjs +0 -1
  25. package/dist/treeshaking/_virtual/icon-sun.mjs +0 -1
  26. package/dist/treeshaking/components/element-plus/OElCookieNotice.vue.mjs +1 -1
  27. package/dist/treeshaking/components/element-plus/OElCookieNotice2.css +145 -145
  28. package/dist/treeshaking/components/header/OHeader.css +42 -11
  29. package/dist/treeshaking/components/header/OHeader.vue.d.ts +7 -1
  30. package/dist/treeshaking/components/header/OHeader.vue.mjs +1 -1
  31. package/dist/treeshaking/components/header/OHeader.vue2.mjs +66 -41
  32. package/dist/treeshaking/components/header/OHeaderMobile.vue.d.ts +6 -14
  33. package/dist/treeshaking/components/header/OHeaderMobile.vue2.mjs +2 -1
  34. package/dist/treeshaking/components/header/components/HeaderContent.css +317 -555
  35. package/dist/treeshaking/components/header/components/HeaderContent.vue.mjs +1 -1
  36. package/dist/treeshaking/components/header/components/HeaderContent.vue2.mjs +170 -137
  37. package/dist/treeshaking/components/header/components/HeaderFlatten.css +267 -0
  38. package/dist/treeshaking/components/header/components/HeaderFlatten.vue.d.ts +19 -0
  39. package/dist/treeshaking/components/header/components/HeaderFlatten.vue.mjs +7 -0
  40. package/dist/treeshaking/components/header/components/HeaderFlatten.vue2.mjs +298 -0
  41. package/dist/treeshaking/components/header/components/HeaderNav.css +93 -34
  42. package/dist/treeshaking/components/header/components/HeaderNav.vue.d.ts +3 -0
  43. package/dist/treeshaking/components/header/components/HeaderNav.vue.mjs +1 -1
  44. package/dist/treeshaking/components/header/components/HeaderNav.vue2.mjs +20 -7
  45. package/dist/treeshaking/components/header/components/HeaderNavMobile.css +108 -130
  46. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.d.ts +0 -2
  47. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.mjs +1 -1
  48. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue2.mjs +128 -123
  49. package/dist/treeshaking/components/header/index.d.ts +18 -10
  50. package/dist/treeshaking/components/header/types.d.ts +8 -4
  51. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.css +45 -38
  52. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.vue.mjs +1 -1
  53. package/dist/treeshaking/components/header-search/OHeaderSearch.css +65 -38
  54. package/dist/treeshaking/components/header-search/OHeaderSearch.vue.d.ts +5 -2
  55. package/dist/treeshaking/components/header-search/OHeaderSearch.vue.mjs +1 -1
  56. package/dist/treeshaking/components/header-search/OHeaderSearch.vue2.mjs +25 -10
  57. package/dist/treeshaking/components/header-search/index.d.ts +3 -0
  58. package/dist/treeshaking/components/header-source-code/OHeaderSourceCode.css +87 -50
  59. package/dist/treeshaking/components/header-source-code/OHeaderSourceCode.vue.mjs +1 -1
  60. package/dist/treeshaking/components/header-user/OHeaderUser.css +105 -50
  61. package/dist/treeshaking/components/header-user/OHeaderUser.vue.d.ts +2 -6
  62. package/dist/treeshaking/components/header-user/OHeaderUser.vue.mjs +1 -1
  63. package/dist/treeshaking/components/header-user/OHeaderUser.vue2.mjs +46 -33
  64. package/dist/treeshaking/components/header-user/OHeaderUser2.css +5 -41
  65. package/dist/treeshaking/components/header-user/index.d.ts +3 -18
  66. package/dist/treeshaking/components/meeting/OMeetingCalendar.css +30 -1
  67. package/dist/treeshaking/components/meeting/OMeetingCalendar.vue.d.ts +6 -1
  68. package/dist/treeshaking/components/meeting/OMeetingCalendar.vue.mjs +58 -33
  69. package/dist/treeshaking/components/meeting/OMeetingForm.vue.mjs +2 -2
  70. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.css +4 -0
  71. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.css +10 -16
  72. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.vue.mjs +25 -72
  73. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.css +6 -1
  74. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue.mjs +105 -92
  75. package/dist/treeshaking/components/meeting/components/OMeetingSigAside.css +6 -1
  76. package/dist/treeshaking/components/meeting/components/OMeetingSigAside.vue.mjs +59 -50
  77. package/dist/treeshaking/components/meeting/index.d.ts +18 -5
  78. package/dist/treeshaking/components/meeting/types.d.ts +1 -0
  79. package/dist/treeshaking/components/search/internal/SearchImageInput.css +66 -40
  80. package/dist/treeshaking/components/search/internal/SearchImageInput.vue.mjs +1 -1
  81. package/dist/treeshaking/components/search/internal/SearchPanel.css +221 -115
  82. package/dist/treeshaking/components/search/internal/SearchPanel.vue.mjs +1 -1
  83. package/dist/treeshaking/components/search/internal/SearchPanel.vue2.mjs +49 -43
  84. package/dist/treeshaking/i18n/en.mjs +6 -7
  85. package/dist/treeshaking/i18n/zh.mjs +6 -7
  86. package/package.json +1 -1
@@ -0,0 +1,298 @@
1
+ import { defineComponent, ref, computed, onMounted, nextTick, onUnmounted, resolveComponent, resolveDirective, openBlock, createElementBlock, createElementVNode, normalizeClass, createVNode, unref, withCtx, createCommentVNode, normalizeStyle, Fragment, renderList, withDirectives, toDisplayString, createBlock, createTextVNode } from "vue";
2
+ import { OIcon, OTag } from "@opensig/opendesign";
3
+ import IconCaretLeft from "../../../_virtual/icon-caret-left.mjs";
4
+ import IconCaretRight from "../../../_virtual/icon-caret-right.mjs";
5
+ import { useDebounceFn } from "@vueuse/core";
6
+ const _hoisted_1 = { class: "header-nav-wrap" };
7
+ const _hoisted_2 = {
8
+ key: 0,
9
+ class: "right-icon"
10
+ };
11
+ const _hoisted_3 = ["id", "onMouseenter", "onMouseleave"];
12
+ const _hoisted_4 = ["id", "onClick"];
13
+ const _hoisted_5 = { class: "nav-text" };
14
+ const _hoisted_6 = ["id", "href", "target", "rel"];
15
+ const _hoisted_7 = { class: "nav-text" };
16
+ const _hoisted_8 = {
17
+ key: 2,
18
+ class: "nav-item"
19
+ };
20
+ const _hoisted_9 = { class: "nav-text" };
21
+ const _hoisted_10 = { class: "dropdown-wrapper" };
22
+ const _hoisted_11 = { class: "dropdown-body" };
23
+ const _hoisted_12 = ["onMouseenter"];
24
+ const _hoisted_13 = ["onClick"];
25
+ const _hoisted_14 = ["href", "target", "rel"];
26
+ const _hoisted_15 = {
27
+ key: 1,
28
+ class: "right-icon"
29
+ };
30
+ const _sfc_main = /* @__PURE__ */ defineComponent({
31
+ __name: "HeaderFlatten",
32
+ props: {
33
+ navData: {},
34
+ activeIndex: {},
35
+ hoverId: {}
36
+ },
37
+ emits: ["handle-mouseenter", "handle-mouseleave", "handle-click"],
38
+ setup(__props, { emit: __emit }) {
39
+ const emit = __emit;
40
+ const props = __props;
41
+ const hoverIndex = ref();
42
+ const toggleDebounced = useDebounceFn((item, id) => {
43
+ hoverIndex.value = item == null ? void 0 : item.id;
44
+ if (id === "mouseenter") {
45
+ emit("handle-mouseenter", item);
46
+ }
47
+ if (id === "mouseleave") {
48
+ hoverIndex.value = "";
49
+ emit("handle-mouseleave", item);
50
+ }
51
+ }, 100);
52
+ const handleClick = (item) => {
53
+ emit("handle-click", item);
54
+ };
55
+ const navRef = ref();
56
+ const navListRef = ref();
57
+ const resizeTimer = ref();
58
+ const navVisibleRight = ref(false);
59
+ const navVisibleLeft = ref(false);
60
+ const left = ref(0);
61
+ const scrollNavRight = () => {
62
+ navVisibleLeft.value = true;
63
+ nextTick(() => {
64
+ navRef.value.scrollTo({
65
+ left: navRef.value.clientWidth,
66
+ behavior: "smooth"
67
+ });
68
+ });
69
+ };
70
+ const scrollNavLeft = () => {
71
+ navRef.value.scrollTo({
72
+ left: 0,
73
+ behavior: "smooth"
74
+ });
75
+ navVisibleLeft.value = false;
76
+ };
77
+ const calculateLayout = () => {
78
+ var _a, _b, _c, _d;
79
+ if (((_a = navRef.value) == null ? void 0 : _a.clientWidth) < ((_b = navListRef.value) == null ? void 0 : _b.clientWidth)) {
80
+ left.value = ((_c = navListRef.value) == null ? void 0 : _c.clientWidth) - ((_d = navRef.value) == null ? void 0 : _d.clientWidth);
81
+ navVisibleRight.value = true;
82
+ } else {
83
+ navVisibleRight.value = false;
84
+ }
85
+ };
86
+ const beforeStyle = computed(() => ({
87
+ "--o-before-left": left.value ? `${left.value + 16}px` : void 0
88
+ }));
89
+ let lastHoverTime = 0;
90
+ let steps = 0;
91
+ const onRedirect = (navItem) => {
92
+ const timeUsed = Date.now() - lastHoverTime;
93
+ const _steps = steps + 1;
94
+ lastHoverTime = 0;
95
+ steps = 0;
96
+ if (navItem._path) {
97
+ const levels = {};
98
+ navItem._path.forEach((name, idx) => {
99
+ levels[`level${idx + 1}`] = name;
100
+ });
101
+ return {
102
+ properties: {
103
+ module: "navigation",
104
+ timeUsed,
105
+ steps: _steps,
106
+ ...levels
107
+ }
108
+ };
109
+ }
110
+ };
111
+ const onNavHover = (navItem) => {
112
+ steps++;
113
+ if (lastHoverTime) {
114
+ return;
115
+ }
116
+ lastHoverTime = Date.now();
117
+ return {
118
+ event: "hover",
119
+ properties: {
120
+ module: "navigation",
121
+ target: navItem.label
122
+ }
123
+ };
124
+ };
125
+ const onCancelNav = () => {
126
+ lastHoverTime = 0;
127
+ steps = 0;
128
+ };
129
+ onMounted(() => {
130
+ window.addEventListener("resize", calculateLayout);
131
+ nextTick(() => {
132
+ calculateLayout();
133
+ resizeTimer.value = setTimeout(() => {
134
+ calculateLayout();
135
+ }, 1e3);
136
+ });
137
+ });
138
+ onUnmounted(() => {
139
+ window.removeEventListener("resize", calculateLayout);
140
+ clearTimeout(resizeTimer.value);
141
+ });
142
+ return (_ctx, _cache) => {
143
+ const _component_IconOutlink = resolveComponent("IconOutlink");
144
+ const _directive_analytics = resolveDirective("analytics");
145
+ return openBlock(), createElementBlock("nav", _hoisted_1, [
146
+ createElementVNode("div", {
147
+ class: normalizeClass(["header-nav", { "header-nav-scroll": navVisibleLeft.value }])
148
+ }, [
149
+ navVisibleLeft.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
150
+ createVNode(unref(OIcon), { onClick: scrollNavLeft }, {
151
+ default: withCtx(() => [
152
+ createVNode(unref(IconCaretLeft))
153
+ ]),
154
+ _: 1
155
+ })
156
+ ])) : createCommentVNode("", true),
157
+ createElementVNode("div", {
158
+ ref_key: "navRef",
159
+ ref: navRef,
160
+ class: normalizeClass(["o-nav", { "o-nav-scroll": navVisibleLeft.value || !navVisibleRight.value }]),
161
+ style: normalizeStyle(beforeStyle.value)
162
+ }, [
163
+ createElementVNode("ul", {
164
+ ref_key: "navListRef",
165
+ ref: navListRef,
166
+ class: "nav-list",
167
+ onMouseleave: onCancelNav
168
+ }, [
169
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.navData, (item, idx) => {
170
+ var _a, _b;
171
+ return withDirectives((openBlock(), createElementBlock("li", {
172
+ key: item.id,
173
+ id: item.id,
174
+ class: normalizeClass(["nav-item-li", {
175
+ "is-selected": hoverIndex.value === item.id || props.hoverId === item.id,
176
+ "is-active": props.activeIndex === idx || props.activeIndex === item.id,
177
+ "is-disabled": item == null ? void 0 : item.disabled
178
+ }]),
179
+ onMouseenter: ($event) => unref(toggleDebounced)(item, "mouseenter"),
180
+ onMouseleave: ($event) => unref(toggleDebounced)(item, "mouseleave")
181
+ }, [
182
+ !item.href && !((_a = item.children) == null ? void 0 : _a.length) ? (openBlock(), createElementBlock("div", {
183
+ key: 0,
184
+ id: "tour_headerNav_" + item.id,
185
+ class: "nav-item",
186
+ onClick: ($event) => handleClick(item)
187
+ }, [
188
+ createElementVNode("span", _hoisted_5, toDisplayString(item.label), 1),
189
+ item.tag ? (openBlock(), createBlock(unref(OTag), {
190
+ key: 0,
191
+ color: "danger",
192
+ size: "small",
193
+ round: "pill"
194
+ }, {
195
+ default: withCtx(() => [
196
+ createTextVNode(toDisplayString(item.tag), 1)
197
+ ]),
198
+ _: 2
199
+ }, 1024)) : createCommentVNode("", true)
200
+ ], 8, _hoisted_4)) : !((_b = item.children) == null ? void 0 : _b.length) && item.href ? (openBlock(), createElementBlock("a", {
201
+ key: 1,
202
+ id: "tour_headerNav_" + item.id,
203
+ class: "nav-item nav-item-link",
204
+ href: item.href,
205
+ target: (item == null ? void 0 : item.target) || "_self",
206
+ rel: item.href.startsWith("http") ? "noopener noreferrer" : ""
207
+ }, [
208
+ createElementVNode("span", _hoisted_7, toDisplayString(item.label), 1)
209
+ ], 8, _hoisted_6)) : (openBlock(), createElementBlock("div", _hoisted_8, [
210
+ createElementVNode("span", _hoisted_9, toDisplayString(item.label), 1),
211
+ createElementVNode("div", _hoisted_10, [
212
+ createElementVNode("div", _hoisted_11, [
213
+ (openBlock(true), createElementBlock(Fragment, null, renderList(item.children, (childTab, index) => {
214
+ return openBlock(), createElementBlock("div", {
215
+ key: index,
216
+ onMouseenter: ($event) => _ctx.onMouseEnter(idx),
217
+ onMouseleave: _cache[0] || (_cache[0] = //@ts-ignore
218
+ (...args) => _ctx.onMouseLeave && _ctx.onMouseLeave(...args))
219
+ }, [
220
+ !childTab.href ? (openBlock(), createElementBlock("div", {
221
+ key: 0,
222
+ class: normalizeClass(["dropdown-item", { "dropdown-item-disabled": childTab == null ? void 0 : childTab.disabled }]),
223
+ onClick: ($event) => handleClick(childTab)
224
+ }, [
225
+ createElementVNode("span", null, toDisplayString(childTab.label), 1),
226
+ childTab.tag ? (openBlock(), createBlock(unref(OTag), {
227
+ key: 0,
228
+ color: "danger",
229
+ size: "small",
230
+ round: "pill"
231
+ }, {
232
+ default: withCtx(() => [
233
+ createTextVNode(toDisplayString(childTab.tag), 1)
234
+ ]),
235
+ _: 2
236
+ }, 1024)) : createCommentVNode("", true)
237
+ ], 10, _hoisted_13)) : withDirectives((openBlock(), createElementBlock("div", {
238
+ key: 1,
239
+ class: normalizeClass(["dropdown-item", { "dropdown-item-disabled": childTab == null ? void 0 : childTab.disabled }])
240
+ }, [
241
+ createElementVNode("a", {
242
+ href: childTab.href,
243
+ class: "dropdown-link",
244
+ target: (childTab == null ? void 0 : childTab.target) || "_self",
245
+ rel: childTab.href.startsWith("http") ? "noopener noreferrer" : ""
246
+ }, [
247
+ createElementVNode("span", null, toDisplayString(childTab.label), 1),
248
+ childTab.tag ? (openBlock(), createBlock(unref(OTag), {
249
+ key: 0,
250
+ color: "danger",
251
+ size: "small",
252
+ round: "pill"
253
+ }, {
254
+ default: withCtx(() => [
255
+ createTextVNode(toDisplayString(childTab.tag), 1)
256
+ ]),
257
+ _: 2
258
+ }, 1024)) : createCommentVNode("", true),
259
+ childTab.jumpOut ? (openBlock(), createBlock(unref(OIcon), {
260
+ key: 1,
261
+ class: "jump-out-icon"
262
+ }, {
263
+ default: withCtx(() => [
264
+ createVNode(_component_IconOutlink)
265
+ ]),
266
+ _: 1
267
+ })) : createCommentVNode("", true)
268
+ ], 8, _hoisted_14)
269
+ ], 2)), [
270
+ [_directive_analytics, () => onRedirect(childTab)]
271
+ ])
272
+ ], 40, _hoisted_12);
273
+ }), 128))
274
+ ])
275
+ ])
276
+ ]))
277
+ ], 42, _hoisted_3)), [
278
+ [_directive_analytics, () => onNavHover(item), "mouseenter"]
279
+ ]);
280
+ }), 128))
281
+ ], 544)
282
+ ], 6),
283
+ navVisibleRight.value && !navVisibleLeft.value ? (openBlock(), createElementBlock("div", _hoisted_15, [
284
+ createVNode(unref(OIcon), { onClick: scrollNavRight }, {
285
+ default: withCtx(() => [
286
+ createVNode(unref(IconCaretRight))
287
+ ]),
288
+ _: 1
289
+ })
290
+ ])) : createCommentVNode("", true)
291
+ ], 2)
292
+ ]);
293
+ };
294
+ }
295
+ });
296
+ export {
297
+ _sfc_main as default
298
+ };
@@ -1,50 +1,95 @@
1
- .hover-icon-rotate .o-icon[data-v-7e0de1ab] {
1
+ .hover-icon-rotate .o-icon[data-v-e2459cc3] {
2
2
  transition: all var(--o-duration-m1) var(--o-easing-standard-in);
3
3
  }
4
4
  @media (hover: hover) {
5
- .hover-icon-rotate:hover .o-icon[data-v-7e0de1ab] {
5
+ .hover-icon-rotate:hover .o-icon[data-v-e2459cc3] {
6
6
  transform: rotate(-180deg);
7
7
  }
8
8
  }
9
- .header-nav-wrap[data-v-7e0de1ab] {
9
+ .header-nav-wrap[data-v-e2459cc3] {
10
10
  height: 100%;
11
+ --nav-right: 64px;
11
12
  }
12
- .header-nav-wrap .header-nav[data-v-7e0de1ab] {
13
+ @media (min-width: 1201px) and (max-width: 1680px) {
14
+ .header-nav-wrap[data-v-e2459cc3] {
15
+ --nav-right: 48px;
16
+ }
17
+ }
18
+ @media (max-width: 1200px) {
19
+ .header-nav-wrap[data-v-e2459cc3] {
20
+ --nav-right: 32px;
21
+ }
22
+ }
23
+ .header-nav-wrap .header-nav[data-v-e2459cc3] {
13
24
  height: 100%;
14
25
  display: flex;
15
26
  justify-content: space-between;
16
- width: calc(100% - 64px);
27
+ width: calc(100% - var(--nav-right));
17
28
  align-items: center;
18
29
  }
19
- .header-nav-wrap .header-nav-scroll[data-v-7e0de1ab] {
20
- width: calc(100% - 64px - 24px);
30
+ .header-nav-wrap .header-nav-scroll[data-v-e2459cc3] {
31
+ width: calc(100% - var(--nav-right) - 24px);
21
32
  }
22
- .o-nav[data-v-7e0de1ab] {
33
+ .o-nav[data-v-e2459cc3] {
34
+ --o-before-left: 0;
23
35
  height: 100%;
24
36
  position: relative;
25
37
  overflow-y: hidden;
26
38
  overflow-x: auto;
27
39
  }
28
- .o-nav[data-v-7e0de1ab]::after {
40
+ .o-nav[data-v-e2459cc3]::after, .o-nav[data-v-e2459cc3]::before {
29
41
  content: "";
30
42
  position: absolute;
31
43
  width: 50px;
32
44
  height: 100%;
33
- right: 0;
34
45
  top: 0;
46
+ z-index: 9;
47
+ }
48
+ .o-nav[data-v-e2459cc3]::after {
49
+ right: 0;
35
50
  background-image: linear-gradient(90deg, rgba(var(--o-grey-1), 0) 0%, rgba(var(--o-grey-1), 1) 100%);
36
- z-index: 0;
37
51
  }
38
- .o-nav[data-v-7e0de1ab]::-webkit-scrollbar {
52
+ .o-nav[data-v-e2459cc3]::before {
53
+ background-image: linear-gradient(90deg, rgba(var(--o-grey-1), 1) 0%, rgba(var(--o-grey-1), 0) 100%);
54
+ display: none;
55
+ }
56
+ .o-nav[data-v-e2459cc3]::-webkit-scrollbar {
39
57
  display: none;
40
58
  }
41
- [data-o-theme*=dark] .o-nav[data-v-7e0de1ab]::after {
59
+ .right-icon[data-v-e2459cc3] {
60
+ display: flex;
61
+ align-items: center;
62
+ cursor: pointer;
63
+ width: 16px;
64
+ height: 16px;
65
+ border-radius: var(--o-radius-xs);
66
+ }
67
+ .right-icon .o-icon[data-v-e2459cc3] {
68
+ --icon-size: 16px;
69
+ }
70
+ @media (hover: hover) {
71
+ .right-icon[data-v-e2459cc3]:hover {
72
+ background-color: var(--o-color-control2-light);
73
+ color: var(--o-color-link2);
74
+ }
75
+ }
76
+ .right-icon[data-v-e2459cc3]:active {
77
+ color: var(--o-color-link3);
78
+ }
79
+ [data-o-theme*=dark] .o-nav[data-v-e2459cc3]::after {
42
80
  background-image: linear-gradient(90deg, rgba(var(--o-grey-4), 0) 0%, rgba(var(--o-grey-4), 1) 100%);
43
81
  }
44
- .o-nav-scroll[data-v-7e0de1ab]::after {
82
+ [data-o-theme*=dark] .o-nav[data-v-e2459cc3]::before {
83
+ background-image: linear-gradient(90deg, rgba(var(--o-grey-4), 1) 0%, rgba(var(--o-grey-4), 0) 100%);
84
+ }
85
+ .o-nav-scroll[data-v-e2459cc3]::after {
45
86
  display: none;
46
87
  }
47
- .o-nav-list[data-v-7e0de1ab] {
88
+ .nav-left-arrow[data-v-e2459cc3]::before {
89
+ left: var(--o-before-left);
90
+ display: block;
91
+ }
92
+ .o-nav-list[data-v-e2459cc3] {
48
93
  display: flex;
49
94
  height: 100%;
50
95
  width: fit-content;
@@ -53,7 +98,7 @@
53
98
  padding: 0;
54
99
  margin: 0;
55
100
  }
56
- .o-nav-list li[data-v-7e0de1ab] {
101
+ .o-nav-list li[data-v-e2459cc3] {
57
102
  position: relative;
58
103
  display: flex;
59
104
  align-items: center;
@@ -61,10 +106,10 @@
61
106
  color: var(--o-color-info1);
62
107
  transition: all var(--o-duration-s) var(--o-easing-standard);
63
108
  }
64
- .o-nav-list li .nav-text[data-v-7e0de1ab] {
109
+ .o-nav-list li .nav-text[data-v-e2459cc3] {
65
110
  position: relative;
66
111
  }
67
- .o-nav-list li .nav-text[data-v-7e0de1ab]::after {
112
+ .o-nav-list li .nav-text[data-v-e2459cc3]::after {
68
113
  content: "";
69
114
  position: absolute;
70
115
  left: 0;
@@ -76,16 +121,30 @@
76
121
  background: var(--o-color-primary1);
77
122
  transition: all var(--o-duration-s) var(--o-easing-standard);
78
123
  }
79
- .o-nav-list li.is-selected .nav-text[data-v-7e0de1ab], .o-nav-list li.is-active .nav-text[data-v-7e0de1ab] {
124
+ @media (max-width: 1440px) {
125
+ .o-nav-list li .nav-text[data-v-e2459cc3]::after {
126
+ bottom: -21px;
127
+ }
128
+ }
129
+ @media (max-width: 1200px) {
130
+ .o-nav-list li .nav-text[data-v-e2459cc3]::after {
131
+ bottom: -17px;
132
+ }
133
+ }
134
+ .o-nav-list li.is-selected .nav-text[data-v-e2459cc3], .o-nav-list li.is-active .nav-text[data-v-e2459cc3] {
80
135
  color: var(--o-color-primary1);
81
136
  z-index: 99;
82
- font-weight: 500;
137
+ font-weight: 600;
83
138
  }
84
- .o-nav-list li.is-selected .nav-text[data-v-7e0de1ab]::after, .o-nav-list li.is-active .nav-text[data-v-7e0de1ab]::after {
139
+ .o-nav-list li.is-selected .nav-text[data-v-e2459cc3]::after, .o-nav-list li.is-active .nav-text[data-v-e2459cc3]::after {
85
140
  content: "";
86
141
  opacity: 1;
87
142
  }
88
- .o-nav-list .nav-item[data-v-7e0de1ab] {
143
+ .o-nav-list li.is-disabled[data-v-e2459cc3] {
144
+ color: var(--o-color-info4);
145
+ pointer-events: none;
146
+ }
147
+ .o-nav-list .nav-item[data-v-e2459cc3] {
89
148
  cursor: default;
90
149
  display: flex;
91
150
  align-items: center;
@@ -94,48 +153,48 @@
94
153
  line-height: 24px;
95
154
  }
96
155
  @media (min-width: 1201px) and (max-width: 1680px) {
97
- .o-nav-list .nav-item[data-v-7e0de1ab] {
156
+ .o-nav-list .nav-item[data-v-e2459cc3] {
98
157
  font-size: 14px;
99
158
  line-height: 22px;
100
159
  }
101
160
  }
102
161
  @media (min-width: 841px) and (max-width: 1200px) {
103
- .o-nav-list .nav-item[data-v-7e0de1ab] {
162
+ .o-nav-list .nav-item[data-v-e2459cc3] {
104
163
  font-size: 14px;
105
164
  line-height: 22px;
106
165
  }
107
166
  }
108
167
  @media (min-width: 601px) and (max-width: 840px) {
109
- .o-nav-list .nav-item[data-v-7e0de1ab] {
168
+ .o-nav-list .nav-item[data-v-e2459cc3] {
110
169
  font-size: 14px;
111
170
  line-height: 22px;
112
171
  }
113
172
  }
114
173
  @media (max-width: 600px) {
115
- .o-nav-list .nav-item[data-v-7e0de1ab] {
174
+ .o-nav-list .nav-item[data-v-e2459cc3] {
116
175
  font-size: 12px;
117
176
  line-height: 18px;
118
177
  }
119
178
  }
120
- @media (min-width: 1201px) and (max-width: 1680px) {
121
- .o-nav-list .nav-item[data-v-7e0de1ab] {
122
- padding: 22px 12px;
179
+ @media (max-width: 1440px) {
180
+ .o-nav-list .nav-item[data-v-e2459cc3] {
181
+ padding: 18px 12px;
123
182
  }
124
183
  }
125
184
  @media (min-width: 841px) and (max-width: 1200px) {
126
- .o-nav-list .nav-item[data-v-7e0de1ab] {
127
- padding: 22px 8px;
185
+ .o-nav-list .nav-item[data-v-e2459cc3] {
186
+ padding: 14px 8px;
128
187
  }
129
188
  }
130
189
  @media (min-width: 841px) and (max-width: 1000px) {
131
- .o-nav-list .nav-item.en[data-v-7e0de1ab] {
190
+ .o-nav-list .nav-item.en[data-v-e2459cc3] {
132
191
  padding: var(--o-gap-2);
133
192
  }
134
193
  }
135
- .o-nav-list .item-other[data-v-7e0de1ab] {
194
+ .o-nav-list .item-other[data-v-e2459cc3] {
136
195
  cursor: pointer;
137
196
  }
138
- .o-nav-list .item-other .content-tag[data-v-7e0de1ab] {
197
+ .o-nav-list .item-other .content-tag[data-v-e2459cc3] {
139
198
  margin-left: var(--o-gap-2);
140
199
  --layout-pkg-radius: var(--o-radius-xs);
141
200
  }
@@ -3,15 +3,18 @@ export interface OHeaderEmitsT {
3
3
  (e: 'handle-mouseenter', val: any): void;
4
4
  (e: 'handle-mouseleave', val: any): void;
5
5
  (e: 'handle-click', val: any): void;
6
+ (e: 'nav-layout', val: any): void;
6
7
  }
7
8
  declare const _default: import('vue').DefineComponent<NavLiT, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
8
9
  "handle-mouseenter": (val: any) => any;
9
10
  "handle-mouseleave": (val: any) => any;
10
11
  "handle-click": (val: any) => any;
12
+ "nav-layout": (val: any) => any;
11
13
  }, string, import('vue').PublicProps, Readonly<NavLiT> & Readonly<{
12
14
  "onHandle-mouseenter"?: ((val: any) => any) | undefined;
13
15
  "onHandle-mouseleave"?: ((val: any) => any) | undefined;
14
16
  "onHandle-click"?: ((val: any) => any) | undefined;
17
+ "onNav-layout"?: ((val: any) => any) | undefined;
15
18
  }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
16
19
  navRef: HTMLDivElement;
17
20
  navListRef: HTMLUListElement;
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./HeaderNav.vue2.mjs";
2
2
  import './HeaderNav.css';
3
3
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
4
- const HeaderNav = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7e0de1ab"]]);
4
+ const HeaderNav = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e2459cc3"]]);
5
5
  export {
6
6
  HeaderNav as default
7
7
  };
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, onMounted, nextTick, onUnmounted, resolveDirective, openBlock, createElementBlock, createElementVNode, normalizeClass, createVNode, unref, withCtx, createCommentVNode, Fragment, renderList, withDirectives, toDisplayString, createBlock, createTextVNode } from "vue";
1
+ import { defineComponent, ref, computed, onMounted, nextTick, onUnmounted, resolveDirective, openBlock, createElementBlock, createElementVNode, normalizeClass, createVNode, unref, withCtx, createCommentVNode, normalizeStyle, Fragment, renderList, withDirectives, toDisplayString, createBlock, createTextVNode } from "vue";
2
2
  import { OIcon, OTag } from "@opensig/opendesign";
3
3
  import IconCaretLeft from "../../../_virtual/icon-caret-left.mjs";
4
4
  import IconCaretRight from "../../../_virtual/icon-caret-right.mjs";
@@ -24,15 +24,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
24
24
  activeIndex: {},
25
25
  hoverId: {}
26
26
  },
27
- emits: ["handle-mouseenter", "handle-mouseleave", "handle-click"],
27
+ emits: ["handle-mouseenter", "handle-mouseleave", "handle-click", "nav-layout"],
28
28
  setup(__props, { emit: __emit }) {
29
29
  const emit = __emit;
30
30
  const props = __props;
31
31
  const navRef = ref();
32
32
  const navListRef = ref();
33
- const resizeTimer = ref(null);
33
+ const resizeTimer = ref();
34
34
  const navVisibleRight = ref(false);
35
35
  const navVisibleLeft = ref(false);
36
+ const left = ref(0);
36
37
  const hoverIndex = ref();
37
38
  const toggleDebounced = useDebounceFn((item, id) => {
38
39
  hoverIndex.value = item == null ? void 0 : item.id;
@@ -64,13 +65,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
64
65
  navVisibleLeft.value = false;
65
66
  };
66
67
  const calculateLayout = () => {
67
- var _a, _b;
68
+ var _a, _b, _c, _d;
68
69
  if (((_a = navRef.value) == null ? void 0 : _a.clientWidth) < ((_b = navListRef.value) == null ? void 0 : _b.clientWidth)) {
70
+ if (!navVisibleRight.value) {
71
+ emit("nav-layout", true);
72
+ }
73
+ left.value = ((_c = navListRef.value) == null ? void 0 : _c.clientWidth) - ((_d = navRef.value) == null ? void 0 : _d.clientWidth);
69
74
  navVisibleRight.value = true;
70
75
  } else {
76
+ if (navVisibleRight.value) {
77
+ emit("nav-layout", false);
78
+ }
71
79
  navVisibleRight.value = false;
72
80
  }
73
81
  };
82
+ const beforeStyle = computed(() => ({
83
+ "--o-before-left": left.value ? `${left.value + 16}px` : void 0
84
+ }));
74
85
  let hoverTime = 0;
75
86
  let steps = 0;
76
87
  const onHoverHeader = () => steps = 0;
@@ -130,7 +141,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
130
141
  createElementVNode("div", {
131
142
  ref_key: "navRef",
132
143
  ref: navRef,
133
- class: normalizeClass(["o-nav", { "o-nav-scroll": navVisibleLeft.value || !navVisibleRight.value }])
144
+ class: normalizeClass(["o-nav", { "o-nav-scroll": navVisibleLeft.value || !navVisibleRight.value, "nav-left-arrow": navVisibleLeft.value }]),
145
+ style: normalizeStyle(beforeStyle.value)
134
146
  }, [
135
147
  createElementVNode("ul", {
136
148
  ref_key: "navListRef",
@@ -144,7 +156,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
144
156
  key: item.id,
145
157
  class: normalizeClass({
146
158
  "is-selected": hoverIndex.value === item.id || props.hoverId === item.id,
147
- "is-active": props.activeIndex === idx
159
+ "is-active": props.activeIndex === idx || props.activeIndex === item.id,
160
+ "is-disabled": item == null ? void 0 : item.disabled
148
161
  }),
149
162
  onMouseenter: ($event) => unref(toggleDebounced)(item, "mouseenter"),
150
163
  onMouseleave: ($event) => unref(toggleDebounced)(item, "mouseleave")
@@ -186,7 +199,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
186
199
  ]);
187
200
  }), 128))
188
201
  ], 544)
189
- ], 2),
202
+ ], 6),
190
203
  navVisibleRight.value && !navVisibleLeft.value ? (openBlock(), createElementBlock("div", _hoisted_8, [
191
204
  createVNode(unref(OIcon), { onClick: scrollNavRight }, {
192
205
  default: withCtx(() => [