@frollo/frollo-web-ui 9.0.1 → 9.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/index.js +10733 -3060
- package/esm/{_rollupPluginBabelHelpers-DODWUb5N.js → _rollupPluginBabelHelpers-BKlDnZ7n.js} +1 -1
- package/esm/fw-accordion.js +15 -18
- package/esm/fw-alert.js +32 -25
- package/esm/fw-bar-chart.js +265 -93
- package/esm/fw-button-DZTHZLjk.js +318 -0
- package/esm/fw-button.js +2 -2
- package/esm/{fw-card-D45R4kN-.js → fw-card-XGtsK2bM.js} +7 -10
- package/esm/fw-card.js +2 -2
- package/esm/fw-checkbox.js +8 -11
- package/esm/fw-date-picker.js +85 -49
- package/esm/fw-drawer.js +8 -8
- package/esm/{fw-dropdown-58wyuzsW.js → fw-dropdown-CSmYTm5O.js} +11 -14
- package/esm/fw-dropdown.js +7 -6
- package/esm/fw-form.js +1 -1
- package/esm/fw-icons.js +11 -12
- package/esm/fw-image-A2lXYs0u.js +325 -0
- package/esm/fw-image.js +5 -4
- package/esm/{fw-input-C2-cZ-BY.js → fw-input-BiPWWfK3.js} +12 -19
- package/esm/fw-input.js +3 -3
- package/esm/fw-loading-bar-3x4tkF1B.js +37 -0
- package/esm/fw-loading.js +89 -40
- package/esm/fw-media-picker.js +10 -653
- package/esm/fw-modal.js +11 -10
- package/esm/fw-navigation-menu.js +36 -41
- package/esm/fw-popover-BZ-zqUme.js +330 -0
- package/esm/fw-popover.js +2 -3
- package/esm/fw-progress-bar.js +1 -1
- package/esm/fw-provider-list.js +109 -87
- package/esm/fw-sidebar-menu.js +58 -51
- package/esm/fw-slider.js +64 -61
- package/esm/fw-switch.js +76 -49
- package/esm/fw-table-row-D6FdCJMs.js +447 -0
- package/esm/fw-table.js +5 -6
- package/esm/fw-tabs.js +87 -35
- package/esm/fw-tag-BRxPc4zc.js +199 -0
- package/esm/fw-tag.js +4 -4
- package/esm/fw-toast.js +58 -76
- package/esm/fw-transactions-card.js +20 -20
- package/esm/{get-root-colours-DCjlYelc.js → get-root-colours-DCCAnRF4.js} +3 -1
- package/esm/index-C8z11jcJ.js +7583 -0
- package/esm/index-DHyRsKsZ.js +843 -0
- package/esm/index-eP2GMSdQ.js +755 -0
- package/esm/index.js +54 -61
- package/esm/{uniqueId-DZdGzBh8.js → uniqueId-DK6xzFd8.js} +1 -1
- package/esm/{vee-validate.esm-3ptvCDR1.js → vee-validate-0dtT5GSQ.js} +182 -305
- package/frollo-web-ui.esm.js +10790 -3115
- package/icons/circle-check.svg +4 -0
- package/index.d.ts +1522 -586
- package/package.json +11 -11
- package/types/components/fw-accordion/fw-accordion.vue.d.ts +9 -7
- package/types/components/fw-alert/fw-alert.vue.d.ts +11 -6
- package/types/components/fw-bar-chart/fw-bar-chart.vue.d.ts +15 -64
- package/types/components/fw-button/fw-button.vue.d.ts +11 -7
- package/types/components/fw-card/fw-card.vue.d.ts +6 -6
- package/types/components/fw-checkbox/fw-checkbox.vue.d.ts +365 -5
- package/types/components/fw-date-picker/fw-date-picker.vue.d.ts +3 -242
- package/types/components/fw-drawer/fw-drawer.vue.d.ts +11 -8
- package/types/components/fw-dropdown/fw-dropdown.vue.d.ts +20 -12
- package/types/components/fw-icons/fw-success-animation.vue.d.ts +1 -1
- package/types/components/fw-image/fw-image.vue.d.ts +33 -7
- package/types/components/fw-input/fw-input.vue.d.ts +368 -10
- package/types/components/fw-loading/fw-loading-bar.vue.d.ts +7 -5
- package/types/components/fw-loading/fw-loading-card.vue.d.ts +3 -1
- package/types/components/fw-loading/fw-loading-dots.vue.d.ts +8 -1
- package/types/components/fw-loading/fw-loading-table.vue.d.ts +11 -6
- package/types/components/fw-media-picker/fw-media-picker.vue.d.ts +27 -18
- package/types/components/fw-modal/fw-modal.vue.d.ts +11 -7
- package/types/components/fw-navigation-menu/fw-navigation-menu.vue.d.ts +12 -8
- package/types/components/fw-popover/fw-popover.vue.d.ts +16 -21
- package/types/components/fw-progress-bar/fw-progress-bar.vue.d.ts +6 -4
- package/types/components/fw-provider-list/fw-provider-list.vue.d.ts +20 -45
- package/types/components/fw-sidebar-menu/fw-sidebar-menu.vue.d.ts +13 -7
- package/types/components/fw-slider/fw-slider.vue.d.ts +11 -8
- package/types/components/fw-switch/fw-switch.vue.d.ts +383 -9
- package/types/components/fw-switch/index.types.d.ts +1 -0
- package/types/components/fw-table/fw-table-head.vue.d.ts +1 -1
- package/types/components/fw-table/fw-table-row.vue.d.ts +1 -1
- package/types/components/fw-table/fw-table.vue.d.ts +40 -19
- package/types/components/fw-table/index.types.d.ts +36 -2
- package/types/components/fw-tabs/fw-tab.vue.d.ts +4 -8
- package/types/components/fw-tabs/fw-tabs.vue.d.ts +11 -8
- package/types/components/fw-tabs/index.types.d.ts +14 -4
- package/types/components/fw-tag/fw-tag.vue.d.ts +14 -8
- package/types/components/fw-toast/fw-toast.vue.d.ts +17 -22
- package/types/components/fw-transactions-card/fw-transactions-card.vue.d.ts +6 -3
- package/types/directives/lazy-loader.d.ts +11 -2
- package/types/helpers/get-root-colours.d.ts +1 -0
- package/web-components/index.js +16793 -7700
- package/esm/fw-button-YMoW4x4c.js +0 -296
- package/esm/fw-image-D-OHafdw.js +0 -217
- package/esm/fw-loading-bar-DecYSBC_.js +0 -45
- package/esm/fw-popover-B4bsfuxm.js +0 -620
- package/esm/fw-table-row-Cgi8871h.js +0 -389
- package/esm/fw-tag-fDo50Nw7.js +0 -177
- package/esm/index-BsEH8YYr.js +0 -979
|
@@ -0,0 +1,447 @@
|
|
|
1
|
+
import { defineComponent, computed, ref, shallowRef, watch, onMounted, useCssVars, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, createVNode, renderSlot, Fragment, renderList, withDirectives, withKeys, toDisplayString, createBlock, vShow, TransitionGroup, withCtx, resolveDynamicComponent, mergeProps, toHandlers } from 'vue';
|
|
2
|
+
import { u as useColours } from './get-root-colours-DCCAnRF4.js';
|
|
3
|
+
import './fw-button.js';
|
|
4
|
+
import { o as render$3, p as render$4, q as render$5, s as render$6 } from './index-DHyRsKsZ.js';
|
|
5
|
+
import './fw-loading.js';
|
|
6
|
+
import { s as script$2 } from './fw-button-DZTHZLjk.js';
|
|
7
|
+
import { s as script$3 } from './fw-loading-bar-3x4tkF1B.js';
|
|
8
|
+
import { s as styleInject } from './style-inject.es-tgCJW-Cu.js';
|
|
9
|
+
|
|
10
|
+
var __default__ = defineComponent({
|
|
11
|
+
name: 'FwTable',
|
|
12
|
+
components: {
|
|
13
|
+
FwLoadingBar: script$3,
|
|
14
|
+
FwButton: script$2,
|
|
15
|
+
ArrowDownSvg: render$6,
|
|
16
|
+
ArrowSortSvg: render$5,
|
|
17
|
+
ChevronLeftSvg: render$4,
|
|
18
|
+
ChevronRightSvg: render$3
|
|
19
|
+
},
|
|
20
|
+
props: {
|
|
21
|
+
items: {
|
|
22
|
+
type: Array,
|
|
23
|
+
required: true
|
|
24
|
+
},
|
|
25
|
+
options: {
|
|
26
|
+
type: Object,
|
|
27
|
+
required: false
|
|
28
|
+
},
|
|
29
|
+
loading: {
|
|
30
|
+
type: Boolean,
|
|
31
|
+
"default": false
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* Enable click events on rows.
|
|
35
|
+
* Emits row data when clicked
|
|
36
|
+
*/
|
|
37
|
+
clickableRows: {
|
|
38
|
+
type: Boolean,
|
|
39
|
+
"default": false
|
|
40
|
+
},
|
|
41
|
+
autoSortColumn: {
|
|
42
|
+
type: Number
|
|
43
|
+
},
|
|
44
|
+
enablePagination: {
|
|
45
|
+
type: Boolean,
|
|
46
|
+
"default": false
|
|
47
|
+
},
|
|
48
|
+
totalAmount: {
|
|
49
|
+
type: Number
|
|
50
|
+
},
|
|
51
|
+
pageSize: {
|
|
52
|
+
type: Number
|
|
53
|
+
},
|
|
54
|
+
/**
|
|
55
|
+
* Optional stable row key. If omitted, falls back to index-based key.
|
|
56
|
+
*/
|
|
57
|
+
rowKey: {
|
|
58
|
+
type: [String, Function],
|
|
59
|
+
required: false
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
emits: [/** Fired when a row is clicked with row data */
|
|
63
|
+
'rowClicked', /** Fired when a column is sorted */
|
|
64
|
+
'columnSorted', /** Fired when a page number or arrow is clicked */
|
|
65
|
+
'pageChanged'],
|
|
66
|
+
setup: function setup(props, ctx) {
|
|
67
|
+
var _props$items2;
|
|
68
|
+
var _useColours = useColours(),
|
|
69
|
+
bgHoverColor = _useColours.primaryFade5;
|
|
70
|
+
// Guard for empty items
|
|
71
|
+
var rawColumns = computed(function () {
|
|
72
|
+
var _props$items;
|
|
73
|
+
return (_props$items = props.items) !== null && _props$items !== void 0 && _props$items[0] ? Object.keys(props.items[0]) : [];
|
|
74
|
+
});
|
|
75
|
+
// Build per-column metadata ONCE per items/options change.
|
|
76
|
+
var colMeta = computed(function () {
|
|
77
|
+
var _props$options;
|
|
78
|
+
var opts = (_props$options = props.options) !== null && _props$options !== void 0 ? _props$options : {};
|
|
79
|
+
return rawColumns.value.map(function (key) {
|
|
80
|
+
var _opts$key, _option$initSortOrder;
|
|
81
|
+
var option = (_opts$key = opts[key]) !== null && _opts$key !== void 0 ? _opts$key : {};
|
|
82
|
+
return {
|
|
83
|
+
key: key,
|
|
84
|
+
disabled: !!option.disabled,
|
|
85
|
+
sortable: !!option.isSortable,
|
|
86
|
+
initSortOrder: (_option$initSortOrder = option.initSortOrder) !== null && _option$initSortOrder !== void 0 ? _option$initSortOrder : 'asc',
|
|
87
|
+
sortFn: option.sort,
|
|
88
|
+
html: !!option.html,
|
|
89
|
+
// allow html opt-in
|
|
90
|
+
format: function format(val, row) {
|
|
91
|
+
return option.formatter ? option.formatter(val, row) : val;
|
|
92
|
+
},
|
|
93
|
+
component: option.component,
|
|
94
|
+
componentProps: option.componentProps,
|
|
95
|
+
componentEventHandlers: option.componentEventHandlers,
|
|
96
|
+
isActiveSort: key === currentSortedColumn.value
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
var sortBy = ref('');
|
|
101
|
+
var sortDirection = ref('asc');
|
|
102
|
+
var currentSortedColumn = ref('');
|
|
103
|
+
// Cache last sorted result to avoid extra array churn when irrelevant state changes.
|
|
104
|
+
var sortedCache = shallowRef((_props$items2 = props.items) !== null && _props$items2 !== void 0 ? _props$items2 : []);
|
|
105
|
+
var doSort = function doSort() {
|
|
106
|
+
if (props.loading || !sortBy.value) {
|
|
107
|
+
sortedCache.value = props.items;
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
var data = props.items.slice(); // shallow copy
|
|
111
|
+
var meta = colMeta.value.find(function (c) {
|
|
112
|
+
return c.key === sortBy.value;
|
|
113
|
+
});
|
|
114
|
+
var customSort = meta === null || meta === void 0 ? void 0 : meta.sortFn;
|
|
115
|
+
if (customSort) {
|
|
116
|
+
var _customSort;
|
|
117
|
+
sortedCache.value = (_customSort = customSort(data, sortBy.value, sortDirection.value)) !== null && _customSort !== void 0 ? _customSort : data;
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
// Fast comparator: normalize once per comparison
|
|
121
|
+
var dir = sortDirection.value === 'asc' ? 1 : -1;
|
|
122
|
+
var key = sortBy.value;
|
|
123
|
+
data.sort(function (a, b) {
|
|
124
|
+
var av = a[key];
|
|
125
|
+
var bv = b[key];
|
|
126
|
+
if (av == null && bv == null) return 0;
|
|
127
|
+
if (av == null) return -1 * dir;
|
|
128
|
+
if (bv == null) return 1 * dir;
|
|
129
|
+
if (typeof av === 'string' || typeof bv === 'string') {
|
|
130
|
+
var as = String(av).toLowerCase();
|
|
131
|
+
var bs = String(bv).toLowerCase();
|
|
132
|
+
return as > bs ? dir : as < bs ? -dir : 0;
|
|
133
|
+
}
|
|
134
|
+
return av > bv ? dir : av < bv ? -dir : 0;
|
|
135
|
+
});
|
|
136
|
+
sortedCache.value = data;
|
|
137
|
+
};
|
|
138
|
+
watch(function () {
|
|
139
|
+
return [props.items, props.options, props.loading, sortBy.value, sortDirection.value];
|
|
140
|
+
}, doSort, {
|
|
141
|
+
immediate: true
|
|
142
|
+
});
|
|
143
|
+
var displayRows = computed(function () {
|
|
144
|
+
return sortedCache.value;
|
|
145
|
+
});
|
|
146
|
+
var onSort = function onSort(column) {
|
|
147
|
+
var isAction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
148
|
+
var meta = colMeta.value.find(function (c) {
|
|
149
|
+
return c.key === column;
|
|
150
|
+
});
|
|
151
|
+
if (!(meta !== null && meta !== void 0 && meta.sortable)) return;
|
|
152
|
+
currentSortedColumn.value = column;
|
|
153
|
+
if (sortBy.value === column) {
|
|
154
|
+
sortDirection.value = sortDirection.value === 'asc' ? 'desc' : 'asc';
|
|
155
|
+
} else {
|
|
156
|
+
sortBy.value = column;
|
|
157
|
+
sortDirection.value = meta.initSortOrder;
|
|
158
|
+
}
|
|
159
|
+
if (isAction) ctx.emit('columnSorted', column, sortDirection.value);
|
|
160
|
+
};
|
|
161
|
+
onMounted(function () {
|
|
162
|
+
if (Number(props.autoSortColumn) >= 0) {
|
|
163
|
+
var col = rawColumns.value[Number(props.autoSortColumn)];
|
|
164
|
+
if (col) onSort(col, false);
|
|
165
|
+
}
|
|
166
|
+
if (props.totalAmount && props.pageSize) {
|
|
167
|
+
maxPageAmount.value = Math.ceil(props.totalAmount / props.pageSize);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
var currentPage = ref(1);
|
|
171
|
+
var maxPageAmount = ref();
|
|
172
|
+
var pageArrowClick = function pageArrowClick(next) {
|
|
173
|
+
currentPage.value += next ? 1 : -1;
|
|
174
|
+
ctx.emit('pageChanged', next);
|
|
175
|
+
window.scrollTo({
|
|
176
|
+
top: 0,
|
|
177
|
+
behavior: 'smooth'
|
|
178
|
+
});
|
|
179
|
+
};
|
|
180
|
+
var rowClicked = function rowClicked(row) {
|
|
181
|
+
if (props.clickableRows) ctx.emit('rowClicked', row);
|
|
182
|
+
};
|
|
183
|
+
var getRowKey = function getRowKey(row, index) {
|
|
184
|
+
if (typeof props.rowKey === 'function') return props.rowKey(row);
|
|
185
|
+
if (typeof props.rowKey === 'string') return row[props.rowKey];
|
|
186
|
+
return index !== null && index !== void 0 ? index : row; // fallback, not ideal but safe
|
|
187
|
+
};
|
|
188
|
+
var skeletonRowCount = computed(function () {
|
|
189
|
+
var _props$items3;
|
|
190
|
+
return Math.min(((_props$items3 = props.items) === null || _props$items3 === void 0 ? void 0 : _props$items3.length) || 5, 8);
|
|
191
|
+
});
|
|
192
|
+
var getComponentProps = function getComponentProps(col, row) {
|
|
193
|
+
var value = row[col.key];
|
|
194
|
+
var ctx = {
|
|
195
|
+
value: value,
|
|
196
|
+
row: row,
|
|
197
|
+
column: col.key
|
|
198
|
+
};
|
|
199
|
+
var p = col.componentProps;
|
|
200
|
+
return typeof p === 'function' ? p(ctx) : p !== null && p !== void 0 ? p : {};
|
|
201
|
+
};
|
|
202
|
+
var getComponentHandlers = function getComponentHandlers(col, row) {
|
|
203
|
+
var value = row[col.key];
|
|
204
|
+
var ctx = {
|
|
205
|
+
value: value,
|
|
206
|
+
row: row,
|
|
207
|
+
column: col.key
|
|
208
|
+
};
|
|
209
|
+
var h = col.componentEventHandlers;
|
|
210
|
+
return typeof h === 'function' ? h(ctx) : h !== null && h !== void 0 ? h : {};
|
|
211
|
+
};
|
|
212
|
+
return {
|
|
213
|
+
colMeta: colMeta,
|
|
214
|
+
sortBy: sortBy,
|
|
215
|
+
sortDirection: sortDirection,
|
|
216
|
+
currentSortedColumn: currentSortedColumn,
|
|
217
|
+
onSort: onSort,
|
|
218
|
+
displayRows: displayRows,
|
|
219
|
+
rowClicked: rowClicked,
|
|
220
|
+
bgHoverColor: bgHoverColor,
|
|
221
|
+
currentPage: currentPage,
|
|
222
|
+
maxPageAmount: maxPageAmount,
|
|
223
|
+
pageArrowClick: pageArrowClick,
|
|
224
|
+
getRowKey: getRowKey,
|
|
225
|
+
skeletonRowCount: skeletonRowCount,
|
|
226
|
+
getComponentProps: getComponentProps,
|
|
227
|
+
getComponentHandlers: getComponentHandlers
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
var __injectCSSVars__ = function __injectCSSVars__() {
|
|
232
|
+
useCssVars(function (_ctx) {
|
|
233
|
+
return {
|
|
234
|
+
"v6ed5b746": _ctx.bgHoverColor
|
|
235
|
+
};
|
|
236
|
+
});
|
|
237
|
+
};
|
|
238
|
+
var __setup__ = __default__.setup;
|
|
239
|
+
__default__.setup = __setup__ ? function (props, ctx) {
|
|
240
|
+
__injectCSSVars__();
|
|
241
|
+
return __setup__(props, ctx);
|
|
242
|
+
} : __injectCSSVars__;
|
|
243
|
+
|
|
244
|
+
var _hoisted_1$2 = {
|
|
245
|
+
"class": "flex flex-col"
|
|
246
|
+
};
|
|
247
|
+
var _hoisted_2$1 = ["aria-busy"];
|
|
248
|
+
var _hoisted_3$1 = {
|
|
249
|
+
"class": "text-base border-b border-grey-60"
|
|
250
|
+
};
|
|
251
|
+
var _hoisted_4 = ["tabindex", "onKeydown", "onClick"];
|
|
252
|
+
var _hoisted_5 = {
|
|
253
|
+
"class": "flex flex-row items-center"
|
|
254
|
+
};
|
|
255
|
+
var _hoisted_6 = {
|
|
256
|
+
key: 0,
|
|
257
|
+
"class": "ml-1 flex items-center justify-center size-5"
|
|
258
|
+
};
|
|
259
|
+
var _hoisted_7 = {
|
|
260
|
+
key: 0,
|
|
261
|
+
"class": "py-4 pl-5 pr-3 text-left"
|
|
262
|
+
};
|
|
263
|
+
var _hoisted_8 = ["tabindex", "onClick", "onKeydown"];
|
|
264
|
+
var _hoisted_9 = {
|
|
265
|
+
key: 1
|
|
266
|
+
};
|
|
267
|
+
var _hoisted_10 = ["innerHTML"];
|
|
268
|
+
var _hoisted_11 = {
|
|
269
|
+
key: 0,
|
|
270
|
+
"class": "flex flex-row justify-center h-[44px] mt-8 space-x-2 mb-[40px]"
|
|
271
|
+
};
|
|
272
|
+
function render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
273
|
+
var _component_ArrowSortSvg = resolveComponent("ArrowSortSvg");
|
|
274
|
+
var _component_ArrowDownSvg = resolveComponent("ArrowDownSvg");
|
|
275
|
+
var _component_FwLoadingBar = resolveComponent("FwLoadingBar");
|
|
276
|
+
var _component_ChevronLeftSvg = resolveComponent("ChevronLeftSvg");
|
|
277
|
+
var _component_FwButton = resolveComponent("FwButton");
|
|
278
|
+
var _component_ChevronRightSvg = resolveComponent("ChevronRightSvg");
|
|
279
|
+
return openBlock(), createElementBlock("div", _hoisted_1$2, [createElementVNode("table", {
|
|
280
|
+
"class": normalizeClass(["fw-table table-auto flex-1", {
|
|
281
|
+
'cursor-wait': _ctx.loading
|
|
282
|
+
}]),
|
|
283
|
+
"aria-live": "polite",
|
|
284
|
+
"aria-busy": _ctx.loading
|
|
285
|
+
}, [createElementVNode("thead", _hoisted_3$1, [createElementVNode("tr", null, [_ctx.$slots.preHead ? renderSlot(_ctx.$slots, "preHead", {
|
|
286
|
+
key: 0
|
|
287
|
+
}) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.colMeta, function (col) {
|
|
288
|
+
return withDirectives((openBlock(), createElementBlock("th", {
|
|
289
|
+
key: col.key,
|
|
290
|
+
"class": normalizeClass(["fw-table-head py-6 pl-5 pr-3 text-left font-medium text-brand-text1", col.sortable ? 'cursor-pointer fw-table-head--sortable' : '']),
|
|
291
|
+
tabindex: col.sortable ? 0 : -1,
|
|
292
|
+
onKeydown: withKeys(function ($event) {
|
|
293
|
+
return _ctx.onSort(col.key);
|
|
294
|
+
}, ["enter", "space"]),
|
|
295
|
+
onClick: function onClick($event) {
|
|
296
|
+
return _ctx.onSort(col.key);
|
|
297
|
+
}
|
|
298
|
+
}, [createElementVNode("div", _hoisted_5, [createElementVNode("span", {
|
|
299
|
+
"class": normalizeClass(col.isActiveSort ? 'text-primary' : '')
|
|
300
|
+
}, toDisplayString(col.key), 3), col.sortable ? (openBlock(), createElementBlock("span", _hoisted_6, [!col.isActiveSort ? (openBlock(), createBlock(_component_ArrowSortSvg, {
|
|
301
|
+
key: 0,
|
|
302
|
+
name: "arrow-sort",
|
|
303
|
+
"class": "inline-block size-5 text-brand-text2"
|
|
304
|
+
})) : (openBlock(), createBlock(_component_ArrowDownSvg, {
|
|
305
|
+
key: 1,
|
|
306
|
+
name: "arrow-down",
|
|
307
|
+
"class": normalizeClass(["inline-block size-4 text-primary", _ctx.sortDirection === 'asc' ? 'rotate-180' : ''])
|
|
308
|
+
}, null, 8, ["class"]))])) : createCommentVNode("", true)])], 42, _hoisted_4)), [[vShow, !col.disabled]]);
|
|
309
|
+
}), 128)), _ctx.$slots.head ? renderSlot(_ctx.$slots, "head", {
|
|
310
|
+
key: 1
|
|
311
|
+
}) : createCommentVNode("", true)])]), createVNode(TransitionGroup, {
|
|
312
|
+
tag: "tbody",
|
|
313
|
+
name: "fw-table-animate",
|
|
314
|
+
"class": "fw-table--tbody text-base bg-white font-normal",
|
|
315
|
+
mode: "out-in"
|
|
316
|
+
}, {
|
|
317
|
+
"default": withCtx(function () {
|
|
318
|
+
return [_ctx.loading ? (openBlock(true), createElementBlock(Fragment, {
|
|
319
|
+
key: 0
|
|
320
|
+
}, renderList(_ctx.skeletonRowCount, function (n) {
|
|
321
|
+
return openBlock(), createElementBlock("tr", {
|
|
322
|
+
key: 'skeleton-' + n
|
|
323
|
+
}, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.colMeta, function (col) {
|
|
324
|
+
return withDirectives((openBlock(), createElementBlock("td", {
|
|
325
|
+
key: 'skeleton-' + n + '-' + col.key,
|
|
326
|
+
"class": "py-4 pl-5 pr-3 text-left"
|
|
327
|
+
}, [createVNode(_component_FwLoadingBar, {
|
|
328
|
+
"class": "w-full h-7"
|
|
329
|
+
})])), [[vShow, !col.disabled]]);
|
|
330
|
+
}), 128)), _ctx.$slots.row ? (openBlock(), createElementBlock("td", _hoisted_7, [createVNode(_component_FwLoadingBar, {
|
|
331
|
+
"class": "w-full h-7"
|
|
332
|
+
})])) : createCommentVNode("", true)]);
|
|
333
|
+
}), 128)) : (openBlock(true), createElementBlock(Fragment, {
|
|
334
|
+
key: 1
|
|
335
|
+
}, renderList(_ctx.displayRows, function (row) {
|
|
336
|
+
return openBlock(), createElementBlock("tr", {
|
|
337
|
+
key: _ctx.getRowKey(row),
|
|
338
|
+
"class": normalizeClass(["fw-table-row border-b last:border-b-0 border-grey-60", {
|
|
339
|
+
'cursor-pointer': _ctx.clickableRows
|
|
340
|
+
}]),
|
|
341
|
+
tabindex: _ctx.clickableRows ? 0 : -1,
|
|
342
|
+
onClick: function onClick($event) {
|
|
343
|
+
return _ctx.rowClicked(row);
|
|
344
|
+
},
|
|
345
|
+
onKeydown: withKeys(function ($event) {
|
|
346
|
+
return _ctx.rowClicked(row);
|
|
347
|
+
}, ["enter", "space"])
|
|
348
|
+
}, [_ctx.$slots.preRow ? renderSlot(_ctx.$slots, "preRow", {
|
|
349
|
+
key: 0,
|
|
350
|
+
row: row
|
|
351
|
+
}) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.colMeta, function (col) {
|
|
352
|
+
return withDirectives((openBlock(), createElementBlock("td", {
|
|
353
|
+
key: col.key,
|
|
354
|
+
"class": "py-5 pl-5 pr-3 text-left"
|
|
355
|
+
}, [col.component ? (openBlock(), createBlock(resolveDynamicComponent(col.component), mergeProps({
|
|
356
|
+
key: 0,
|
|
357
|
+
ref_for: true
|
|
358
|
+
}, _ctx.getComponentProps(col, row), toHandlers(_ctx.getComponentHandlers(col, row))), null, 16)) : !col.html ? (openBlock(), createElementBlock("span", _hoisted_9, toDisplayString(col.format(row[col.key], row)), 1)) : (openBlock(), createElementBlock("span", {
|
|
359
|
+
key: 2,
|
|
360
|
+
innerHTML: col.format(row[col.key], row)
|
|
361
|
+
}, null, 8, _hoisted_10))])), [[vShow, !col.disabled]]);
|
|
362
|
+
}), 128)), _ctx.$slots.row ? renderSlot(_ctx.$slots, "row", {
|
|
363
|
+
key: 1,
|
|
364
|
+
row: row
|
|
365
|
+
}) : createCommentVNode("", true)], 42, _hoisted_8);
|
|
366
|
+
}), 128))];
|
|
367
|
+
}),
|
|
368
|
+
_: 3
|
|
369
|
+
})], 10, _hoisted_2$1), _ctx.enablePagination ? (openBlock(), createElementBlock("div", _hoisted_11, [createVNode(_component_FwButton, {
|
|
370
|
+
variant: "tertiary",
|
|
371
|
+
disabled: _ctx.currentPage === 1,
|
|
372
|
+
size: "sm",
|
|
373
|
+
"class": "border-grey-40",
|
|
374
|
+
onClick: _cache[0] || (_cache[0] = function ($event) {
|
|
375
|
+
return _ctx.pageArrowClick(false);
|
|
376
|
+
})
|
|
377
|
+
}, {
|
|
378
|
+
"default": withCtx(function () {
|
|
379
|
+
return [createVNode(_component_ChevronLeftSvg, {
|
|
380
|
+
name: "chevron-left",
|
|
381
|
+
"class": "h-4 w-4",
|
|
382
|
+
"stroke-width": "3"
|
|
383
|
+
})];
|
|
384
|
+
}),
|
|
385
|
+
_: 1
|
|
386
|
+
}, 8, ["disabled"]), renderSlot(_ctx.$slots, "page"), createVNode(_component_FwButton, {
|
|
387
|
+
variant: "tertiary",
|
|
388
|
+
disabled: _ctx.currentPage === _ctx.maxPageAmount,
|
|
389
|
+
size: "sm",
|
|
390
|
+
"class": "border-grey-40",
|
|
391
|
+
onClick: _cache[1] || (_cache[1] = function ($event) {
|
|
392
|
+
return _ctx.pageArrowClick(true);
|
|
393
|
+
})
|
|
394
|
+
}, {
|
|
395
|
+
"default": withCtx(function () {
|
|
396
|
+
return [createVNode(_component_ChevronRightSvg, {
|
|
397
|
+
name: "chevron-right",
|
|
398
|
+
"class": "h-4 w-4"
|
|
399
|
+
})];
|
|
400
|
+
}),
|
|
401
|
+
_: 1
|
|
402
|
+
}, 8, ["disabled"])])) : createCommentVNode("", true)]);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
var css_248z = ".fw-table-head[data-v-2c8e41ee]{-webkit-transition:background-color .16s ease,color .16s ease;-moz-transition:background-color .16s ease,color .16s ease;transition:background-color .16s ease,color .16s ease}.fw-table-head--sortable[data-v-2c8e41ee]:hover{background-color:var(--v6ed5b746)}.fw-table-row[data-v-2c8e41ee]{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:background-color .16s ease;-moz-transition:background-color .16s ease;transition:background-color .16s ease}.fw-table-row[data-v-2c8e41ee]:hover{background-color:var(--v6ed5b746)}.fw-table--tbody[data-v-2c8e41ee]{overflow-anchor:none;position:relative;will-change:transform,opacity}.fw-table-animate-move[data-v-2c8e41ee]{-webkit-transition:-webkit-transform .22s cubic-bezier(.16,1,.3,1);transition:-webkit-transform .22s cubic-bezier(.16,1,.3,1);-moz-transition:transform .22s cubic-bezier(.16,1,.3,1),-moz-transform .22s cubic-bezier(.16,1,.3,1);transition:transform .22s cubic-bezier(.16,1,.3,1);transition:transform .22s cubic-bezier(.16,1,.3,1),-webkit-transform .22s cubic-bezier(.16,1,.3,1),-moz-transform .22s cubic-bezier(.16,1,.3,1);will-change:transform}.fw-table-animate-enter-active[data-v-2c8e41ee]{-webkit-transition:opacity .12s ease;-moz-transition:opacity .12s ease;transition:opacity .12s ease}.fw-table-animate-enter-from[data-v-2c8e41ee]{opacity:0}.fw-table-animate-enter-active[data-v-2c8e41ee],.fw-table-animate-leave-active[data-v-2c8e41ee]{will-change:transform,opacity}.fw-table-animate-leave-active[data-v-2c8e41ee]{-webkit-transition:none!important;-moz-transition:none!important;transition:none!important}.fw-table-animate-leave-to[data-v-2c8e41ee]{opacity:1;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}@media (prefers-reduced-motion:reduce){.fw-table-animate-enter-active[data-v-2c8e41ee],.fw-table-animate-leave-active[data-v-2c8e41ee],.fw-table-animate-move[data-v-2c8e41ee],.fw-table-head[data-v-2c8e41ee],.fw-table-row[data-v-2c8e41ee]{-webkit-transition:none!important;-moz-transition:none!important;transition:none!important}}";
|
|
406
|
+
var stylesheet = ".fw-table-head[data-v-2c8e41ee]{-webkit-transition:background-color .16s ease,color .16s ease;-moz-transition:background-color .16s ease,color .16s ease;transition:background-color .16s ease,color .16s ease}.fw-table-head--sortable[data-v-2c8e41ee]:hover{background-color:var(--v6ed5b746)}.fw-table-row[data-v-2c8e41ee]{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:background-color .16s ease;-moz-transition:background-color .16s ease;transition:background-color .16s ease}.fw-table-row[data-v-2c8e41ee]:hover{background-color:var(--v6ed5b746)}.fw-table--tbody[data-v-2c8e41ee]{overflow-anchor:none;position:relative;will-change:transform,opacity}.fw-table-animate-move[data-v-2c8e41ee]{-webkit-transition:-webkit-transform .22s cubic-bezier(.16,1,.3,1);transition:-webkit-transform .22s cubic-bezier(.16,1,.3,1);-moz-transition:transform .22s cubic-bezier(.16,1,.3,1),-moz-transform .22s cubic-bezier(.16,1,.3,1);transition:transform .22s cubic-bezier(.16,1,.3,1);transition:transform .22s cubic-bezier(.16,1,.3,1),-webkit-transform .22s cubic-bezier(.16,1,.3,1),-moz-transform .22s cubic-bezier(.16,1,.3,1);will-change:transform}.fw-table-animate-enter-active[data-v-2c8e41ee]{-webkit-transition:opacity .12s ease;-moz-transition:opacity .12s ease;transition:opacity .12s ease}.fw-table-animate-enter-from[data-v-2c8e41ee]{opacity:0}.fw-table-animate-enter-active[data-v-2c8e41ee],.fw-table-animate-leave-active[data-v-2c8e41ee]{will-change:transform,opacity}.fw-table-animate-leave-active[data-v-2c8e41ee]{-webkit-transition:none!important;-moz-transition:none!important;transition:none!important}.fw-table-animate-leave-to[data-v-2c8e41ee]{opacity:1;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}@media (prefers-reduced-motion:reduce){.fw-table-animate-enter-active[data-v-2c8e41ee],.fw-table-animate-leave-active[data-v-2c8e41ee],.fw-table-animate-move[data-v-2c8e41ee],.fw-table-head[data-v-2c8e41ee],.fw-table-row[data-v-2c8e41ee]{-webkit-transition:none!important;-moz-transition:none!important;transition:none!important}}";
|
|
407
|
+
styleInject(css_248z);
|
|
408
|
+
|
|
409
|
+
__default__.render = render$2;
|
|
410
|
+
__default__.__scopeId = "data-v-2c8e41ee";
|
|
411
|
+
|
|
412
|
+
var script$1 = defineComponent({
|
|
413
|
+
name: 'FwTableHead'
|
|
414
|
+
});
|
|
415
|
+
|
|
416
|
+
var _hoisted_1$1 = {
|
|
417
|
+
"class": "py-6 px-5 text-left font-medium"
|
|
418
|
+
};
|
|
419
|
+
var _hoisted_2 = {
|
|
420
|
+
"class": "flex flex-row"
|
|
421
|
+
};
|
|
422
|
+
var _hoisted_3 = {
|
|
423
|
+
key: 0,
|
|
424
|
+
"class": "w-full"
|
|
425
|
+
};
|
|
426
|
+
function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
427
|
+
return openBlock(), createElementBlock("th", _hoisted_1$1, [createElementVNode("div", _hoisted_2, [_ctx.$slots["default"] ? (openBlock(), createElementBlock("div", _hoisted_3, [renderSlot(_ctx.$slots, "default")])) : createCommentVNode("", true)])]);
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
script$1.render = render$1;
|
|
431
|
+
|
|
432
|
+
var script = defineComponent({
|
|
433
|
+
name: 'FwTableRow'
|
|
434
|
+
});
|
|
435
|
+
|
|
436
|
+
var _hoisted_1 = {
|
|
437
|
+
"class": "py-3 px-4 text-left whitespace-nowrap"
|
|
438
|
+
};
|
|
439
|
+
function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
440
|
+
return openBlock(), createElementBlock("td", _hoisted_1, [_ctx.$slots["default"] ? renderSlot(_ctx.$slots, "default", {
|
|
441
|
+
key: 0
|
|
442
|
+
}) : createCommentVNode("", true)]);
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
script.render = render;
|
|
446
|
+
|
|
447
|
+
export { __default__ as _, script as a, script$1 as s };
|
package/esm/fw-table.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
export { _ as FwTable, s as FwTableHead, a as FwTableRow } from './fw-table-row-
|
|
2
|
-
import './_rollupPluginBabelHelpers-DODWUb5N.js';
|
|
1
|
+
export { _ as FwTable, s as FwTableHead, a as FwTableRow } from './fw-table-row-D6FdCJMs.js';
|
|
3
2
|
import 'vue';
|
|
4
|
-
import './get-root-colours-
|
|
3
|
+
import './get-root-colours-DCCAnRF4.js';
|
|
5
4
|
import './fw-button.js';
|
|
6
|
-
import './fw-button-
|
|
7
|
-
import './index-
|
|
5
|
+
import './fw-button-DZTHZLjk.js';
|
|
6
|
+
import './index-DHyRsKsZ.js';
|
|
8
7
|
import './style-inject.es-tgCJW-Cu.js';
|
|
9
8
|
import './fw-loading.js';
|
|
10
|
-
import './fw-loading-bar-
|
|
9
|
+
import './fw-loading-bar-3x4tkF1B.js';
|
package/esm/fw-tabs.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import { defineComponent,
|
|
1
|
+
import { defineComponent, shallowReactive, shallowRef, computed, provide, resolveComponent, createElementBlock, openBlock, createCommentVNode, createElementVNode, Fragment, renderList, createVNode, normalizeClass, withCtx, createTextVNode, toDisplayString, renderSlot, inject, getCurrentInstance, ref, onMounted, onBeforeUnmount, createBlock, Transition, withDirectives, vShow } from 'vue';
|
|
2
|
+
import { s as script$2 } from './fw-button-DZTHZLjk.js';
|
|
3
|
+
import { s as styleInject } from './style-inject.es-tgCJW-Cu.js';
|
|
4
|
+
import './index-DHyRsKsZ.js';
|
|
2
5
|
|
|
3
6
|
var script$1 = defineComponent({
|
|
4
7
|
name: 'FwTabs',
|
|
8
|
+
components: {
|
|
9
|
+
FwButton: script$2
|
|
10
|
+
},
|
|
5
11
|
props: {
|
|
6
12
|
/**
|
|
7
13
|
* The active tab v-model
|
|
@@ -13,18 +19,41 @@ var script$1 = defineComponent({
|
|
|
13
19
|
},
|
|
14
20
|
emits: ['update:modelValue'],
|
|
15
21
|
setup: function setup(props, ctx) {
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
tabs: ref([])
|
|
22
|
+
var tabs = shallowReactive([]);
|
|
23
|
+
var nextIndex = shallowRef(0);
|
|
24
|
+
var active = computed(function () {
|
|
25
|
+
return props.modelValue;
|
|
21
26
|
});
|
|
22
|
-
var
|
|
23
|
-
|
|
27
|
+
var registerTabs = function registerTabs(uid, label) {
|
|
28
|
+
var index = nextIndex.value++;
|
|
29
|
+
tabs.push({
|
|
30
|
+
uid: uid,
|
|
31
|
+
label: label,
|
|
32
|
+
index: index
|
|
33
|
+
});
|
|
34
|
+
return index;
|
|
35
|
+
};
|
|
36
|
+
var unregisterTabs = function unregisterTabs(uid) {
|
|
37
|
+
var i = tabs.findIndex(function (t) {
|
|
38
|
+
return t.uid === uid;
|
|
39
|
+
});
|
|
40
|
+
if (i !== -1) tabs.splice(i, 1);
|
|
41
|
+
};
|
|
42
|
+
var selectTab = function selectTab(index) {
|
|
43
|
+
if (index !== active.value) {
|
|
44
|
+
ctx.emit('update:modelValue', index);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
var api = {
|
|
48
|
+
active: active,
|
|
49
|
+
registerTabs: registerTabs,
|
|
50
|
+
unregisterTabs: unregisterTabs,
|
|
51
|
+
tabs: tabs
|
|
24
52
|
};
|
|
25
|
-
provide('
|
|
53
|
+
provide('tabsApi', api);
|
|
26
54
|
return {
|
|
27
|
-
|
|
55
|
+
tabs: tabs,
|
|
56
|
+
active: active,
|
|
28
57
|
selectTab: selectTab
|
|
29
58
|
};
|
|
30
59
|
}
|
|
@@ -37,23 +66,39 @@ var _hoisted_2 = {
|
|
|
37
66
|
key: 0,
|
|
38
67
|
"class": "flex flex-wrap -mb-px border-b border-brand-border2"
|
|
39
68
|
};
|
|
40
|
-
var _hoisted_3 =
|
|
69
|
+
var _hoisted_3 = {
|
|
70
|
+
"class": "fw-tabs--panels relative"
|
|
71
|
+
};
|
|
41
72
|
function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
42
|
-
|
|
73
|
+
var _component_FwButton = resolveComponent("FwButton");
|
|
74
|
+
return openBlock(), createElementBlock("div", _hoisted_1$1, [_ctx.tabs.length ? (openBlock(), createElementBlock("ul", _hoisted_2, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.tabs, function (tab) {
|
|
43
75
|
return openBlock(), createElementBlock("li", {
|
|
44
|
-
key:
|
|
76
|
+
key: tab.uid,
|
|
45
77
|
"class": "mr-2"
|
|
46
|
-
}, [
|
|
78
|
+
}, [createVNode(_component_FwButton, {
|
|
47
79
|
type: "button",
|
|
48
|
-
|
|
80
|
+
variant: "transparent",
|
|
81
|
+
rounded: false,
|
|
82
|
+
"class": normalizeClass(["fw-tab-btn !no-underline relative inline-block p-4 outline-primary", _ctx.active === tab.index && 'is-active']),
|
|
83
|
+
selected: _ctx.active === tab.index,
|
|
49
84
|
onClick: function onClick($event) {
|
|
50
|
-
return _ctx.selectTab(
|
|
85
|
+
return _ctx.selectTab(tab.index);
|
|
51
86
|
}
|
|
52
|
-
},
|
|
53
|
-
|
|
87
|
+
}, {
|
|
88
|
+
"default": withCtx(function () {
|
|
89
|
+
return [createTextVNode(toDisplayString(tab.label), 1)];
|
|
90
|
+
}),
|
|
91
|
+
_: 2
|
|
92
|
+
}, 1032, ["selected", "class", "onClick"])]);
|
|
93
|
+
}), 128))])) : createCommentVNode("", true), createElementVNode("div", _hoisted_3, [renderSlot(_ctx.$slots, "default")])]);
|
|
54
94
|
}
|
|
55
95
|
|
|
96
|
+
var css_248z$1 = ".fw-tab-btn[data-v-1f725c9a]:after{background:var(--colorPrimary);bottom:-1px;content:\"\";height:2px;left:0;pointer-events:none;position:absolute;right:0;-webkit-transform:scaleX(0);-moz-transform:scaleX(0);-ms-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:center;-moz-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transition:-webkit-transform .22s ease;transition:-webkit-transform .22s ease;-moz-transition:transform .22s ease,-moz-transform .22s ease;transition:transform .22s ease;transition:transform .22s ease,-webkit-transform .22s ease,-moz-transform .22s ease;will-change:transform}.fw-tab-btn[data-v-1f725c9a]:hover:after{-webkit-transform:scaleX(.15);-moz-transform:scaleX(.15);-ms-transform:scaleX(.15);transform:scaleX(.15)}.fw-tab-btn.is-active[data-v-1f725c9a]{color:var(--color-primary)}.fw-tab-btn.is-active[data-v-1f725c9a]:after{-webkit-transform:scaleX(1)!important;-moz-transform:scaleX(1)!important;-ms-transform:scaleX(1)!important;transform:scaleX(1)!important}.fw-tab-btn[data-v-1f725c9a]:focus-visible:after{-webkit-transform:scaleX(.35);-moz-transform:scaleX(.35);-ms-transform:scaleX(.35);transform:scaleX(.35)}";
|
|
97
|
+
var stylesheet$1 = ".fw-tab-btn[data-v-1f725c9a]:after{background:var(--colorPrimary);bottom:-1px;content:\"\";height:2px;left:0;pointer-events:none;position:absolute;right:0;-webkit-transform:scaleX(0);-moz-transform:scaleX(0);-ms-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:center;-moz-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transition:-webkit-transform .22s ease;transition:-webkit-transform .22s ease;-moz-transition:transform .22s ease,-moz-transform .22s ease;transition:transform .22s ease;transition:transform .22s ease,-webkit-transform .22s ease,-moz-transform .22s ease;will-change:transform}.fw-tab-btn[data-v-1f725c9a]:hover:after{-webkit-transform:scaleX(.15);-moz-transform:scaleX(.15);-ms-transform:scaleX(.15);transform:scaleX(.15)}.fw-tab-btn.is-active[data-v-1f725c9a]{color:var(--color-primary)}.fw-tab-btn.is-active[data-v-1f725c9a]:after{-webkit-transform:scaleX(1)!important;-moz-transform:scaleX(1)!important;-ms-transform:scaleX(1)!important;transform:scaleX(1)!important}.fw-tab-btn[data-v-1f725c9a]:focus-visible:after{-webkit-transform:scaleX(.35);-moz-transform:scaleX(.35);-ms-transform:scaleX(.35);transform:scaleX(.35)}";
|
|
98
|
+
styleInject(css_248z$1);
|
|
99
|
+
|
|
56
100
|
script$1.render = render$1;
|
|
101
|
+
script$1.__scopeId = "data-v-1f725c9a";
|
|
57
102
|
|
|
58
103
|
var script = defineComponent({
|
|
59
104
|
name: 'FwTab',
|
|
@@ -67,27 +112,21 @@ var script = defineComponent({
|
|
|
67
112
|
}
|
|
68
113
|
},
|
|
69
114
|
setup: function setup(props) {
|
|
115
|
+
var api = inject('tabsApi');
|
|
116
|
+
if (!api) throw new Error('FwTab must be used inside FwTabs.');
|
|
70
117
|
var instance = getCurrentInstance();
|
|
71
|
-
var
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return state === null || state === void 0 || (_state$tabs = state.tabs) === null || _state$tabs === void 0 ? void 0 : _state$tabs.findIndex(function (target) {
|
|
75
|
-
return target.uid === (instance === null || instance === void 0 ? void 0 : instance.uid);
|
|
76
|
-
});
|
|
118
|
+
var myIndex = ref(-1);
|
|
119
|
+
onMounted(function () {
|
|
120
|
+
myIndex.value = api.registerTabs(instance.uid, props.label);
|
|
77
121
|
});
|
|
78
|
-
|
|
79
|
-
|
|
122
|
+
onBeforeUnmount(function () {
|
|
123
|
+
api.unregisterTabs(instance.uid);
|
|
80
124
|
});
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
var _state$tabs2;
|
|
84
|
-
state === null || state === void 0 || (_state$tabs2 = state.tabs) === null || _state$tabs2 === void 0 || _state$tabs2.push(instance);
|
|
85
|
-
}
|
|
125
|
+
var isActive = computed(function () {
|
|
126
|
+
return myIndex.value === api.active.value;
|
|
86
127
|
});
|
|
87
128
|
return {
|
|
88
|
-
isActive: isActive
|
|
89
|
-
index: index,
|
|
90
|
-
props: props
|
|
129
|
+
isActive: isActive
|
|
91
130
|
};
|
|
92
131
|
}
|
|
93
132
|
});
|
|
@@ -96,9 +135,22 @@ var _hoisted_1 = {
|
|
|
96
135
|
"class": "fw-tab w-full"
|
|
97
136
|
};
|
|
98
137
|
function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
99
|
-
return
|
|
138
|
+
return openBlock(), createBlock(Transition, {
|
|
139
|
+
name: "fw-tab-slide",
|
|
140
|
+
appear: ""
|
|
141
|
+
}, {
|
|
142
|
+
"default": withCtx(function () {
|
|
143
|
+
return [withDirectives(createElementVNode("div", _hoisted_1, [renderSlot(_ctx.$slots, "default")], 512), [[vShow, _ctx.isActive]])];
|
|
144
|
+
}),
|
|
145
|
+
_: 3
|
|
146
|
+
});
|
|
100
147
|
}
|
|
101
148
|
|
|
149
|
+
var css_248z = ".fw-tab[data-v-334b8b64]{inset:0;position:absolute}.fw-tab[style*=\"display: none\"][data-v-334b8b64]{pointer-events:none}.fw-tab-slide-enter-active[data-v-334b8b64],.fw-tab-slide-leave-active[data-v-334b8b64]{-webkit-transition:opacity .32s cubic-bezier(.22,1,.36,1),-webkit-transform .32s cubic-bezier(.22,1,.36,1);transition:opacity .32s cubic-bezier(.22,1,.36,1),-webkit-transform .32s cubic-bezier(.22,1,.36,1);-moz-transition:opacity .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1),-moz-transform .32s cubic-bezier(.22,1,.36,1);transition:opacity .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1);transition:opacity .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1),-webkit-transform .32s cubic-bezier(.22,1,.36,1),-moz-transform .32s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.fw-tab-slide-enter-from[data-v-334b8b64],.fw-tab-slide-leave-to[data-v-334b8b64]{opacity:0;-webkit-transform:translateY(10px);-moz-transform:translateY(10px);-ms-transform:translateY(10px);transform:translateY(10px)}.fw-tab-slide-enter-to[data-v-334b8b64],.fw-tab-slide-leave-from[data-v-334b8b64]{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}";
|
|
150
|
+
var stylesheet = ".fw-tab[data-v-334b8b64]{inset:0;position:absolute}.fw-tab[style*=\"display: none\"][data-v-334b8b64]{pointer-events:none}.fw-tab-slide-enter-active[data-v-334b8b64],.fw-tab-slide-leave-active[data-v-334b8b64]{-webkit-transition:opacity .32s cubic-bezier(.22,1,.36,1),-webkit-transform .32s cubic-bezier(.22,1,.36,1);transition:opacity .32s cubic-bezier(.22,1,.36,1),-webkit-transform .32s cubic-bezier(.22,1,.36,1);-moz-transition:opacity .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1),-moz-transform .32s cubic-bezier(.22,1,.36,1);transition:opacity .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1);transition:opacity .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1),-webkit-transform .32s cubic-bezier(.22,1,.36,1),-moz-transform .32s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.fw-tab-slide-enter-from[data-v-334b8b64],.fw-tab-slide-leave-to[data-v-334b8b64]{opacity:0;-webkit-transform:translateY(10px);-moz-transform:translateY(10px);-ms-transform:translateY(10px);transform:translateY(10px)}.fw-tab-slide-enter-to[data-v-334b8b64],.fw-tab-slide-leave-from[data-v-334b8b64]{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}";
|
|
151
|
+
styleInject(css_248z);
|
|
152
|
+
|
|
102
153
|
script.render = render;
|
|
154
|
+
script.__scopeId = "data-v-334b8b64";
|
|
103
155
|
|
|
104
156
|
export { script as FwTab, script$1 as FwTabs };
|