@opendesign-plus/components 0.0.1-rc.62 → 0.0.1-rc.63

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/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export * from './components/element-plus';
6
6
  export * from './components/empty';
7
7
  export * from './components/events';
8
8
  export * from './components/feedback-doc';
9
+ export * from './components/float-poster';
9
10
  export * from './components/footer';
10
11
  export * from './components/header';
11
12
  export * from './components/header-language-switcher';
@@ -0,0 +1,64 @@
1
+ .hover-icon-rotate .o-icon[data-v-05718ef8] {
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-05718ef8] {
6
+ transform: rotate(-180deg);
7
+ }
8
+ }
9
+ .o-float-poster[data-v-05718ef8] {
10
+ --o-float-poster-z-index: 666;
11
+ --o-float-poster-width: 125px;
12
+ --o-float-poster-left: 32px;
13
+ --o-float-poster-bottom: 164px;
14
+ --o-float-poster-close-width: 20px;
15
+ --o-float-poster-close-height: 20px;
16
+ --o-float-poster-close-top: -2px;
17
+ --o-float-poster-close-right: -2px;
18
+ position: fixed;
19
+ left: var(--o-float-poster-left);
20
+ bottom: var(--o-float-poster-bottom);
21
+ z-index: var(--o-float-poster-z-index);
22
+ }
23
+ @media (min-width: 841px) and (max-width: 1680px) {
24
+ .o-float-poster[data-v-05718ef8] {
25
+ --o-float-poster-width: 94px;
26
+ --o-float-poster-close-width: 18px;
27
+ --o-float-poster-close-height: 18px;
28
+ --o-float-poster-close-top: -4px;
29
+ --o-float-poster-close-right: -4px;
30
+ }
31
+ }
32
+ @media (max-width: 840px) {
33
+ .o-float-poster[data-v-05718ef8] {
34
+ --o-float-poster-width: 83px;
35
+ --o-float-poster-close-width: 16px;
36
+ --o-float-poster-close-height: 16px;
37
+ }
38
+ }
39
+ .o-float-poster .o-float-poster__link[data-v-05718ef8] {
40
+ position: absolute;
41
+ inset: 0;
42
+ z-index: 1;
43
+ left: 0;
44
+ bottom: 0;
45
+ right: 0;
46
+ top: var(--o-float-poster-close-height);
47
+ cursor: pointer;
48
+ }
49
+ .o-float-poster .o-float-poster__img[data-v-05718ef8] {
50
+ display: block;
51
+ position: relative;
52
+ z-index: 2;
53
+ pointer-events: none;
54
+ width: var(--o-float-poster-width);
55
+ }
56
+ .o-float-poster .o-float-poster__close[data-v-05718ef8] {
57
+ position: absolute;
58
+ z-index: 1;
59
+ width: var(--o-float-poster-close-width);
60
+ height: var(--o-float-poster-close-height);
61
+ top: var(--o-float-poster-close-top);
62
+ right: var(--o-float-poster-close-right);
63
+ cursor: pointer;
64
+ }
@@ -0,0 +1,24 @@
1
+ type __VLS_Props = {
2
+ wrapper?: string | HTMLElement;
3
+ img: string;
4
+ href?: string;
5
+ target?: '_blank' | '_self';
6
+ closeStorageKey?: string;
7
+ };
8
+ type __VLS_PublicProps = {
9
+ 'visible'?: boolean;
10
+ } & __VLS_Props;
11
+ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
+ "update:visible": (value: boolean) => any;
13
+ } & {
14
+ close: () => any;
15
+ "update:visible": (value: boolean) => any;
16
+ visit: (href?: string | undefined) => any;
17
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
18
+ onClose?: (() => any) | undefined;
19
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
20
+ onVisit?: ((href?: string | undefined) => any) | undefined;
21
+ }>, {
22
+ target: "_blank" | "_self";
23
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
24
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import _sfc_main from "./OFloatPoster.vue2.mjs";
2
+ import './OFloatPoster.css';
3
+ import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
+ const _OFloatPoster = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-05718ef8"]]);
5
+ export {
6
+ _OFloatPoster as default
7
+ };
@@ -0,0 +1,84 @@
1
+ import { defineComponent, useModel, computed, onMounted, openBlock, createBlock, withCtx, Teleport, createVNode, Transition, createElementBlock, createCommentVNode, createElementVNode, mergeModels } from "vue";
2
+ import { isClient } from "@opensig/opendesign";
3
+ import _sfc_main$1 from "../common/ClientOnly.vue.mjs";
4
+ const _hoisted_1 = {
5
+ key: 0,
6
+ class: "o-float-poster"
7
+ };
8
+ const _hoisted_2 = ["href", "target"];
9
+ const _hoisted_3 = ["src"];
10
+ const _sfc_main = /* @__PURE__ */ defineComponent({
11
+ __name: "OFloatPoster",
12
+ props: /* @__PURE__ */ mergeModels({
13
+ wrapper: {},
14
+ img: {},
15
+ href: {},
16
+ target: { default: "_blank" },
17
+ closeStorageKey: {}
18
+ }, {
19
+ "visible": { type: Boolean, ...{
20
+ default: true
21
+ } },
22
+ "visibleModifiers": {}
23
+ }),
24
+ emits: /* @__PURE__ */ mergeModels(["update:visible", "close", "visit"], ["update:visible"]),
25
+ setup(__props, { emit: __emit }) {
26
+ const props = __props;
27
+ const emit = __emit;
28
+ const visible = useModel(__props, "visible");
29
+ const teleportTo = computed(() => props.wrapper || "body");
30
+ onMounted(() => {
31
+ if (isClient && props.closeStorageKey) {
32
+ const closeStorageKey = sessionStorage.getItem(props.closeStorageKey);
33
+ if (closeStorageKey) {
34
+ visible.value = false;
35
+ }
36
+ }
37
+ });
38
+ function close() {
39
+ visible.value = false;
40
+ if (isClient && props.closeStorageKey) {
41
+ sessionStorage.setItem(props.closeStorageKey, "1");
42
+ }
43
+ emit("close");
44
+ }
45
+ function onClick() {
46
+ emit("visit", props.href);
47
+ }
48
+ return (_ctx, _cache) => {
49
+ return openBlock(), createBlock(_sfc_main$1, null, {
50
+ default: withCtx(() => [
51
+ (openBlock(), createBlock(Teleport, { to: teleportTo.value }, [
52
+ createVNode(Transition, { name: "o-float-poster" }, {
53
+ default: withCtx(() => [
54
+ visible.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
55
+ __props.href ? (openBlock(), createElementBlock("a", {
56
+ key: 0,
57
+ class: "o-float-poster__link",
58
+ href: __props.href,
59
+ target: __props.target,
60
+ rel: "noopener noreferrer",
61
+ onClick
62
+ }, null, 8, _hoisted_2)) : createCommentVNode("", true),
63
+ createElementVNode("img", {
64
+ class: "o-float-poster__img",
65
+ src: __props.img
66
+ }, null, 8, _hoisted_3),
67
+ createElementVNode("div", {
68
+ class: "o-float-poster__close",
69
+ onClick: close
70
+ })
71
+ ])) : createCommentVNode("", true)
72
+ ]),
73
+ _: 1
74
+ })
75
+ ], 8, ["to"]))
76
+ ]),
77
+ _: 1
78
+ });
79
+ };
80
+ }
81
+ });
82
+ export {
83
+ _sfc_main as default
84
+ };
@@ -0,0 +1,72 @@
1
+ import { App } from 'vue';
2
+ declare const OFloatPoster: {
3
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
4
+ visible?: boolean;
5
+ } & {
6
+ wrapper?: string | HTMLElement;
7
+ img: string;
8
+ href?: string;
9
+ target?: "_blank" | "_self";
10
+ closeStorageKey?: string;
11
+ }> & Readonly<{
12
+ onClose?: (() => any) | undefined;
13
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
14
+ onVisit?: ((href?: string | undefined) => any) | undefined;
15
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
16
+ "update:visible": (value: boolean) => any;
17
+ } & {
18
+ close: () => any;
19
+ "update:visible": (value: boolean) => any;
20
+ visit: (href?: string | undefined) => any;
21
+ }, import('vue').PublicProps, {
22
+ target: "_blank" | "_self";
23
+ }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
24
+ P: {};
25
+ B: {};
26
+ D: {};
27
+ C: {};
28
+ M: {};
29
+ Defaults: {};
30
+ }, Readonly<{
31
+ visible?: boolean;
32
+ } & {
33
+ wrapper?: string | HTMLElement;
34
+ img: string;
35
+ href?: string;
36
+ target?: "_blank" | "_self";
37
+ closeStorageKey?: string;
38
+ }> & Readonly<{
39
+ onClose?: (() => any) | undefined;
40
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
41
+ onVisit?: ((href?: string | undefined) => any) | undefined;
42
+ }>, {}, {}, {}, {}, {
43
+ target: "_blank" | "_self";
44
+ }>;
45
+ __isFragment?: never;
46
+ __isTeleport?: never;
47
+ __isSuspense?: never;
48
+ } & import('vue').ComponentOptionsBase<Readonly<{
49
+ visible?: boolean;
50
+ } & {
51
+ wrapper?: string | HTMLElement;
52
+ img: string;
53
+ href?: string;
54
+ target?: "_blank" | "_self";
55
+ closeStorageKey?: string;
56
+ }> & Readonly<{
57
+ onClose?: (() => any) | undefined;
58
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
59
+ onVisit?: ((href?: string | undefined) => any) | undefined;
60
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
61
+ "update:visible": (value: boolean) => any;
62
+ } & {
63
+ close: () => any;
64
+ "update:visible": (value: boolean) => any;
65
+ visit: (href?: string | undefined) => any;
66
+ }, string, {
67
+ target: "_blank" | "_self";
68
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & {
69
+ install(app: App): void;
70
+ };
71
+ export { OFloatPoster };
72
+ export * from './types';
@@ -0,0 +1,9 @@
1
+ import _OFloatPoster from "./OFloatPoster.vue.mjs";
2
+ const OFloatPoster = Object.assign(_OFloatPoster, {
3
+ install(app) {
4
+ app.component("OFloatPoster", _OFloatPoster);
5
+ }
6
+ });
7
+ export {
8
+ OFloatPoster
9
+ };
@@ -0,0 +1,21 @@
1
+ export interface FloatPosterProps {
2
+ /** 自定义挂载节点(Teleport 目标),不传则挂载到 body */
3
+ wrapper?: string | HTMLElement;
4
+ /** 图片地址 */
5
+ img: string;
6
+ /** 跳转链接 */
7
+ href?: string;
8
+ /** 链接打开方式,默认 _blank */
9
+ target?: '_blank' | '_self';
10
+ /** 关闭后记忆的 sessionStorage key;传入后关闭时写入,挂载时若已存在则自动隐藏 */
11
+ closeStorageKey?: string;
12
+ /** z-index,默认 666 */
13
+ zIndex?: number;
14
+ /** 是否展示,支持 v-model:visible,默认 true */
15
+ visible?: boolean;
16
+ }
17
+ export interface FloatPosterEmits {
18
+ (e: 'update:visible', value: boolean): void;
19
+ (e: 'close'): void;
20
+ (e: 'visit', href?: string): void;
21
+ }
@@ -1,38 +1,38 @@
1
- .hover-icon-rotate .o-icon[data-v-c1fafbcb] {
1
+ .hover-icon-rotate .o-icon[data-v-744f8385] {
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-c1fafbcb] {
5
+ .hover-icon-rotate:hover .o-icon[data-v-744f8385] {
6
6
  transform: rotate(-180deg);
7
7
  }
8
8
  }
9
- .o-logo-swiper-items[data-v-c1fafbcb] {
9
+ .o-logo-swiper-items[data-v-744f8385] {
10
10
  display: flex;
11
11
  white-space: nowrap;
12
12
  overflow: hidden;
13
13
  position: relative;
14
14
  }
15
- .o-logo-swiper-items .o-logo-swiper-track[data-v-c1fafbcb] {
15
+ .o-logo-swiper-items .o-logo-swiper-track[data-v-744f8385] {
16
16
  display: flex;
17
17
  flex-shrink: 0;
18
- animation: logo-swiper-marquee-c1fafbcb var(--logo-swiper-duration) linear infinite;
18
+ animation: logo-swiper-marquee-744f8385 var(--logo-swiper-duration) linear infinite;
19
19
  animation-play-state: paused;
20
20
  }
21
- .o-logo-swiper-items.is-reverse .o-logo-swiper-track[data-v-c1fafbcb] {
22
- animation-name: logo-swiper-marquee-reverse-c1fafbcb;
21
+ .o-logo-swiper-items.is-reverse .o-logo-swiper-track[data-v-744f8385] {
22
+ animation-name: logo-swiper-marquee-reverse-744f8385;
23
23
  }
24
- .o-logo-swiper-items.is-paused .o-logo-swiper-track[data-v-c1fafbcb] {
24
+ .o-logo-swiper-items.is-paused .o-logo-swiper-track[data-v-744f8385] {
25
25
  animation-play-state: paused;
26
26
  }
27
- .o-logo-swiper-items.is-visible:not(.is-paused) .o-logo-swiper-track[data-v-c1fafbcb] {
27
+ .o-logo-swiper-items.is-visible:not(.is-paused) .o-logo-swiper-track[data-v-744f8385] {
28
28
  animation-play-state: running;
29
29
  }
30
30
  @media (min-width: 601px) and (hover: hover) {
31
- .o-logo-swiper-items.pause-on-hover:hover .o-logo-swiper-track[data-v-c1fafbcb] {
31
+ .o-logo-swiper-items.pause-on-hover:hover .o-logo-swiper-track[data-v-744f8385] {
32
32
  animation-play-state: paused;
33
33
  }
34
34
  }
35
- .o-logo-swiper-item[data-v-c1fafbcb] {
35
+ .o-logo-swiper-item[data-v-744f8385] {
36
36
  --o-logo-swiper-item-gap: 24px;
37
37
  --o-logo-swiper-item-width: 269px;
38
38
  --o-logo-swiper-item-height: 91px;
@@ -47,30 +47,30 @@
47
47
  border-radius: var(--o-logo-swiper-item-radius, var(--o-radius-xs));
48
48
  }
49
49
  @media (max-width: 1680px) {
50
- .o-logo-swiper-item[data-v-c1fafbcb] {
50
+ .o-logo-swiper-item[data-v-744f8385] {
51
51
  --o-logo-swiper-item-gap: 20px;
52
52
  }
53
53
  }
54
54
  @media (max-width: 1200px) {
55
- .o-logo-swiper-item[data-v-c1fafbcb] {
55
+ .o-logo-swiper-item[data-v-744f8385] {
56
56
  --o-logo-swiper-item-gap: 16px;
57
57
  }
58
58
  }
59
59
  @media (max-width: 840px) {
60
- .o-logo-swiper-item[data-v-c1fafbcb] {
60
+ .o-logo-swiper-item[data-v-744f8385] {
61
61
  --o-logo-swiper-item-gap: 12px;
62
62
  }
63
63
  }
64
64
  @media (max-width: 600px) {
65
- .o-logo-swiper-item[data-v-c1fafbcb] {
65
+ .o-logo-swiper-item[data-v-744f8385] {
66
66
  --o-logo-swiper-item-width: 160px;
67
67
  --o-logo-swiper-item-height: 54px;
68
68
  }
69
69
  }
70
- .o-logo-swiper-item .o-logo-swiper-img[data-v-c1fafbcb] {
70
+ .o-logo-swiper-item .o-logo-swiper-img[data-v-744f8385] {
71
71
  --figure-radius: var(--o-logo-swiper-item-radius, var(--o-radius-xs));
72
72
  }
73
- @keyframes logo-swiper-marquee-c1fafbcb {
73
+ @keyframes logo-swiper-marquee-744f8385 {
74
74
  0% {
75
75
  transform: translateX(0);
76
76
  }
@@ -78,7 +78,7 @@
78
78
  transform: translateX(-50%);
79
79
  }
80
80
  }
81
- @keyframes logo-swiper-marquee-reverse-c1fafbcb {
81
+ @keyframes logo-swiper-marquee-reverse-744f8385 {
82
82
  0% {
83
83
  transform: translateX(-50%);
84
84
  }
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./OLogoSwiperItems.vue2.mjs";
2
2
  import './OLogoSwiperItems.css';
3
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const _OLogoSwiperItems = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c1fafbcb"]]);
4
+ const _OLogoSwiperItems = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-744f8385"]]);
5
5
  export {
6
6
  _OLogoSwiperItems as default
7
7
  };
@@ -115,10 +115,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
115
115
  ref_key: "rootRef",
116
116
  ref: rootRef,
117
117
  class: normalizeClass(["o-logo-swiper-items", {
118
- "is-reverse": props.reverse,
119
- "is-paused": !props.autoPlay,
118
+ "is-reverse": __props.reverse,
119
+ "is-paused": !__props.autoPlay,
120
120
  "is-visible": isVisible.value,
121
- "pause-on-hover": props.pauseOnHover
121
+ "pause-on-hover": __props.pauseOnHover
122
122
  }]),
123
123
  style: normalizeStyle(rootStyle.value)
124
124
  }, [
@@ -129,10 +129,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
129
129
  class: "o-logo-swiper-item",
130
130
  onClick: ($event) => emit("click", item)
131
131
  }, [
132
- item.href ? (openBlock(), createElementBlock("a", {
132
+ getHref(item) ? (openBlock(), createElementBlock("a", {
133
133
  key: 0,
134
134
  href: getHref(item),
135
- target: props.target,
135
+ target: __props.target,
136
136
  rel: "noopener noreferrer"
137
137
  }, [
138
138
  createVNode(unref(OFigure), {
@@ -6,6 +6,7 @@ export * from './components/element-plus';
6
6
  export * from './components/empty';
7
7
  export * from './components/events';
8
8
  export * from './components/feedback-doc';
9
+ export * from './components/float-poster';
9
10
  export * from './components/footer';
10
11
  export * from './components/header';
11
12
  export * from './components/header-language-switcher';
@@ -5,6 +5,7 @@ import { OCookieNotice } from "./components/cookie-notice/index.mjs";
5
5
  import { OEmpty } from "./components/empty/index.mjs";
6
6
  import { OEventsApply, OEventsCalendar, OEventsList } from "./components/events/index.mjs";
7
7
  import { OFeedbackDoc, OFeedbackDocContent, OFeedbackDocDialog, OFeedbackDocPopup } from "./components/feedback-doc/index.mjs";
8
+ import { OFloatPoster } from "./components/float-poster/index.mjs";
8
9
  import { OFooter } from "./components/footer/index.mjs";
9
10
  import { OHeader, OHeaderMobile } from "./components/header/index.mjs";
10
11
  import { OHeaderLanguageSwitcher } from "./components/header-language-switcher/index.mjs";
@@ -42,6 +43,7 @@ export {
42
43
  OFeedbackDocContent,
43
44
  OFeedbackDocDialog,
44
45
  OFeedbackDocPopup,
46
+ OFloatPoster,
45
47
  OFooter,
46
48
  OHeader,
47
49
  OHeaderLanguageSwitcher,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendesign-plus/components",
3
- "version": "0.0.1-rc.62",
3
+ "version": "0.0.1-rc.63",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",