@opendesign-plus-test/components 0.0.1-rc.84 → 0.0.1-rc.86

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 (49) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +85 -73
  3. package/dist/components/activity/index.d.ts +9 -9
  4. package/dist/components/banner/index.d.ts +6 -6
  5. package/dist/components/events/index.d.ts +20 -20
  6. package/dist/components/header/OHeaderMobile.vue.d.ts +22 -22
  7. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +3 -3
  8. package/dist/components/header/index.d.ts +27 -27
  9. package/dist/components/header-search/index.d.ts +13 -13
  10. package/dist/components/meeting/OMeetingForm.vue.d.ts +2 -0
  11. package/dist/components/meeting/OMeetingPlayback.vue.d.ts +6 -6
  12. package/dist/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
  13. package/dist/components/meeting/index.d.ts +37 -31
  14. package/dist/components/meeting/types.d.ts +3 -0
  15. package/dist/components/search/index.d.ts +11 -11
  16. package/dist/components.cjs.js +38 -37
  17. package/dist/components.css +1 -1
  18. package/dist/components.es.js +7980 -7839
  19. package/dist/treeshaking/components/activity/index.d.ts +9 -9
  20. package/dist/treeshaking/components/banner/index.d.ts +6 -6
  21. package/dist/treeshaking/components/common/MoreText.css +12 -12
  22. package/dist/treeshaking/components/common/MoreText.vue.mjs +86 -5
  23. package/dist/treeshaking/components/common/MoreText.vue3.mjs +5 -0
  24. package/dist/treeshaking/components/common/ThFilter.css +10 -10
  25. package/dist/treeshaking/components/common/TooltipText.css +34 -0
  26. package/dist/treeshaking/components/common/TooltipText.vue.mjs +85 -0
  27. package/dist/treeshaking/components/common/TooltipText.vue3.mjs +5 -0
  28. package/dist/treeshaking/components/events/index.d.ts +20 -20
  29. package/dist/treeshaking/components/header/OHeaderMobile.vue.d.ts +22 -22
  30. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.d.ts +3 -3
  31. package/dist/treeshaking/components/header/index.d.ts +27 -27
  32. package/dist/treeshaking/components/header-search/index.d.ts +13 -13
  33. package/dist/treeshaking/components/meeting/OMeetingForm.vue.d.ts +2 -0
  34. package/dist/treeshaking/components/meeting/OMeetingForm.vue.mjs +104 -47
  35. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.css +4 -0
  36. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.vue.mjs +38 -13
  37. package/dist/treeshaking/components/meeting/OMeetingPlayback.vue.d.ts +6 -6
  38. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue.mjs +11 -2
  39. package/dist/treeshaking/components/meeting/components/OMeetingDetail.vue.mjs +3 -2
  40. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
  41. package/dist/treeshaking/components/meeting/index.d.ts +37 -31
  42. package/dist/treeshaking/components/meeting/types.d.ts +3 -0
  43. package/dist/treeshaking/components/search/index.d.ts +11 -11
  44. package/dist/treeshaking/i18n/en.mjs +6 -0
  45. package/dist/treeshaking/i18n/zh.mjs +8 -2
  46. package/package.json +1 -1
  47. package/dist/components/meeting/components/OMeetingCalendarSelector.vue.d.ts +0 -664
  48. package/dist/treeshaking/components/common/MoreText.vue2.mjs +0 -88
  49. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.vue.d.ts +0 -664
@@ -1,6 +1,6 @@
1
1
  import { App } from 'vue';
