@opendesign-plus/components 0.0.1-rc.94 → 0.0.1-rc.95

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 (110) hide show
  1. package/dist/components/activity/index.d.ts +9 -9
  2. package/dist/components/anchor-bar/OAnchorBar.vue.d.ts +2 -2
  3. package/dist/components/anchor-bar/index.d.ts +9 -9
  4. package/dist/components/article/OArticle.vue.d.ts +196 -14
  5. package/dist/components/article/components/ArticleTitle.vue.d.ts +22 -0
  6. package/dist/components/{markdown/components/MarkdownPageTitle.vue.d.ts → article/components/DocTitle.vue.d.ts} +6 -5
  7. package/dist/components/article/index.d.ts +151 -50
  8. package/dist/components/article-anchor/index.d.ts +9 -9
  9. package/dist/components/article-pagination/index.d.ts +17 -17
  10. package/dist/components/banner/index.d.ts +6 -6
  11. package/dist/components/brand/index.d.ts +15 -15
  12. package/dist/components/doc-layout/ODocLayout.vue.d.ts +38 -0
  13. package/dist/components/doc-layout/index.d.ts +59 -0
  14. package/dist/components/events/index.d.ts +20 -20
  15. package/dist/components/footer/index.d.ts +3 -3
  16. package/dist/components/header/OHeaderMobile.vue.d.ts +8 -8
  17. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +1 -1
  18. package/dist/components/header/index.d.ts +28 -28
  19. package/dist/components/header-search/index.d.ts +13 -13
  20. package/dist/components/logo-swiper/index.d.ts +11 -11
  21. package/dist/components/markdown/OMarkdown.vue.d.ts +7 -16
  22. package/dist/components/markdown/index.d.ts +13 -45
  23. package/dist/components/meeting/OMeetingPlayback.vue.d.ts +6 -6
  24. package/dist/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
  25. package/dist/components/meeting/index.d.ts +51 -51
  26. package/dist/components/org/index.d.ts +9 -9
  27. package/dist/components/recursion-menu/index.d.ts +3 -3
  28. package/dist/components/search/index.d.ts +11 -11
  29. package/dist/components/search-result/OSearchResultHeader.vue.d.ts +24 -24
  30. package/dist/components/search-result/index.d.ts +31 -31
  31. package/dist/components/sig/index.d.ts +15 -15
  32. package/dist/components/summit/index.d.ts +12 -12
  33. package/dist/components/user-center/index.d.ts +18 -18
  34. package/dist/components/video/index.d.ts +3 -3
  35. package/dist/components.cjs.js +44 -44
  36. package/dist/components.css +1 -1
  37. package/dist/components.es.js +10037 -9808
  38. package/dist/index.d.ts +1 -0
  39. package/dist/treeshaking/_virtual/icon-email.mjs +8 -9
  40. package/dist/treeshaking/_virtual/icon-email2.mjs +9 -8
  41. package/dist/treeshaking/_virtual/icon-menu-fold.mjs +20 -0
  42. package/dist/treeshaking/_virtual/icon-menu-unfold.mjs +20 -0
  43. package/dist/treeshaking/components/activity/index.d.ts +9 -9
  44. package/dist/treeshaking/components/anchor-bar/OAnchorBar.vue.d.ts +2 -2
  45. package/dist/treeshaking/components/anchor-bar/index.d.ts +9 -9
  46. package/dist/treeshaking/components/article/OArticle.css +18 -124
  47. package/dist/treeshaking/components/article/OArticle.vue.d.ts +196 -14
  48. package/dist/treeshaking/components/article/OArticle.vue.mjs +1 -1
  49. package/dist/treeshaking/components/article/OArticle.vue2.mjs +48 -82
  50. package/dist/treeshaking/components/article/components/ArticleTitle.css +123 -0
  51. package/dist/treeshaking/components/article/components/ArticleTitle.vue.d.ts +22 -0
  52. package/dist/treeshaking/components/article/components/ArticleTitle.vue.mjs +7 -0
  53. package/dist/treeshaking/components/article/components/ArticleTitle.vue2.mjs +97 -0
  54. package/dist/treeshaking/components/article/components/DocTitle.css +246 -0
  55. package/dist/treeshaking/components/{markdown/components/MarkdownPageTitle.vue.d.ts → article/components/DocTitle.vue.d.ts} +6 -5
  56. package/dist/treeshaking/components/article/components/DocTitle.vue.mjs +7 -0
  57. package/dist/treeshaking/components/{markdown/components/MarkdownPageTitle.vue2.mjs → article/components/DocTitle.vue2.mjs} +131 -80
  58. package/dist/treeshaking/components/article/index.d.ts +151 -50
  59. package/dist/treeshaking/components/article-anchor/OArticleAnchor.css +4 -4
  60. package/dist/treeshaking/components/article-anchor/OArticleAnchor.vue.mjs +1 -1
  61. package/dist/treeshaking/components/article-anchor/OArticleAnchor.vue2.mjs +4 -5
  62. package/dist/treeshaking/components/article-anchor/index.d.ts +9 -9
  63. package/dist/treeshaking/components/article-pagination/index.d.ts +17 -17
  64. package/dist/treeshaking/components/banner/index.d.ts +6 -6
  65. package/dist/treeshaking/components/brand/index.d.ts +15 -15
  66. package/dist/treeshaking/components/doc-layout/ODocLayout.css +271 -0
  67. package/dist/treeshaking/components/doc-layout/ODocLayout.vue.d.ts +38 -0
  68. package/dist/treeshaking/components/doc-layout/ODocLayout.vue.mjs +7 -0
  69. package/dist/treeshaking/components/doc-layout/ODocLayout.vue2.mjs +165 -0
  70. package/dist/treeshaking/components/doc-layout/index.d.ts +59 -0
  71. package/dist/treeshaking/components/doc-layout/index.mjs +9 -0
  72. package/dist/treeshaking/components/events/index.d.ts +20 -20
  73. package/dist/treeshaking/components/footer/index.d.ts +3 -3
  74. package/dist/treeshaking/components/header/OHeaderMobile.vue.d.ts +8 -8
  75. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.d.ts +1 -1
  76. package/dist/treeshaking/components/header/index.d.ts +28 -28
  77. package/dist/treeshaking/components/header-search/index.d.ts +13 -13
  78. package/dist/treeshaking/components/logo-swiper/index.d.ts +11 -11
  79. package/dist/treeshaking/components/markdown/OMarkdown.vue.d.ts +7 -16
  80. package/dist/treeshaking/components/markdown/OMarkdown.vue.mjs +1 -1
  81. package/dist/treeshaking/components/markdown/OMarkdown.vue2.mjs +47 -36
  82. package/dist/treeshaking/components/markdown/OMarkdown2.css +3 -3
  83. package/dist/treeshaking/components/markdown/components/MarkdownTitle.css +22 -22
  84. package/dist/treeshaking/components/markdown/components/MarkdownTitle.vue.mjs +1 -1
  85. package/dist/treeshaking/components/markdown/components/MarkdownTitle.vue2.mjs +11 -5
  86. package/dist/treeshaking/components/markdown/index.d.ts +13 -45
  87. package/dist/treeshaking/components/meeting/OMeetingPlayback.vue.d.ts +6 -6
  88. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
  89. package/dist/treeshaking/components/meeting/index.d.ts +51 -51
  90. package/dist/treeshaking/components/org/OOrgMembers.vue2.mjs +1 -1
  91. package/dist/treeshaking/components/org/index.d.ts +9 -9
  92. package/dist/treeshaking/components/recursion-menu/ORecursionMenu.vue.mjs +1 -1
  93. package/dist/treeshaking/components/recursion-menu/index.d.ts +3 -3
  94. package/dist/treeshaking/components/search/index.d.ts +11 -11
  95. package/dist/treeshaking/components/search-result/OSearchResultHeader.vue.d.ts +24 -24
  96. package/dist/treeshaking/components/search-result/index.d.ts +31 -31
  97. package/dist/treeshaking/components/sig/index.d.ts +15 -15
  98. package/dist/treeshaking/components/summit/index.d.ts +12 -12
  99. package/dist/treeshaking/components/user-center/OAccountSetting.vue2.mjs +1 -1
  100. package/dist/treeshaking/components/user-center/index.d.ts +18 -18
  101. package/dist/treeshaking/components/user-center/index.mjs +0 -2
  102. package/dist/treeshaking/components/video/index.d.ts +3 -3
  103. package/dist/treeshaking/index.d.ts +1 -0
  104. package/dist/treeshaking/index.mjs +2 -0
  105. package/package.json +2 -2
  106. package/dist/components/markdown/replacer/h1.d.ts +0 -11
  107. package/dist/treeshaking/components/markdown/components/MarkdownPageTitle.css +0 -261
  108. package/dist/treeshaking/components/markdown/components/MarkdownPageTitle.vue.mjs +0 -7
  109. package/dist/treeshaking/components/markdown/replacer/h1.d.ts +0 -11
  110. package/dist/treeshaking/components/markdown/replacer/h1.mjs +0 -29
