Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
enable-pre-post-scripts=true
registry-url=https://registry.npmjs.org/
10 changes: 3 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,10 @@
"scripts": {
"are-types-wrong": "pnpm -r --stream --filter=\"{packages/multiple-select-vanilla/**}\" are-types-wrong",
"clean": "remove --glob **/dist --glob **/tsconfig.tsbuildinfo",
"prebuild": "pnpm clean && pnpm biome:lint:write && pnpm biome:format:write",
"build": "pnpm -r --stream build",
"build": "pnpm clean && pnpm biome:lint:write && pnpm biome:format:write && pnpm -r --stream build",
"build:demo": "pnpm -r --stream --filter=\"{packages/demo/**}\" build",
"build:lib": "pnpm -r --stream --filter=\"{packages/multiple-select-vanilla/**}\" build",
"predev": "pnpm -r dev:init",
"dev": "run-p dev:watch build:watch --npm-path pnpm",
"dev": "pnpm -r dev:init && run-p dev:watch build:watch --npm-path pnpm",
"dev:watch": "pnpm -r --parallel --stream dev",
"build:watch": "lerna watch --no-bail --file-delimiter=\",\" --glob=\"src/**/*.{ts,scss}\" -- cross-env-shell pnpm -r --filter $LERNA_PACKAGE_NAME build:watch --files=$LERNA_FILE_CHANGES",
"dev:demo": "pnpm -r --stream --filter=\"{packages/demo/**}\" dev",
Expand All @@ -45,11 +43,9 @@
"preview:publish": "lerna publish from-package --dry-run",
"new-version": "lerna version",
"new-publish": "lerna publish from-package",
"preroll-new-release": "echo Please update getting-started lib version before pushing a release. ⚠️",
"roll-new-release": "pnpm build && pnpm new-version && pnpm new-publish",
"serve:demo": "pnpm -r --stream --filter=\"{packages/demo/**}\" dev",
"pretest:e2e": "remove playwright-report",
"test:e2e": "playwright test --config playwright/playwright.config.ts",
"test:e2e": "remove playwright-report && playwright test --config playwright/playwright.config.ts",
"test:e2e:debug": "playwright test --config playwright/playwright.config.ts --ui --debug",
"test:e2e:ui": "playwright test --config playwright/playwright.config.ts --ui",
"test:report": "playwright show-report",
Expand Down
2 changes: 2 additions & 0 deletions packages/demo/src/app-routing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import Example13 from './examples/example13.js';
import Example14 from './examples/example14.js';
import Example15 from './examples/example15.js';
import Example16 from './examples/example16.js';
import Example17 from './examples/example17.js';
import GettingStarted from './getting-started.js';
import I18n from './i18n/i18n.js';
import Methods01 from './methods/methods01.js';
Expand Down Expand Up @@ -98,6 +99,7 @@ export const exampleRouting = [
{ name: 'example14', view: '/src/examples/example14.html', viewModel: Example14, title: 'The Divider' },
{ name: 'example15', view: '/src/examples/example15.html', viewModel: Example15, title: 'Dark Mode' },
{ name: 'example16', view: '/src/examples/example16.html', viewModel: Example16, title: 'Template with Images' },
{ name: 'example17', view: '/src/examples/example17.html', viewModel: Example17, title: 'Bug' },
],
},
{
Expand Down
20 changes: 20 additions & 0 deletions packages/demo/src/examples/example17.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<link rel="stylesheet" href="https://unpkg.com/multiple-select-vanilla@4.4.0/dist/styles/css/multiple-select.css">

<select id="activities" multiple>
<optgroup label="Cours de ski alpin">
<option value="520">Jardin d’enfants ski alpin</option>
<option value="515">Cours collectif enfant ski alpin</option>
<option value="522">Cours collectif adulte ski alpin</option>
<option value="524">Cours particulier ski alpin</option>
</optgroup>

<optgroup label="Cours de ski nordique">
<option value="576">Cours particulier ski nordique</option>
</optgroup>

<optgroup label="Cours de snowboard">
<option value="539">Cours particulier snowboard</option>
</optgroup>
</select>

<button id="trigger">Call setSelects(['515'])</button>
22 changes: 22 additions & 0 deletions packages/demo/src/examples/example17.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { type MultipleSelectInstance, multipleSelect } from 'multiple-select-vanilla';

export default class Example {
ms!: MultipleSelectInstance;

mount() {
this.ms = multipleSelect('#activities', {
selectAll: false,
}) as MultipleSelectInstance;

document.getElementById('trigger')?.addEventListener('click', () => {
// 💥 Repro du bug avec optgroup + setSelects
this.ms.setSelects(['515']);
});
}

unmount() {
// destroy ms instance(s) to avoid DOM leaks
this.ms.destroy();
this.ms = null as any;
}
}
7 changes: 3 additions & 4 deletions packages/multiple-select-vanilla/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,17 +51,16 @@
"scripts": {
"are-types-wrong": "pnpx @arethetypeswrong/cli --pack .",
"clean": "remove dist",
"build": "pnpm build:all && pnpm build:types:prod",
"postbuild": "pnpm sass:build && pnpm sass:copy",
"build": "pnpm build:all && pnpm build:types:prod && pnpm sass:build && pnpm sass:copy",
"dev:init": "pnpm sass:build && pnpm sass:copy && pnpm build:all && pnpm build:types:prod",
"build:all": "node build-prod.mjs",
"build:watch": "cross-env NODE_ENV=development node build-watch.mjs",
"build:locales": "esbuild src/locales/all-locales-index.ts --bundle --minify --format=iife --target=es2021 --sourcemap --outfile=dist/locales/multiple-select-all-locales.js",
"build:esm": "esbuild src/index.ts --bundle --minify --format=esm --target=es2021 --sourcemap --outfile=dist/index.js",
"build:types": "tsc --emitDeclarationOnly --incremental --declarationMap false --outDir dist",
"build:types:prod": "tsc --emitDeclarationOnly --incremental --declarationMap --outDir dist",
"sass:build": "sass src/styles:dist/styles/css --style=compressed --quiet-deps --no-source-map",
"postsass:build": "postcss dist/styles/css/**/* --dir dist/styles/css --base dist/styles/css --no-map --use cssnano --use autoprefixer --style=compressed",
"sass:build": "sass src/styles:dist/styles/css --style=compressed --quiet-deps --no-source-map && pnpm sass:build:closing",
"sass:build:closing": "postcss dist/styles/css/**/* --dir dist/styles/css --base dist/styles/css --no-map --use cssnano --use autoprefixer --style=compressed",
"sass:watch": "sass src/styles:dist/styles/css --watch --style=compressed --quiet-deps --no-source-map",
"sass:copy": "copyfiles \"./src/styles/**/*.scss\" dist/styles/sass --up 2 --stat"
},
Expand Down
Loading