@opengis/cms 0.0.1 → 0.0.2

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 (144) hide show
  1. package/editor/dist/cms.js +5900 -0
  2. package/editor/dist/cms.umd.cjs +19 -0
  3. package/package.json +4 -1
  4. package/.gitlab-ci.yml +0 -36
  5. package/config.example +0 -21
  6. package/docs/.vitepress/abbr.mjs +0 -26
  7. package/docs/.vitepress/config.mjs +0 -119
  8. package/docs/.vitepress/navigation.mjs +0 -82
  9. package/docs/.vitepress/theme/Layout.vue +0 -17
  10. package/docs/.vitepress/theme/components/NavigationLinks.vue +0 -102
  11. package/docs/.vitepress/theme/components/Panzoom.vue +0 -169
  12. package/docs/.vitepress/theme/index.mjs +0 -15
  13. package/docs/.vitepress/theme/style.scss +0 -136
  14. package/docs/abbr.json +0 -4
  15. package/docs/api/builder/cms.builder.delete.md +0 -65
  16. package/docs/api/builder/cms.builder.get.md +0 -70
  17. package/docs/api/builder/cms.builder.list.md +0 -98
  18. package/docs/api/builder/cms.builder.post.md +0 -72
  19. package/docs/api/builder/cms.builder.put.md +0 -88
  20. package/docs/api/category/cms.category.delete.md +0 -60
  21. package/docs/api/category/cms.category.get.md +0 -61
  22. package/docs/api/category/cms.category.list.md +0 -77
  23. package/docs/api/category/cms.category.post.md +0 -62
  24. package/docs/api/category/cms.category.put.md +0 -78
  25. package/docs/api/index.md +0 -50
  26. package/docs/api/manager/cms.manager.delete.md +0 -64
  27. package/docs/api/manager/cms.manager.get.md +0 -72
  28. package/docs/api/manager/cms.manager.list.md +0 -96
  29. package/docs/api/manager/cms.manager.post.md +0 -70
  30. package/docs/api/manager/cms.manager.put.md +0 -86
  31. package/docs/api/media/del.md +0 -64
  32. package/docs/api/media/edit.md +0 -92
  33. package/docs/api/media/list.md +0 -70
  34. package/docs/api/media/metadata.md +0 -57
  35. package/docs/api/media/preview.md +0 -33
  36. package/docs/api/media/upload.md +0 -84
  37. package/docs/db/erd.md +0 -173
  38. package/docs/db/index.md +0 -7
  39. package/docs/index.md +0 -39
  40. package/docs/public/logo-dark.svg +0 -24
  41. package/docs/public/logo-light.svg +0 -24
  42. package/docs/public/logo-short.svg +0 -15
  43. package/docs/public/logo.svg +0 -19
  44. package/docs/readme/index.md +0 -6
  45. package/docs/src/vs-button.vue +0 -157
  46. package/docs/vue/basic/button.md +0 -144
  47. package/docs/vue/index.md +0 -9
  48. package/editor/index.html +0 -14
  49. package/editor/src/App.vue +0 -4
  50. package/editor/src/assets/tailwind/tailwind.js +0 -62
  51. package/editor/src/assets/vue.svg +0 -1
  52. package/editor/src/components/builder/vs-builder-content.vue +0 -163
  53. package/editor/src/components/builder/vs-builder-menu.vue +0 -142
  54. package/editor/src/components/formats/index.js +0 -8
  55. package/editor/src/components/formats/vs-manager-table-date.vue +0 -29
  56. package/editor/src/components/formats/vs-manager-table-switch.vue +0 -16
  57. package/editor/src/components/icons/icon-actions.vue +0 -24
  58. package/editor/src/components/icons/icon-arrow-left.vue +0 -19
  59. package/editor/src/components/icons/icon-check.vue +0 -23
  60. package/editor/src/components/icons/icon-chewron-right.vue +0 -16
  61. package/editor/src/components/icons/icon-close.vue +0 -22
  62. package/editor/src/components/icons/icon-edit.vue +0 -22
  63. package/editor/src/components/icons/icon-folder.vue +0 -18
  64. package/editor/src/components/icons/icon-folder2.vue +0 -17
  65. package/editor/src/components/icons/icon-home.vue +0 -16
  66. package/editor/src/components/icons/icon-image.vue +0 -18
  67. package/editor/src/components/icons/icon-logo.vue +0 -22
  68. package/editor/src/components/icons/icon-media.vue +0 -22
  69. package/editor/src/components/icons/icon-point.vue +0 -11
  70. package/editor/src/components/icons/icon-search.vue +0 -22
  71. package/editor/src/components/icons/icon-table.vue +0 -22
  72. package/editor/src/components/icons/icon-users.vue +0 -18
  73. package/editor/src/components/icons/icon.plus.vue +0 -18
  74. package/editor/src/components/manager/children/vs-manager-collection-content.vue +0 -55
  75. package/editor/src/components/manager/children/vs-manager-collection-item-content.vue +0 -116
  76. package/editor/src/components/manager/children/vs-manager-single-content.vue +0 -112
  77. package/editor/src/components/manager/manager-table/vs-manager-colection-table-add.vue +0 -84
  78. package/editor/src/components/manager/manager-table/vs-manager-collection-table.vue +0 -59
  79. package/editor/src/components/manager/vs-manager-menu.vue +0 -73
  80. package/editor/src/components/media/Breadcrumb.vue +0 -73
  81. package/editor/src/components/shared-components/vs-not-data.vue +0 -213
  82. package/editor/src/components/vs-main-menu.vue +0 -53
  83. package/editor/src/helpers/debounce.js +0 -10
  84. package/editor/src/helpers/translite.js +0 -19
  85. package/editor/src/main.js +0 -30
  86. package/editor/src/misc/import-file.js +0 -32
  87. package/editor/src/pages/vs-builder.vue +0 -22
  88. package/editor/src/pages/vs-layout.vue +0 -17
  89. package/editor/src/pages/vs-manager.vue +0 -30
  90. package/editor/src/pages/vs-media.vue +0 -398
  91. package/editor/src/router/router.js +0 -9
  92. package/editor/src/router/routes.config.js +0 -40
  93. package/editor/src/style.css +0 -0
  94. package/editor/src/templates/form-columns.js +0 -70
  95. package/editor/src/templates/form-template.js +0 -22
  96. package/editor/vite.config.js +0 -37
  97. package/server/app.js +0 -25
  98. package/server/config.js +0 -5
  99. package/server/index.js +0 -23
  100. package/server/migrations/media.sql +0 -30
  101. package/server/plugins/hook.js +0 -91
  102. package/server/plugins/vite.js +0 -80
  103. package/server/routes/builder/controllers/cms.builder.delete.js +0 -21
  104. package/server/routes/builder/controllers/cms.builder.get.js +0 -17
  105. package/server/routes/builder/controllers/cms.builder.list.js +0 -16
  106. package/server/routes/builder/controllers/cms.builder.post.js +0 -21
  107. package/server/routes/builder/controllers/cms.builder.put.js +0 -23
  108. package/server/routes/builder/index.mjs +0 -22
  109. package/server/routes/category/controllers/cms.category.delete.js +0 -21
  110. package/server/routes/category/controllers/cms.category.get.js +0 -17
  111. package/server/routes/category/controllers/cms.category.list.js +0 -16
  112. package/server/routes/category/controllers/cms.category.post.js +0 -21
  113. package/server/routes/category/controllers/cms.category.put.js +0 -23
  114. package/server/routes/category/index.mjs +0 -22
  115. package/server/routes/manager/controllers/cms.manager.delete.js +0 -22
  116. package/server/routes/manager/controllers/cms.manager.get.js +0 -21
  117. package/server/routes/manager/controllers/cms.manager.list.js +0 -31
  118. package/server/routes/manager/controllers/cms.manager.post.js +0 -28
  119. package/server/routes/manager/controllers/cms.manager.put.js +0 -23
  120. package/server/routes/manager/index.mjs +0 -22
  121. package/server/routes/media/controllers/delete.js +0 -59
  122. package/server/routes/media/controllers/edit.js +0 -94
  123. package/server/routes/media/controllers/list.js +0 -74
  124. package/server/routes/media/controllers/metadata.js +0 -51
  125. package/server/routes/media/controllers/preview.js +0 -47
  126. package/server/routes/media/controllers/upload.js +0 -79
  127. package/server/routes/media/index.mjs +0 -16
  128. package/server/routes/root.mjs +0 -15
  129. package/server/templates/cls/cms.category_type.json +0 -10
  130. package/server/templates/cls/cms.content_review_status.json +0 -10
  131. package/server/templates/cls/cms.content_status.json +0 -10
  132. package/server/templates/cls/cms.content_type.json +0 -10
  133. package/server/templates/cls/cms.lang.json +0 -10
  134. package/server/templates/page/login.html +0 -59
  135. package/server/templates/select/cms.category_id.sql +0 -1
  136. package/server/templates/select/cms.type_id.sql +0 -1
  137. package/test/config.js +0 -17
  138. package/test/files/eye.svg +0 -4
  139. package/test/helper.js +0 -30
  140. package/test/routes/builder.test.js +0 -99
  141. package/test/routes/category.test.js +0 -97
  142. package/test/routes/manager.test.js +0 -103
  143. package/test/routes/media.test.js +0 -252
  144. /package/editor/{public → dist}/vite.svg +0 -0