@@ -12,6 +12,8 @@ type __VLS_Props = {
12
12
  prev?: OArticlePaginationItemT | null;
13
13
  /** 下一篇(可选),透传给 OArticlePagination */
14
14
  next?: OArticlePaginationItemT | null;
15
+ /** 标题模式:'article' 渲染文章标题(标题 + 标签),'doc' 渲染文档标题卡片(DocTitle),默认 'article' */
16
+ type?: 'article' | 'doc';
15
17
  /** 透传给 OMarkdown:禁用 H2 增强 */
16
18
  disableH2?: boolean;
17
19
  /** 透传给 OMarkdown:禁用表格增强 */
@@ -22,18 +24,18 @@ type __VLS_Props = {
22
24
  disableCode?: boolean;
23
25
  /** 标题头部展示的更新时间(可选),与标签两端对齐,文案前缀取 i18n `md.updateTime` */
24
26
  updateTime?: string;
25
- /** 透传给 OMarkdown:正文容器类名 */
26
- markdownBodyClass?: string;
27
- /** 是否移除正文首个元素的上边距(o-markdown-body 内第一个 div 的首个元素,常用于正文首元素为标题时消除顶部空隙),默认 true */
28
- removeFirstTopMargin?: boolean;
29
- /** 是否自动隐藏正文中的第一个 h1(该 h1 通常与标题重复,作为页面标题展示),默认 true */
30
- autoHideFirstH1?: boolean;
27
+ /** 透传给 DocTitle(type='doc'):源码链接地址,未传不展示 */
28
+ sourceUrl?: string;
29
+ /** 透传给 DocTitle(type='doc'):是否展示「下载文档」操作,点击触发 download 事件 */
30
+ enableDownload?: boolean;
31
+ /** 透传给 DocTitle(type='doc'):是否展示「收藏文档」操作,点击触发 collect 事件 */
32
+ enableStar?: boolean;
33
+ /** 透传给 DocTitle(type='doc'):是否展示「复制链接」操作,点击复制当前页面链接 */
34
+ enableCopyLink?: boolean;
31
35
  /** 透传给 OArticlePagination:上一篇文案,留空取 i18n 默认值 */
32
36
  prevLabel?: string;
33
37
  /** 透传给 OArticlePagination:下一篇文案,留空取 i18n 默认值 */
34
38
  nextLabel?: string;
35
- /** 透传给 OArticlePagination:是否显示顶部分割线 */
36
- divider?: boolean;
37
39
  /** 圆角 */
38
40
  radius?: string;
39
41
  };
@@ -42,28 +44,208 @@ declare function __VLS_template(): {
42
44
  slots: {
43
45
  default?(_: {}): any;
44
46
  };
45
- refs: {};
47
+ refs: {
48
+ markdownRef: ({
49
+ $: import('vue').ComponentInternalInstance;
50
+ $data: {};
51
+ $props: {
52
+ readonly disableH2?: boolean | undefined;
53
+ readonly disableTable?: boolean | undefined;
54
+ readonly disableImg?: boolean | undefined;
55
+ readonly disableCode?: boolean | undefined;
56
+ readonly disableChangeCodeTheme?: boolean | undefined;
57
+ readonly markdownBodyClass?: string | undefined;
58
+ readonly hideFirstH1?: boolean | undefined;
59
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
60
+ $attrs: import('vue').Attrs;
61
+ $refs: {
62
+ [x: string]: unknown;
63
+ } & {
64
+ markdownBodyRef: HTMLDivElement;
65
+ };
66
+ $slots: Readonly<{
67
+ [name: string]: import('vue').Slot<any> | undefined;
68
+ }>;
69
+ $root: import('vue').ComponentPublicInstance | null;
70
+ $parent: import('vue').ComponentPublicInstance | null;
71
+ $host: Element | null;
72
+ $emit: (event: string, ...args: any[]) => void;
73
+ $el: HTMLDivElement;
74
+ $options: import('vue').ComponentOptionsBase<Readonly<{
75
+ disableH2?: boolean;
76
+ disableTable?: boolean;
77
+ disableImg?: boolean;
78
+ disableCode?: boolean;
79
+ disableChangeCodeTheme?: boolean;
80
+ markdownBodyClass?: string;
81
+ hideFirstH1?: boolean;
82
+ }> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
83
+ disableChangeCodeTheme: boolean;
84
+ disableH2: boolean;
85
+ disableTable: boolean;
86
+ disableImg: boolean;
87
+ disableCode: boolean;
88
+ markdownBodyClass: string;
89
+ hideFirstH1: boolean;
90
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
91
+ beforeCreate?: (() => void) | (() => void)[];
92
+ created?: (() => void) | (() => void)[];
93
+ beforeMount?: (() => void) | (() => void)[];
94
+ mounted?: (() => void) | (() => void)[];
95
+ beforeUpdate?: (() => void) | (() => void)[];
96
+ updated?: (() => void) | (() => void)[];
97
+ activated?: (() => void) | (() => void)[];
98
+ deactivated?: (() => void) | (() => void)[];
99
+ beforeDestroy?: (() => void) | (() => void)[];
100
+ beforeUnmount?: (() => void) | (() => void)[];
101
+ destroyed?: (() => void) | (() => void)[];
102
+ unmounted?: (() => void) | (() => void)[];
103
+ renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
104
+ renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
105
+ errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
106
+ };
107
+ $forceUpdate: () => void;
108
+ $nextTick: typeof import('vue').nextTick;
109
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
110
+ } & Readonly<{
111
+ disableChangeCodeTheme: boolean;
112
+ disableH2: boolean;
113
+ disableTable: boolean;
114
+ disableImg: boolean;
115
+ disableCode: boolean;
116
+ markdownBodyClass: string;
117
+ hideFirstH1: boolean;
118
+ }> & Omit<Readonly<{
119
+ disableH2?: boolean;
120
+ disableTable?: boolean;
121
+ disableImg?: boolean;
122
+ disableCode?: boolean;
123
+ disableChangeCodeTheme?: boolean;
124
+ markdownBodyClass?: string;
125
+ hideFirstH1?: boolean;
126
+ }> & Readonly<{}>, "disableChangeCodeTheme" | "disableH2" | "disableTable" | "disableImg" | "disableCode" | "markdownBodyClass" | "hideFirstH1"> & {} & import('vue').ComponentCustomProperties & {} & {
127
+ $slots: {
128
+ header?(_: {
129
+ h1: HTMLElement | undefined;
130
+ }): any;
131
+ default?(_: {}): any;
132
+ footer?(_: {}): any;
133
+ };
134
+ }) | null;
135
+ };
46
136
  rootEl: HTMLDivElement;
47
137
  };
48
138
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
49
139
  declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
50
140
  navigate: (type: "prev" | "next", item: OArticlePaginationItemT) => any;
141
+ download: () => any;
142
+ collect: () => any;
51
143
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
52
144
  onNavigate?: ((type: "prev" | "next", item: OArticlePaginationItemT) => any) | undefined;
145
+ onDownload?: (() => any) | undefined;
146
+ onCollect?: (() => any) | undefined;
53
147
  }>, {
148
+ type: "article" | "doc";
54
149
  disableH2: boolean;
55
150
  disableTable: boolean;
56
151
  disableImg: boolean;
57
152
  disableCode: boolean;
58
- markdownBodyClass: string;
59
153
  prev: OArticlePaginationItemT | null;
60
154
  next: OArticlePaginationItemT | null;
61
- divider: boolean;
62
155
  radius: string;
63
156
  tags: string[];
64
- removeFirstTopMargin: boolean;
65
- autoHideFirstH1: boolean;
66
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
157
+ enableDownload: boolean;
158
+ enableStar: boolean;
159
+ enableCopyLink: boolean;
160
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
161
+ markdownRef: ({
162
+ $: import('vue').ComponentInternalInstance;
163
+ $data: {};
164
+ $props: {
165
+ readonly disableH2?: boolean | undefined;
166
+ readonly disableTable?: boolean | undefined;
167
+ readonly disableImg?: boolean | undefined;
168
+ readonly disableCode?: boolean | undefined;
169
+ readonly disableChangeCodeTheme?: boolean | undefined;
170
+ readonly markdownBodyClass?: string | undefined;
171
+ readonly hideFirstH1?: boolean | undefined;
172
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
173
+ $attrs: import('vue').Attrs;
174
+ $refs: {
175
+ [x: string]: unknown;
176
+ } & {
177
+ markdownBodyRef: HTMLDivElement;
178
+ };
179
+ $slots: Readonly<{
180
+ [name: string]: import('vue').Slot<any> | undefined;
181
+ }>;
182
+ $root: import('vue').ComponentPublicInstance | null;
183
+ $parent: import('vue').ComponentPublicInstance | null;
184
+ $host: Element | null;
185
+ $emit: (event: string, ...args: any[]) => void;
186
+ $el: HTMLDivElement;
187
+ $options: import('vue').ComponentOptionsBase<Readonly<{
188
+ disableH2?: boolean;
189
+ disableTable?: boolean;
190
+ disableImg?: boolean;
191
+ disableCode?: boolean;
192
+ disableChangeCodeTheme?: boolean;
193
+ markdownBodyClass?: string;
194
+ hideFirstH1?: boolean;
195
+ }> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
196
+ disableChangeCodeTheme: boolean;
197
+ disableH2: boolean;
198
+ disableTable: boolean;
199
+ disableImg: boolean;
200
+ disableCode: boolean;
201
+ markdownBodyClass: string;
202
+ hideFirstH1: boolean;
203
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
204
+ beforeCreate?: (() => void) | (() => void)[];
205
+ created?: (() => void) | (() => void)[];
206
+ beforeMount?: (() => void) | (() => void)[];
207
+ mounted?: (() => void) | (() => void)[];
208
+ beforeUpdate?: (() => void) | (() => void)[];
209
+ updated?: (() => void) | (() => void)[];
210
+ activated?: (() => void) | (() => void)[];
211
+ deactivated?: (() => void) | (() => void)[];
212
+ beforeDestroy?: (() => void) | (() => void)[];
213
+ beforeUnmount?: (() => void) | (() => void)[];
214
+ destroyed?: (() => void) | (() => void)[];
215
+ unmounted?: (() => void) | (() => void)[];
216
+ renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
217
+ renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
218
+ errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
219
+ };
220
+ $forceUpdate: () => void;
221
+ $nextTick: typeof import('vue').nextTick;
222
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
223
+ } & Readonly<{
224
+ disableChangeCodeTheme: boolean;
225
+ disableH2: boolean;
226
+ disableTable: boolean;
227
+ disableImg: boolean;
228
+ disableCode: boolean;
229
+ markdownBodyClass: string;
230
+ hideFirstH1: boolean;
231
+ }> & Omit<Readonly<{
232
+ disableH2?: boolean;
233
+ disableTable?: boolean;
234
+ disableImg?: boolean;
235
+ disableCode?: boolean;
236
+ disableChangeCodeTheme?: boolean;
237
+ markdownBodyClass?: string;
238
+ hideFirstH1?: boolean;
239
+ }> & Readonly<{}>, "disableChangeCodeTheme" | "disableH2" | "disableTable" | "disableImg" | "disableCode" | "markdownBodyClass" | "hideFirstH1"> & {} & import('vue').ComponentCustomProperties & {} & {
240
+ $slots: {
241
+ header?(_: {
242
+ h1: HTMLElement | undefined;
243
+ }): any;
244
+ default?(_: {}): any;
245
+ footer?(_: {}): any;
246
+ };
247
+ }) | null;
248
+ }, HTMLDivElement>;
67
249
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
68
250
  export default _default;
