@appscode/design-system 2.0.59 → 2.0.61
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/package.json +1 -1
- package/plugins/theme.js +2 -5
- package/plugins/time-convert.js +5 -9
- package/plugins/vue-toaster.js +2 -1
- package/vue-components/plugins/time-convert.js +2 -6
- package/vue-components/styles/base/utilities/_colors.scss +19 -25
- package/vue-components/styles/base/utilities/_generate-color-classes.scss +41 -233
- package/vue-components/styles/base/utilities/_global.scss +13 -14
- package/vue-components/styles/base/utilities/_layouts.scss +1 -2
- package/vue-components/styles/base/utilities/_mixin.scss +8 -46
- package/vue-components/styles/base/utilities/_root-variables.scss +1 -1
- package/vue-components/styles/base/utilities/_spacing.scss +1 -1
- package/vue-components/styles/base/utilities/_typography.scss +1 -1
- package/vue-components/styles/components/_ac-drag.scss +1 -1
- package/vue-components/styles/components/_accordion.scss +1 -1
- package/vue-components/styles/components/_badge-tags.scss +75 -0
- package/vue-components/styles/components/_card-body-wrapper.scss +1 -1
- package/vue-components/styles/components/_pagination.scss +2 -2
- package/vue-components/styles/components/_preview-modal.scss +3 -3
- package/vue-components/styles/components/_progress-bar.scss +3 -3
- package/vue-components/styles/components/_table.scss +3 -3
- package/vue-components/styles/components/_tabs.scss +2 -2
- package/vue-components/styles/components/_terminal.scss +3 -3
- package/vue-components/styles/components/_wizard.scss +3 -3
- package/vue-components/styles/components/ac-toaster/_ac-toasted.scss +10 -5
- package/vue-components/styles/components/alert/_alert.scss +2 -12
- package/vue-components/styles/components/alert/_toast.scss +1 -1
- package/vue-components/styles/components/bbum/_all.scss +1 -1
- package/vue-components/styles/components/bbum/_card-team.scss +1 -6
- package/vue-components/styles/components/bbum/_information-center.scss +4 -4
- package/vue-components/styles/components/bbum/_mobile-desktop.scss +10 -5
- package/vue-components/styles/components/bbum/_user-profile.scss +1 -1
- package/vue-components/styles/components/cards/_info.scss +1 -7
- package/vue-components/styles/components/editor/_filtered-file-editor.scss +3 -3
- package/vue-components/styles/components/editor/_monaco-editor.scss +1 -1
- package/vue-components/styles/components/form-fields/_input-card.scss +2 -2
- package/vue-components/styles/components/form-fields/_input.scss +3 -3
- package/vue-components/styles/components/navbar/_menu-content.scss +1 -2
- package/vue-components/styles/components/select-box/_ac-select-box.scss +2 -2
- package/vue-components/styles/components/select-box/_multi-select.scss +4 -9
- package/vue-components/styles/components/sidebar/_left-sidebar.scss +2 -2
- package/vue-components/styles/components/ui-builder/_ui-builder.scss +1 -1
- package/vue-components/styles/components/ui-builder/_vue-open-api.scss +5 -10
- package/vue-components/styles/layouts/_code-preview.scss +2 -2
- package/vue-components/v2/breadcrumbs/Breadcrumb.vue +14 -27
- package/vue-components/v2/button/Button.vue +2 -7
- package/vue-components/v2/button/DownloadBtn.vue +9 -9
- package/vue-components/v2/card/CardContent.vue +1 -1
- package/vue-components/v2/card/CardHeader.vue +2 -4
- package/vue-components/v2/card/PaymentCard.vue +1 -1
- package/vue-components/v2/card/PaymentCardOptionButtons.vue +1 -1
- package/vue-components/v2/card/PaymentCards.vue +15 -11
- package/vue-components/v2/content/ContentHeader.vue +6 -6
- package/vue-components/v2/editor/Editor.vue +2 -11
- package/vue-components/v2/editor/FilteredFileEditor.vue +5 -17
- package/vue-components/v2/editor/MonacoEditor.vue +5 -12
- package/vue-components/v2/editor/ResourceKeyValueEditor.vue +4 -14
- package/vue-components/v2/form/Form.vue +9 -12
- package/vue-components/v2/header/Header.vue +1 -4
- package/vue-components/v2/loaders/ResourceLoader.vue +5 -5
- package/vue-components/v2/loaders/SidebarLoader.vue +5 -5
- package/vue-components/v2/modal/Modal.vue +2 -7
- package/vue-components/v2/modals/DeleteConfirmationModal.vue +1 -6
- package/vue-components/v2/modals/JsonShowModal.vue +3 -15
- package/vue-components/v2/navbar/Appdrawer.vue +2 -10
- package/vue-components/v2/navbar/ThemeMode.vue +12 -18
- package/vue-components/v2/navbar/User.vue +19 -82
- package/vue-components/v2/notification/Notification.vue +3 -12
- package/vue-components/v2/notification/NotificationItem.vue +1 -3
- package/vue-components/v2/pagination/Pagination.vue +5 -26
- package/vue-components/v2/preloader/Preloader.vue +5 -5
- package/vue-components/v2/searchbars/SearchBar.vue +1 -7
- package/vue-components/v2/sidebar/ClusterSwitcher.vue +2 -2
- package/vue-components/v2/sidebar/SidebarItem.vue +2 -10
- package/vue-components/v2/sidebar/SidebarItemWithDropDown.vue +1 -2
- package/vue-components/v2/table/FakeTableCell.vue +1 -2
- package/vue-components/v2/table/InfoTable.vue +4 -10
- package/vue-components/v2/table/Table.vue +16 -64
- package/vue-components/v2/table/TableRow.vue +3 -15
- package/vue-components/v2/table/table-cell/ArrayCell.vue +3 -9
- package/vue-components/v2/table/table-cell/CellValue.vue +1 -2
- package/vue-components/v2/table/table-cell/GenericCell.vue +8 -8
- package/vue-components/v2/table/table-cell/ObjectCell.vue +2 -6
- package/vue-components/v2/table/table-cell/ValueWithModal.vue +1 -6
- package/vue-components/v3/accordion/Accordion.vue +6 -2
- package/vue-components/v3/alert/AlertMessage.vue +1 -5
- package/vue-components/v3/alert/Toast.vue +2 -5
- package/vue-components/v3/badge-tags/Badge.vue +24 -0
- package/vue-components/v3/badge-tags/Tag.vue +26 -0
- package/vue-components/v3/breadcrumbs/Breadcrumb.vue +6 -24
- package/vue-components/v3/button/Button.vue +2 -11
- package/vue-components/v3/cards/CardHeader.vue +1 -3
- package/vue-components/v3/cards/Cluster.vue +3 -9
- package/vue-components/v3/cards/Counter.vue +1 -4
- package/vue-components/v3/cards/FeatureCard.vue +1 -6
- package/vue-components/v3/cards/FeatureCards.vue +1 -5
- package/vue-components/v3/cards/InfoCard.vue +10 -30
- package/vue-components/v3/cards/Monitoring.vue +3 -15
- package/vue-components/v3/cards/OrgCard.vue +7 -26
- package/vue-components/v3/cards/OverviewCards.vue +1 -3
- package/vue-components/v3/cards/Payment.vue +1 -4
- package/vue-components/v3/content/ContentHeader.vue +1 -3
- package/vue-components/v3/content/ContentTable.vue +4 -16
- package/vue-components/v3/dropdown/DropdownAction.vue +1 -5
- package/vue-components/v3/editor/Editor.vue +33 -19
- package/vue-components/v3/editor/FilteredFileEditor.vue +29 -27
- package/vue-components/v3/editor/MonacoEditor.vue +7 -17
- package/vue-components/v3/editor/ResourceKeyValueEditor.vue +5 -17
- package/vue-components/v3/footer/Status.vue +5 -18
- package/vue-components/v3/footer/Usage.vue +1 -5
- package/vue-components/v3/form/Form.vue +1 -3
- package/vue-components/v3/form-fields/FileUpload.vue +3 -11
- package/vue-components/v3/form-fields/FileUploadSmall.vue +1 -3
- package/vue-components/v3/form-fields/Searchbar.vue +5 -21
- package/vue-components/v3/header/Header.vue +1 -4
- package/vue-components/v3/loaders/ClusterSwitcherLoader.vue +1 -6
- package/vue-components/v3/loaders/InfoCardLoader.vue +1 -6
- package/vue-components/v3/loaders/SingleInfoCardLoader.vue +1 -6
- package/vue-components/v3/messages/Message.vue +6 -4
- package/vue-components/v3/modal/Modal.vue +5 -19
- package/vue-components/v3/modals/DeleteConfirmationModal.vue +1 -6
- package/vue-components/v3/modals/JsonShowModal.vue +5 -17
- package/vue-components/v3/navbar/Appdrawer.vue +2 -10
- package/vue-components/v3/navbar/Navbar.vue +2 -10
- package/vue-components/v3/navbar/NavbarItem.vue +1 -5
- package/vue-components/v3/navbar/Notification.vue +7 -31
- package/vue-components/v3/navbar/ThemeMode.vue +5 -17
- package/vue-components/v3/navbar/User.vue +64 -67
- package/vue-components/v3/notification/AlertBox.vue +6 -20
- package/vue-components/v3/notification/Notification.vue +6 -25
- package/vue-components/v3/notification/NotificationItem.vue +3 -9
- package/vue-components/v3/pagination/Pagination.vue +7 -25
- package/vue-components/v3/searchbars/SearchBar.vue +3 -17
- package/vue-components/v3/sidebar/AccentColorPicker.vue +3 -12
- package/vue-components/v3/sidebar/SidebarFooter.vue +3 -17
- package/vue-components/v3/sidebar/SidebarHeader.vue +4 -28
- package/vue-components/v3/sidebar/SidebarItem.vue +3 -11
- package/vue-components/v3/sidebar/SidebarItemWithDropDown.vue +3 -7
- package/vue-components/v3/sidebar/Steps.vue +1 -2
- package/vue-components/v3/sidebar/sidebar-tabs/SidebarTabsLayout.vue +1 -4
- package/vue-components/v3/sidebar/sidebar-tabs/TabsContent.vue +34 -52
- package/vue-components/v3/steps/ColoredSteps.vue +75 -0
- package/vue-components/v3/table/InfoTable.vue +5 -17
- package/vue-components/v3/table/MultiInfoTable.vue +6 -20
- package/vue-components/v3/table/Table.vue +15 -63
- package/vue-components/v3/table/TableContainer.vue +1 -4
- package/vue-components/v3/table/TableRow.vue +5 -24
- package/vue-components/v3/table/table-cell/ArrayCell.vue +6 -20
- package/vue-components/v3/table/table-cell/CellValue.vue +3 -9
- package/vue-components/v3/table/table-cell/GenericCell.vue +2 -5
- package/vue-components/v3/table/table-cell/ObjectCell.vue +5 -17
- package/vue-components/v3/table/table-cell/ValueWithModal.vue +2 -9
- package/vue-components/styles/components/_ac-tags.scss +0 -116
- package/vue-components/v3/badge/Badge.vue +0 -3
|
@@ -3,12 +3,8 @@ import { defineAsyncComponent, ref } from "vue";
|
|
|
3
3
|
|
|
4
4
|
const ContentLayout = defineAsyncComponent(() => import("./ContentLayout.vue"));
|
|
5
5
|
const ContentHeader = defineAsyncComponent(() => import("./ContentHeader.vue"));
|
|
6
|
-
const HeaderItem = defineAsyncComponent(
|
|
7
|
-
|
|
8
|
-
);
|
|
9
|
-
const SearchBar = defineAsyncComponent(
|
|
10
|
-
() => import("./../searchbars/SearchBar.vue")
|
|
11
|
-
);
|
|
6
|
+
const HeaderItem = defineAsyncComponent(() => import("./../header/HeaderItem.vue"));
|
|
7
|
+
const SearchBar = defineAsyncComponent(() => import("./../searchbars/SearchBar.vue"));
|
|
12
8
|
|
|
13
9
|
interface Props {
|
|
14
10
|
removeTableHeaderPadding?: boolean;
|
|
@@ -51,19 +47,11 @@ const updateSearchText = (text: string) => {
|
|
|
51
47
|
</template>
|
|
52
48
|
<slot name="content-left-controls" />
|
|
53
49
|
<header-item>
|
|
54
|
-
<search-bar
|
|
55
|
-
v-if="searchable"
|
|
56
|
-
@search="updateSearchText"
|
|
57
|
-
:ac-input-id="acInuptId"
|
|
58
|
-
/>
|
|
50
|
+
<search-bar v-if="searchable" @search="updateSearchText" :ac-input-id="acInuptId" />
|
|
59
51
|
</header-item>
|
|
60
52
|
<slot name="content-right-controls" />
|
|
61
53
|
</content-header>
|
|
62
54
|
</template>
|
|
63
|
-
<slot
|
|
64
|
-
name="content"
|
|
65
|
-
:search-text="searchText"
|
|
66
|
-
:update-search-text="updateSearchText"
|
|
67
|
-
/>
|
|
55
|
+
<slot name="content" :search-text="searchText" :update-search-text="updateSearchText" />
|
|
68
56
|
</content-layout>
|
|
69
57
|
</template>
|
|
@@ -27,11 +27,7 @@ onClickOutside(actionDropdown, () => emit("update:modelValue", false));
|
|
|
27
27
|
|
|
28
28
|
<template>
|
|
29
29
|
<!-- dropdown start -->
|
|
30
|
-
<div
|
|
31
|
-
ref="actionDropdown"
|
|
32
|
-
class="dropdown-action"
|
|
33
|
-
:class="{ 'dropdown is-active': modelValue }"
|
|
34
|
-
>
|
|
30
|
+
<div ref="actionDropdown" class="dropdown-action" :class="{ 'dropdown is-active': modelValue }">
|
|
35
31
|
<div class="dropdown-trigger">
|
|
36
32
|
<ac-button
|
|
37
33
|
:modifier-classes="buttonModifierClass"
|
|
@@ -32,9 +32,7 @@ const emit = defineEmits(["update:modelValue"]);
|
|
|
32
32
|
|
|
33
33
|
const EditorTabs = defineAsyncComponent(() => import("../tabs/EditorTabs.vue"));
|
|
34
34
|
|
|
35
|
-
const Preloader = defineAsyncComponent(
|
|
36
|
-
() => import("../preloader/Preloader.vue")
|
|
37
|
-
);
|
|
35
|
+
const Preloader = defineAsyncComponent(() => import("../preloader/Preloader.vue"));
|
|
38
36
|
|
|
39
37
|
const Banner = defineAsyncComponent(() => import("../banner/Banner.vue"));
|
|
40
38
|
|
|
@@ -57,12 +55,7 @@ const calcShowMinimap = computed(() => {
|
|
|
57
55
|
});
|
|
58
56
|
|
|
59
57
|
const theme = computed(() => {
|
|
60
|
-
return (
|
|
61
|
-
props.editorTheme ||
|
|
62
|
-
(document.documentElement.classList.contains("is-dark-theme")
|
|
63
|
-
? "vs-dark"
|
|
64
|
-
: "vs")
|
|
65
|
-
);
|
|
58
|
+
return props.editorTheme || (document.documentElement.classList.contains("is-dark-theme") ? "vs-dark" : "vs");
|
|
66
59
|
});
|
|
67
60
|
|
|
68
61
|
const onChange = (e: Event) => {
|
|
@@ -84,8 +77,7 @@ const computeHightInClass = computed(() => {
|
|
|
84
77
|
});
|
|
85
78
|
|
|
86
79
|
const computeHightInStyle = computed(() => {
|
|
87
|
-
if (typeof props.editorHeight === "string")
|
|
88
|
-
return { height: props.editorHeight };
|
|
80
|
+
if (typeof props.editorHeight === "string") return { height: props.editorHeight };
|
|
89
81
|
else return {};
|
|
90
82
|
});
|
|
91
83
|
|
|
@@ -117,9 +109,17 @@ watch(
|
|
|
117
109
|
<template>
|
|
118
110
|
<div>
|
|
119
111
|
<editor-tabs v-if="!readOnly" @tabchange="activeTab = $event" :active-tab="activeTab" />
|
|
120
|
-
<monaco-editor
|
|
121
|
-
|
|
122
|
-
|
|
112
|
+
<monaco-editor
|
|
113
|
+
v-if="activeTab === 'edit'"
|
|
114
|
+
@editorDidMount="onEditorMount"
|
|
115
|
+
key="edit"
|
|
116
|
+
class="is-clipped"
|
|
117
|
+
:class="computeHightInClass"
|
|
118
|
+
:style="computeHightInStyle"
|
|
119
|
+
:value="editorContent"
|
|
120
|
+
@change="onChange"
|
|
121
|
+
:language="language"
|
|
122
|
+
:options="{
|
|
123
123
|
minimap: {
|
|
124
124
|
enabled: calcShowMinimap,
|
|
125
125
|
},
|
|
@@ -127,9 +127,19 @@ watch(
|
|
|
127
127
|
readOnly: readOnly,
|
|
128
128
|
wordWrap: wordWrap,
|
|
129
129
|
scrollBeyondLastLine: false,
|
|
130
|
-
}"
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
}"
|
|
131
|
+
:validation="validation"
|
|
132
|
+
data-testid="monaco-editor-edit-section"
|
|
133
|
+
/>
|
|
134
|
+
<monaco-editor
|
|
135
|
+
v-if="activeTab === 'preview'"
|
|
136
|
+
key="preview"
|
|
137
|
+
class="is-clipped"
|
|
138
|
+
:class="computeHightInClass"
|
|
139
|
+
:style="computeHightInStyle"
|
|
140
|
+
:value="editorContent"
|
|
141
|
+
:language="language"
|
|
142
|
+
:options="{
|
|
133
143
|
minimap: {
|
|
134
144
|
enabled: calcShowMinimap,
|
|
135
145
|
},
|
|
@@ -137,7 +147,11 @@ watch(
|
|
|
137
147
|
readOnly: true,
|
|
138
148
|
wordWrap: wordWrap,
|
|
139
149
|
scrollBeyondLastLine: false,
|
|
140
|
-
}"
|
|
141
|
-
|
|
150
|
+
}"
|
|
151
|
+
:original="originalEditorContent"
|
|
152
|
+
:diff-editor="true"
|
|
153
|
+
:validation="validation"
|
|
154
|
+
data-testid="monaco-editor-preview-section"
|
|
155
|
+
/>
|
|
142
156
|
</div>
|
|
143
157
|
</template>
|
|
@@ -27,9 +27,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
27
27
|
const emit = defineEmits(["setActiveKey"]);
|
|
28
28
|
|
|
29
29
|
const Banner = defineAsyncComponent(() => import("../banner/Banner.vue"));
|
|
30
|
-
const Preloader = defineAsyncComponent(
|
|
31
|
-
() => import("../preloader/Preloader.vue")
|
|
32
|
-
);
|
|
30
|
+
const Preloader = defineAsyncComponent(() => import("../preloader/Preloader.vue"));
|
|
33
31
|
const Editor = defineAsyncComponent({
|
|
34
32
|
loader: () => import("../editor/Editor.vue"),
|
|
35
33
|
loadingComponent: Preloader,
|
|
@@ -37,36 +35,26 @@ const Editor = defineAsyncComponent({
|
|
|
37
35
|
errorComponent: Banner,
|
|
38
36
|
timeout: 100000,
|
|
39
37
|
});
|
|
40
|
-
const ResourceLoader = defineAsyncComponent(
|
|
41
|
-
() => import("../loaders/ResourceLoader.vue")
|
|
42
|
-
);
|
|
38
|
+
const ResourceLoader = defineAsyncComponent(() => import("../loaders/ResourceLoader.vue"));
|
|
43
39
|
|
|
44
|
-
const SidebarLoader = defineAsyncComponent(
|
|
45
|
-
() => import("../loaders/SidebarLoader.vue")
|
|
46
|
-
);
|
|
40
|
+
const SidebarLoader = defineAsyncComponent(() => import("../loaders/SidebarLoader.vue"));
|
|
47
41
|
|
|
48
42
|
const activeKey = ref("");
|
|
49
43
|
const hideValue = ref(false);
|
|
50
44
|
|
|
51
45
|
const filteredYamls = computed(() => {
|
|
52
46
|
if (props.searchText) {
|
|
53
|
-
return props.previewYamls.filter(
|
|
54
|
-
(element) => JSON.stringify(element).search(props.searchText) > -1
|
|
55
|
-
);
|
|
47
|
+
return props.previewYamls.filter((element) => JSON.stringify(element).search(props.searchText) > -1);
|
|
56
48
|
} else return props.previewYamls;
|
|
57
49
|
});
|
|
58
50
|
|
|
59
51
|
const activeFile = computed(() => {
|
|
60
|
-
const activeFile = filteredYamls.value.find(
|
|
61
|
-
(element) => element.uid === activeKey.value
|
|
62
|
-
);
|
|
52
|
+
const activeFile = filteredYamls.value.find((element) => element.uid === activeKey.value);
|
|
63
53
|
return activeFile || { content: "", type: "yaml", isSecret: false };
|
|
64
54
|
});
|
|
65
55
|
|
|
66
56
|
const originalValue = computed(() => {
|
|
67
|
-
const activeFile = filteredYamls.value.find(
|
|
68
|
-
(element) => element.uid === activeKey.value
|
|
69
|
-
);
|
|
57
|
+
const activeFile = filteredYamls.value.find((element) => element.uid === activeKey.value);
|
|
70
58
|
return (activeFile && activeFile.initContent) || "";
|
|
71
59
|
});
|
|
72
60
|
|
|
@@ -127,9 +115,12 @@ watch(
|
|
|
127
115
|
<div class="ac-preview is-not-fixed">
|
|
128
116
|
<div class="ac-preview-inner">
|
|
129
117
|
<!-- preview body start -->
|
|
130
|
-
<div
|
|
131
|
-
|
|
132
|
-
|
|
118
|
+
<div
|
|
119
|
+
class="ac-preview-body mt-0"
|
|
120
|
+
:class="{
|
|
121
|
+
'is-justify-content-center': isYamlsEmpty && !isPreviewLoading,
|
|
122
|
+
}"
|
|
123
|
+
>
|
|
133
124
|
<strong v-if="isYamlsEmpty && !isPreviewLoading">
|
|
134
125
|
No Data Available
|
|
135
126
|
<i class="pl-5 fa fa-exclamation-circle" aria-hidden="true"></i>
|
|
@@ -138,9 +129,13 @@ watch(
|
|
|
138
129
|
<div v-if="!isPreviewLoading && previewYamls" class="left-content">
|
|
139
130
|
<div class="ac-files ac-hscrollbar ac-vscrollbar pt-0">
|
|
140
131
|
<ul v-if="!isPreviewLoading">
|
|
141
|
-
<li
|
|
142
|
-
|
|
143
|
-
|
|
132
|
+
<li
|
|
133
|
+
v-for="(previewYaml, idx) in filteredYamls"
|
|
134
|
+
:key="previewYaml.name + idx"
|
|
135
|
+
:class="{ 'is-active': activeKey === previewYaml.uid }"
|
|
136
|
+
:title="previewYaml.name"
|
|
137
|
+
data-testid="filtered-file-editor-file-name"
|
|
138
|
+
>
|
|
144
139
|
<a @click.prevent="setActivePreview(previewYaml.uid)">
|
|
145
140
|
<span>
|
|
146
141
|
<img src="~@appscode/design-system-images/icons/file-icon.svg" alt="" />
|
|
@@ -156,9 +151,16 @@ watch(
|
|
|
156
151
|
<resource-loader v-if="isPreviewLoading" />
|
|
157
152
|
<strong v-else-if="isYamlsNotSelected">Selecet a data from sidebar</strong>
|
|
158
153
|
<strong v-else-if="hideValue"> *************** </strong>
|
|
159
|
-
<editor
|
|
160
|
-
|
|
161
|
-
|
|
154
|
+
<editor
|
|
155
|
+
v-else
|
|
156
|
+
v-model="activeFile.content"
|
|
157
|
+
:original-value="originalValue"
|
|
158
|
+
:language="activeFile.type"
|
|
159
|
+
:read-only="isEditorReadOnly"
|
|
160
|
+
:editor-height="editorHeight"
|
|
161
|
+
:show-minimap="showMinimap"
|
|
162
|
+
:word-wrap="wordWrap"
|
|
163
|
+
/>
|
|
162
164
|
</div>
|
|
163
165
|
</template>
|
|
164
166
|
</div>
|
|
@@ -31,12 +31,8 @@ export default defineComponent({
|
|
|
31
31
|
setup(props) {
|
|
32
32
|
const { width, height } = toRefs(props);
|
|
33
33
|
const style = computed(() => {
|
|
34
|
-
const fixedWidth = width.value.toString().includes("%")
|
|
35
|
-
|
|
36
|
-
: `${width.value}px`;
|
|
37
|
-
const fixedHeight = height.value.toString().includes("%")
|
|
38
|
-
? height.value
|
|
39
|
-
: `${height.value}px`;
|
|
34
|
+
const fixedWidth = width.value.toString().includes("%") ? width.value : `${width.value}px`;
|
|
35
|
+
const fixedHeight = height.value.toString().includes("%") ? height.value : `${height.value}px`;
|
|
40
36
|
return {
|
|
41
37
|
width: fixedWidth,
|
|
42
38
|
height: fixedHeight,
|
|
@@ -62,10 +58,9 @@ export default defineComponent({
|
|
|
62
58
|
monaco.editor.getModel(this.modelId)?.dispose();
|
|
63
59
|
// remove the schema
|
|
64
60
|
if (this.$monacoValidationOptions) {
|
|
65
|
-
this.$monacoValidationOptions.schemas =
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
);
|
|
61
|
+
this.$monacoValidationOptions.schemas = this.$monacoValidationOptions.schemas.filter(
|
|
62
|
+
(schema) => !schema.fileMatch.includes(this.modelId)
|
|
63
|
+
);
|
|
69
64
|
}
|
|
70
65
|
// dispose editor
|
|
71
66
|
this.editor && this.editor.dispose();
|
|
@@ -79,11 +74,7 @@ export default defineComponent({
|
|
|
79
74
|
const { value, language, theme, options, original, validation } = this;
|
|
80
75
|
|
|
81
76
|
if (!this.diffEditor) {
|
|
82
|
-
const modifiedModel = monaco.editor.createModel(
|
|
83
|
-
value,
|
|
84
|
-
language,
|
|
85
|
-
monaco.Uri.parse(this.modelId)
|
|
86
|
-
);
|
|
77
|
+
const modifiedModel = monaco.editor.createModel(value, language, monaco.Uri.parse(this.modelId));
|
|
87
78
|
|
|
88
79
|
if (validation.uri) {
|
|
89
80
|
if (validation.schema?.type) {
|
|
@@ -231,8 +222,7 @@ export default defineComponent({
|
|
|
231
222
|
const { original, modified } = this.editor.getModel();
|
|
232
223
|
monaco.editor.setModelLanguage(original, this.language);
|
|
233
224
|
monaco.editor.setModelLanguage(modified, this.language);
|
|
234
|
-
} else
|
|
235
|
-
monaco.editor.setModelLanguage(this.editor.getModel(), this.language);
|
|
225
|
+
} else monaco.editor.setModelLanguage(this.editor.getModel(), this.language);
|
|
236
226
|
},
|
|
237
227
|
theme() {
|
|
238
228
|
monaco.editor.setTheme(this.theme);
|
|
@@ -35,24 +35,16 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
35
35
|
const emit = defineEmits(["activeKey"]);
|
|
36
36
|
|
|
37
37
|
const AcButton = defineAsyncComponent(() => import("../button/Button.vue"));
|
|
38
|
-
const ContentTable = defineAsyncComponent(
|
|
39
|
-
|
|
40
|
-
);
|
|
41
|
-
const HeaderItem = defineAsyncComponent(
|
|
42
|
-
() => import("../header/HeaderItem.vue")
|
|
43
|
-
);
|
|
38
|
+
const ContentTable = defineAsyncComponent(() => import("../content/ContentTable.vue"));
|
|
39
|
+
const HeaderItem = defineAsyncComponent(() => import("../header/HeaderItem.vue"));
|
|
44
40
|
|
|
45
|
-
const FilteredFileEditor = defineAsyncComponent(
|
|
46
|
-
() => import("../editor/FilteredFileEditor.vue")
|
|
47
|
-
);
|
|
41
|
+
const FilteredFileEditor = defineAsyncComponent(() => import("../editor/FilteredFileEditor.vue"));
|
|
48
42
|
|
|
49
43
|
const activeKey = ref("");
|
|
50
44
|
const toggleHideValue = ref(false);
|
|
51
45
|
|
|
52
46
|
const activeFile = computed(() => {
|
|
53
|
-
const activeFile = props.previewYamls.find(
|
|
54
|
-
(element) => element.uid === activeKey.value
|
|
55
|
-
);
|
|
47
|
+
const activeFile = props.previewYamls.find((element) => element.uid === activeKey.value);
|
|
56
48
|
return activeFile || { content: "", type: "yaml", isSecret: false };
|
|
57
49
|
});
|
|
58
50
|
|
|
@@ -71,11 +63,7 @@ watch(
|
|
|
71
63
|
</script>
|
|
72
64
|
|
|
73
65
|
<template>
|
|
74
|
-
<content-table
|
|
75
|
-
:table-title="title"
|
|
76
|
-
:searchable="isSearchable"
|
|
77
|
-
:hide-header="hideHeader"
|
|
78
|
-
>
|
|
66
|
+
<content-table :table-title="title" :searchable="isSearchable" :hide-header="hideHeader">
|
|
79
67
|
<template #content-right-controls>
|
|
80
68
|
<header-item v-if="showHideBtn">
|
|
81
69
|
<ac-button
|
|
@@ -2,15 +2,9 @@
|
|
|
2
2
|
import { ref, defineAsyncComponent } from "vue";
|
|
3
3
|
const FooterItems = defineAsyncComponent(() => import("./FooterItems.vue"));
|
|
4
4
|
const FooterItem = defineAsyncComponent(() => import("./FooterItem.vue"));
|
|
5
|
-
const HeroiconsCheckBadge = defineAsyncComponent(
|
|
6
|
-
|
|
7
|
-
);
|
|
8
|
-
const HeroiconsCrossBadge = defineAsyncComponent(
|
|
9
|
-
() => import("~icons/heroicons/x-circle")
|
|
10
|
-
);
|
|
11
|
-
const HeroiconsLoadingBadge = defineAsyncComponent(
|
|
12
|
-
() => import("~icons/heroicons/arrow-path")
|
|
13
|
-
);
|
|
5
|
+
const HeroiconsCheckBadge = defineAsyncComponent(() => import("~icons/heroicons/check-badge"));
|
|
6
|
+
const HeroiconsCrossBadge = defineAsyncComponent(() => import("~icons/heroicons/x-circle"));
|
|
7
|
+
const HeroiconsLoadingBadge = defineAsyncComponent(() => import("~icons/heroicons/arrow-path"));
|
|
14
8
|
interface Props {
|
|
15
9
|
statusInfo?: Array<Record<string, string>>;
|
|
16
10
|
}
|
|
@@ -22,17 +16,10 @@ withDefaults(defineProps<Props>(), {
|
|
|
22
16
|
|
|
23
17
|
<template>
|
|
24
18
|
<footer-items>
|
|
25
|
-
<footer-item
|
|
26
|
-
v-for="(item, idx) in statusInfo"
|
|
27
|
-
:key="idx + item.label"
|
|
28
|
-
:modifier-classes="item.color"
|
|
29
|
-
>
|
|
19
|
+
<footer-item v-for="(item, idx) in statusInfo" :key="idx + item.label" :modifier-classes="item.color">
|
|
30
20
|
<span class="icon">
|
|
31
21
|
<HeroiconsCheckBadge v-if="item.color === `has-text-success`" />
|
|
32
|
-
<i
|
|
33
|
-
v-else-if="item.color === `has-text-warning`"
|
|
34
|
-
class="fa fa-refresh fa-spin fa-fw"
|
|
35
|
-
></i>
|
|
22
|
+
<i v-else-if="item.color === `has-text-warning`" class="fa fa-refresh fa-spin fa-fw"></i>
|
|
36
23
|
<HeroiconsCrossBadge v-else />
|
|
37
24
|
</span>
|
|
38
25
|
<span>{{ item.label }}</span>
|
|
@@ -22,11 +22,7 @@ withDefaults(defineProps<Props>(), {
|
|
|
22
22
|
<footer-items>
|
|
23
23
|
<footer-item v-for="(info, idx) in usages" :key="idx">
|
|
24
24
|
<span class="icon"><img :src="info.icon" /></span
|
|
25
|
-
><span
|
|
26
|
-
>{{ info.useData?.limit || "N" }}/{{
|
|
27
|
-
info.useData?.request || "A"
|
|
28
|
-
}}</span
|
|
29
|
-
>
|
|
25
|
+
><span>{{ info.useData?.limit || "N" }}/{{ info.useData?.request || "A" }}</span>
|
|
30
26
|
</footer-item>
|
|
31
27
|
</footer-items>
|
|
32
28
|
</template>
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { defineAsyncComponent } from "vue";
|
|
3
3
|
|
|
4
|
-
const FormFooterControl = defineAsyncComponent(
|
|
5
|
-
() => import("./FormFooterControl.vue")
|
|
6
|
-
);
|
|
4
|
+
const FormFooterControl = defineAsyncComponent(() => import("./FormFooterControl.vue"));
|
|
7
5
|
|
|
8
6
|
interface Props {
|
|
9
7
|
isContainer?: boolean;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="file-upload" data-testid="image-upload-drag-section">
|
|
3
|
-
<label
|
|
4
|
-
for="image-upload-with-cropping"
|
|
5
|
-
class="has-text-centered"
|
|
6
|
-
title="Click to upload new avatar"
|
|
7
|
-
>
|
|
3
|
+
<label for="image-upload-with-cropping" class="has-text-centered" title="Click to upload new avatar">
|
|
8
4
|
<div class="ms-upload-logo" title="Click to upload new avatar">
|
|
9
5
|
<div class="upload-icon">
|
|
10
6
|
<svg
|
|
@@ -24,12 +20,8 @@
|
|
|
24
20
|
</div>
|
|
25
21
|
</div>
|
|
26
22
|
<div class="ms-upload-description">
|
|
27
|
-
<p class="drag-and-drop-msg">
|
|
28
|
-
|
|
29
|
-
</p>
|
|
30
|
-
<p class="img-size-msg">
|
|
31
|
-
Size should not a exceed 1MB & Dimension prefarable 4096 X 3072
|
|
32
|
-
</p>
|
|
23
|
+
<p class="drag-and-drop-msg">Drag & Drop here <strong>or</strong> Choose image From Storage</p>
|
|
24
|
+
<p class="img-size-msg">Size should not a exceed 1MB & Dimension prefarable 4096 X 3072</p>
|
|
33
25
|
</div>
|
|
34
26
|
</label>
|
|
35
27
|
<input
|
|
@@ -8,9 +8,7 @@ withDefaults(defineProps<Props>(), {
|
|
|
8
8
|
modelValue: "",
|
|
9
9
|
});
|
|
10
10
|
|
|
11
|
-
const HeroiconsArrowUpTray20Solid = defineAsyncComponent(
|
|
12
|
-
() => import("~icons/heroicons/arrow-up-tray-20-solid")
|
|
13
|
-
);
|
|
11
|
+
const HeroiconsArrowUpTray20Solid = defineAsyncComponent(() => import("~icons/heroicons/arrow-up-tray-20-solid"));
|
|
14
12
|
</script>
|
|
15
13
|
<template>
|
|
16
14
|
<div class="file has-name ac-file">
|
|
@@ -19,31 +19,15 @@
|
|
|
19
19
|
</svg>
|
|
20
20
|
</span>
|
|
21
21
|
</label>
|
|
22
|
-
<input
|
|
23
|
-
id="search"
|
|
24
|
-
type="text"
|
|
25
|
-
placeholder="Search what you are looking for"
|
|
26
|
-
class="pl-48"
|
|
27
|
-
/>
|
|
22
|
+
<input id="search" type="text" placeholder="Search what you are looking for" class="pl-48" />
|
|
28
23
|
|
|
29
24
|
<!-- use .is-absolute -->
|
|
30
25
|
<div id="meilisearch-hideid" class="search-result-box panel is-fullwidth">
|
|
31
|
-
<div
|
|
32
|
-
class="
|
|
33
|
-
|
|
34
|
-
style="max-height: 350px; overflow-y: auto"
|
|
35
|
-
>
|
|
36
|
-
<a
|
|
37
|
-
class="panel-block is-flex-direction-column is-align-items-flex-start px-5 py-4"
|
|
38
|
-
v-for="i in 6"
|
|
39
|
-
:key="i"
|
|
40
|
-
>
|
|
41
|
-
<h2 class="is-size-5 has-text-primary">
|
|
42
|
-
Changelog | <em>Kube</em>DB
|
|
43
|
-
</h2>
|
|
26
|
+
<div class="search-content" id="meilisearch-hits" style="max-height: 350px; overflow-y: auto">
|
|
27
|
+
<a class="panel-block is-flex-direction-column is-align-items-flex-start px-5 py-4" v-for="i in 6" :key="i">
|
|
28
|
+
<h2 class="is-size-5 has-text-primary">Changelog | <em>Kube</em>DB</h2>
|
|
44
29
|
<p class="is-ellipsis-2">
|
|
45
|
-
<em>Kube</em>DB v2020.07.10-beta.1 (2020-07-10) kubedb/apimachinery
|
|
46
|
-
v0.14.0-beta.1 157a8724 Update for…
|
|
30
|
+
<em>Kube</em>DB v2020.07.10-beta.1 (2020-07-10) kubedb/apimachinery v0.14.0-beta.1 157a8724 Update for…
|
|
47
31
|
</p>
|
|
48
32
|
</a>
|
|
49
33
|
</div>
|
|
@@ -19,10 +19,7 @@ withDefaults(defineProps<Props>(), {
|
|
|
19
19
|
|
|
20
20
|
<template>
|
|
21
21
|
<div class="inner-header" :style="{ top: topValue }">
|
|
22
|
-
<div
|
|
23
|
-
class="is-flex is-justify-content-space-between"
|
|
24
|
-
:class="{ container: isContainer }"
|
|
25
|
-
>
|
|
22
|
+
<div class="is-flex is-justify-content-space-between" :class="{ container: isContainer }">
|
|
26
23
|
<header-items>
|
|
27
24
|
<header-item>
|
|
28
25
|
<transition name="fade" mode="out-in" appear>
|
|
@@ -2,12 +2,7 @@
|
|
|
2
2
|
import { ContentLoader } from "vue-content-loader";
|
|
3
3
|
</script>
|
|
4
4
|
<template>
|
|
5
|
-
<content-loader
|
|
6
|
-
viewBox="0 0 300 30"
|
|
7
|
-
:speed="2"
|
|
8
|
-
primaryColor="#ffffff"
|
|
9
|
-
secondaryColor="#ebebf9"
|
|
10
|
-
>
|
|
5
|
+
<content-loader viewBox="0 0 300 30" :speed="2" primaryColor="#ffffff" secondaryColor="#ebebf9">
|
|
11
6
|
<rect x="0" y="0" rx="5" ry="5" width="300" height="30" />
|
|
12
7
|
</content-loader>
|
|
13
8
|
</template>
|
|
@@ -3,12 +3,7 @@ import { ContentLoader } from "vue-content-loader";
|
|
|
3
3
|
export default { components: { ContentLoader } };
|
|
4
4
|
</script>
|
|
5
5
|
<template>
|
|
6
|
-
<content-loader
|
|
7
|
-
viewBox="0 0 230 115"
|
|
8
|
-
:speed="2"
|
|
9
|
-
primaryColor="#f5f5f5"
|
|
10
|
-
secondaryColor="#ecebeb"
|
|
11
|
-
>
|
|
6
|
+
<content-loader viewBox="0 0 230 115" :speed="2" primaryColor="#f5f5f5" secondaryColor="#ecebeb">
|
|
12
7
|
<rect x="0" y="0" rx="0" ry="0" />
|
|
13
8
|
<rect x="0" y="70" rx="3" ry="3" width="120" height="11" />
|
|
14
9
|
<rect x="0" y="100" rx="3" ry="3" width="120" height="11" />
|
|
@@ -7,12 +7,7 @@ export default {
|
|
|
7
7
|
</script>
|
|
8
8
|
|
|
9
9
|
<template>
|
|
10
|
-
<content-loader
|
|
11
|
-
viewBox="0 0 1540 90"
|
|
12
|
-
:speed="2"
|
|
13
|
-
primaryColor="#f5f5f5"
|
|
14
|
-
secondaryColor="#ecebeb"
|
|
15
|
-
>
|
|
10
|
+
<content-loader viewBox="0 0 1540 90" :speed="2" primaryColor="#f5f5f5" secondaryColor="#ecebeb">
|
|
16
11
|
<rect x="0" y="0" rx="0" ry="0" />
|
|
17
12
|
<circle cx="47" cy="52" r="21" />
|
|
18
13
|
<rect x="86" y="64" rx="0" ry="0" width="95" height="11" />
|
|
@@ -12,10 +12,12 @@ withDefaults(defineProps<Props>(), {
|
|
|
12
12
|
<div class="thumbnail">
|
|
13
13
|
<slot name="thumbnail" />
|
|
14
14
|
</div>
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
<div class="is-flex is-align-items-center gap-4">
|
|
16
|
+
<span>
|
|
17
|
+
{{ message }}
|
|
18
|
+
</span>
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
<slot name="details" />
|
|
21
|
+
</div>
|
|
20
22
|
</div>
|
|
21
23
|
</template>
|
|
@@ -22,12 +22,8 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
22
22
|
|
|
23
23
|
const emit = defineEmits(["closemodal"]);
|
|
24
24
|
|
|
25
|
-
const HeaderItems = defineAsyncComponent(
|
|
26
|
-
|
|
27
|
-
);
|
|
28
|
-
const HeaderItem = defineAsyncComponent(
|
|
29
|
-
() => import("./../header/HeaderItem.vue")
|
|
30
|
-
);
|
|
25
|
+
const HeaderItems = defineAsyncComponent(() => import("./../header/HeaderItems.vue"));
|
|
26
|
+
const HeaderItem = defineAsyncComponent(() => import("./../header/HeaderItem.vue"));
|
|
31
27
|
const Buttons = defineAsyncComponent(() => import("./../button/Buttons.vue"));
|
|
32
28
|
const AcButton = defineAsyncComponent(() => import("./../button/Button.vue"));
|
|
33
29
|
|
|
@@ -38,10 +34,7 @@ const modalCloseIcon = import.meta.glob("../../../icons/close-icon.svg", {
|
|
|
38
34
|
|
|
39
35
|
const modal = ref();
|
|
40
36
|
const showModal = ref(false);
|
|
41
|
-
const crossIcon = ref(
|
|
42
|
-
(modalCloseIcon["../../../icons/close-icon.svg"] as Record<string, unknown>)
|
|
43
|
-
?.default as string
|
|
44
|
-
);
|
|
37
|
+
const crossIcon = ref((modalCloseIcon["../../../icons/close-icon.svg"] as Record<string, unknown>)?.default as string);
|
|
45
38
|
|
|
46
39
|
const onKeyDown = (e: KeyboardEvent) => {
|
|
47
40
|
if (props.open && e.keyCode === 27) {
|
|
@@ -87,11 +80,7 @@ watch(
|
|
|
87
80
|
<teleport to="#modals">
|
|
88
81
|
<!-- for transition https://github.com/adamwathan/vue-tailwind-examples/blob/master/src/components/Modal.vue -->
|
|
89
82
|
<!-- modal start -->
|
|
90
|
-
<div
|
|
91
|
-
v-if="showModal"
|
|
92
|
-
class="ac-modal is-middle-alignment"
|
|
93
|
-
:class="modifierClasses"
|
|
94
|
-
>
|
|
83
|
+
<div v-if="showModal" class="ac-modal is-middle-alignment" :class="modifierClasses">
|
|
95
84
|
<div ref="modal" class="ac-modal-inner">
|
|
96
85
|
<!-- modal header start -->
|
|
97
86
|
<div class="ac-modal-header">
|
|
@@ -112,10 +101,7 @@ watch(
|
|
|
112
101
|
<!-- modal header end -->
|
|
113
102
|
|
|
114
103
|
<!-- modal body start -->
|
|
115
|
-
<div
|
|
116
|
-
class="ac-modal-body ac-vscrollbar"
|
|
117
|
-
data-testid="ac-modal-content-with-scroll"
|
|
118
|
-
>
|
|
104
|
+
<div class="ac-modal-body ac-vscrollbar" data-testid="ac-modal-content-with-scroll">
|
|
119
105
|
<div class="ac-modal-content">
|
|
120
106
|
<!-- freedom content start -->
|
|
121
107
|
<slot />
|
|
@@ -37,12 +37,7 @@ const AcButton = defineAsyncComponent(() => import("./../button/Button.vue"));
|
|
|
37
37
|
<template>
|
|
38
38
|
<!-- modal start -->
|
|
39
39
|
|
|
40
|
-
<modal
|
|
41
|
-
:title="title"
|
|
42
|
-
modifier-classes="is-normal"
|
|
43
|
-
:open="open"
|
|
44
|
-
@closemodal="closeModal"
|
|
45
|
-
>
|
|
40
|
+
<modal :title="title" modifier-classes="is-normal" :open="open" @closemodal="closeModal">
|
|
46
41
|
<!-- freedom content start -->
|
|
47
42
|
<div class="action-message pt-35 pb-35 has-text-centered">
|
|
48
43
|
<h5 class="is-message">{{ message }} {{ itemName ? "" : "?" }}</h5>
|