@appscode/design-system 1.1.0-alpha.8 → 1.1.0-beta.10

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 (200) hide show
  1. package/base/_video-player.scss +65 -0
  2. package/base/utilities/_all.scss +6 -5
  3. package/base/utilities/_colors.scss +408 -0
  4. package/base/utilities/_customize-bulma.scss +23 -27
  5. package/base/utilities/_extended.scss +9 -4
  6. package/base/utilities/{_default.scss → _global.scss} +185 -331
  7. package/base/utilities/_layouts.scss +157 -0
  8. package/base/utilities/_mixin.scss +11 -11
  9. package/base/utilities/_spacing.scss +96 -0
  10. package/base/utilities/_typography.scss +56 -24
  11. package/base/utilities/dark-theme.scss +1 -1
  12. package/components/_ac-accordion.scss +117 -117
  13. package/components/_ac-alert-box.scss +205 -263
  14. package/components/_ac-calendar.scss +4 -4
  15. package/components/_ac-card.scss +0 -597
  16. package/components/_ac-code-highlight.scss +6 -6
  17. package/components/_ac-content-layout.scss +165 -165
  18. package/components/_ac-drag.scss +11 -11
  19. package/components/_ac-input.scss +477 -452
  20. package/components/_ac-modal.scss +212 -212
  21. package/components/_ac-multi-select.scss +780 -751
  22. package/components/_ac-options.scss +122 -123
  23. package/components/_ac-select-box.scss +5 -5
  24. package/components/_ac-table.scss +503 -502
  25. package/components/_ac-tabs.scss +39 -38
  26. package/components/_ac-tags.scss +116 -116
  27. package/components/_ac-terminal.scss +95 -51
  28. package/components/_add-card.scss +3 -3
  29. package/components/_all.scss +29 -26
  30. package/components/_app-drawer.scss +0 -134
  31. package/components/_breadcumb.scss +0 -71
  32. package/components/_buttons.scss +779 -779
  33. package/components/_card-body-wrapper.scss +5 -5
  34. package/components/_dashboard-header.scss +0 -115
  35. package/components/_direct-deploy.scss +8 -8
  36. package/components/_go-to-top.scss +1 -1
  37. package/components/_image-upload.scss +5 -5
  38. package/components/_left-sidebar-menu.scss +448 -579
  39. package/components/_monaco-editor.scss +1 -1
  40. package/components/_navbar.scss +786 -752
  41. package/components/_nested-list.scss +1 -1
  42. package/components/_overview-info.scss +7 -7
  43. package/components/_overview-page.scss +4 -4
  44. package/components/_pagination.scss +106 -124
  45. package/components/_payment-card.scss +21 -21
  46. package/components/_preloader.scss +1 -1
  47. package/components/_preview-modal.scss +18 -18
  48. package/components/_pricing-table.scss +10 -10
  49. package/components/_progress-bar.scss +12 -12
  50. package/components/_subscription-card.scss +14 -14
  51. package/components/_table-of-content.scss +4 -4
  52. package/components/_tfa.scss +9 -9
  53. package/components/_widget-menu.scss +247 -247
  54. package/components/_wizard.scss +557 -559
  55. package/components/ac-toaster/_ac-toasted.scss +7 -12
  56. package/components/bbum/_activities-header.scss +1 -1
  57. package/components/bbum/_card-team.scss +12 -12
  58. package/components/bbum/_information-center.scss +13 -13
  59. package/components/bbum/_left-sidebar.scss +8 -8
  60. package/components/bbum/_mobile-desktop.scss +7 -7
  61. package/components/bbum/_post.scss +5 -5
  62. package/components/bbum/_sign-up-notification.scss +10 -10
  63. package/components/bbum/_single-post-preview.scss +21 -21
  64. package/components/bbum/_user-profile.scss +10 -10
  65. package/components/ui-builder/_ui-builder.scss +15 -15
  66. package/components/ui-builder/_vue-open-api.scss +515 -2
  67. package/layouts/_code-preview.scss +11 -11
  68. package/main.scss +26 -10
  69. package/package.json +1 -1
  70. package/plugins/theme.js +11 -9
  71. package/plugins/vue-toaster.js +1 -1
  72. package/vue-components/plugins/time-convert.js +49 -0
  73. package/vue-components/text.vue +1 -0
  74. package/vue-components/types/cluster.ts +6 -0
  75. package/vue-components/types/importFlow.ts +16 -0
  76. package/vue-components/types/longRunningTasks.ts +20 -0
  77. package/vue-components/types/notification.ts +6 -0
  78. package/vue-components/types/previewYaml.ts +8 -0
  79. package/vue-components/types/table.ts +54 -0
  80. package/vue-components/types/theme.ts +10 -0
  81. package/vue-components/types/user.ts +22 -0
  82. package/vue-components/v2/card/Card.vue +1 -1
  83. package/vue-components/v2/card/OverviewCards.vue +17 -2
  84. package/vue-components/v2/editor/FilteredFileEditor.vue +2 -2
  85. package/vue-components/v2/editor/ResourceKeyValueEditor.vue +21 -21
  86. package/vue-components/v2/icons/Ellipsis.vue +2 -1
  87. package/vue-components/v2/modal/Modal.vue +0 -5
  88. package/vue-components/v2/navbar/Appdrawer.vue +37 -12
  89. package/vue-components/v2/navbar/Navbar.vue +3 -3
  90. package/vue-components/v2/navbar/NavbarItem.vue +3 -1
  91. package/vue-components/v2/navbar/NavbarItemContent.vue +1 -1
  92. package/vue-components/v2/navbar/User.vue +5 -22
  93. package/vue-components/v2/pagination/Pagination.vue +66 -0
  94. package/vue-components/v2/sidebar/SidebarItem.vue +10 -7
  95. package/vue-components/v3/accordion/Accordion.vue +151 -0
  96. package/vue-components/v3/alert/Alert.vue +238 -0
  97. package/vue-components/v3/alert/Toast.vue +79 -0
  98. package/vue-components/v3/banner/Banner.vue +10 -0
  99. package/vue-components/v3/breadcrumbs/Breadcrumb.vue +104 -0
  100. package/vue-components/v3/button/Button.vue +839 -58
  101. package/vue-components/v3/button/Buttons.vue +6 -0
  102. package/vue-components/v3/button/DownloadBtn.vue +31 -0
  103. package/vue-components/v3/cards/Card.vue +32 -0
  104. package/vue-components/v3/cards/CardContent.vue +7 -0
  105. package/vue-components/v3/cards/CardHeader.vue +14 -0
  106. package/vue-components/v3/cards/Cards.vue +7 -0
  107. package/vue-components/v3/cards/Cluster.vue +149 -0
  108. package/vue-components/v3/cards/Counter.vue +39 -0
  109. package/vue-components/v3/cards/FeatureCard.vue +71 -0
  110. package/vue-components/v3/cards/FeatureCards.vue +6 -0
  111. package/vue-components/v3/cards/InfoCard.vue +243 -0
  112. package/vue-components/v3/cards/Monitoring.vue +94 -0
  113. package/vue-components/v3/cards/OverviewCard.vue +24 -0
  114. package/vue-components/v3/cards/OverviewCards.vue +31 -0
  115. package/vue-components/v3/cards/Payment.vue +62 -0
  116. package/vue-components/v3/cards/Vendor.vue +85 -0
  117. package/vue-components/v3/content/ContentHeader.vue +39 -30
  118. package/vue-components/v3/content/ContentLayout.vue +20 -0
  119. package/vue-components/v3/content/ContentTable.vue +43 -62
  120. package/vue-components/v3/dropdown/DropdownDivider.vue +2 -0
  121. package/vue-components/v3/dropdown/DropdownItem.vue +2 -0
  122. package/vue-components/v3/dropdown/DropdownMenu.vue +85 -91
  123. package/vue-components/v3/editor/Editor.vue +100 -113
  124. package/vue-components/v3/editor/FilteredFileEditor.vue +317 -127
  125. package/vue-components/v3/editor/ResourceKeyValueEditor.vue +70 -94
  126. package/vue-components/v3/footer/FooterArea.vue +34 -0
  127. package/vue-components/v3/footer/FooterItem.vue +32 -0
  128. package/vue-components/v3/footer/FooterItems.vue +15 -0
  129. package/vue-components/v3/footer/Info.vue +23 -0
  130. package/vue-components/v3/footer/Status.vue +42 -0
  131. package/vue-components/v3/footer/Usage.vue +44 -0
  132. package/vue-components/v3/form/Form.vue +24 -33
  133. package/vue-components/v3/form/FormFooterControl.vue +7 -0
  134. package/vue-components/v3/form/FormFooterControls.vue +7 -0
  135. package/vue-components/v3/form-fields/AcSingleInput.vue +528 -0
  136. package/vue-components/v3/form-fields/Input.vue +19 -14
  137. package/vue-components/v3/header/Header.vue +119 -25
  138. package/vue-components/v3/header/HeaderItem.vue +18 -0
  139. package/vue-components/v3/header/HeaderItems.vue +4 -0
  140. package/vue-components/v3/icons/Ellipsis.vue +2 -0
  141. package/vue-components/v3/loaders/InfoCardLoader.vue +65 -0
  142. package/vue-components/v3/loaders/ResourceLoader.vue +4 -12
  143. package/vue-components/v3/loaders/SidebarLoader.vue +4 -12
  144. package/vue-components/v3/long-running-tasks/LongRunningTaskItem.vue +17 -15
  145. package/vue-components/v3/modal/Modal.vue +292 -96
  146. package/vue-components/v3/modals/DeleteConfirmationModal.vue +37 -50
  147. package/vue-components/v3/modals/JsonShowModal.vue +62 -68
  148. package/vue-components/v3/modals/LongRunningTasksModal.vue +145 -143
  149. package/vue-components/v3/navbar/Appdrawer.vue +196 -51
  150. package/vue-components/v3/navbar/Navbar.vue +298 -0
  151. package/vue-components/v3/navbar/NavbarItem.vue +81 -0
  152. package/vue-components/v3/navbar/NavbarItemContent.vue +284 -0
  153. package/vue-components/v3/navbar/Notification.vue +179 -0
  154. package/vue-components/v3/navbar/ThemeMode.vue +128 -112
  155. package/vue-components/v3/navbar/User.vue +383 -268
  156. package/vue-components/v3/notification/AlertBox.vue +41 -44
  157. package/vue-components/v3/notification/Notification.vue +49 -43
  158. package/vue-components/v3/notification/NotificationItem.vue +51 -19
  159. package/vue-components/v3/option-dots/Options.vue +188 -0
  160. package/vue-components/v3/pagination/Pagination.vue +203 -99
  161. package/vue-components/v3/preloader/Preloader.vue +23 -0
  162. package/vue-components/v3/searchbars/SearchBar.vue +59 -34
  163. package/vue-components/v3/sidebar/AccentColorPicker.vue +97 -0
  164. package/vue-components/v3/sidebar/ClusterSwitcher.vue +835 -81
  165. package/vue-components/v3/sidebar/Sidebar.vue +267 -0
  166. package/vue-components/v3/sidebar/SidebarBody.vue +7 -0
  167. package/vue-components/v3/sidebar/SidebarFooter.vue +80 -0
  168. package/vue-components/v3/sidebar/SidebarHeader.vue +124 -0
  169. package/vue-components/v3/sidebar/SidebarItem.vue +62 -0
  170. package/vue-components/v3/sidebar/SidebarItemWithDropDown.vue +101 -104
  171. package/vue-components/v3/sidebar/SidebarMenuList.vue +9 -0
  172. package/vue-components/v3/sidebar/Steps.vue +152 -0
  173. package/vue-components/v3/sidebar/sidebar-tabs/SidebarTabs.vue +128 -0
  174. package/vue-components/v3/sidebar/sidebar-tabs/SidebarTabsLayout.vue +29 -0
  175. package/vue-components/v3/sidebar/sidebar-tabs/TabsContent.vue +99 -0
  176. package/vue-components/v3/tab/TabItem.vue +10 -12
  177. package/vue-components/v3/tab/Tabs.vue +9 -0
  178. package/vue-components/v3/tab/TabsBody.vue +7 -0
  179. package/vue-components/v3/table/EmptyTableInfo.vue +8 -0
  180. package/vue-components/v3/table/FakeTableCell.vue +22 -31
  181. package/vue-components/v3/table/InfoTable.vue +89 -61
  182. package/vue-components/v3/table/MultiInfoTable.vue +72 -95
  183. package/vue-components/v3/table/Table.vue +589 -151
  184. package/vue-components/v3/table/TableCell.vue +20 -23
  185. package/vue-components/v3/table/TableContainer.vue +50 -28
  186. package/vue-components/v3/table/TableRow.vue +63 -85
  187. package/vue-components/v3/table/table-cell/ArrayCell.vue +67 -79
  188. package/vue-components/v3/table/table-cell/CellValue.vue +97 -103
  189. package/vue-components/v3/table/table-cell/GenericCell.vue +43 -42
  190. package/vue-components/v3/table/table-cell/ObjectCell.vue +67 -79
  191. package/vue-components/v3/table/table-cell/ValueWithModal.vue +22 -31
  192. package/vue-components/v3/tabs/EditorTabs.vue +18 -24
  193. package/vue-components/v3/tag/Tag.vue +15 -12
  194. package/vue-components/v3/tag/Tags.vue +7 -0
  195. package/vue-components/v3/terminal/LongRunningTaskTerminal.vue +26 -23
  196. package/base/utilities/_derived-variables.scss +0 -25
  197. package/base/utilities/_initial-variables.scss +0 -215
  198. package/components/_basic-card.scss +0 -124
  199. package/mixins/stickyContent.js +0 -141
  200. package/plugins/caching.ts +0 -243