69
251
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./OArticle.vue2.mjs";
2
2
  import './OArticle.css';
3
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const _OArticle = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-effe6b29"]]);
4
+ const _OArticle = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f94c0e57"]]);
5
5
  export {
6
6
  _OArticle as default
7
7
  };
@@ -1,22 +1,8 @@
1
- import { defineComponent, useCssVars, computed, openBlock, createElementBlock, normalizeStyle, createElementVNode, toDisplayString, createBlock, unref, withCtx, createTextVNode, createCommentVNode, Fragment, renderList, normalizeClass, createVNode, normalizeProps, guardReactiveProps, renderSlot } from "vue";
2
- import { OTag, ODivider } from "@opensig/opendesign";
1
+ import { defineComponent, computed, openBlock, createElementBlock, normalizeStyle, createElementVNode, normalizeClass, createVNode, mergeProps, withCtx, renderSlot, createBlock } from "vue";
3
2
  import _OMarkdown from "../markdown/OMarkdown.vue.mjs";
4
3
  import _OArticlePagination from "../article-pagination/OArticlePagination.vue.mjs";
5
- import { useI18n } from "../../i18n/index.mjs";
6
- const _hoisted_1 = { class: "o-article__header" };
7
- const _hoisted_2 = { class: "o-article__title" };
8
- const _hoisted_3 = {
9
- key: 0,
10
- class: "o-article__meta"
11
- };
12
- const _hoisted_4 = {
13
- key: 0,
14
- class: "o-article__tags"
15
- };
16
- const _hoisted_5 = {
17
- key: 1,
18
- class: "o-article__update-time"
19
- };
4
+ import ArticleTitle from "./components/ArticleTitle.vue.mjs";
5
+ import DocTitle from "./components/DocTitle.vue.mjs";
20
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
21
7
  __name: "OArticle",
