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