2
2
  declare const OActivityForm: {
3
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../../index').ActivityFormPropsT> & Readonly<{
3
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./types').ActivityFormPropsT> & Readonly<{
4
4
  onConfirm?: ((...args: any[]) => any) | undefined;
5
5
  onClose?: ((...args: any[]) => any) | undefined;
6
6
  }>, {
@@ -142,7 +142,7 @@ declare const OActivityForm: {
142
142
  C: {};
143
143
  M: {};
144
144
  Defaults: {};
145
- }, Readonly<import('../../index').ActivityFormPropsT> & Readonly<{
145
+ }, Readonly<import('./types').ActivityFormPropsT> & Readonly<{
146
146
  onConfirm?: ((...args: any[]) => any) | undefined;
147
147
  onClose?: ((...args: any[]) => any) | undefined;
148
148
  }>, {
@@ -151,7 +151,7 @@ declare const OActivityForm: {
151
151
  __isFragment?: never;
152
152
  __isTeleport?: never;
153
153
  __isSuspense?: never;
154
- } & import('vue').ComponentOptionsBase<Readonly<import('../../index').ActivityFormPropsT> & Readonly<{
154
+ } & import('vue').ComponentOptionsBase<Readonly<import('./types').ActivityFormPropsT> & Readonly<{
155
155
  onConfirm?: ((...args: any[]) => any) | undefined;
156
156
  onClose?: ((...args: any[]) => any) | undefined;
157
157
  }>, {
@@ -163,7 +163,7 @@ declare const OActivityForm: {
163
163
  install(app: App): void;
164
164
  };
165
165
  declare const OActivityApproval: {
166
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../../index').ActivityTablePropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
166
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./types').ActivityTablePropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
167
167
  formRef: ({
168
168
  $: import('vue').ComponentInternalInstance;
169
169
  $data: {};
@@ -297,11 +297,11 @@ declare const OActivityApproval: {
297
297
  C: {};
298
298
  M: {};
299
299
  Defaults: {};
300
- }, Readonly<import('../../index').ActivityTablePropsT> & Readonly<{}>, {}, {}, {}, {}, {}>;
300
+ }, Readonly<import('./types').ActivityTablePropsT> & Readonly<{}>, {}, {}, {}, {}, {}>;
301
301
  __isFragment?: never;
302
302
  __isTeleport?: never;
303
303
  __isSuspense?: never;
304
- } & import('vue').ComponentOptionsBase<Readonly<import('../../index').ActivityTablePropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
304
+ } & import('vue').ComponentOptionsBase<Readonly<import('./types').ActivityTablePropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
305
305
  $slots: {
306
306
  'filter-empty'?(_: {}): any;
307
307
  'filter-empty'?(_: {}): any;
@@ -310,7 +310,7 @@ declare const OActivityApproval: {
310
310
  install(app: App): void;
311
311
  };
312
312
  declare const OActivityMyCalendar: {
313
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../../index').MyActivityCalendarPropsT> & Readonly<{
313
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./types').MyActivityCalendarPropsT> & Readonly<{
314
314
  onEdit?: ((...args: any[]) => any) | undefined;
315
315
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
316
316
  edit: (...args: any[]) => void;
@@ -627,13 +627,13 @@ declare const OActivityMyCalendar: {
627
627
  C: {};
628
628
  M: {};
629
629
  Defaults: {};
630
- }, Readonly<import('../../index').MyActivityCalendarPropsT> & Readonly<{
630
+ }, Readonly<import('./types').MyActivityCalendarPropsT> & Readonly<{
631
631
  onEdit?: ((...args: any[]) => any) | undefined;
632
632
  }>, {}, {}, {}, {}, {}>;
633
633
  __isFragment?: never;
634
634
  __isTeleport?: never;
635
635
  __isSuspense?: never;
636
- } & import('vue').ComponentOptionsBase<Readonly<import('../../index').MyActivityCalendarPropsT> & Readonly<{
636
+ } & import('vue').ComponentOptionsBase<Readonly<import('./types').MyActivityCalendarPropsT> & Readonly<{
637
637
  onEdit?: ((...args: any[]) => any) | undefined;
638
638
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
639
639
  edit: (...args: any[]) => void;
@@ -1,7 +1,7 @@
1
1
  import { App } from 'vue';
2
2
  declare const OBanner: {
3
3
  new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
4
- options?: import('../../index').BannerItem | import('../../index').BannerItem[];
4
+ options?: import('./types').BannerItem | import('./types').BannerItem[];
5
5
  size?: "large" | "medium" | "small" | "tiny";
6
6
  contentJustifyCenter?: boolean;
7
7
  autoPlay?: boolean;
@@ -17,7 +17,7 @@ declare const OBanner: {
17
17
  M: {};
18
18
  Defaults: {};
19
19
  }, Readonly<{
20
- options?: import('../../index').BannerItem | import('../../index').BannerItem[];
20
+ options?: import('./types').BannerItem | import('./types').BannerItem[];
21
21
  size?: "large" | "medium" | "small" | "tiny";
22
22
  contentJustifyCenter?: boolean;
23
23
  autoPlay?: boolean;
@@ -28,7 +28,7 @@ declare const OBanner: {
28
28
  __isTeleport?: never;
29
29
  __isSuspense?: never;
30
30
  } & import('vue').ComponentOptionsBase<Readonly<{
31
- options?: import('../../index').BannerItem | import('../../index').BannerItem[];
31
+ options?: import('./types').BannerItem | import('./types').BannerItem[];
32
32
  size?: "large" | "medium" | "small" | "tiny";
33
33
  contentJustifyCenter?: boolean;
34
34
  autoPlay?: boolean;
@@ -40,7 +40,7 @@ declare const OBanner: {
40
40
  install(app: App): void;
41
41
  };
42
42
  declare const OBannerContent: {
43
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../../index').BannerContentProps> & Readonly<{
43
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./types').BannerContentProps> & Readonly<{
44
44
  onClick?: ((href: string | undefined) => any) | undefined;
45
45
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
46
46
  click: (href: string | undefined) => any;
@@ -51,13 +51,13 @@ declare const OBannerContent: {
51
51
  C: {};
52
52
  M: {};
53
53
  Defaults: {};
54
- }, Readonly<import('../../index').BannerContentProps> & Readonly<{
54
+ }, Readonly<import('./types').BannerContentProps> & Readonly<{
55
55
  onClick?: ((href: string | undefined) => any) | undefined;
56
56
  }>, {}, {}, {}, {}, {}>;
57
57
  __isFragment?: never;
58
58
  __isTeleport?: never;
59
59
  __isSuspense?: never;
60
- } & import('vue').ComponentOptionsBase<Readonly<import('../../index').BannerContentProps> & Readonly<{
60
+ } & import('vue').ComponentOptionsBase<Readonly<import('./types').BannerContentProps> & Readonly<{
61
61
  onClick?: ((href: string | undefined) => any) | undefined;
62
62
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
63
63
  click: (href: string | undefined) => any;
@@ -1,12 +1,12 @@
1
- .hover-icon-rotate .o-icon[data-v-0eb750e5] {
1
+ .hover-icon-rotate .o-icon {
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-0eb750e5] {
5
+ .hover-icon-rotate:hover .o-icon {
6
6
  transform: rotate(-180deg);
7
7
  }
8
8
  }
9
- .more-text-wrapper .more-text-content[data-v-0eb750e5] {
9
+ .more-text-wrapper .more-text-content {
10
10
  line-height: 1.5em;
11
11
  overflow: hidden;
12
12
  text-overflow: ellipsis;
@@ -16,24 +16,24 @@
16
16
  word-break: break-all;
17
17
  transition: height 0.1s;
18
18
  }
19
- .more-text-wrapper .more-text-content.is-link[data-v-0eb750e5] {
19
+ .more-text-wrapper .more-text-content.is-link {
20
20
  color: var(--o-color-primary1);
21
21
  cursor: pointer;
22
22
  }
23
23
  @media (hover: hover) {
24
- .more-text-wrapper .more-text-content.is-link[data-v-0eb750e5]:hover {
24
+ .more-text-wrapper .more-text-content.is-link:hover {
25
25
  color: var(--o-color-primary2);
26
26
  }
27
27
  }
28
- .more-text-wrapper .more-text-btn[data-v-0eb750e5] {
28
+ .more-text-wrapper .more-text-btn {
29
29
  color: var(--o-color-primary1);
30
30
  }
31
31
  @media (hover: hover) {
32
- .more-text-wrapper .more-text-btn[data-v-0eb750e5]:hover {
32
+ .more-text-wrapper .more-text-btn:hover {
33
33
  color: var(--o-color-primary2);
34
34
  }
35
35
  }
36
- .more-text-wrapper .more-text-btn > div[data-v-0eb750e5] {
36
+ .more-text-wrapper .more-text-btn > div {
37
37
  height: 1.5em;
38
38
  cursor: pointer;
39
39
  display: flex;
@@ -44,25 +44,25 @@
44
44
  line-height: 22px;
45
45
  }
46
46
  @media (min-width: 1201px) and (max-width: 1680px) {
47
- .more-text-wrapper .more-text-btn > div[data-v-0eb750e5] {
47
+ .more-text-wrapper .more-text-btn > div {
48
48
  font-size: 12px;
49
49
  line-height: 18px;
50
50
  }
51
51
  }
52
52
  @media (min-width: 841px) and (max-width: 1200px) {
53
- .more-text-wrapper .more-text-btn > div[data-v-0eb750e5] {
53
+ .more-text-wrapper .more-text-btn > div {
54
54
  font-size: 12px;
55
55
  line-height: 18px;
56
56
  }
57
57
  }
58
58
  @media (min-width: 601px) and (max-width: 840px) {
59
- .more-text-wrapper .more-text-btn > div[data-v-0eb750e5] {
59
+ .more-text-wrapper .more-text-btn > div {
60
60
  font-size: 12px;
61
61
  line-height: 18px;
62
62
  }
63
63
  }
64
64
  @media (max-width: 600px) {
65
- .more-text-wrapper .more-text-btn > div[data-v-0eb750e5] {
65
+ .more-text-wrapper .more-text-btn > div {
66
66
  font-size: 12px;
67
67
  line-height: 18px;
68
68
  }
@@ -1,7 +1,88 @@
1
- import _sfc_main from "./MoreText.vue2.mjs";
2
- import './MoreText.css';
3
- import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const MoreText = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0eb750e5"]]);
1
+ import { defineComponent, ref, onMounted, watch, nextTick, openBlock, createElementBlock, createElementVNode, normalizeStyle, normalizeClass, toDisplayString, unref, createVNode, withCtx, createCommentVNode } from "vue";
2
+ import { OIcon, OIconChevronDown, OIconChevronUp } from "@opensig/opendesign";
3
+ import { useI18n } from "../../i18n/index.mjs";
4
+ const _hoisted_1 = { class: "more-text-wrapper" };
5
+ const _hoisted_2 = { key: 0 };
6
+ const _hoisted_3 = { key: 1 };
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "MoreText",
9
+ props: {
10
+ text: { default: "" },
11
+ link: { type: Boolean, default: false },
12
+ lines: { default: 3 },
13
+ show: { type: Boolean, default: false }
14
+ },
15
+ setup(__props) {
16
+ const props = __props;
17
+ const { t } = useI18n();
18
+ const expanded = ref(false);
19
+ const showBtn = ref(false);
20
+ const offsetHeight = ref(0);
21
+ const contentRef = ref(null);
22
+ onMounted(() => {
23
+ determineHeight();
24
+ });
25
+ watch([() => props.text, () => props.show], () => {
26
+ determineHeight();
27
+ });
28
+ const determineHeight = () => {
29
+ nextTick(() => {
30
+ const ele = contentRef.value;
31
+ if (ele) {
32
+ const range = document.createRange();
33
+ range.setStart(ele, 0);
34
+ range.setEnd(ele, ele.childNodes.length);
35
+ showBtn.value = range.getBoundingClientRect().height > ele.offsetHeight + 10 || ele.scrollHeight > ele.offsetHeight + 10;
36
+ offsetHeight.value = range.getBoundingClientRect().height || ele.scrollHeight;
37
+ } else {
38
+ showBtn.value = false;
39
+ }
40
+ });
41
+ };
42
+ const clickText = () => {
43
+ if (props.link) {
44
+ window.open(props.text);
45
+ }
46
+ };
47
+ return (_ctx, _cache) => {
48
+ return openBlock(), createElementBlock("div", _hoisted_1, [
49
+ createElementVNode("div", {
50
+ class: normalizeClass(["more-text-content", __props.link && "is-link"]),
51
+ ref_key: "contentRef",
52
+ ref: contentRef,
53
+ style: normalizeStyle({
54
+ "max-height": expanded.value ? offsetHeight.value + "px" : "4.5em",
55
+ "-webkit-line-clamp": expanded.value ? "initial" : __props.lines
56
+ }),
57
+ onClick: clickText
58
+ }, toDisplayString(__props.text), 7),
59
+ showBtn.value ? (openBlock(), createElementBlock("div", {
60
+ key: 0,
61
+ class: "more-text-btn",
62
+ onClick: _cache[0] || (_cache[0] = ($event) => expanded.value = !expanded.value)
63
+ }, [
64
+ !expanded.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
65
+ createElementVNode("span", null, toDisplayString(unref(t)("common.expand")), 1),
66
+ createVNode(unref(OIcon), null, {
67
+ default: withCtx(() => [
68
+ createVNode(unref(OIconChevronDown))
69
+ ]),
70
+ _: 1
71
+ })
72
+ ])) : (openBlock(), createElementBlock("div", _hoisted_3, [
73
+ createElementVNode("span", null, toDisplayString(unref(t)("common.collapse")), 1),
74
+ createVNode(unref(OIcon), null, {
75
+ default: withCtx(() => [
76
+ createVNode(unref(OIconChevronUp))
77
+ ]),
78
+ _: 1
79
+ })
80
+ ]))
81
+ ])) : createCommentVNode("", true)
82
+ ]);
83
+ };
84
+ }
85
+ });
5
86
  export {
6
- MoreText as default
87
+ _sfc_main as default
7
88
  };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./MoreText.vue.mjs";
2
+ import './MoreText.css';
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -15,50 +15,50 @@
15
15
  .th-filter-wrapper > span:first-child {
16
16
  word-break: keep-all;
17
17
  }
18
- .filter-wrapper {
18
+ .th-filter-wrapper .filter-wrapper {
19
19
  display: flex;
20
20
  align-items: center;
21
21
  justify-content: center;
22
22
  cursor: pointer;
23
23
  }
24
- .filter-wrapper > * {
24
+ .th-filter-wrapper .filter-wrapper > * {
25
25
  flex-shrink: 0;
26
26
  }
27
- .filter-wrapper .filter-hover-icon {
27
+ .th-filter-wrapper .filter-wrapper .filter-hover-icon {
28
28
  display: none;
29
29
  }
30
- .filter-wrapper .filter-icon {
30
+ .th-filter-wrapper .filter-wrapper .filter-icon {
31
31
  font-size: 24px;
32
32
  line-height: 32px;
33
33
  }
34
34
  @media (min-width: 1201px) and (max-width: 1680px) {
35
- .filter-wrapper .filter-icon {
35
+ .th-filter-wrapper .filter-wrapper .filter-icon {
36
36
  font-size: 20px;
37
37
  line-height: 28px;
38
38
  }
39
39
  }
40
40
  @media (min-width: 841px) and (max-width: 1200px) {
41
- .filter-wrapper .filter-icon {
41
+ .th-filter-wrapper .filter-wrapper .filter-icon {
42
42
  font-size: 18px;
43
43
  line-height: 26px;
44
44
  }
45
45
  }
46
46
  @media (min-width: 601px) and (max-width: 840px) {
47
- .filter-wrapper .filter-icon {
47
+ .th-filter-wrapper .filter-wrapper .filter-icon {
48
48
  font-size: 18px;
49
49
  line-height: 26px;
50
50
  }
51
51
  }
52
52
  @media (max-width: 600px) {
53
- .filter-wrapper .filter-icon {
53
+ .th-filter-wrapper .filter-wrapper .filter-icon {
54
54
  font-size: 16px;
55
55
  line-height: 24px;
56
56
  }
57
57
  }
58
- .filter-wrapper:hover .filter-icon, .filter-wrapper.has-checked .filter-icon {
58
+ .th-filter-wrapper .filter-wrapper:hover .filter-icon, .th-filter-wrapper .filter-wrapper.has-checked .filter-icon {
59
59
  color: var(--o-color-primary1);
60
60
  }
61
- .filter-wrapper:hover .o-icon path, .filter-wrapper.has-checked .o-icon path {
61
+ .th-filter-wrapper .filter-wrapper:hover .o-icon path, .th-filter-wrapper .filter-wrapper.has-checked .o-icon path {
62
62
  fill: currentColor;
63
63
  }
64
64
  .th-filter-dropdown .o-dropdown-item {
@@ -0,0 +1,34 @@
1
+ .hover-icon-rotate .o-icon {
2
+ transition: all var(--o-duration-m1) var(--o-easing-standard-in);
3
+ }
4
+ @media (hover: hover) {
5
+ .hover-icon-rotate:hover .o-icon {
6
+ transform: rotate(-180deg);
7
+ }
8
+ }
9
+ .tooltip-text-wrapper .tooltip-text {
10
+ overflow: hidden;
11
+ word-break: keep-all;
12
+ }
13
+ .tooltip-text-wrapper .tooltip-text.ellipsis {
14
+ white-space: nowrap;
15
+ text-overflow: ellipsis;
16
+ }
17
+ .tooltip-text-wrapper .tooltip-text.multi-lines {
18
+ white-space: normal;
19
+ text-overflow: ellipsis;
20
+ display: -webkit-box;
21
+ -webkit-box-orient: vertical;
22
+ -webkit-line-clamp: var(--lines);
23
+ }
24
+ .tooltip-text-wrapper .button {
25
+ color: var(--o-color-primary1);
26
+ cursor: pointer;
27
+ }
28
+ .tooltip-text-wrapper .popup-box2 {
29
+ color: var(--o-color-info2);
30
+ }
31
+ .tooltip-text-wrapper .popup-box2.fz-14 {
32
+ font-size: 14px;
33
+ line-height: 22px;
34
+ }
@@ -0,0 +1,85 @@
1
+ import { defineComponent, ref, useSlots, onMounted, onUnmounted, watch, computed, openBlock, createElementBlock, normalizeStyle, createVNode, unref, withCtx, createElementVNode, normalizeClass, toDisplayString, renderSlot } from "vue";
2
+ import { isClient, OPopover } from "@opensig/opendesign";
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "TooltipText",
5
+ props: {
6
+ lines: {},
7
+ width: {},
8
+ type: { default: "" },
9
+ size: { default: 14 }
10
+ },
11
+ setup(__props) {
12
+ const contentRef = ref(null);
13
+ const ellipsis = ref(true);
14
+ const props = __props;
15
+ const slots = useSlots();
16
+ let resizeObserver = null;
17
+ const checkOverflow = () => {
18
+ if (!isClient) return;
19
+ const ele = contentRef.value;
20
+ if (!ele) return;
21
+ ellipsis.value = ele.scrollWidth > ele.offsetWidth + 1 || ele.scrollHeight > ele.offsetHeight + 1;
22
+ };
23
+ onMounted(() => {
24
+ checkOverflow();
25
+ if (!isClient || !contentRef.value) return;
26
+ resizeObserver = new ResizeObserver(() => checkOverflow());
27
+ resizeObserver.observe(contentRef.value);
28
+ });
29
+ onUnmounted(() => {
30
+ resizeObserver == null ? void 0 : resizeObserver.disconnect();
31
+ });
32
+ watch(() => [props.lines, props.width], () => {
33
+ if (isClient) requestAnimationFrame(checkOverflow);
34
+ });
35
+ const getTextFromNode = (node) => {
36
+ const children = node.children ?? "";
37
+ if (Array.isArray(children)) {
38
+ return children.map((v) => getTextFromNode(v)).join("");
39
+ }
40
+ return String(children);
41
+ };
42
+ const contentText = computed(() => {
43
+ var _a;
44
+ const nodes = ((_a = slots.default) == null ? void 0 : _a.call(slots)) || [];
45
+ return nodes.map((node) => getTextFromNode(node)).join("\n");
46
+ });
47
+ const wrapperStyle = computed(() => {
48
+ const calcWidth = Number.isNaN(Number(props.width)) ? props.width : `${props.width}px`;
49
+ return { width: calcWidth };
50
+ });
51
+ return (_ctx, _cache) => {
52
+ return openBlock(), createElementBlock("div", {
53
+ class: "tooltip-text-wrapper",
54
+ style: normalizeStyle(wrapperStyle.value)
55
+ }, [
56
+ createVNode(unref(OPopover), {
57
+ anchor: "",
58
+ disabled: !ellipsis.value,
59
+ adjustMinWidth: false,
60
+ adjustWidth: true
61
+ }, {
62
+ target: withCtx(() => [
63
+ createElementVNode("div", {
64
+ class: normalizeClass(["tooltip-text", __props.type, ellipsis.value && "ellipsis", __props.lines > 1 && "multi-lines"]),
65
+ ref_key: "contentRef",
66
+ ref: contentRef,
67
+ style: normalizeStyle(`--lines: ${__props.lines};`)
68
+ }, [
69
+ renderSlot(_ctx.$slots, "default")
70
+ ], 6)
71
+ ]),
72
+ default: withCtx(() => [
73
+ createElementVNode("div", {
74
+ class: normalizeClass(["popup-box2", `fz-${__props.size}`])
75
+ }, toDisplayString(contentText.value), 3)
76
+ ]),
77
+ _: 3
78
+ }, 8, ["disabled"])
79
+ ], 4);
80
+ };
81
+ }
82
+ });
83
+ export {
84
+ _sfc_main as default
85
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./TooltipText.vue.mjs";
2
+ import './TooltipText.css';
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -1,7 +1,7 @@
1
1
  import { App } from 'vue';
2
2
  declare const OEventsCalendar: {
3
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../../index').EventsCalendarPropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {
4
- data: import('../../index').CalendarItemT[];
3
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./types').EventsCalendarPropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {
4
+ data: import('./types').CalendarItemT[];
5
5
  }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
6
6
  P: {};
7
7
  B: {};
@@ -9,24 +9,24 @@ declare const OEventsCalendar: {
9
9
  C: {};
10
10
  M: {};
11
11
  Defaults: {};
12
- }, Readonly<import('../../index').EventsCalendarPropsT> & Readonly<{}>, {}, {}, {}, {}, {
13
- data: import('../../index').CalendarItemT[];
12
+ }, Readonly<import('./types').EventsCalendarPropsT> & Readonly<{}>, {}, {}, {}, {}, {
13
+ data: import('./types').CalendarItemT[];
14
14
  }>;
15
15
  __isFragment?: never;
16
16
  __isTeleport?: never;
17
17
  __isSuspense?: never;
18
- } & import('vue').ComponentOptionsBase<Readonly<import('../../index').EventsCalendarPropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
19
- data: import('../../index').CalendarItemT[];
18
+ } & import('vue').ComponentOptionsBase<Readonly<import('./types').EventsCalendarPropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
19
+ data: import('./types').CalendarItemT[];
20
20
  }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & {
21
21
  install(app: App): void;
22
22
  };
23
23
  declare const OEventsList: {
24
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../../index').EventsListPropsT> & Readonly<{
25
- onSearch?: ((params: import('../../index').SearchParamsT) => any) | undefined;
24
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./types').EventsListPropsT> & Readonly<{
25
+ onSearch?: ((params: import('./types').SearchParamsT) => any) | undefined;
26
26
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
27
- search: (params: import('../../index').SearchParamsT) => any;
27
+ search: (params: import('./types').SearchParamsT) => any;
28
28
  }, import('vue').PublicProps, {
29
- data: import('../../index').EventsCardItemT[];
29
+ data: import('./types').EventsCardItemT[];
30
30
  }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
31
31
  P: {};
32
32
  B: {};
@@ -34,20 +34,20 @@ declare const OEventsList: {
34
34
  C: {};
35
35
  M: {};
36
36
  Defaults: {};
37
- }, Readonly<import('../../index').EventsListPropsT> & Readonly<{
38
- onSearch?: ((params: import('../../index').SearchParamsT) => any) | undefined;
37
+ }, Readonly<import('./types').EventsListPropsT> & Readonly<{
38
+ onSearch?: ((params: import('./types').SearchParamsT) => any) | undefined;
39
39
  }>, {}, {}, {}, {}, {
40
- data: import('../../index').EventsCardItemT[];
40
+ data: import('./types').EventsCardItemT[];
41
41
  }>;
42
42
  __isFragment?: never;
43
43
  __isTeleport?: never;
44
44
  __isSuspense?: never;
45
- } & import('vue').ComponentOptionsBase<Readonly<import('../../index').EventsListPropsT> & Readonly<{
46
- onSearch?: ((params: import('../../index').SearchParamsT) => any) | undefined;
45
+ } & import('vue').ComponentOptionsBase<Readonly<import('./types').EventsListPropsT> & Readonly<{
46
+ onSearch?: ((params: import('./types').SearchParamsT) => any) | undefined;
47
47
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
48
- search: (params: import('../../index').SearchParamsT) => any;
48
+ search: (params: import('./types').SearchParamsT) => any;
49
49
  }, string, {
50
- data: import('../../index').EventsCardItemT[];
50
+ data: import('./types').EventsCardItemT[];
51
51
  }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
52
52
  $slots: Readonly<{
53
53
  empty?: () => any;
@@ -58,18 +58,18 @@ declare const OEventsList: {
58
58
  install(app: App): void;
59
59
  };
60
60
  declare const OEventsApply: {
61
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../../index').EventsApplyPropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
61
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./types').EventsApplyPropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
62
62
  P: {};
63
63
  B: {};
64
64
  D: {};
65
65
  C: {};
66
66
  M: {};
67
67
  Defaults: {};
68
- }, Readonly<import('../../index').EventsApplyPropsT> & Readonly<{}>, {}, {}, {}, {}, {}>;
68
+ }, Readonly<import('./types').EventsApplyPropsT> & Readonly<{}>, {}, {}, {}, {}, {}>;
69
69
  __isFragment?: never;
70
70
  __isTeleport?: never;
71
71
  __isSuspense?: never;
72
- } & import('vue').ComponentOptionsBase<Readonly<import('../../index').EventsApplyPropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
72
+ } & import('vue').ComponentOptionsBase<Readonly<import('./types').EventsApplyPropsT> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
73
73
  $slots: Partial<Record<`step${number}`, (_: {}) => any>>;
74
74
  }) & {
75
75
  install(app: App): void;