@pequity/squirrel 8.4.0 → 8.4.1
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.
|
@@ -260,9 +260,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
260
260
|
return rest;
|
|
261
261
|
});
|
|
262
262
|
const style = vue.computed(() => $attrs.style);
|
|
263
|
-
const selectableItemsCount = vue.computed(
|
|
264
|
-
() => internalItems.value.filter((item) => !isDisabled(item) || isSelected(item[props.itemValue])).length
|
|
265
|
-
);
|
|
266
263
|
vue.watch(
|
|
267
264
|
dropdownShow,
|
|
268
265
|
(nV) => {
|
|
@@ -502,7 +499,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
502
499
|
], 8, _hoisted_5)
|
|
503
500
|
], 2);
|
|
504
501
|
}), 128))
|
|
505
|
-
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, vue.toDisplayString(__props.multiple ? vue.unref(selectedItems).length ===
|
|
502
|
+
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, vue.toDisplayString(__props.multiple ? vue.unref(selectedItems).length === vue.unref(computedItems).length ? "All options selected" : `${vue.unref(selectedItems).length} option${vue.unref(selectedItems).length > 1 ? "s" : ""} selected` : vue.unref(selectedItems)[0][__props.itemText]), 1))
|
|
506
503
|
]),
|
|
507
504
|
__props.clearable && vue.unref(selectedItems).length ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
508
505
|
key: 2,
|
|
@@ -259,9 +259,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
259
259
|
return rest;
|
|
260
260
|
});
|
|
261
261
|
const style = computed(() => $attrs.style);
|
|
262
|
-
const selectableItemsCount = computed(
|
|
263
|
-
() => internalItems.value.filter((item) => !isDisabled(item) || isSelected(item[props.itemValue])).length
|
|
264
|
-
);
|
|
265
262
|
watch(
|
|
266
263
|
dropdownShow,
|
|
267
264
|
(nV) => {
|
|
@@ -501,7 +498,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
501
498
|
], 8, _hoisted_5)
|
|
502
499
|
], 2);
|
|
503
500
|
}), 128))
|
|
504
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_6, toDisplayString(__props.multiple ? unref(selectedItems).length ===
|
|
501
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_6, toDisplayString(__props.multiple ? unref(selectedItems).length === unref(computedItems).length ? "All options selected" : `${unref(selectedItems).length} option${unref(selectedItems).length > 1 ? "s" : ""} selected` : unref(selectedItems)[0][__props.itemText]), 1))
|
|
505
502
|
]),
|
|
506
503
|
__props.clearable && unref(selectedItems).length ? (openBlock(), createElementBlock("button", {
|
|
507
504
|
key: 2,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pequity/squirrel",
|
|
3
3
|
"description": "Squirrel component library",
|
|
4
|
-
"version": "8.4.
|
|
4
|
+
"version": "8.4.1",
|
|
5
5
|
"packageManager": "pnpm@10.6.4",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
@@ -50,27 +50,27 @@
|
|
|
50
50
|
"@commitlint/cli": "^19.8.1",
|
|
51
51
|
"@commitlint/config-conventional": "^19.8.1",
|
|
52
52
|
"@pequity/eslint-config": "^2.0.2",
|
|
53
|
-
"@playwright/test": "^1.53.
|
|
53
|
+
"@playwright/test": "^1.53.1",
|
|
54
54
|
"@semantic-release/changelog": "^6.0.3",
|
|
55
55
|
"@semantic-release/git": "^10.0.1",
|
|
56
|
-
"@storybook/addon-a11y": "^9.0.
|
|
57
|
-
"@storybook/addon-docs": "^9.0.
|
|
58
|
-
"@storybook/addon-links": "^9.0.
|
|
56
|
+
"@storybook/addon-a11y": "^9.0.14",
|
|
57
|
+
"@storybook/addon-docs": "^9.0.14",
|
|
58
|
+
"@storybook/addon-links": "^9.0.14",
|
|
59
59
|
"@storybook/test-runner": "^0.23.0",
|
|
60
|
-
"@storybook/vue3": "^9.0.
|
|
61
|
-
"@storybook/vue3-vite": "^9.0.
|
|
62
|
-
"@tanstack/vue-virtual": "3.13.
|
|
60
|
+
"@storybook/vue3": "^9.0.14",
|
|
61
|
+
"@storybook/vue3-vite": "^9.0.14",
|
|
62
|
+
"@tanstack/vue-virtual": "3.13.12",
|
|
63
63
|
"@types/jsdom": "^21.1.7",
|
|
64
64
|
"@types/lodash-es": "^4.17.12",
|
|
65
|
-
"@types/node": "^24.0.
|
|
65
|
+
"@types/node": "^24.0.7",
|
|
66
66
|
"@vitejs/plugin-vue": "^5.2.4",
|
|
67
|
-
"@vitest/coverage-v8": "^3.2.
|
|
68
|
-
"@vue/compiler-sfc": "3.5.
|
|
67
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
68
|
+
"@vue/compiler-sfc": "3.5.17",
|
|
69
69
|
"@vue/test-utils": "^2.4.6",
|
|
70
70
|
"@vuepic/vue-datepicker": "11.0.2",
|
|
71
71
|
"autoprefixer": "^10.4.21",
|
|
72
|
-
"eslint": "^9.
|
|
73
|
-
"eslint-plugin-storybook": "^9.0.
|
|
72
|
+
"eslint": "^9.30.0",
|
|
73
|
+
"eslint-plugin-storybook": "^9.0.14",
|
|
74
74
|
"floating-vue": "5.2.2",
|
|
75
75
|
"glob": "^11.0.3",
|
|
76
76
|
"husky": "^9.1.7",
|
|
@@ -80,19 +80,19 @@
|
|
|
80
80
|
"lodash-es": "4.17.21",
|
|
81
81
|
"make-coverage-badge": "^1.2.0",
|
|
82
82
|
"postcss": "^8.5.6",
|
|
83
|
-
"prettier": "^3.
|
|
84
|
-
"prettier-plugin-tailwindcss": "^0.6.
|
|
83
|
+
"prettier": "^3.6.2",
|
|
84
|
+
"prettier-plugin-tailwindcss": "^0.6.13",
|
|
85
85
|
"resolve-tspaths": "^0.8.23",
|
|
86
86
|
"rimraf": "^6.0.1",
|
|
87
87
|
"sass": "^1.89.2",
|
|
88
|
-
"semantic-release": "^24.2.
|
|
89
|
-
"storybook": "^9.0.
|
|
90
|
-
"svgo": "^
|
|
88
|
+
"semantic-release": "^24.2.6",
|
|
89
|
+
"storybook": "^9.0.14",
|
|
90
|
+
"svgo": "^4.0.0",
|
|
91
91
|
"tailwindcss": "^3.4.17",
|
|
92
92
|
"typescript": "5.8.3",
|
|
93
93
|
"vite": "^6.3.5",
|
|
94
|
-
"vitest": "^3.2.
|
|
95
|
-
"vue": "3.5.
|
|
94
|
+
"vitest": "^3.2.4",
|
|
95
|
+
"vue": "3.5.17",
|
|
96
96
|
"vue-currency-input": "3.2.1",
|
|
97
97
|
"vue-router": "4.5.1",
|
|
98
98
|
"vue-toastification": "2.0.0-rc.5",
|
|
@@ -198,58 +198,45 @@ describe('PDropdownSelect.vue', () => {
|
|
|
198
198
|
cleanup(wrapper);
|
|
199
199
|
});
|
|
200
200
|
|
|
201
|
-
it('shows "All options selected" when all
|
|
201
|
+
it('shows "All options selected" when all options are selected', async () => {
|
|
202
202
|
useVirtualizer.mockImplementation(() => createMockedVirtualizer(10));
|
|
203
203
|
|
|
204
204
|
const items = cloneDeep(filterListItems).slice(0, 10);
|
|
205
205
|
items[0].disabled = true;
|
|
206
206
|
items[1].disabled = true;
|
|
207
|
-
|
|
208
|
-
const wrapper = createWrapper({ selected: [1], items }, { multiple: true });
|
|
207
|
+
const wrapper = createWrapper({ selected: filterListItems.map((item) => item.value), items }, { multiple: true });
|
|
209
208
|
|
|
210
209
|
await wrapper.find('button').trigger('click');
|
|
211
|
-
await wrapper.findByText('Select all').trigger('click');
|
|
212
|
-
|
|
213
|
-
const selectedItemsOptions = wrapper.findAll('[p-select-list-option-item]');
|
|
214
|
-
const selectedItems = wrapper.findAll('[p-select-list-option-item].selected');
|
|
215
210
|
|
|
216
|
-
// Should have all non-disabled items (8) plus the pre-selected disabled item (1)
|
|
217
|
-
expect(selectedItems.length).toBe(selectedItemsOptions.length - 1);
|
|
218
|
-
expect(wrapper.vm.$data.selected.length).toBe(items.length - 1);
|
|
219
211
|
expect(wrapper.find('button').text()).toBe('All options selected');
|
|
220
212
|
|
|
221
213
|
cleanup(wrapper);
|
|
222
214
|
});
|
|
223
215
|
|
|
224
|
-
it('
|
|
216
|
+
it('does not select disabled options when "Select All" is clicked', async () => {
|
|
225
217
|
useVirtualizer.mockImplementation(() => createMockedVirtualizer(10));
|
|
226
218
|
|
|
227
219
|
const items = cloneDeep(filterListItems).slice(0, 10);
|
|
228
220
|
items[0].disabled = true;
|
|
229
|
-
|
|
221
|
+
items[1].disabled = true;
|
|
222
|
+
const wrapper = createWrapper({ selected: [], items }, { multiple: true });
|
|
230
223
|
|
|
231
|
-
|
|
224
|
+
await wrapper.find('button').trigger('click');
|
|
225
|
+
await wrapper.findByText('Select all').trigger('click');
|
|
226
|
+
|
|
227
|
+
expect(wrapper.find('button').text()).toBe('8 options selected');
|
|
232
228
|
|
|
233
229
|
cleanup(wrapper);
|
|
234
230
|
});
|
|
235
231
|
|
|
236
|
-
it('
|
|
232
|
+
it('shows number of selected options when not all non-disabled options are selected', async () => {
|
|
237
233
|
useVirtualizer.mockImplementation(() => createMockedVirtualizer(10));
|
|
238
234
|
|
|
239
235
|
const items = cloneDeep(filterListItems).slice(0, 10);
|
|
240
236
|
items[0].disabled = true;
|
|
241
|
-
|
|
242
|
-
const wrapper = createWrapper({ selected: [], items }, { multiple: true });
|
|
243
|
-
|
|
244
|
-
await wrapper.find('button').trigger('click');
|
|
245
|
-
|
|
246
|
-
await wrapper.findByText('Select all').trigger('click');
|
|
247
|
-
|
|
248
|
-
const selectedItemsOptions = wrapper.findAll('[p-select-list-option-item]');
|
|
249
|
-
const selectedItems = wrapper.findAll('[p-select-list-option-item].selected');
|
|
237
|
+
const wrapper = createWrapper({ selected: [2, 3], items }, { multiple: true });
|
|
250
238
|
|
|
251
|
-
expect(
|
|
252
|
-
expect(wrapper.vm.$data.selected.length).toBe(items.length - 2);
|
|
239
|
+
expect(wrapper.find('button').text()).toBe('2 options selected');
|
|
253
240
|
|
|
254
241
|
cleanup(wrapper);
|
|
255
242
|
});
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
<div v-else class="truncate text-left">
|
|
60
60
|
{{
|
|
61
61
|
multiple
|
|
62
|
-
? selectedItems.length ===
|
|
62
|
+
? selectedItems.length === computedItems.length
|
|
63
63
|
? 'All options selected'
|
|
64
64
|
: `${selectedItems.length} option${selectedItems.length > 1 ? 's' : ''} selected`
|
|
65
65
|
: selectedItems[0][itemText]
|
|
@@ -467,10 +467,6 @@ const attrs = computed(() => {
|
|
|
467
467
|
|
|
468
468
|
const style = computed(() => $attrs.style as StyleValue);
|
|
469
469
|
|
|
470
|
-
const selectableItemsCount = computed(
|
|
471
|
-
() => internalItems.value.filter((item) => !isDisabled(item) || isSelected(item[props.itemValue])).length
|
|
472
|
-
);
|
|
473
|
-
|
|
474
470
|
// Watch
|
|
475
471
|
// Sorts internalItems putting the selected ones first
|
|
476
472
|
watch(
|