@opendesign-plus-test/components 0.0.1-rc.98 → 0.0.1-rc.99

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 (55) hide show
  1. package/dist/components/header/OHeader.vue.d.ts +4 -1
  2. package/dist/components/header/OHeaderMobile.vue.d.ts +6 -14
  3. package/dist/components/header/components/HeaderFlatten.vue.d.ts +19 -0
  4. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +0 -2
  5. package/dist/components/header/index.d.ts +13 -10
  6. package/dist/components/header/types.d.ts +6 -4
  7. package/dist/components/header-search/OHeaderSearch.vue.d.ts +3 -0
  8. package/dist/components/header-search/index.d.ts +3 -0
  9. package/dist/components.cjs.js +37 -37
  10. package/dist/components.css +1 -1
  11. package/dist/components.es.js +8957 -8697
  12. package/dist/treeshaking/_virtual/icon-avatar-line.mjs +0 -1
  13. package/dist/treeshaking/_virtual/icon-header-search.mjs +4 -10
  14. package/dist/treeshaking/_virtual/icon-moon.mjs +0 -1
  15. package/dist/treeshaking/_virtual/icon-sun.mjs +0 -1
  16. package/dist/treeshaking/components/header/OHeader.css +20 -14
  17. package/dist/treeshaking/components/header/OHeader.vue.d.ts +4 -1
  18. package/dist/treeshaking/components/header/OHeader.vue.mjs +1 -1
  19. package/dist/treeshaking/components/header/OHeader.vue2.mjs +31 -8
  20. package/dist/treeshaking/components/header/OHeaderMobile.vue.d.ts +6 -14
  21. package/dist/treeshaking/components/header/OHeaderMobile.vue2.mjs +2 -1
  22. package/dist/treeshaking/components/header/components/HeaderContent.css +173 -169
  23. package/dist/treeshaking/components/header/components/HeaderContent.vue.mjs +1 -1
  24. package/dist/treeshaking/components/header/components/HeaderContent.vue2.mjs +2 -2
  25. package/dist/treeshaking/components/header/components/HeaderFlatten.css +267 -0
  26. package/dist/treeshaking/components/header/components/HeaderFlatten.vue.d.ts +19 -0
  27. package/dist/treeshaking/components/header/components/HeaderFlatten.vue.mjs +7 -0
  28. package/dist/treeshaking/components/header/components/HeaderFlatten.vue2.mjs +298 -0
  29. package/dist/treeshaking/components/header/components/HeaderNav.css +49 -34
  30. package/dist/treeshaking/components/header/components/HeaderNav.vue.mjs +1 -1
  31. package/dist/treeshaking/components/header/components/HeaderNav.vue2.mjs +13 -6
  32. package/dist/treeshaking/components/header/components/HeaderNavMobile.css +73 -73
  33. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.d.ts +0 -2
  34. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.mjs +1 -1
  35. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue2.mjs +2 -2
  36. package/dist/treeshaking/components/header/index.d.ts +13 -10
  37. package/dist/treeshaking/components/header/types.d.ts +6 -4
  38. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.css +43 -36
  39. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.vue.mjs +1 -1
  40. package/dist/treeshaking/components/header-search/OHeaderSearch.css +63 -41
  41. package/dist/treeshaking/components/header-search/OHeaderSearch.vue.d.ts +3 -0
  42. package/dist/treeshaking/components/header-search/OHeaderSearch.vue.mjs +1 -1
  43. package/dist/treeshaking/components/header-search/OHeaderSearch.vue2.mjs +21 -9
  44. package/dist/treeshaking/components/header-search/index.d.ts +3 -0
  45. package/dist/treeshaking/components/header-source-code/OHeaderSourceCode.css +60 -53
  46. package/dist/treeshaking/components/header-source-code/OHeaderSourceCode.vue.mjs +1 -1
  47. package/dist/treeshaking/components/header-user/OHeaderUser.css +97 -51
  48. package/dist/treeshaking/components/header-user/OHeaderUser.vue.mjs +1 -1
  49. package/dist/treeshaking/components/header-user/OHeaderUser2.css +5 -41
  50. package/dist/treeshaking/components/search/internal/SearchImageInput.css +66 -40
  51. package/dist/treeshaking/components/search/internal/SearchImageInput.vue.mjs +1 -1
  52. package/dist/treeshaking/components/search/internal/SearchPanel.css +108 -120
  53. package/dist/treeshaking/components/search/internal/SearchPanel.vue.mjs +1 -1
  54. package/dist/treeshaking/components/search/internal/SearchPanel.vue2.mjs +46 -34
  55. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./HeaderContent.vue2.mjs";