@@ -1,16 +1,159 @@
1
+ <script setup lang="ts">
2
+ import {
3
+ computed,
4
+ defineAsyncComponent,
5
+ nextTick,
6
+ onUpdated,
7
+ ref,
8
+ watch,
9
+ } from "vue";
10
+ import type { AcTableCol } from "../../types/table";
11
+
12
+ interface Props {
13
+ isLoaderActive?: boolean;
14
+ isTableEmpty?: boolean;
15
+ tableHeaders?: Array<AcTableCol>;
16
+ collapsible?: boolean;
17
+ actionable?: boolean;
18
+ isDynamicWidthTable?: boolean;
19
+ fullWidth?: number;
20
+ columnStriped?: boolean;
21
+ }
22
+
23
+ const props = withDefaults(defineProps<Props>(), {
24
+ isLoaderActive: false,
25
+ isTableEmpty: true,
26
+ tableHeaders: () => [],
27
+ collapsible: false,
28
+ actionable: false,
29
+ isDynamicWidthTable: false,
30
+ fullWidth: 1920,
31
+ columnStriped: false,
32
+ });
33
+
34
+ const emit = defineEmits(["sort", "scroller"]);
35
+
36
+ const TableContainer = defineAsyncComponent(
37
+ () => import("../table/TableContainer.vue")
38
+ );
39
+ const TableRow = defineAsyncComponent(() => import("../table/TableRow.vue"));
40
+ const TableCell = defineAsyncComponent(() => import("../table/TableCell.vue"));
41
+ const CellValue = defineAsyncComponent(
42
+ () => import("../table/table-cell/CellValue.vue")
43
+ );
44
+ const EmptyTableInfo = defineAsyncComponent(
45
+ () => import("../table/EmptyTableInfo.vue")
46
+ );
47
+ const FakeTableCell = defineAsyncComponent(
48
+ () => import("../table/FakeTableCell.vue")
49
+ );
50
+
51
+ const fakeCellWidth = ref(0);
52
+ const headerSortables = ref<Array<{ enabled: boolean; mode: string }>>([]);
53
+ const ac_table = ref(null as HTMLElement | null);
54
+ const ac_table_container = ref(null as HTMLElement | null);
55
+
56
+ const headerLabels = computed(() => {
57
+ return props.tableHeaders.map((th) =>
58
+ typeof th === "string" ? th : th?.name || "Label"
59
+ );
60
+ });
61
+
62
+ const isFullTableLoaderActive = computed(() => {
63
+ return !props.tableHeaders.length;
64
+ });
65
+
66
+ const loaderCols = computed(() => {
67
+ if (isFullTableLoaderActive.value) {
68
+ return 5;
69
+ } else if (props.isLoaderActive) {
70
+ return Math.max(props.tableHeaders.length + 1, 5);
71
+ } else {
72
+ return props.tableHeaders.length || 5;
73
+ }
74
+ });
75
+
76
+ const handleScroller = (value: number) => {
77
+ emit("scroller", value);
78
+ };
79
+
80
+ const onWindowResize = () => {
81
+ if (ac_table.value && props.isDynamicWidthTable) {
82
+ const tableWidth = ac_table.value.clientWidth;
83
+ const d = props.fullWidth - tableWidth;
84
+ fakeCellWidth.value = d;
85
+ }
86
+ };
87
+
88
+ const emitSortEvent = (index: number) => {
89
+ const emitValue = {
90
+ index,
91
+ label: props.tableHeaders[index].name,
92
+ mode: "",
93
+ };
94
+
95
+ headerSortables.value.forEach((hs, idx) => {
96
+ if (idx !== index) hs.mode = "";
97
+ else {
98
+ if (hs.mode === "asc") hs.mode = "desc";
99
+ else hs.mode = "asc";
100
+
101
+ emitValue.mode = hs.mode;
102
+ }
103
+ });
104
+
105
+ emit("sort", emitValue);
106
+ };
107
+
108
+ watch(
109
+ () => props.tableHeaders,
110
+ (n) => {
111
+ if (headerSortables.value.length === n.length) {
112
+ n.forEach((th, idx) => {
113
+ if (headerSortables.value[idx].enabled !== !!th?.sort?.enable) {
114
+ headerSortables.value[idx].enabled = !!th?.sort?.enable;
115
+ headerSortables.value[idx].mode = "";
116
+ }
117
+ });
118
+ } else {
119
+ headerSortables.value = n.map((th) => {
120
+ if (typeof th === "string") {
121
+ return {
122
+ enabled: false,
123
+ mode: "",
124
+ };
125
+ } else {
126
+ return {
127
+ enabled: !!th?.sort?.enable,
128
+ mode: "",
129
+ };
130
+ }
131
+ });
132
+ }
133
+ },
134
+ { immediate: true }
135
+ );
136
+
137
+ onUpdated(() => {
138
+ nextTick(() => {
139
+ onWindowResize();
140
+ });
141
+ });
142
+ </script>
143
+
1
144
  <template>