@@ -1,119 +0,0 @@
1
- import { defineConfig } from 'vitepress';
2
- import { withMermaid } from 'vitepress-plugin-mermaid';
3
- import { tabsMarkdownPlugin } from 'vitepress-plugin-tabs';
4
- import markdownItAbbr from 'markdown-it-abbr';
5
- import navigation from './navigation.mjs';
6
- import handleAbbr from './abbr.mjs';
7
-
8
- // Автоматична генерація одночасно nav (меню в хедері) і сайдбару для кожного пункту nav
9
- const { nav, sidebar } = navigation(
10
- /*
11
- Перший параметр функції (обов'язковий) - масив об'єктів з ключами:
12
- 1) text (обов'язковий) - назва пункта меню, яка буде відображатись в хедері
13
- 2) folder (обов'язковий) - назва папки з документацією, яка повинна відкриватись по кліку на пункт меню з хедера
14
- (на основі цієї папки буде автоматично сформований сайдбар)
15
- 3) link (необов'язковий) - кастомне посилання, по стандарту веде на файл `docs/${forder}/index.md`
16
- 4) інші необов'язкові ключі (activeMatch, target...) описані тут - https://vitepress.dev/reference/default-theme-nav#navigation-links
17
- */
18
- [
19
- {
20
- text: 'DB',
21
- folder: 'db',
22
- },
23
- {
24
- text: 'API',
25
- folder: 'api',
26
- },
27
- {
28
- text: 'Vue',
29
- folder: 'vue',
30
- },
31
- {
32
- text: 'Readme',
33
- folder: 'readme',
34
- },
35
- ],
36
- /*
37
- Другий параметр функції (НЕобов'язковий) - об'єкт з двома ключами:
38
- 1) nav - параметри для налаштування хедера, може містити наступні ключі:
39
- * disableHome (Booleadn, default: false) - чи скрити пункт меню, який веде на головну
40
- * homeTitle (String, default: 'Головна') - назва пункту меню, який веде на головну
41
- 2) sidebar - параметри для налаштування сайдбару, може містити наступні ключі:
42
- * ${назва_папки} (Object) - референс до кожного окремого сайдбару, який вказаний в першому параметрі функції. Ключем виступає те що вказано в folder. Перелік доступних ключів стандартний і описаний тут - https://github.com/jooy2/vitepress-sidebar#options
43
- */
44
- {
45
- // nav: {
46
- // disableHome: false,
47
- // homeTitle: 'Головна',
48
- // },
49
- // sidebar: {
50
- // 'api': {
51
- // includeFolderIndexFile: true,
52
- // }
53
- // }
54
- },
55
- /*
56
- Третій параметр функції (НЕобов'язковий, default: '/docs') - вказує папку, в якій знаходиться конфігураційна папка .vitepress:
57
- - наприклад, якщо у вас в проєкті вже є інша документація і папка docs зайнята, то тут потрібно вказати нову назву папки
58
- - детальніше тут - https://github.com/jooy2/vitepress-sidebar?tab=readme-ov-file#documentrootpath
59
- */
60
- // '/docs-dev',
61
- );
62
-
63
- export default withMermaid(
64
- defineConfig({
65
- base: '/cms/',
66
-
67
- title: "Content Management System",
68
- description: "Система Керування Контентом",
69
-
70
- ignoreDeadLinks: true,
71
-
72
- markdown: {
73
- config(md) {
74
- md.use(tabsMarkdownPlugin);
75
- md.use(markdownItAbbr);
76
- md.use(handleAbbr);
77
- },
78
- languageAlias: {
79
- 'example': 'r',
80
- 'schema-api': 'r',
81
- 'scheme-api': 'r',
82
- 'schema': 'r',
83
- 'scheme': 'r'
84
- },
85
- },
86
-
87
- head: [
88
- ['script', { src: 'https://cdn.tailwindcss.com' }],
89
- ['link', { rel: 'icon shortcut', href: './logo-short.svg' }],
90
- ['link', { href: 'https://cdn.softpro.ua/vue/v3-core/dev/style.css' }],
91
- ],
92
-
93
- // https://vitepress.dev/reference/default-theme-config
94
- themeConfig: {
95
- nav,
96
- sidebar,
97
-
98
- logo: '/logo.svg',
99
- siteTitle: false,
100
-
101
- outline: 'deep',
102
-
103
- search: {
104
- provider: 'local',
105
- },
106
-
107
- socialLinks: [
108
- { icon: 'github', link: 'https://git.softpro.ua/', },
109
- ],
110
-
111
- // Додаткові посилання в навігації - https://prnt.sc/5K70IDQh8J-f
112
- // Виводиться на всіх сторінках
113
- // Також можна оверрайдити/доповнювати на окремих сторінках, просто в потрібному .md файлі - https://prnt.sc/VAGE3r_RU389
114
- navigationLinks: [
115
- { icon: 'brand-gitlab', link: 'https://git.softpro.ua/', text: 'GitLab', },
116
- ],
117
- },
118
- })
119
- );
@@ -1,82 +0,0 @@
1
- import { generateSidebar } from 'vitepress-sidebar';
2
-
3
- function navigation(items = [], options = {}, documentRootPath = '/docs') {
4
- const navHeader = [];
5
- const navSidebar = [];
6
-
7
- if (!options.nav) {
8
- options.nav = {};
9
- }
10
-
11
- if (!options.sidebar) {
12
- options.sidebar = {};
13
- }
14
-
15
- if (!options.nav.disableHome) {
16
- navHeader.push(
17
- {
18
- text: options.nav.homeTitle || 'Головна',
19
- link: '/',
20
- }
21
- );
22
- }
23
-
24
- items.forEach(item => {
25
- if (item.text && item.items) {
26
- navHeader.push(item);
27
-
28
- return true;
29
- }
30
-
31
- if (!item.text || !item.folder) {
32
- return false;
33
- }
34
-
35
- // FORMAT INCOME DATA
36
- const itemFolder = item.folder.trim();
37
- const itemFolderFormatted = `/${itemFolder}/`;
38
-
39
- // NAVBAR
40
- navHeader.push(
41
- {
42
- ...item,
43
- link: item.link || itemFolderFormatted,
44
- activeMatch: item.activeMatch || itemFolderFormatted,
45
- }
46
- );
47
-
48
- // SIDEBAR
49
- const sidebarOptions = options.sidebar[item.folder] || {};
50
-
51
- navSidebar.push(
52
- // https://github.com/jooy2/vitepress-sidebar#options
53
- {
54
- documentRootPath,
55
- scanStartPath: itemFolder,
56
- resolvePath: itemFolderFormatted,
57
- useTitleFromFileHeading: true,
58
- useTitleFromFrontmatter: true,
59
- useFolderTitleFromIndexFile: true,
60
- hyphenToSpace: true,
61
- underscoreToSpace: true,
62
- capitalizeFirst: true,
63
- collapsed: true,
64
- sortMenusByFrontmatterOrder: true,
65
- frontmatterOrderDefaultValue: 1,
66
- excludeFiles: [],
67
- excludeFolders: [],
68
- includeRootIndexFile: true,
69
- includeFolderIndexFile: false,
70
-
71
- ...sidebarOptions,
72
- }
73
- );
74
- });
75
-
76
- return {
77
- nav: navHeader,
78
- sidebar: generateSidebar(navSidebar),
79
- };
80
- }
81
-
82
- export default navigation;
@@ -1,17 +0,0 @@
1
- <script setup>
2
- import DefaultTheme from 'vitepress/theme';
3
- import Panzoom from './components/Panzoom.vue';
4
- import NavigationLinks from './components/NavigationLinks.vue';
5
-
6
- const { Layout } = DefaultTheme;
7
- </script>
8
-
9
- <template>
10
- <Layout>
11
- <template #aside-outline-after>
12
- <NavigationLinks />
13
- </template>
14
- </Layout>
15
-
16
- <Panzoom />
17
- </template>
@@ -1,102 +0,0 @@
1
- <script setup>
2
- import { computed } from 'vue';
3
- import { useData } from 'vitepress';
4
-
5
- const { frontmatter, theme } = useData();
6
-
7
- const headingLabel = computed(() => frontmatter.value.navigationLinksLabel || 'Resources');
8
-
9
- const links = computed(() => {
10
- const arr = [];
11
-
12
- if (frontmatter.value.navigationLinks && Array.isArray(frontmatter.value.navigationLinks) && frontmatter.value.navigationLinks.length) {
13
- frontmatter.value.navigationLinks.forEach(link => {
14
- arr.push(formatLink(link));
15
- });
16
- }
17
-
18
- if (theme.value.navigationLinks && Array.isArray(theme.value.navigationLinks) && theme.value.navigationLinks.length && !frontmatter.value.navigationLinksHideGlobal) {
19
- theme.value.navigationLinks.forEach(link => {
20
- arr.push(formatLink(link));
21
- });
22
- }
23
-
24
- return arr;
25
- });
26
-
27
- function formatLink(linkObj) {
28
- const { link } = linkObj;
29
-
30
- return {
31
- ...linkObj,
32
- isTargetBlank: link.startsWith('http') || link.startsWith('www'),
33
- }
34
- }
35
- </script>
36
-
37
- <template>
38
- <div v-if="links.length" class="nav-links">
39
- <div v-if="headingLabel?.length" class="nav-links__item">
40
- <span class="nav-links__heading">{{ headingLabel }}</span>
41
- </div>
42
-
43
- <a v-for="(link, idx) in links" :key="idx" :href="link.link" :target="link.isTargetBlank ? '_blank' : '_self'" class="nav-links__item">
44
- <i v-if="link.icon" :class="`nav-links__icon ti ti-${link.icon}`"></i>
45
-
46
- <span v-if="link.text" class="nav-links__text">{{ link.text }}</span>
47
-
48
- <i v-if="link.isTargetBlank" class="nav-links__target ti ti-arrow-up-right"></i>
49
- </a>
50
- </div>
51
- </template>
52
-
53
- <style lang="scss" scoped>
54
- .nav-links {
55
- display: flex;
56
- flex-direction: column;
57
- margin: 30px 0 0;
58
- padding-left: 16px;
59
- border-left: 1px solid var(--vp-c-divider);
60
-
61
- // .nav-links__item
62
- &__item {
63
- display: flex;
64
- align-items: center;
65
- gap: 8px;
66
- padding: 8px 0;
67
- color: var(--vp-c-text-2);
68
- transition: color 0.5s;
69
-
70
- &:hover {
71
- color: var(--vp-c-text);
72
- }
73
- }
74
-
75
- // .nav-links__icon
76
- &__icon {
77
- font-size: 18px;
78
- }
79
-
80
- // .nav-links__heading
81
- &__heading {
82
- font-size: 14px;
83
- font-weight: 600;
84
- line-height: 1;
85
- color: rgba(60, 60, 67);
86
- }
87
-
88
- // .nav-links__text
89
- &__text {
90
- font-size: 14px;
91
- font-weight: 400;
92
- line-height: 1;
93
- }
94
-
95
- // .nav-links__target
96
- &__target {
97
- align-self: flex-start;
98
- font-size: 12px;
99
- margin-left: -4px;
100
- }
101
- }
102
- </style>
@@ -1,169 +0,0 @@
1
- <script setup>
2
- import { onMounted, nextTick, watch } from 'vue';
3
- import { useRouter } from 'vitepress';
4
- import Panzoom from '@panzoom/panzoom';
5
-
6
- const { route } = useRouter();
7
-
8
- onMounted(() => createPanzoom());
9
-
10
- watch(
11
- () => route.path,
12
- async () => {
13
- await nextTick();
14
-
15
- createPanzoom();
16
- },
17
- );
18
-
19
- function createPanzoom() {
20
- document.querySelectorAll('img[alt = "zoom"], .mermaid').forEach(async (m) => {
21
- if (m.panzoom) {
22
- return false;
23
- }
24
-
25
- const wrapper = document.createElement('div');
26
- wrapper.classList.add('mermaid-wrapper');
27
-
28
- m.before(wrapper);
29
-
30
- wrapper.appendChild(m);
31
-
32
- await nextTick();
33
-
34
- const pz = Panzoom(m, {
35
- maxScale: 20,
36
- minScale: 0.5,
37
- canvas: true,
38
- });
39
-
40
- m.panzoom = pz;
41
-
42
- wrapper.appendChild(createActions(pz, wrapper, m));
43
- wrapper.addEventListener('wheel', pz.zoomWithWheel);
44
- });
45
- }
46
-
47
- function createActions(panzoom, wrapper, mermaid) {
48
- const actions = document.createElement('div');
49
- actions.classList.add('mermaid-wrapper__actions');
50
-
51
- actions.appendChild(createZoomIn(panzoom, wrapper, mermaid));
52
- actions.appendChild(createZoomOut(panzoom, wrapper, mermaid));
53
- actions.appendChild(createZoomRestore(panzoom, wrapper, mermaid));
54
- actions.appendChild(createFullScreenToggler(panzoom, wrapper, mermaid));
55
-
56
- return actions;
57
- }
58
-
59
- function createZoomIn(panzoom, wrapper, mermaid) {
60
- const zoomIn = document.createElement('div');
61
-
62
- zoomIn.classList.add('mermaid-wrapper__action');
63
- zoomIn.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none"
64
- stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 5l0 14" /><path d="M5 12l14 0" /></svg>`;
65
-
66
- zoomIn.onclick = () => {
67
- panzoom.zoomIn();
68
- };
69
-
70
- return zoomIn;
71
- }
72
-
73
- function createZoomOut(panzoom, wrapper, mermaid) {
74
- const zoomOut = document.createElement('div');
75
-
76
- zoomOut.classList.add('mermaid-wrapper__action');
77
- zoomOut.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none"
78
- stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 12l14 0" /></svg>`;
79
-
80
- zoomOut.onclick = () => {
81
- panzoom.zoomOut();
82
- };
83
-
84
- return zoomOut;
85
- }
86
-
87
- function createZoomRestore(panzoom, wrapper, mermaid) {
88
- const zoomRestore = document.createElement('div');
89
-
90
- zoomRestore.classList.add('mermaid-wrapper__action');
91
- zoomRestore.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none"
92
- stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M21 21l-6 -6" />
93
- <path d="M3.268 12.043a7.017 7.017 0 0 0 6.634 4.957a7.012 7.012 0 0 0 7.043 -6.131a7 7 0 0 0 -5.314 -7.672a7.021 7.021 0 0 0 -8.241 4.403" /><path d="M3 4v4h4" /></svg>`;
94
-
95
- zoomRestore.onclick = () => {
96
- panzoom.reset();
97
- };
98
-
99
- return zoomRestore;
100
- }
101
-
102
- function createFullScreenToggler(panzoom, wrapper, mermaid) {
103
- const fullScreenToggler = document.createElement('div');
104
-
105
- fullScreenToggler.classList.add('mermaid-wrapper__action');
106
- fullScreenToggler.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
107
- stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 8v-2a2 2 0 0 1 2 -2h2" />
108
- <path d="M4 16v2a2 2 0 0 0 2 2h2" /><path d="M16 4h2a2 2 0 0 1 2 2v2" /><path d="M16 20h2a2 2 0 0 0 2 -2v-2" /></svg>`;
109
-
110
- fullScreenToggler.onclick = () => {
111
- panzoom.reset({ animate: false });
112
- wrapper.classList.toggle('is-fullscreen');
113
- };
114
-
115
- return fullScreenToggler;
116
- }
117
- </script>
118
-
119
- <template>
120
- </template>
121
-
122
- <style lang="scss">
123
- .mermaid-wrapper {
124
- display: block;
125
- min-height: 168px;
126
- overflow: hidden;
127
- position: relative;
128
- background: var(--vp-c-bg);
129
-
130
- &__actions {
131
- position: absolute;
132
- z-index: 10;
133
- right: 16px;
134
- bottom: 16px;
135
- display: flex;
136
- flex-direction: column;
137
- gap: 8px;
138
- }
139
-
140
- &__action {
141
- display: inline-flex;
142
- align-items: center;
143
- justify-content: center;
144
- text-align: center;
145
- font-weight: 600;
146
- color: var(--vp-button-alt-hover-text);
147
- background-color: var(--vp-button-alt-hover-bg);
148
- border-radius: 4px;
149
- padding: 4px;
150
- line-height: 1;
151
- white-space: nowrap;
152
- cursor: pointer;
153
-
154
- & > * {
155
- display: block;
156
- width: 20px;
157
- height: 20px;
158
- font-size: 20px;
159
- line-height: 1;
160
- }
161
- }
162
-
163
- &.is-fullscreen {
164
- position: fixed;
165
- z-index: 1000;
166
- inset: 0;
167
- }
168
- }
169
- </style>
@@ -1,15 +0,0 @@
1
- // https://vitepress.dev/guide/custom-theme
2
- import DefaultTheme from 'vitepress/theme';
3
- import { enhanceAppWithTabs } from 'vitepress-plugin-tabs/client';
4
- import './style.scss';
5
- //import "@tabler/icons-webfont/tabler-icons.css";
6
- import Layout from './Layout.vue';
7
-
8
- /** @type {import('vitepress').Theme} */
9
- export default {
10
- extends: DefaultTheme,
11
- Layout: Layout,
12
- enhanceApp({ app, router, siteData }) {
13
- enhanceAppWithTabs(app);
14
- }
15
- };
@@ -1,136 +0,0 @@
1
- /**
2
- * Customize default theme styling by overriding CSS variables:
3
- * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css
4
- */
5
-
6
- /**
7
- * Colors
8
- * -------------------------------------------------------------------------- */
9
-
10
- :root {
11
- --vp-c-default-1: var(--vp-c-gray-1);
12
- --vp-c-default-2: var(--vp-c-gray-2);
13
- --vp-c-default-3: var(--vp-c-gray-3);
14
- --vp-c-default-soft: var(--vp-c-gray-soft);
15
-
16
- --vp-c-brand-1: hsl(209, 85%, 57%); // Colored text
17
- --vp-c-brand-2: hsl(209, 85%, 40%); // Hover Button
18
- --vp-c-brand-3: hsl(209, 85%, 57%); // button
19
- --vp-c-brand-soft: hsla(209, 100%, 60%, 0.342); // tip box
20
-
21
- --vp-c-tip-1: var(--vp-c-brand-1);
22
- --vp-c-tip-2: var(--vp-c-brand-2);
23
- --vp-c-tip-3: var(--vp-c-brand-3);
24
- --vp-c-tip-soft: var(--vp-c-brand-soft);
25
-
26
- --vp-c-warning-1: var(--vp-c-yellow-1);
27
- --vp-c-warning-2: var(--vp-c-yellow-2);
28
- --vp-c-warning-3: var(--vp-c-yellow-3);
29
- --vp-c-warning-soft: var(--vp-c-yellow-soft);
30
-
31
- --vp-c-danger-1: var(--vp-c-red-1);
32
- --vp-c-danger-2: var(--vp-c-red-2);
33
- --vp-c-danger-3: var(--vp-c-red-3);
34
- --vp-c-danger-soft: var(--vp-c-red-soft);
35
- }
36
-
37
- /**
38
- * Component: Button
39
- * -------------------------------------------------------------------------- */
40
-
41
- :root {
42
- --vp-button-brand-border: transparent;
43
- --vp-button-brand-text: var(--vp-c-white);
44
- --vp-button-brand-bg: var(--vp-c-brand-3);
45
- --vp-button-brand-hover-border: transparent;
46
- --vp-button-brand-hover-text: var(--vp-c-white);
47
- --vp-button-brand-hover-bg: var(--vp-c-brand-2);
48
- --vp-button-brand-active-border: transparent;
49
- --vp-button-brand-active-text: var(--vp-c-white);
50
- --vp-button-brand-active-bg: var(--vp-c-brand-1);
51
- }
52
-
53
- /**
54
- * Component: Home
55
- * -------------------------------------------------------------------------- */
56
-
57
- :root {
58
- --vp-home-hero-name-color: transparent;
59
- --vp-home-hero-name-background: -webkit-linear-gradient(164deg,
60
- hsl(209, 85%, 57%) 34%,
61
- hsl(0, 79%, 62%) 1%);
62
-
63
- // --vp-home-hero-image-background-image: linear-gradient(0deg,
64
- // hsl(207, 100%, 50%) 1%,
65
- // hsl(209, 85%, 57%) 60%);
66
- // --vp-home-hero-image-filter: blur(44px);
67
- }
68
-
69
- @media (min-width: 640px) {
70
- :root {
71
- --vp-home-hero-image-filter: blur(56px);
72
- }
73
- }
74
-
75
- @media (min-width: 960px) {
76
- :root {
77
- --vp-home-hero-image-filter: blur(50px);
78
- }
79
- }
80
-
81
- .VPHomeHero .VPImage {
82
- width: 100%;
83
- height: 100%;
84
- object-fit: contain;
85
- }
86
-
87
- /**
88
- * Component: Custom Block
89
- * -------------------------------------------------------------------------- */
90
-
91
- :root {
92
- --vp-custom-block-tip-border: transparent;
93
- --vp-custom-block-tip-text: var(--vp-c-text-1);
94
- --vp-custom-block-tip-bg: var(--vp-c-brand-soft);
95
- --vp-custom-block-tip-code-bg: var(--vp-c-brand-soft);
96
- }
97
-
98
- /**
99
- * Component: Algolia
100
- * -------------------------------------------------------------------------- */
101
-
102
- .DocSearch {
103
- --docsearch-primary-color: var(--vp-c-brand-1) !important;
104
- }
105
-
106
- /**
107
- * Component: Badge
108
- * -------------------------------------------------------------------------- */
109
-
110
- .VPBadge[class*="code_"] {
111
- margin-right: 5px;
112
- }
113
-
114
- .VPBadge.code_2xx {
115
- border-color: #1cbb8c;
116
- color: #189f77;
117
- background-color: rgba(28, 187, 140, 0.15);
118
- }
119
-
120
- .VPBadge.code_3xx {
121
- border-color: #17a2b8;
122
- color: #148a9c;
123
- background-color: rgba(23, 162, 184, 0.15);
124
- }
125
-
126
- .VPBadge.code_4xx {
127
- border-color: #fcb92c;
128
- color: #d69d25;
129
- background-color: rgba(252, 185, 44, 0.15);
130
- }
131
-
132
- .VPBadge.code_5xx {
133
- border-color: #dc3545;
134
- color: #bb2d3b;
135
- background-color: rgba(220, 53, 69, 0.15);
136
- }
package/docs/abbr.json DELETED
@@ -1,4 +0,0 @@
1
- {
2
- "HTML": "Hyper Text Markup Language",
3
- "W3C": "World Wide Web Consortium"
4
- }