2
2
  import './HeaderContent.css';
3
3
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
4
- const HeaderContent = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8df309f3"]]);
4
+ const HeaderContent = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-aef9f468"]]);
5
5
  export {
6
6
  HeaderContent as default
7
7
  };
@@ -45,7 +45,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
45
45
  const emit = __emit;
46
46
  const props = __props;
47
47
  const { locale } = useI18n();
48
- const { theme } = useTheme();
48
+ const { theme, isDark } = useTheme();
49
49
  const navVisible = ref(false);
50
50
  const onMouseEnter = () => {
51
51
  var _a;
@@ -244,7 +244,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
244
244
  class: "review"
245
245
  }, [
246
246
  createElementVNode("img", {
247
- src: shortcut.picture,
247
+ src: unref(isDark) && (shortcut == null ? void 0 : shortcut.pictureDark) ? shortcut == null ? void 0 : shortcut.pictureDark : shortcut.picture,
248
248
  class: "review-picture"
249
249
  }, null, 8, _hoisted_16),
250
250
  createElementVNode("div", _hoisted_17, [
@@ -0,0 +1,267 @@
1
+ .hover-icon-rotate .o-icon[data-v-a4e6916a] {
2
+ transition: all var(--o-duration-m1) var(--o-easing-standard-in);
3
+ }
4
+ @media (hover: hover) {
5
+ .hover-icon-rotate:hover .o-icon[data-v-a4e6916a] {
6
+ transform: rotate(-180deg);
7
+ }
8
+ }
9
+ .header-nav-wrap[data-v-a4e6916a] {
10
+ height: 100%;
11
+ }
12
+ .header-nav-wrap .header-nav[data-v-a4e6916a] {
13
+ height: 100%;
14
+ display: flex;
15
+ justify-content: space-between;
16
+ width: calc(100% - 64px);
17
+ align-items: center;
18
+ }
19
+ .header-nav-wrap .header-nav-scroll[data-v-a4e6916a] {
20
+ width: calc(100% - 64px - 24px);
21
+ }
22
+ .o-nav[data-v-a4e6916a] {
23
+ --o-before-left: 0;
24
+ height: 100%;
25
+ position: relative;
26
+ overflow-y: hidden;
27
+ overflow-x: auto;
28
+ }
29
+ .o-nav[data-v-a4e6916a]::after, .o-nav[data-v-a4e6916a]::before {
30
+ content: "";
31
+ position: absolute;
32
+ width: 50px;
33
+ height: 100%;
34
+ top: 0;
35
+ z-index: 9;
36
+ }
37
+ .o-nav[data-v-a4e6916a]::after {
38
+ right: 0;
39
+ background-image: linear-gradient(90deg, rgba(var(--o-grey-1), 0) 0%, rgba(var(--o-grey-1), 1) 100%);
40
+ }
41
+ .o-nav[data-v-a4e6916a]::before {
42
+ background-image: linear-gradient(0, rgba(var(--o-grey-1), 0) 0%, rgba(var(--o-grey-1), 1) 100%);
43
+ display: none;
44
+ }
45
+ .o-nav[data-v-a4e6916a]::-webkit-scrollbar {
46
+ display: none;
47
+ }
48
+ .right-icon[data-v-a4e6916a] {
49
+ display: flex;
50
+ align-items: center;
51
+ cursor: pointer;
52
+ width: 16px;
53
+ height: 16px;
54
+ border-radius: var(--o-radius-xs);
55
+ }
56
+ .right-icon .o-icon[data-v-a4e6916a] {
57
+ --icon-size: 16px;
58
+ }
59
+ @media (hover: hover) {
60
+ .right-icon[data-v-a4e6916a]:hover {
61
+ background-color: var(--o-color-control2-light);
62
+ color: var(--o-color-link2);
63
+ }
64
+ }
65
+ .right-icon[data-v-a4e6916a]:active {
66
+ color: var(--o-color-link3);
67
+ }
68
+ [data-o-theme*=dark] .o-nav[data-v-a4e6916a]::after, [data-o-theme*=dark] .o-nav[data-v-a4e6916a]::before {
69
+ background-image: linear-gradient(90deg, rgba(var(--o-grey-4), 0) 0%, rgba(var(--o-grey-4), 1) 100%);
70
+ }
71
+ .o-nav-scroll[data-v-a4e6916a]::after {
72
+ display: none;
73
+ }
74
+ .o-nav-scroll[data-v-a4e6916a]::before {
75
+ left: var(--o-before-left);
76
+ display: block;
77
+ }
78
+ .nav-list[data-v-a4e6916a] {
79
+ display: flex;
80
+ height: 100%;
81
+ width: fit-content;
82
+ flex-wrap: nowrap;
83
+ white-space: nowrap;
84
+ padding: 0;
85
+ margin: 0;
86
+ }
87
+ .nav-item-li[data-v-a4e6916a] {
88
+ position: relative;
89
+ display: flex;
90
+ align-items: center;
91
+ height: 100%;
92
+ color: var(--o-color-info1);
93
+ pointer-events: auto;
94
+ transition: color var(--o-duration-s) var(--o-easing-standard);
95
+ }
96
+ .nav-item-li .nav-item[data-v-a4e6916a] {
97
+ cursor: default;
98
+ display: flex;
99
+ align-items: center;
100
+ padding: 22px var(--o-gap-4);
101
+ font-size: 16px;
102
+ line-height: 24px;
103
+ }
104
+ @media (min-width: 1201px) and (max-width: 1680px) {
105
+ .nav-item-li .nav-item[data-v-a4e6916a] {
106
+ font-size: 14px;
107
+ line-height: 22px;
108
+ }
109
+ }
110
+ @media (min-width: 841px) and (max-width: 1200px) {
111
+ .nav-item-li .nav-item[data-v-a4e6916a] {
112
+ font-size: 14px;
113
+ line-height: 22px;
114
+ }
115
+ }
116
+ @media (min-width: 601px) and (max-width: 840px) {
117
+ .nav-item-li .nav-item[data-v-a4e6916a] {
118
+ font-size: 14px;
119
+ line-height: 22px;
120
+ }
121
+ }
122
+ @media (max-width: 600px) {
123
+ .nav-item-li .nav-item[data-v-a4e6916a] {
124
+ font-size: 12px;
125
+ line-height: 18px;
126
+ }
127
+ }
128
+ @media (max-width: 1440px) {
129
+ .nav-item-li .nav-item[data-v-a4e6916a] {
130
+ padding: 18px 12px;
131
+ }
132
+ }
133
+ @media (min-width: 841px) and (max-width: 1200px) {
134
+ .nav-item-li .nav-item[data-v-a4e6916a] {
135
+ padding: 14px 8px;
136
+ }
137
+ }
138
+ .nav-item-li .nav-text[data-v-a4e6916a] {
139
+ position: relative;
140
+ }
141
+ .nav-item-li .nav-text[data-v-a4e6916a]::after {
142
+ content: "";
143
+ position: absolute;
144
+ left: 0;
145
+ opacity: 0;
146
+ bottom: -24px;
147
+ width: 100%;
148
+ height: 2px;
149
+ border-radius: 1px;
150
+ background: var(--o-color-primary1);
151
+ transition: all var(--o-duration-s) var(--o-easing-standard);
152
+ }
153
+ @media (max-width: 1440px) {
154
+ .nav-item-li .nav-text[data-v-a4e6916a]::after {
155
+ bottom: -21px;
156
+ }
157
+ }
158
+ @media (max-width: 1200px) {
159
+ .nav-item-li .nav-text[data-v-a4e6916a]::after {
160
+ bottom: -17px;
161
+ }
162
+ }
163
+ .nav-item-li .nav-item-link[data-v-a4e6916a] {
164
+ cursor: pointer;
165
+ }
166
+ .nav-item-li.is-selected .nav-text[data-v-a4e6916a], .nav-item-li.is-active .nav-text[data-v-a4e6916a] {
167
+ color: var(--o-color-primary1);
168
+ z-index: 99;
169
+ font-weight: 600;
170
+ }
171
+ .nav-item-li.is-selected .nav-text[data-v-a4e6916a]::after, .nav-item-li.is-active .nav-text[data-v-a4e6916a]::after {
172
+ opacity: 1;
173
+ }
174
+ .nav-item-li.is-disabled[data-v-a4e6916a] {
175
+ color: var(--o-color-info4);
176
+ pointer-events: none;
177
+ }
178
+ .dropdown-wrapper[data-v-a4e6916a] {
179
+ position: absolute;
180
+ top: calc(100% - 4px);
181
+ left: 0;
182
+ display: none;
183
+ padding-top: 8px;
184
+ transition: opacity var(--o-duration-s) var(--o-easing-standard);
185
+ }
186
+ .dropdown-wrapper .dropdown-body[data-v-a4e6916a] {
187
+ padding: 6px;
188
+ background-color: var(--o-color-fill2);
189
+ border-radius: var(--o-radius-xs);
190
+ box-shadow: var(--o-shadow-2);
191
+ }
192
+ .dropdown-wrapper .dropdown-item[data-v-a4e6916a] {
193
+ font-weight: 400;
194
+ white-space: nowrap;
195
+ display: flex;
196
+ align-items: center;
197
+ padding: 6px 12px;
198
+ min-width: 100px;
199
+ border-radius: var(--o-radius-xs);
200
+ color: var(--o-color-info2);
201
+ background-color: transparent;
202
+ transition: background-color var(--o-duration-s) var(--o-easing-standard);
203
+ cursor: pointer;
204
+ font-size: 16px;
205
+ line-height: 24px;
206
+ }
207
+ @media (min-width: 1201px) and (max-width: 1680px) {
208
+ .dropdown-wrapper .dropdown-item[data-v-a4e6916a] {
209
+ font-size: 14px;
210
+ line-height: 22px;
211
+ }
212
+ }
213
+ @media (min-width: 841px) and (max-width: 1200px) {
214
+ .dropdown-wrapper .dropdown-item[data-v-a4e6916a] {
215
+ font-size: 14px;
216
+ line-height: 22px;
217
+ }
218
+ }
219
+ @media (min-width: 601px) and (max-width: 840px) {
220
+ .dropdown-wrapper .dropdown-item[data-v-a4e6916a] {
221
+ font-size: 14px;
222
+ line-height: 22px;
223
+ }
224
+ }
225
+ @media (max-width: 600px) {
226
+ .dropdown-wrapper .dropdown-item[data-v-a4e6916a] {
227
+ font-size: 12px;
228
+ line-height: 18px;
229
+ }
230
+ }
231
+ @media (hover: hover) {
232
+ .dropdown-wrapper .dropdown-item[data-v-a4e6916a]:hover {
233
+ background-color: var(--o-color-control2-light);
234
+ color: var(--o-color-primary1);
235
+ }
236
+ }
237
+ .dropdown-wrapper .dropdown-item-disabled[data-v-a4e6916a] {
238
+ color: var(--o-color-info4);
239
+ pointer-events: none;
240
+ }
241
+ .dropdown-wrapper .dropdown-link[data-v-a4e6916a] {
242
+ color: inherit;
243
+ display: flex;
244
+ align-items: center;
245
+ width: 100%;
246
+ }
247
+ .dropdown-wrapper .dropdown-link .o-tag[data-v-a4e6916a] {
248
+ margin-left: var(--o-gap-2);
249
+ transform: scale(0.75);
250
+ transform-origin: left center;
251
+ }
252
+ .dropdown-wrapper[data-v-a4e6916a] .jump-out-icon {
253
+ font-size: 16px;
254
+ margin-left: 4px;
255
+ }
256
+ .dropdown-wrapper[data-v-a4e6916a] .jump-out-icon path {
257
+ fill: currentColor;
258
+ stroke: transparent;
259
+ }
260
+ .dropdown-wrapper[data-v-a4e6916a] .jump-out-icon path[fill=none] {
261
+ display: none;
262
+ }
263
+ @media (hover: hover) {
264
+ .nav-item:hover .dropdown-wrapper[data-v-a4e6916a] {
265
+ display: block;
266
+ }
267
+ }
@@ -0,0 +1,19 @@
1
+ import { NavLiT } from '../types.ts';
2
+ export interface OHeaderEmitsT {
3
+ (e: 'handle-mouseenter', val: any): void;
4
+ (e: 'handle-mouseleave', val: any): void;
5
+ (e: 'handle-click', val: any): void;
6
+ }
7
+ declare const _default: import('vue').DefineComponent<NavLiT, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
8
+ "handle-mouseenter": (val: any) => any;
9
+ "handle-mouseleave": (val: any) => any;
10
+ "handle-click": (val: any) => any;
11
+ }, string, import('vue').PublicProps, Readonly<NavLiT> & Readonly<{
12
+ "onHandle-mouseenter"?: ((val: any) => any) | undefined;
13
+ "onHandle-mouseleave"?: ((val: any) => any) | undefined;
14
+ "onHandle-click"?: ((val: any) => any) | undefined;
15
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
16
+ navRef: HTMLDivElement;
17
+ navListRef: HTMLUListElement;
18
+ }, HTMLElement>;
19
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import _sfc_main from "./HeaderFlatten.vue2.mjs";
2
+ import './HeaderFlatten.css';
3
+ import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
4
+ const HeaderFlatten = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a4e6916a"]]);
5
+ export {
6
+ HeaderFlatten as default
7
+ };
@@ -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
+ };