Releases: ghiscoding/multiple-select-vanilla
v1.2.1
1.2.1 (2024-01-30)
Bug Fixes
- npm: publish src folder for source maps (#202) (a09d98a) - by @ghiscoding
v1.2.0
1.2.0 (2024-01-13)
Quick Info
This release removes a diacritic fallback that was part of the code and only keep the modern approach using the normalize()
function which is supported by all modern browsers. The fallback implementation was using a long list of unicode mapping with string replacement and that was taking a lot of space, by removing this unnecessary fallback we actually decrease our library size by quite a lot (see below). If for whatever reason removing this causes any problems, users could add their own custom implementation via the diacriticParser
option (see new Diacritic Parser Example).
Size Difference
file on disk and uncompressed (final size should be much smaller with gzip)
before | after | diff | notes |
---|---|---|---|
956Kb (979,219) | 882Kb (903,442) | 74Kb (or 7.74% smaller) | all bundles uncompressed |
51.7Kb (53,037) | 46.3Kb (49,152) | 3.9Kb (or 7.32% smaller ) | ESM+styles (no locale) zipped |
Features
- remove previous diacritic unicodes and add
diacriticParser
(#190) (aaa9d92) - by @ghiscoding
v1.1.3
v1.1.2
1.1.2 (2023-12-20)
Bug Fixes
- don't use
Boolean()
for compatibility (#183) (52c9cc0) - by @ghiscoding
v1.1.1
v1.1.0
1.1.0 (2023-11-26)
Features
- add tabindex to list item to control up/down arrow direction (#176) (763e13a) - by @ghiscoding
v1.0.3
1.0.3 (2023-11-22)
⚠ BREAKING CHANGES
This release will make ESM be the default for .js
files, and change all CommonJS (CJS) to use .cjs
, this is following Vite's Deprecate CJS Node API recommendations while staying hybrid (CJS/ESM). Below is the list of changes included in this release:
- bump build target to ES2021
- changes in the hybrid mode CJS/ESM support
- move legacy
<script>
loading fromdist/
root todist/browser/multiple-select.{js,cjs}
("browser" is meant for legacy script loading)- ESM:
<script type="module" src="https://cdn.jsdelivr.net/npm/multiple-select-vanilla@1.0.0/dist/browser/multiple-select.js"></script>
- CJS:
<script src="https://cdn.jsdelivr.net/npm/multiple-select-vanilla@1.0.0/dist/browser/multiple-select.cjs"></script>
- ESM:
- move all locales bundle from
dist/
todist/locales/multiple-select-all-locales.{js,cjs}
Provenance
I'm also toying with the possibility of publishing with npm --provenance
when publishing through CI with a GitHub Action (see blog post). After a few trials and errors, I think I finally got it working, now and you should be able to see something like below on the npm registry.
⚠ Breaking Changes
- default
.js
as ESM, CJS to.cjs
& build target ES2021 (#171)
Features
- default
.js
as ESM, CJS to.cjs
& build target ES2021 (#171) (5e99b03) - by @ghiscoding
v0.6.3
0.6.3 (2023-11-13)
CSP Compliant
The focus of this release was around CSP (Content Security Policy) compliance, all dynamic html string were replaced by native HTML Element and a lot of code refactoring had to be done to make it all work. There are some exception though, if you still use html string as template, you will not be compliant unless you return TrustedHTML
, you can get more info on the main readme homepage.
⚠️ Deprecation
styler
is now deprecated and replaced by cssStyler
.
styler
was built around the fact that we use HTML string and we pass any style to the html string but now that we converted html string to native HTML Element, these style are not compatible and need extra work since we need to convert CSS style them to validCSSStyleDeclaration
(i.e.:font-weight: 'bold'
should befontWeight: 'bold'
) so that we can then pass it to our native HTML Element. Because this is an extra step, we decided to deprecatestyler
in favor ofcssStyler
which only acceptCSSStyleDeclaration
.
Features
- add
cssStyler
option to use typed CSSStyleDeclaration props (#148) (8ad2b28) - by @ghiscoding - add
showSearchClear
option to clear search input (#147) (32de6f2) - by @ghiscoding - replace all dynamic html strings by pure HTML elements (#144) (adcc33d) - by @ghiscoding
- VirtualScroll replace all html strings to pure HTML elements (#146) (8731387) - by @ghiscoding
Performance Improvements
- don't recreate items list twice while filtering (#154) (5e58ceb) - by @ghiscoding
- use array of html struct instead of plain HTML Element (#153) (6731228) - by @ghiscoding
Bug Fixes
- input checkbox value should always be included even when null (#158) (4d33cff) - by @ghiscoding
- [improve types & exports for all bundler](fix: improve build & types exports for all targets, Node, CJS/ESM) (#161) (b4ad0ac) - by @ghiscoding
@types/trusted-types
should be lib dependency (#162) (946de83) - by @ghiscoding
v0.5.0
0.5.0 (2023-10-27)
Bug Fixes
- updated onFilter event parameter to original search (#140) (02c1d45) - by @ghiscoding
Features
- added
onBeforeClick
event (#141) (6b0cdb8) - by @ghiscoding - added locale ja-JP (#139) (d473bd9) - by @ghiscoding
v0.4.11
0.4.11 (2023-10-25)
Bug Fixes
- make sure source element exists when calling
findParent
on it (#136) (0d7c185) - by @ghiscoding