2
- <table-container ref="ac-table-container" @scroller="handleScroller">
145
+ <table-container ref="ac_table_container" @scroller="handleScroller">
3
146
  <table
4
- ref="ac-table"
5
- class="table ac-table"
147
+ ref="ac_table"
148
+ class="table ac-table is-bordered"
6
149
  :class="{
7
150
  'is-fullwidth':
8
151
  !isDynamicWidthTable ||
9
152
  isFullTableLoaderActive ||
10
153
  isTableEmpty ||
11
154
  isLoaderActive,
12
- 'ac-striped': !columnStriped,
13
- 'ac-label-texted': columnStriped,
155
+ // 'ac-striped': !columnStriped,
156
+ // 'is-bordered': columnStriped,
14
157
  }"
15
158
  >
16
159
  <thead>
@@ -120,160 +263,455 @@
120
263
  </table-container>
121
264
  </template>
122
265
 
123
- <script>
124
- import { defineComponent, defineAsyncComponent } from "vue";
125
-
126
- export default defineComponent({
127
- props: {
128
- isLoaderActive: {
129
- type: Boolean,
130
- default: false,
131
- },
132
- isTableEmpty: {
133
- type: Boolean,
134
- default: true,
135
- },
136
- tableHeaders: {
137
- type: Array,
138
- default: () => [],
139
- },
140
- collapsible: {
141
- type: Boolean,
142
- default: false,
143
- },
144
- actionable: {
145
- type: Boolean,
146
- default: false,
147
- },
148
- isDynamicWidthTable: {
149
- type: Boolean,
150
- default: false,
151
- },
152
- fullWidth: {
153
- type: Number,
154
- default: 1920,
155
- },
156
- columnStriped: {
157
- type: Boolean,
158
- default: false,
159
- },
160
- },
161
- emits: ["sort", "scroller"],
162
- components: {
163
- TableContainer: defineAsyncComponent(() =>
164
- import("./TableContainer.vue").then((module) => module.default)
165
- ),
166
- TableRow: defineAsyncComponent(() =>
167
- import("./TableRow.vue").then((module) => module.default)
168
- ),
169
- TableCell: defineAsyncComponent(() =>
170
- import("./TableCell.vue").then((module) => module.default)
171
- ),
172
- CellValue: defineAsyncComponent(() =>
173
- import("./table-cell/CellValue.vue").then((module) => module.default)
174
- ),
175
- EmptyTableInfo: defineAsyncComponent(() =>
176
- import("../../v2/table/EmptyTableInfo.vue").then(
177
- (module) => module.default
178
- )
179
- ),
180
- FakeTableCell: defineAsyncComponent(() =>
181
- import("./FakeTableCell.vue").then((module) => module.default)
182
- ),
183
- },
266
+ <style lang="scss">
267
+ // INFO TABLE END
184
268
 
185
- data() {
186
- return {
187
- fakeCellWidth: 0,
188
- headerSortables: [],
189
- };
190
- },
269
+ // GENERAL TABLE START
270
+ .table.ac-table {
271
+ background-color: transparent;
272
+ margin-bottom: 0;
273
+
274
+ thead {
275
+ background-color: $white-100-lighter;
276
+ font-size: 13px;
277
+ line-height: initial;
191
278
 
192
- computed: {
193
- loaderCols() {
194
- if (this.isFullTableLoaderActive) {
195
- return 5;
196
- } else if (this.isLoaderActive) {
197
- return Math.max(this.tableHeaders.length + 1, 5);
198
- } else {
199
- return this.tableHeaders.length || 5;
279
+ tr {
280
+ border-bottom: 1px solid $primary-95;
281
+
282
+ th {
283
+ padding: 10px 20px;
284
+ color: $primary-5;
285
+ border: none;
286
+ font-weight: 500;
287
+ // background-color: $primary-97;
288
+ // text-transform: uppercase;
289
+ font-weight: 500;
290
+
291
+ &.sorting {
292
+ cursor: pointer;
293
+ position: relative;
294
+
295
+ &.sorting-asc {
296
+ &::before {
297
+ color: $primary-5;
298
+ }
299
+ }
300
+
301
+ &.sorting-desc {
302
+ &::after {
303
+ color: $primary-5;
304
+ }
305
+ }
306
+
307
+ &:after,
308
+ &::before {
309
+ position: absolute;
310
+ color: #808998;
311
+ top: 0.4em;
312
+ font-size: 13px;
313
+ font-weight: 1000;
314
+ display: block;
315
+ }
316
+
317
+ &:before {
318
+ right: 1em;
319
+ content: "\2191";
320
+ }
321
+
322
+ &:after {
323
+ right: 0.5em;
324
+ content: "\2193";
325
+ }
326
+ }
327
+ }
328
+ }
329
+ }
330
+
331
+ tbody {
332
+ &.is-selected {
333
+ transform: matrix(1, 0, 0, 1, 0, 0) !important;
334
+ box-shadow: inset 0 0 0 1px $primary;
335
+ border-radius: 4px;
336
+ border-bottom: none;
337
+ color: $ac-black;
338
+ }
339
+
340
+ tr {
341
+ border-bottom: 1px solid var(--ac-white-light);
342
+ &.is-link {
343
+ cursor: pointer;
344
+ }
345
+ &.is-selected {
346
+ background-color: $primary-97 !important;
347
+ transform: matrix(1, 0, 0, 1, 0, 0) !important;
348
+ box-shadow: inset 0 0 0 1.2px $primary;
349
+ border-radius: 4px;
350
+ border-bottom: none;
351
+ color: $ac-black;
352
+ transition: 0.3s ease-in-out;
353
+ .tag {
354
+ background-color: $primary-90;
355
+ }
356
+ &:hover {
357
+ background-color: $primary-95 !important;
358
+ transform: matrix(1, 0, 0, 1, 0, 0) !important;
359
+ box-shadow: inset 0 0 0 1.2px $primary !important;
360
+ }
200
361
  }
201
- },
202
- isFullTableLoaderActive() {
203
- return !this.tableHeaders.length;
204
- },
205
- headerLabels() {
206
- return this.tableHeaders.map((th) =>
207
- typeof th === "string" ? th : th?.name || "Label"
208
- );
209
- },
210
- },
211
362
 
212
- watch: {
213
- tableHeaders: {
214
- immediate: true,
215
- handler(n) {
216
- if (this.headerSortables.length === n.length) {
217
- n.forEach((th, idx) => {
218
- if (this.headerSortables[idx].enabled !== !!th?.sort?.enable) {
219
- this.headerSortables[idx].enabled = !!th?.sort?.enable;
220
- this.headerSortables[idx].mode = "";
363
+ &.is-hoverless {
364
+ box-shadow: none !important;
365
+ transform: none !important;
366
+ background-color: $white-100 !important;
367
+ }
368
+ td {
369
+ font-size: 13px;
370
+ padding: 5px 20px;
371
+ color: $primary-10;
372
+ border: none;
373
+
374
+ a {
375
+ color: $primary-5;
376
+ transition: 0.3s ease-in-out;
377
+ font-weight: 400;
378
+ }
379
+
380
+ .tags {
381
+ .tag {
382
+ a {
383
+ color: $primary;
384
+ font-weight: 500;
385
+ transition: 0.3s ease-in-out;
386
+
387
+ &:hover {
388
+ color: $primary-5;
389
+ }
221
390
  }
222
- });
223
- } else {
224
- this.headerSortables = n.map((th) => {
225
- if (typeof th === "string") {
226
- return {
227
- enabled: false,
228
- mode: "",
229
- };
230
- } else {
231
- return {
232
- enabled: !!th?.sort?.enable,
233
- mode: "",
234
- };
391
+ }
392
+ }
393
+
394
+ &.is-danger {
395
+ color: $danger;
396
+ }
397
+
398
+ .image-with-status {
399
+ margin-right: 20px;
400
+ position: relative;
401
+ z-index: 1;
402
+ display: inline-flex;
403
+
404
+ &.is-danger {
405
+ background-color: $danger;
406
+ }
407
+
408
+ i.fa {
409
+ position: absolute;
410
+ background-color: $primary;
411
+ color: $white-100;
412
+ font-size: 11px;
413
+ width: 15px;
414
+ height: 15px;
415
+ text-align: center;
416
+ line-height: 15px;
417
+ border-radius: 50%;
418
+ right: -5px;
419
+ top: 5px;
420
+
421
+ &.fa-close {
422
+ background-color: $danger;
235
423
  }
236
- });
424
+ }
425
+
426
+ img {
427
+ width: 20px;
428
+ height: 20px;
429
+ object-fit: cover;
430
+ border-radius: 50%;
431
+ }
237
432
  }
238
- },
239
- },
240
- },
241
- updated() {
242
- this.$nextTick(() => {
243
- this.onWindowResize();
244
- });
245
- },
246
433
 
247
- methods: {
248
- handleScroller(value) {
249
- this.$emit("scroller", value);
250
- },
251
- onWindowResize() {
252
- if (this.$refs["ac-table"] && this.isDynamicWidthTable) {
253
- const tableWidth = this.$refs["ac-table"]?.clientWidth;
254
- const d = this.fullWidth - tableWidth;
255
- this.fakeCellWidth = d;
434
+ .collapsible-row {
435
+ max-height: 0;
436
+ overflow-y: hidden;
437
+
438
+ &.is-active {
439
+ max-height: 60vh;
440
+ overflow-y: overlay;
441
+ animation: expand 0.5s ease-in-out;
442
+ }
443
+
444
+ &.is-closed {
445
+ max-height: 0;
446
+ overflow-y: hidden;
447
+ animation: collapse 0.5s ease-in-out;
448
+ }
449
+ }
256
450
  }
257
- },
258
- emitSortEvent(index) {
259
- const emitValue = {
260
- index,
261
- label: this.tableHeaders[index].name,
262
- mode: "",
263
- };
264
-
265
- this.headerSortables.forEach((hs, idx) => {
266
- if (idx !== index) hs.mode = "";
267
- else {
268
- if (hs.mode === "asc") hs.mode = "desc";
269
- else hs.mode = "asc";
270
-
271
- emitValue.mode = hs.mode;
451
+
452
+ .options-items {
453
+ a:hover {
454
+ color: $white-100;
455
+ text-decoration: none;
272
456
  }
273
- });
457
+ }
274
458
 
275
- this.$emit("sort", emitValue);
276
- },
277
- },
278
- });
279
- </script>
459
+ transition: 0.3s ease-in-out;
460
+ }
461
+ }
462
+
463
+ .increase-width {
464
+ position: relative;
465
+ visibility: hidden;
466
+ width: 36px;
467
+
468
+ .increase-innner {
469
+ border-bottom: 1px solid var(--ac-white-light);
470
+ border-top: 1px solid var(--ac-white-light);
471
+ bottom: -1px;
472
+ left: 0;
473
+ position: absolute;
474
+ right: -451px;
475
+ top: -1px;
476
+ visibility: visible;
477
+ background-color: $white-100-lighter;
478
+ }
479
+ }
480
+
481
+ td {
482
+ &.increase-width {
483
+ .increase-innner {
484
+ background-color: transparent;
485
+ }
486
+ }
487
+ }
488
+
489
+ &.is-bordered {
490
+ thead {
491
+ tr {
492
+ th {
493
+ border-top: 1px solid $primary-93;
494
+ border-bottom: 1px solid $primary-93;
495
+ border-right: 1px solid $primary-93;
496
+ background-color: $primary-97;
497
+
498
+ &:first-child {
499
+ border-left: 1px solid transparent;
500
+ }
501
+ &:last-child {
502
+ border-right: 1px solid transparent;
503
+ }
504
+ }
505
+ }
506
+ }
507
+
508
+ tbody {
509
+ tr {
510
+ &:hover {
511
+ box-shadow: none;
512
+ }
513
+
514
+ td {
515
+ font-size: 13px;
516
+ color: $primary-20;
517
+ background-color: transparent;
518
+ border-bottom: 1px solid $primary-93;
519
+ border-right: 1px solid $primary-93;
520
+ &:last-child {
521
+ border-right: 1px solid transparent;
522
+ }
523
+ &:first-child {
524
+ border-left: 1px solid transparent;
525
+ }
526
+
527
+ &:first-child {
528
+ color: $primary-5;
529
+ border-radius: 0;
530
+ }
531
+
532
+ &:last-child {
533
+ border-radius: 0;
534
+ }
535
+
536
+ .ac-single-checkbox {
537
+ .is-checkradio[type="checkbox"] {
538
+ &.ac-checkbox + label {
539
+ color: $ac-link-black;
540
+
541
+ &::before {
542
+ height: 16px;
543
+ width: 16px;
544
+ background-color: $primary-95;
545
+ }
546
+
547
+ &::after {
548
+ top: 6px;
549
+ left: 6px;
550
+ border-color: $black-80;
551
+ width: 0.3rem;
552
+ height: 0.5rem;
553
+ }
554
+ }
555
+
556
+ &:checked + label::before {
557
+ background-color: $primary;
558
+ border-color: $primary;
559
+ }
560
+
561
+ &:checked + label::after {
562
+ border-color: $white-100-lighter;
563
+ }
564
+ }
565
+ }
566
+
567
+ .is-checkradio[type="checkbox"].ac-checkbox:checked + label::before {
568
+ background-color: $primary;
569
+ border-color: $primary;
570
+ }
571
+
572
+ .is-checkradio[type="checkbox"] + label::before,
573
+ .is-checkradio[type="checkbox"] + label:before {
574
+ top: 3px;
575
+ }
576
+ }
577
+ }
578
+ }
579
+ }
580
+
581
+ &.ac-separate-tr {
582
+ border-collapse: separate;
583
+ border-spacing: 0px 5px;
584
+
585
+ tbody {
586
+ tr {
587
+ background-color: transparent;
588
+ }
589
+ }
590
+ }
591
+
592
+ &.is-middle-aligned {
593
+ thead {
594
+ tr {
595
+ th {
596
+ vertical-align: middle;
597
+ }
598
+ }
599
+ }
600
+
601
+ tbody {
602
+ tr {
603
+ td {
604
+ vertical-align: middle;
605
+ }
606
+ }
607
+ }
608
+ }
609
+
610
+ &.is-dark {
611
+ thead {
612
+ background-color: $primary-5;
613
+
614
+ tr {
615
+ th {
616
+ color: $white-100;
617
+ }
618
+ }
619
+ }
620
+
621
+ tbody {
622
+ tr {
623
+ td {
624
+ color: $white-100;
625
+ }
626
+
627
+ &:nth-child(odd) {
628
+ background-color: $primary-20;
629
+ }
630
+
631
+ &:nth-child(even) {
632
+ background-color: $primary-5;
633
+ }
634
+
635
+ &:hover {
636
+ background-color: $primary;
637
+
638
+ td {
639
+ color: $white-100;
640
+ }
641
+ }
642
+ }
643
+ }
644
+ }
645
+ }
646
+
647
+ .table.ac-table tbody tr:hover td a:not(.tag a) {
648
+ text-decoration: underline;
649
+ color: $primary;
650
+ }
651
+
652
+ // table inner shadow
653
+ .table-inner-shadow {
654
+ border-radius: 0px;
655
+ background: $white-100-lighter;
656
+ box-shadow: inset 5px 5px 10px #e3e6e9, inset -5px -5px 10px #ffffff;
657
+ }
658
+
659
+ @keyframes expand {
660
+ from {
661
+ max-height: 0;
662
+ overflow-y: hidden;
663
+ }
664
+ 1% {
665
+ overflow-y: hidden;
666
+ }
667
+ 99% {
668
+ overflow-y: hidden;
669
+ }
670
+ to {
671
+ max-height: 60vh;
672
+ overflow-y: overlay;
673
+ }
674
+ }
675
+
676
+ @keyframes collapse {
677
+ from {
678
+ max-height: 60vh;
679
+ overflow-y: overlay;
680
+ }
681
+ 1% {
682
+ overflow-y: hidden;
683
+ }
684
+ 99% {
685
+ overflow-y: hidden;
686
+ }
687
+ to {
688
+ max-height: 0;
689
+ overflow-y: hidden;
690
+ }
691
+ }
692
+
693
+ // GENERAL TABLE END
694
+
695
+ /****************************************
696
+ Responsive Classes
697
+ *****************************************/
698
+ // Extra small devices (portrait phones, less than 576px)
699
+ @media (max-width: 575.98px) {
700
+ }
701
+
702
+ // Small devices (landscape phones, 576px and up)
703
+ @media (min-width: 576px) and (max-width: 767.98px) {
704
+ }
705
+
706
+ // Medium devices (tablets, 768px and up)
707
+ @media (min-width: 768px) and (max-width: 991.98px) {
708
+ }
709
+
710
+ // Large devices (desktops, 992px and up)
711
+ @media (min-width: 992px) and (max-width: 1199.98px) {
712
+ }
713
+
714
+ // Extra large devices (large desktops, 1200px and up)
715
+ @media (min-width: 1200px) {
716
+ }
717
+ </style>