@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 === selectableItemsCount.value ? "All options selected" : `${vue.unref(selectedItems).length} option${vue.unref(selectedItems).length > 1 ? "s" : ""} selected` : vue.unref(selectedItems)[0][__props.itemText]), 1))
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 === selectableItemsCount.value ? "All options selected" : `${unref(selectedItems).length} option${unref(selectedItems).length > 1 ? "s" : ""} selected` : unref(selectedItems)[0][__props.itemText]), 1))
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.0",
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.0",
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.10",
57
- "@storybook/addon-docs": "^9.0.10",
58
- "@storybook/addon-links": "^9.0.10",
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.10",
61
- "@storybook/vue3-vite": "^9.0.10",
62
- "@tanstack/vue-virtual": "3.13.10",
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.3",
65
+ "@types/node": "^24.0.7",
66
66
  "@vitejs/plugin-vue": "^5.2.4",
67
- "@vitest/coverage-v8": "^3.2.3",
68
- "@vue/compiler-sfc": "3.5.16",
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.29.0",
73
- "eslint-plugin-storybook": "^9.0.10",
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.5.3",
84
- "prettier-plugin-tailwindcss": "^0.6.12",
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.5",
89
- "storybook": "^9.0.10",
90
- "svgo": "^3.3.2",
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.3",
95
- "vue": "3.5.16",
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 selectable options and disabled-selected options are selected', async () => {
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
- // Pre-select one disabled item
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('shows number of selected options when not all non-disabled options are selected', async () => {
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
- const wrapper = createWrapper({ selected: [2, 3], items }, { multiple: true });
221
+ items[1].disabled = true;
222
+ const wrapper = createWrapper({ selected: [], items }, { multiple: true });
230
223
 
231
- expect(wrapper.find('button').text()).toBe('2 options selected');
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('does not select disabled items when "Select All" is clicked', async () => {
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
- items[1].disabled = true;
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(selectedItems.length).toBe(selectedItemsOptions.length - 2);
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 === selectableItemsCount
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(