22
8
  props: {
@@ -26,39 +12,34 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
26
12
  community: {},
27
13
  prev: { default: null },
28
14
  next: { default: null },
15
+ type: { default: "article" },
29
16
  disableH2: { type: Boolean, default: false },
30
17
  disableTable: { type: Boolean, default: false },
31
18
  disableImg: { type: Boolean, default: false },
32
19
  disableCode: { type: Boolean, default: false },
33
20
  updateTime: {},
34
- markdownBodyClass: { default: "o-markdown-body" },
35
- removeFirstTopMargin: { type: Boolean, default: true },
36
- autoHideFirstH1: { type: Boolean, default: true },
21
+ sourceUrl: {},
22
+ enableDownload: { type: Boolean, default: false },
23
+ enableStar: { type: Boolean, default: false },
24
+ enableCopyLink: { type: Boolean, default: false },
37
25
  prevLabel: {},
38
26
  nextLabel: {},
39
- divider: { type: Boolean, default: true },
40
27
  radius: { default: "var(--o-radius-xs)" }
41
28
  },
42
- emits: ["navigate"],
29
+ emits: ["navigate", "download", "collect"],
43
30
  setup(__props, { emit: __emit }) {
44
- useCssVars((_ctx) => ({
45
- "v421a9b14": headerBgStyle.value
46
- }));
47
31
  const props = __props;
48
32
  const emit = __emit;
49
- const { t } = useI18n();
50
33
  const markdownProps = computed(() => ({
51
- disableH1: true,
34
+ hideFirstH1: true,
52
35
  disableH2: props.disableH2,
53
36
  disableTable: props.disableTable,
54
37
  disableImg: props.disableImg,
55
- disableCode: props.disableCode,
56
- markdownBodyClass: props.markdownBodyClass
38
+ disableCode: props.disableCode
57
39
  }));
58
40
  const onNavigate = (type, item) => {
59
41
  emit("navigate", type, item);
60
42
  };
61
- const headerBgStyle = computed(() => props.headerBg ? `url(${props.headerBg})` : "none");
62
43
  return (_ctx, _cache) => {
63
44
  return openBlock(), createElementBlock("div", {
64
45
  class: "o-article",
@@ -66,66 +47,51 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
66
47
  "--o-article-radius": __props.radius
67
48
  })
68
49
  }, [
69
- createElementVNode("header", _hoisted_1, [
70
- createElementVNode("h1", _hoisted_2, toDisplayString(__props.title), 1),
71
- __props.tags.length || __props.updateTime || __props.community ? (openBlock(), createElementBlock("div", _hoisted_3, [
72
- __props.tags.length || __props.community ? (openBlock(), createElementBlock("div", _hoisted_4, [
73
- __props.community ? (openBlock(), createBlock(unref(OTag), {
74
- key: 0,
75
- class: "o-article__tag",
76
- size: "large",
77
- variant: "outline",
78
- round: __props.community === "MindSpore" ? "pill" : __props.radius
79
- }, {
80
- default: withCtx(() => [
81
- createTextVNode(toDisplayString(__props.community), 1)
82
- ]),
83
- _: 1
84
- }, 8, ["round"])) : createCommentVNode("", true),
85
- __props.community && __props.tags.length ? (openBlock(), createBlock(unref(ODivider), {
86
- key: 1,
87
- direction: "v",
88
- class: "o-article__tags-divider"
89
- })) : createCommentVNode("", true),
90
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.tags, (tag) => {
91
- return openBlock(), createBlock(unref(OTag), {
92
- key: tag,
93
- class: "o-article__tag",
94
- size: "large",
95
- variant: "outline",
96
- round: __props.community === "MindSpore" ? "pill" : __props.radius
97
- }, {
98
- default: withCtx(() => [
99
- createTextVNode(toDisplayString(tag), 1)
100
- ]),
101
- _: 2
102
- }, 1032, ["round"]);
103
- }), 128))
104
- ])) : createCommentVNode("", true),
105
- __props.updateTime ? (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString(unref(t)("md.updateTime")) + toDisplayString(__props.updateTime), 1)) : createCommentVNode("", true)
106
- ])) : createCommentVNode("", true)
107
- ]),
108
50
  createElementVNode("div", {
109
51
  class: normalizeClass(["o-article__content", {
110
- "o-article__content--no-first-margin": __props.removeFirstTopMargin,
111
- "o-article__content--hide-first-h1": __props.autoHideFirstH1
52
+ doc: __props.type === "doc"
112
53
  }])
113
54
  }, [
114
- createVNode(_OMarkdown, normalizeProps(guardReactiveProps(markdownProps.value)), {
55
+ createVNode(_OMarkdown, mergeProps({ ref: "markdownRef" }, markdownProps.value), {
56
+ header: withCtx(({ h1 }) => [
57
+ __props.type === "article" ? (openBlock(), createBlock(ArticleTitle, {
58
+ key: 0,
59
+ title: __props.title,
60
+ el: h1,
61
+ "header-bg": __props.headerBg,
62
+ tags: __props.tags,
63
+ community: __props.community,
64
+ "update-time": __props.updateTime,
65
+ radius: __props.radius
66
+ }, null, 8, ["title", "el", "header-bg", "tags", "community", "update-time", "radius"])) : (openBlock(), createBlock(DocTitle, {
67
+ key: 1,
68
+ title: __props.title,
69
+ el: h1,
70
+ "bg-image": __props.headerBg,
71
+ "update-time": __props.updateTime,
72
+ "source-url": __props.sourceUrl,
73
+ "enable-download": __props.enableDownload,
74
+ "enable-star": __props.enableStar,
75
+ "enable-copy-link": __props.enableCopyLink,
76
+ onDownload: _cache[0] || (_cache[0] = ($event) => emit("download")),
77
+ onCollect: _cache[1] || (_cache[1] = ($event) => emit("collect"))
78
+ }, null, 8, ["title", "el", "bg-image", "update-time", "source-url", "enable-download", "enable-star", "enable-copy-link"]))
79
+ ]),
80
+ footer: withCtx(() => [
81
+ createVNode(_OArticlePagination, {
82
+ prev: __props.prev,
83
+ next: __props.next,
84
+ "prev-label": __props.prevLabel,
85
+ "next-label": __props.nextLabel,
86
+ radius: __props.radius,
87
+ onNavigate
88
+ }, null, 8, ["prev", "next", "prev-label", "next-label", "radius"])
89
+ ]),
115
90
  default: withCtx(() => [
116
91
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
117
92
  ]),
118
93
  _: 3
119
- }, 16),
120
- createVNode(_OArticlePagination, {
121
- prev: __props.prev,
122
- next: __props.next,
123
- "prev-label": __props.prevLabel,
124
- "next-label": __props.nextLabel,
125
- divider: __props.divider,
126
- radius: __props.radius,
127
- onNavigate
128
- }, null, 8, ["prev", "next", "prev-label", "next-label", "divider", "radius"])
94
+ }, 16)
129
95
  ], 2)
