Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
## [5.0.0](v4.18.1...v5.0.0) (2025-01-17) ### ⚠ BREAKING CHANGES * **esl-tooltip:** `disable-arrow` attribute removed from ESLTooltip component * **esl-popup:** 'autofocus' no longer available for popup, use 'focus-behaviour' instead * **esl-share:** `ESLSharePopup` no longer inherits `ESLTooltip`, `ESLPopup` now direct base for `ESLSharePopup` * **esl-tooltip:** `hasFocusLoop` no longer available use `focusBehaviour` instead * **esl-footnotes:** `tooltip-shown` readonly attribute(prop) replaced with `active` (from `ESLBaseTrigger`) * **esl-image-utils:** legacy implementation of `esl-image` no longer distributes aspect-ratio styles * **esl-utils:** `Rect` utility object now immutable from TS perspective * **esl-utils:** both `DeviceDetector.TOUCH_EVENTS` and `TOUCH_EVENTS` are retired from `device-detector` module. Please also note that the DeviceDetector class is also deprecated. * **esl-media:** `load-cls-target`, `load-cls-accepted` and `load-cls-declined` use `load-condition-class` and `load-condition-class-target` instead * **esl-media:** `disabled` no longer supported use `lazy="manual"` instead * `prop`, `attr`, `boolAttr`, `jsonAttr`, `listen` no longer available in `esl-base-element` and `esl-mixin-element` exports * **esl-utils:** `createZIndexIframe` and `is-fixes` module no longer available due to drop of IE11 support * **esl-utils:** `hasEventListener` no longer accepts min number value use `this.getEventListeners(type).length` to make extended checks * **esl-utils:** `dispatchEvent` does not accepts target argument * `ESLEventUtils.descriptors` alias of `ESLEventUtils.getAutoDescriptors` is no longer supported * `EventUtils` alias of `ESLEventUtils` is no longer supported * `esl-media-quey` module no longer supports `addListener` and `removeListener` shorthand * `SynteticEventTarget` no longer supports `addListener` and `removeListener` shorthand * 'fallback-duration' is no longer in the JSX shape of ESLPanel and ESLPanelGroup * `ToggleableActionParams` alias of `ESLToggleableActionParams` is no longer supported * `TraversingQuery` alias of `ESLTraversingQuery` is no longer supported * `RTLUtils` retired use separate methods instead * `TraversingUtils` retired use separate methods instead * `deepCompare` alias of `isEqual` is no longer supported * `generateUId` alias of `randUID` no longer supported * ESL UI site renderer and ESL polyfills no longer support Edge old versions and ES6 polyfils. * ESL UI site renderer and ESL polyfills no longer support IE11 and ES5 target. ### Features * **attr:** add provider to default value in attr ([e482aaf](e482aaf)) * drop deprecated aliases ([#1505](#1505)) ([df7f5e5](df7f5e5)) * **esl-anchornav:** add active-class to set on active item ([e452e71](e452e71)) * **esl-anchornav:** create esl-anchor mixin ([db5fb32](db5fb32)) * **esl-anchornav:** create esl-anchornav component to provide anchor navigation ([cf79db8](cf79db8)) * **esl-anchornav:** create esl-anchornav-sticked mixin to provide sticked behaviour ([d28d430](d28d430)) * **esl-carousel:** `container-class` slide implementation ([e042e4b](e042e4b)) * **esl-carousel:** `esl-carousel-nav` default classes and attributes reworked ([fd50c71](fd50c71)) * **esl-carousel:** `ESLCarouselTouchMixin` plugin is ready for usage with both: drag and touch support ([480bac1](480bac1)) * **esl-carousel:** add `esl-carousel` mouse wheel control support mixin ([748390c](748390c)) * **esl-carousel:** add `grid` renderer with capability to render multi row (column) carousel ([a54a1ab](a54a1ab)) * **esl-carousel:** add ability to pass slide as a `goTo` parametr ([2313c2a](2313c2a)) * **esl-carousel:** add attribute to carousel if it has only one slide ([25dc3bb](25dc3bb)) * **esl-carousel:** add centered renderer ([dd26e7e](dd26e7e)) * **esl-carousel:** add current and related slide element accessors to carousel change event ([4064b9f](4064b9f)) * **esl-carousel:** add handler for `esl-show-request` ([1b24ee0](1b24ee0)) * **esl-carousel:** add step animation duration customization ([4bc8c90](4bc8c90)) * **esl-carousel:** change carousel move API ([085f977](085f977)) * **esl-carousel:** complete rework ESLCarousel container feature ([ca7d308](ca7d308)) * **esl-carousel:** complete support of the drag (touch) for ESLCarousel ([94bc18f](94bc18f)) * **esl-carousel:** complete support of the navigation plugins for ESLCarousel ([19bd241](19bd241)) * **esl-carousel:** Default Renderer: the reordering algorithm improved to respect slides semantical order an available limit of slides ([b2efe6f](b2efe6f)) * **esl-carousel:** extend ESLCarousel API with new markers, fix carousel change events ([2a41d67](2a41d67)) * **esl-carousel:** improve ESLCarouselNav mixin API and internal livecycle ([156656a](156656a)) * **esl-carousel:** make ESLCarouselWheelMixin respect direction & able to prevent default wheel action ([376f303](376f303)) * **esl-carousel:** migrate `esl-carousel-slide` from custom tag to Mixin ([74fb670](74fb670)) * **esl-carousel:** new `esl-carousel` component introduced according to spec [#1282](#1282) ([5b6fc64](5b6fc64)) * **esl-carousel:** rework `ESLCarouselNavDots` plugin, improve a11ty ([ab40f94](ab40f94)) * **esl-carousel:** rework carousel plugins API to use json attr + smart media query ([0166b8d](0166b8d)) * **esl-carousel:** rework default renderer animation approach (now uses js animation) ([04b730d](04b730d)) * **esl-carousel:** support for autoplay mixin plugin for ESLCarousel component ([1deea71](1deea71)) * **esl-carousel:** support for relation mixin plugin for ESLCarousel component ([77cbbd9](77cbbd9)) * **esl-carousel:** updated a11ty auto markers, default ids, initial event ([d3ad7cf](d3ad7cf)) * **esl-drag-to-scroll:** create mixin to enable drag-to-scroll functionality ([1ff5242](1ff5242)) * **esl-drag-to-scroll:** update draggable state based on content size ([63d83a9](63d83a9)) * **esl-event-listener:** add `isVertical` property to `ESLSwipeGestureEvent` ([019715c](019715c)) * **esl-event-listener:** add ability to ESLWheelTarget to ignore income wheel events by predicate ([af47dbb](af47dbb)) * **esl-event-listener:** add ability to prevent default wheel action trough ESLWheelTarget ([0e1f192](0e1f192)) * **esl-event-listener:** add support for criteria-based subscriptions ([b571d88](b571d88)) * **esl-event-listener:** ootb ability to skip custom `longwheel` and `swipe` events in case of content scrolling ([#2098](#2098)) ([ecc849f](ecc849f)), closes [#2085](#2085) * **esl-event-listener:** update listener internal mechanics to store and collect descriptors (with ability to filter them) ([48bf06a](48bf06a)) * **esl-footnotes:** claenup readonly API of `esl-note` ([cb43086](cb43086)) * **esl-footnotes:** migrate esl-note to esl-base-trigger ([d2e0dbb](d2e0dbb)) * **esl-image-utils:** create esl-img-container mixin to provide img container functionality ([5b4761a](5b4761a)) * **esl-image-utils:** helper container classes for native img / picture containers ([16fc5cb](16fc5cb)) * **esl-media-query:** ingore tuple values if query syntax passed ([1899484](1899484)) * **esl-media:** `fill-mode` option updated to render through `aspect-ratio` and `wide` marker ([49fd5b6](49fd5b6)) * **esl-popup:** add offset-trigger attribute ([d4161f1](d4161f1)) * **esl-popup:** add position-origin attribute ([6be5133](6be5133)) * **esl-popup:** get rid from all focus management code ([11b10ea](11b10ea)) * **esl-popup:** rework esl-popup styles to use CSS variables ([cd781b9](cd781b9)) * **esl-share:** separate `ESLSharePopup` implementation from `ESLTooltip` ([b5260b9](b5260b9)) * **esl-toggleable:** `_onOutsideAction` no longer part of ESLToggleable instance, now it's ESLToggleableManager responsibility ([573eece](573eece)) * **esl-toggleable:** add out of the box `ESLToggleable` focus manager ([c954d72](c954d72)) * **esl-toggleable:** reimplementation of `focus-behaviour` to a11y mode ([d1d1500](d1d1500)) * **esl-toggleable:** rework ESLToggleableManger to produce `FocusIn` outside event actions trough main flow + fix initial focus task ([23ed309](23ed309)) * **esl-toggleable:** true related opening chain check support for toggleables ([72b849e](72b849e)) * **esl-toggleable:** update focusBehaviour option to smoothly support boundary focus actions across different options ([2b8a0c7](2b8a0c7)) * **esl-tooltip:** get rid from inner `hasFocusLoop` and custom focus manager, now utilizes ESLToggleable features ([6ef1f2e](6ef1f2e)) * **esl-tooltip:** remove disable-arrow attribute ([adbeb5d](adbeb5d)) * **esl-utils:** `isReducedMotion` detection result constant created ([2f3dd13](2f3dd13)) * **esl-utils:** `safeContains` traverse utility ([7ca4f8b](7ca4f8b)) * **esl-utils:** add `parseTime` alternative, less restrictive to passed format ([05e5963](05e5963)) * **esl-utils:** add ability to resize Rect instance ([1a4aa60](1a4aa60)) * **esl-utils:** add extended `handleFocusFlow` keyboard based focus manager ([376f388](376f388)) * **esl-utils:** create utility to get element that is viewport for specified element ([63d869b](63d869b)) * **esl-utils:** extend `attr` decorator with inherit option to take over the value of declared attribute ([b29acde](b29acde)) * **esl-utils:** extend params for the `getKeyboardFocusableElements` with full `VisibilityOptions` ([16b04ff](16b04ff)) * **esl-utils:** introduce `promisifyTransition` utility ([9dbabfc](9dbabfc)) * **esl-utils:** made Rect class immutable ([923c70a](923c70a)) * **esl-utils:** utility to postpone execution to microtask ([2a4c8c5](2a4c8c5)) * **eslint-config:** introducing shared eslint-config for esl projects (internal use only for now) ([ca5f454](ca5f454)) * **lint:** adapt eslint plugin to be used with ESLint 9 ([93c90d2](93c90d2)) ### Bug Fixes * **esl-anchornav:** fix ESLAnchornavRender signature ([3d43ba1](3d43ba1)) * **esl-base-element:** fix subscription for component that currently out of DOM ([a2526c9](a2526c9)) * **esl-carousel:** `dotBuilder`/`dotUpdater` does not inherit static default ([8fd173e](8fd173e)) * **esl-carousel:** `esl-carousel-dots` does not re-renders after target re-definition ([6252474](6252474)) * **esl-carousel:** a11ty targets for arrow controls ([8240921](8240921)) * **esl-carousel:** add ability to ignore defined content areas by ESLCarouselWheelMixin ([766dabe](766dabe)) * **esl-carousel:** add missing TSX declaration for `esl-carousel-dots` ([7f30c71](7f30c71)) * **esl-carousel:** add more specificity to styles to limit scope of the carousel animation ([4d4db05](4d4db05)) * **esl-carousel:** add possibility to hide controls according to closest container state ([b941748](b941748)) * **esl-carousel:** carousel now uses average of the real slide sizes during move action routines ([2472723](2472723)) * **esl-carousel:** de-scope `[esl-carousel-slides]` style defaults ([d3ad98a](d3ad98a)) * **esl-carousel:** direction related issues, cleanup internal nav API ([30cef21](30cef21)) * **esl-carousel:** esl-carousel tag is not declared to be used in TSX ([70b1607](70b1607)), closes [#2330](#2330) * **esl-carousel:** fix carousel empty state ([8f88589](8f88589)) * **esl-carousel:** fix count of slides to be rendered before the first slide ([cd68ea3](cd68ea3)) * **esl-carousel:** fix deprecated type usage inside carousel wheel plugin ([1c9f8c4](1c9f8c4)) * **esl-carousel:** fix esl-carousel DOM manipulation and slides livecycle ([9ab2b6b](9ab2b6b)) * **esl-carousel:** fix ESLCarouselNavDots livecycle and carousel observation ([c03c8f9](c03c8f9)) * **esl-carousel:** fix handling of pointercancel event by touch plugin ([fb91710](fb91710)) * **esl-carousel:** fix incomplete centered carousel rendering ([0d7adce](0d7adce)) * **esl-carousel:** fix incorrect alignment of the grid carousel renderer if there are no enough slides ([6956729](6956729)) * **esl-carousel:** fix initial index normalization and long animation speed ([45c7560](45c7560)) * **esl-carousel:** fix navigation group indexes restriction for non-loop carousels ([d5a84bf](d5a84bf)) * **esl-carousel:** fix slide mixin initialization order ([ad92042](ad92042)) * **esl-carousel:** improve log messaging and fix initialization exceptions ([8e45f58](8e45f58)) * **esl-carousel:** incomplete carousel should be normalized with non loop constraints ([2157e6a](2157e6a)) * **esl-carousel:** it is impossible to use cascading of css variable properly to define dots styles on the carousel level ([d361295](d361295)) * **esl-carousel:** make animated carousel area equal to the content without padding ([1c1f6d8](1c1f6d8)) * **esl-carousel:** remove specificity hack for carousel clipping ([0fa0ac7](0fa0ac7)) * **esl-carousel:** rework carousel slide change event with complete and more clear information ([0b5983f](0b5983f)) * **esl-carousel:** touch behaviour fix - incorrect touch-action target is used ([18b1ba1](18b1ba1)) * **esl-drag-to-scroll:** fix issue with un-prevented click action after drag ([c98cfa4](c98cfa4)) * **esl-drag-to-scroll:** fix propagation of the click if drag detected ([0b4aee6](0b4aee6)) * **esl-event-listener:** fix missing signature for `$$on` method of base component ([7197e30](7197e30)) * **esl-event-listener:** fix support for any object-like host ([9ca6aa4](9ca6aa4)) * **esl-footnotes:** drop extra margins for `esl-carousel-slides` container ([be4e9b0](be4e9b0)) * **esl-footnotes:** fix default display block for `esl-footnote` tag ([beba690](beba690)) * **esl-footnotes:** fix improper note highlighting ([c7c3d1c](c7c3d1c)) * **esl-image-utils:** de-scope (img-cover, img-contain) classes ([028b94f](028b94f)) * **esl-image-utils:** remove extra overflow style ([b1c5238](b1c5238)) * **esl-media:** fix conflict of alignment classes, move definition to the main mixin ([55589f2](55589f2)) * **esl-media:** make esl-media unfocusable according to `focusable` attribute, provide default based on `controls` option ([#2829](#2829)) ([44be58d](44be58d)) * **esl-mixin-element:** fix ESLMixin broken order when mixins modify DOM when connected ([36352d9](36352d9)) * **esl-popup:** fix incorrect behavior of popup for fit-major and fit-minor modes ([f26f907](f26f907)) * **esl-share:** fix inner ESLToggleableActionParams instances type ([ea8dd94](ea8dd94)) * **esl-share:** fix merging of `additional`(nested) params when `ESLShareConfig.update` method is called ([a1b1942](a1b1942)) * **esl-share:** rename copy action `alertText` param to `copyAlertMsg` ([3ba61ac](3ba61ac)) * **esl-share:** simplify code and remove overrides (according to esl-popup base state) ([04d6a63](04d6a63)) * **esl-toggleable:** ESLToggleable should ignore activator direct events ([9a8d545](9a8d545)) * **esl-toggleable:** fix focus should return to activator ([3033b33](3033b33)) * **esl-toggleable:** focus management reworked to use scopes. Introduced `ESLToggleableFocusManager` ([fbac20e](fbac20e)) * **esl-toggleable:** inner activator leads to infinite loop while getting toggleables chain ([b8c40dc](b8c40dc)) * **esl-tooltip:** fix tooltip arrow disappearing ([780b295](780b295)) * **esl-tooltip:** simplify code and remove overrides (according to esl-popup base state) ([699ac7f](699ac7f)) * **esl-utils:** `createZIndexIframe` retired ([ad678cb](ad678cb)) * **esl-utils:** `SyntheticEventTarget` optimizations ([a4c9b8d](a4c9b8d)) * **esl-utils:** clean IE11 micro-optimizations ([7ed8830](7ed8830)) * **esl-utils:** fix event cancellation handling ([dffbc53](dffbc53)) * **esl-utils:** fix getting viewport sizes ([c17d2e3](c17d2e3)) * **esl-utils:** fix types for `unwrap` array utility ([a4b432a](a4b432a)) * **esl-utils:** fix visibility and a11y checks for getKeyboardFocusableElements ([e078c78](e078c78)) * **esl-utils:** simplified `flat` array utility ([788a782](788a782)) * **esl-utils:** simplified `union` utility ([043fe45](043fe45)) * **esl-utils:** simplified `uniq` array utility ([45f282f](45f282f)) * **eslint-config:** update file lines limit to `500` LOC ([f0825ff](f0825ff)) * **eslint-plugin:** remove 4 version checks due to stable 5.0.0 release; fix unexpected version note message ([2312443](2312443)) * **eslint:** fix peerDependency constraint ([20b5d9d](20b5d9d)) * **lint:** fix Literal import processing & update eslint 9.11.1 ([3345564](3345564)) * **microtask:** fix argument list on next fn call ([f421e88](f421e88)) * overall dependencies invalidation ([35e3042](35e3042)) * **site:** share preview cards ([58194ca](58194ca)) * **swipe:** fix swipe tests ([e1aefb8](e1aefb8)) ### Reverts * Revert "revert: fix(esl-toggleable): rework actions pre-checks to fix flow on reopening toggleable" ([0030f4b](0030f4b)) * Revert "revert: fix(esl-trigger): default target for `esl-trigger` is not logically correct and obvious" ([f1c3557](f1c3557)) * Revert "revert: refactor(esl-toggleable): move `open` state updating to `onShow`/`onHide` callbacks" ([9d249bb](9d249bb)) ### Code Refactoring * Drop Edge old versions (<14) support ([b577fd1](b577fd1)) * Drop IE11 support ([6d376ee](6d376ee)) * **esl-image-utils:** update implementation to use json attr and new compact representation ([602afc7](602afc7)) * **esl-media:** remove legacy features of `esl-media` ([c19561d](c19561d)) * **esl-utils:** `TOUCH_EVENTS` from `device-detector` module retired, DeviceDetector is deprecated ([e9ed603](e9ed603)) * exclude duplicated exports of `esl-utils/decorators` ([f6c84af](f6c84af))
- Loading branch information