130
96
  ], 4);
131
97
  };
@@ -0,0 +1,123 @@
1
+ .hover-icon-rotate .o-icon[data-v-b96d293f] {
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-b96d293f] {
6
+ transform: rotate(-180deg);
7
+ }
8
+ }
9
+ .o-article__header[data-v-b96d293f] {
10
+ padding: 32px;
11
+ border-radius: var(--o-article-radius) var(--o-article-radius) 0 0;
12
+ background-image: var(--v5804c76a);
13
+ background-position: 100% 100%;
14
+ background-repeat: no-repeat;
15
+ background-size: cover;
16
+ }
17
+ @media (max-width: 1680px) {
18
+ .o-article__header[data-v-b96d293f] {
19
+ padding: 24px;
20
+ }
21
+ }
22
+ @media (max-width: 1200px) {
23
+ .o-article__header[data-v-b96d293f] {
24
+ padding: 16px;
25
+ }
26
+ }
27
+ @media (max-width: 600px) {
28
+ .o-article__header[data-v-b96d293f] {
29
+ padding: 12px;
30
+ }
31
+ }
32
+ .o-article__title[data-v-b96d293f] {
33
+ margin: 0;
34
+ color: var(--o-color-info1);
35
+ font-weight: 600;
36
+ font-size: 32px;
37
+ line-height: 44px;
38
+ }
39
+ @media (min-width: 1201px) and (max-width: 1680px) {
40
+ .o-article__title[data-v-b96d293f] {
41
+ font-size: 20px;
42
+ line-height: 28px;
43
+ }
44
+ }
45
+ @media (min-width: 841px) and (max-width: 1200px) {
46
+ .o-article__title[data-v-b96d293f] {
47
+ font-size: 20px;
48
+ line-height: 28px;
49
+ }
50
+ }
51
+ @media (min-width: 601px) and (max-width: 840px) {
52
+ .o-article__title[data-v-b96d293f] {
53
+ font-size: 18px;
54
+ line-height: 26px;
55
+ }
56
+ }
57
+ @media (max-width: 600px) {
58
+ .o-article__title[data-v-b96d293f] {
59
+ font-size: 16px;
60
+ line-height: 24px;
61
+ }
62
+ }
63
+ .o-article__meta[data-v-b96d293f] {
64
+ display: flex;
65
+ flex-wrap: wrap;
66
+ align-items: center;
67
+ justify-content: space-between;
68
+ column-gap: 16px;
69
+ row-gap: 8px;
70
+ margin-top: 8px;
71
+ }
72
+ .o-article__tags[data-v-b96d293f] {
73
+ display: flex;
74
+ flex-wrap: wrap;
75
+ align-items: center;
76
+ gap: 16px;
77
+ min-width: fit-content;
78
+ padding: 0;
79
+ list-style: none;
80
+ }
81
+ .o-article__tags-divider[data-v-b96d293f] {
82
+ --o-divider-label-gap: 0;
83
+ height: 20px;
84
+ }
85
+ .o-article__update-time[data-v-b96d293f] {
86
+ flex-shrink: 0;
87
+ color: var(--o-color-info3);
88
+ font-size: 14px;
89
+ line-height: 22px;
90
+ }
91
+ @media (min-width: 1201px) and (max-width: 1680px) {
92
+ .o-article__update-time[data-v-b96d293f] {
93
+ font-size: 14px;
94
+ line-height: 18px;
95
+ }
96
+ }
97
+ @media (min-width: 841px) and (max-width: 1200px) {
98
+ .o-article__update-time[data-v-b96d293f] {
99
+ font-size: 12px;
100
+ line-height: 18px;
101
+ }
102
+ }
103
+ @media (min-width: 601px) and (max-width: 840px) {
104
+ .o-article__update-time[data-v-b96d293f] {
105
+ font-size: 12px;
106
+ line-height: 18px;
107
+ }
108
+ }
109
+ @media (max-width: 600px) {
110
+ .o-article__update-time[data-v-b96d293f] {
111
+ font-size: 12px;
112
+ line-height: 18px;
113
+ }
114
+ }
115
+ @media (max-width: 600px) {
116
+ .o-article__update-time[data-v-b96d293f] {
117
+ flex-basis: 100%;
118
+ }
119
+ }
120
+ .o-article__tag[data-v-b96d293f] {
121
+ --tag-height: 24px;
122
+ --tag-padding: 0 11px;
123
+ }
@@ -0,0 +1,22 @@
1
+ import { OMarkdownMaybeElementT } from '../../markdown/types';
2
+ type __VLS_Props = {
3
+ /** 文章标题(可选),未传时使用 el 渲染 */
4
+ title?: string;
5
+ /** 标题 DOM 元素(可选),title 未传时渲染 el 的 outerHTML */
6
+ el?: OMarkdownMaybeElementT;
7
+ /** 标题头部背景图地址(可选),未传时不显示背景图 */
8
+ headerBg?: string;
9
+ /** 标签列表(可选),渲染为标题下方的 OTag 标签 */
10
+ tags?: string[];
11
+ /** 所属社区(可选),渲染为标签并置于标签列表首位,用垂直分隔线与其余标签隔开 */
12
+ community?: string;
13
+ /** 标题头部展示的更新时间(可选),与标签两端对齐,文案前缀取 i18n `md.updateTime` */
14
+ updateTime?: string;
15
+ /** 圆角 */
16
+ radius?: string;
17
+ };
18
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
19
+ radius: string;
20
+ tags: string[];
21
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
22
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import _sfc_main from "./ArticleTitle.vue2.mjs";
2
+ import './ArticleTitle.css';
3
+ import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
4
+ const ArticleTitle = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b96d293f"]]);
5
+ export {
6
+ ArticleTitle as default
7
+ };