diff --git a/.commitlintrc.yml b/.commitlintrc.yml index b5669e87b..72c6e9510 100644 --- a/.commitlintrc.yml +++ b/.commitlintrc.yml @@ -31,6 +31,7 @@ rules: - - esl-a11y-group - esl-alert + - esl-anchornav - esl-animate - esl-base-element - esl-carousel @@ -38,6 +39,7 @@ rules: - esl-footnotes - esl-forms - esl-image + - esl-image-utils - esl-media - esl-media-query - esl-mixin-element diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index b94f82ed2..000000000 --- a/.eslintignore +++ /dev/null @@ -1,14 +0,0 @@ -# Common configuration -jest.config.js - -# Common directories -build -node_modules - -# Generated surces -/modules -/polyfills - -# Submodule output -/site/dist -/eslint/dist diff --git a/.eslintrc.yml b/.eslintrc.yml deleted file mode 100644 index eaf170754..000000000 --- a/.eslintrc.yml +++ /dev/null @@ -1,53 +0,0 @@ -# Library's global linting rules -env: - browser: true - es6: true - es2017: true - -# Base rule sets -extends: - # Recommended sets list - - 'eslint:recommended' - - 'plugin:import/typescript' - - 'plugin:@typescript-eslint/recommended' - - 'plugin:@exadel/esl/default' - - # Library base set - - './linting/codestyle.eslintrc.yml' - - './linting/coderules.eslintrc.yml' - - './linting/import.eslintrc.yml' - - './linting/sonarjs.eslintrc.yml' - - './linting/tests.eslintrc.yml' - - './linting/eslint.eslintrc.yml' - - './linting/site.eslintrc.yml' - -# TS configuration -parser: '@typescript-eslint/parser' -parserOptions: - project: - - './tsconfig.json' - - './e2e/tsconfig.json' - - './site/tsconfig.json' - - './eslint/tsconfig.json' - sourceType: module - -# Lint additional plugins -plugins: - - 'tsdoc' - - 'import' - - 'sonarjs' - - 'editorconfig' - - '@typescript-eslint' - - '@exadel/esl' - -# Overall rules -rules: - # Enable TS Doc syntax check - 'tsdoc/syntax': warn - - # Enforce charset check - 'editorconfig/charset': warn - # Enforce EOL for all files - 'editorconfig/eol-last': warn - # Require no trailing spaces - 'editorconfig/no-trailing-spaces': warn diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1184b42ad..d5f037e21 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -25,9 +25,6 @@ updates: prefix: "chore" include: "scope" groups: - typescript-eslint: - patterns: - - "@typescript-eslint/*" commit-lint: patterns: - "@commitlint/*" diff --git a/.releaserc.yml b/.releaserc.yml index 56c3b66d0..327eadf7c 100644 --- a/.releaserc.yml +++ b/.releaserc.yml @@ -23,7 +23,7 @@ branches: # Release configuration plugins: - - "@semantic-release/commit-analyzer" - - preset: angular + - preset: conventionalcommits releaseRules: - type: style release: patch @@ -49,7 +49,7 @@ plugins: release: patch - - "@semantic-release/release-notes-generator" - - preset: angular + - preset: conventionalcommits parserOpts: noteKeywords: - BREAKING CHANGE diff --git a/CHANGELOG(legacy-4.0.0).md b/CHANGELOG(legacy-4.0.0).md new file mode 100644 index 000000000..61df4d1d2 --- /dev/null +++ b/CHANGELOG(legacy-4.0.0).md @@ -0,0 +1,3073 @@ +## [4.18.1](https://github.com/exadel-inc/esl/compare/v4.18.0...v4.18.1) (2024-08-16) + + +### Bug Fixes + +* **lint:** fix package missing `kleur` dependency ([b6581b9](https://github.com/exadel-inc/esl/commit/b6581b9094e222ce218e1dd9b3f7295de838d2cf)) + + +# [4.18.0](https://github.com/exadel-inc/esl/compare/v4.17.1...v4.18.0) (2024-07-12) + + +### Bug Fixes + +* **deps:** bump puppeteer from 22.11.1 to 22.11.2 ([8a824cf](https://github.com/exadel-inc/esl/commit/8a824cffc9ba70a56bc877fcf6683fb5a80d9b6f)) +* **deps:** bump puppeteer from 22.11.2 to 22.12.0 ([2a5c371](https://github.com/exadel-inc/esl/commit/2a5c3713c51b55efa37d676d89e815708431072c)) +* **deps:** bump puppeteer from 22.12.0 to 22.12.1 ([56ebbfa](https://github.com/exadel-inc/esl/commit/56ebbfa67a90695aa43c867705bcd16fe5fcc5d6)) +* **deps:** bump webpack from 5.92.0 to 5.92.1 ([6909d17](https://github.com/exadel-inc/esl/commit/6909d1709e32b570af9d8cffb7c0ba509d724ae6)) +* **deps:** bump ws from 7.5.9 to 7.5.10 ([330fd97](https://github.com/exadel-inc/esl/commit/330fd97664ba5276e89ef723e4ca388a201424db)) +* **esl-mixin-element:** major fix for nested hierarchy mixin disconnection ([d360da0](https://github.com/exadel-inc/esl/commit/d360da0e61e90c2ef71ba219256505e741429ca3)), closes [#2505](https://github.com/exadel-inc/esl/issues/2505) + + +### Features + +* **lint:** deprecation rule for `ESlMediaRuleList.parse` ([#2509](https://github.com/exadel-inc/esl/issues/2509)) ([a1f916a](https://github.com/exadel-inc/esl/commit/a1f916ae4cf9a7d618516646e6629ae3a58f3d68)) + + +## [4.17.1](https://github.com/exadel-inc/esl/compare/v4.17.0...v4.17.1) (2024-06-17) + + +### Bug Fixes + +* **deps:** bump @11ty/eleventy-dev-server from 2.0.0 to 2.0.1 ([9211eaf](https://github.com/exadel-inc/esl/commit/9211eaff52c013cc13a010234f013e13e162df1b)) +* **deps:** bump puppeteer from 22.10.0 to 22.11.0 ([1f3b833](https://github.com/exadel-inc/esl/commit/1f3b83321778662127f9aa1167de0c387feafdfd)) +* **deps:** bump puppeteer from 22.11.0 to 22.11.1 ([40c7f0a](https://github.com/exadel-inc/esl/commit/40c7f0a06018f756c2ec88cfdd472fc1d22a9332)) +* **deps:** bump webpack from 5.91.0 to 5.92.0 ([ab7f579](https://github.com/exadel-inc/esl/commit/ab7f579cc46f602e4575fc9562c9d8d8baa9b7cd)) +* **lint:** notify about version differences for `eslint-plugin-esl` ([4cc0ddc](https://github.com/exadel-inc/esl/commit/4cc0ddc515f1c2b5ed2f4e2d745001784a98ce2f)) + + +# [4.17.0](https://github.com/exadel-inc/esl/compare/v4.16.0...v4.17.0) (2024-05-31) + + +### Bug Fixes + +* **deps:** bump pug from 3.0.2 to 3.0.3 ([8006a45](https://github.com/exadel-inc/esl/commit/8006a45a96aaf52e9a341bf13768613cc0bf17b4)) +* **deps:** bump puppeteer from 22.9.0 to 22.10.0 ([d82fa11](https://github.com/exadel-inc/esl/commit/d82fa11e6059fe34eaaca7f0990e8d013826fca7)) +* **esl-animate:** fix handling of `esl-animate-mixin` attribute changes ([0bb3a44](https://github.com/exadel-inc/esl/commit/0bb3a449ff2b5e6c9c74f763fa1d98a6757a6038)) +* **esl-event-listener:** `ESLEventUtils.descriptors` api notes correction ([309c130](https://github.com/exadel-inc/esl/commit/309c130a7e62348fd02f8bf71cc546f9eab3fe21)) +* **esl-event-listener:** fix `listen` decorator strict types are incorrect ([94c85f2](https://github.com/exadel-inc/esl/commit/94c85f2ddbea29b420c2540e025c7d510dfba5b1)) +* **esl-event-listener:** fix re-subscription when condition is used ([b304c52](https://github.com/exadel-inc/esl/commit/b304c52a30d86d462e2d5e03b00353b7bbf39cb7)) +* **esl-media:** add exact element resize observation reduce; extra subscriptions manipulation ([7e58bbd](https://github.com/exadel-inc/esl/commit/7e58bbdc981ec54902bb7940242e238df5780df5)) +* **esl-media:** fix missing reinitialization on start-time attribute changing ([e5922ed](https://github.com/exadel-inc/esl/commit/e5922ed801b08066c96dba10edef6e8abb6655b2)) +* **esl-media:** fix TSX shape for supporting start-time attribute ([1f43a22](https://github.com/exadel-inc/esl/commit/1f43a22094db5f204f0b69df36272d60beffb638)) +* **esl-media:** play-in-viewport tolerance changed to 50% (75% before) ([06d2a13](https://github.com/exadel-inc/esl/commit/06d2a13ca0bbde6c5d4fbd93e6a68f94fe93ef4e)) +* **esl-media:** seekTo leads to no proper behavior when YouTube video is not ready ([f5a0762](https://github.com/exadel-inc/esl/commit/f5a0762301b4e108b708ea1e75834be0b74d2827)) +* **esl-panel:** fix the falsy state of animation in the default open panel in esl-panel-group ([64925e0](https://github.com/exadel-inc/esl/commit/64925e0b47293124430f988474df821c423cc2bd)) +* **esl-popup:** fix it is not possible to set the offset-arrow to 0 ([c6f1a9f](https://github.com/exadel-inc/esl/commit/c6f1a9f2ddfcbbc5bad2adb3da6a73bc34e50277)) +* **esl-utils:** fix event cancellation handling ([8e45a75](https://github.com/exadel-inc/esl/commit/8e45a7560c3260f21dbe22e9beaa64c8afe19ca5)) +* **esl-utils:** fix isRelativeNode signature (can accept undefined as a node) ([4e2c7af](https://github.com/exadel-inc/esl/commit/4e2c7af179d186de521e7a55c0be66d1e3dc68fa)) +* **esl-utils:** fix parseNumber signature (undefined when default provided) ([647b736](https://github.com/exadel-inc/esl/commit/647b7364e3a8024d9d3d4cdef464dc98078a0d01)) +* **site:** `esl-animate` example page wrong animation ([7fd86b4](https://github.com/exadel-inc/esl/commit/7fd86b405839ebb3c15dcd22eabdcf14967e41a5)) + + +### Features + +* **esl-event-listener:** add a `group` key to process batch subscription operations ([3d1ece0](https://github.com/exadel-inc/esl/commit/3d1ece0fcf747efdb7de7fcfb125c4ad02390e50)), closes [#2381](https://github.com/exadel-inc/esl/issues/2381) +* **esl-event-listener:** rework and make warnings of event listener system with more strict and truthful detection of a problem ([f6fd40b](https://github.com/exadel-inc/esl/commit/f6fd40b8e370de1bcc61cb3d6862b2be9188018a)) +* **esl-event-listener:** separate intersection events ([370d33b](https://github.com/exadel-inc/esl/commit/370d33bf384c5fed6ca734bb680a9fd3ede86680)) +* **esl-media:** add ability to provide video initial position (start time) ([7367bb7](https://github.com/exadel-inc/esl/commit/7367bb78c50514a96edbf4cef7b56b2bf0fe0340)) +* **esl-popup:** add handler for refresh event ([5864c92](https://github.com/exadel-inc/esl/commit/5864c9293046a43d49b900818573b4fd879b6834)) +* **esl-utils:** add ability to reject promisifyEvent by using AbortSignal ([b49da0e](https://github.com/exadel-inc/esl/commit/b49da0e533de7771ccc50465d15a51f157bde568)) +* **esl-utils:** add provider function support into `[@prop](https://github.com/prop)` decorator ([9f4bfbe](https://github.com/exadel-inc/esl/commit/9f4bfbee09e1cbd1aeac1b9d4176cc6518682bc9)) +* **esl-utils:** add the ability to use additional attributes in `loadScript` utility ([#2279](https://github.com/exadel-inc/esl/issues/2279)) ([f803226](https://github.com/exadel-inc/esl/commit/f80322656efc10dd138f6452f1d3f601229405c9)) +* **esl-utils:** make DelegatedEvent equal too `DelegatedEvent`, fix types compatibility ([#2360](https://github.com/exadel-inc/esl/issues/2360)) ([458ea53](https://github.com/exadel-inc/esl/commit/458ea53900ed2554772b54e3a0a1567757bb6125)) +* **lint:** add deprecation warning regarding incorrect direct imports for `attr`, `prop`, `jsonAttr`, `boolAttr`, `listen` ([e592048](https://github.com/exadel-inc/esl/commit/e592048d19aa4575f89e056632e7455a50f47eac)) + + +# [4.16.0](https://github.com/exadel-inc/esl/compare/v4.15.0...v4.16.0) (2024-04-10) + + +### Bug Fixes + +* **esl-event-listener:** fix support for any object-like host ([ae4c98d](https://github.com/exadel-inc/esl/commit/ae4c98d6839d063f3260bea59d66f86611bab8d4)) +* **esl-share:** fix merging of `additional`(nested) params when `ESLShareConfig.update` method is called ([b9b4e5f](https://github.com/exadel-inc/esl/commit/b9b4e5fad974a60c22fbaf022cd5076ae96e6e74)) +* **esl-share:** rename copy action `alertText` param to `copyAlertMsg` ([d3e3c3a](https://github.com/exadel-inc/esl/commit/d3e3c3ae62197972fed35c08b992a2ba7f121634)) +* **esl-utils:** fix argument list on next fn call ([c2e5c1d](https://github.com/exadel-inc/esl/commit/c2e5c1d89384bff3d7f27f81a79f5e568122b26f)) + + +### Features + +* **esl-event-listener:** ootb ability to skip custom `longwheel` and `swipe` events in case of content scrolling ([#2098](https://github.com/exadel-inc/esl/issues/2098)) ([80c5747](https://github.com/exadel-inc/esl/commit/80c57471d9a7c0c9e126ecd53baafc978999d7f8)), closes [#2085](https://github.com/exadel-inc/esl/issues/2085) +* **esl-toggleable:** introducing a base trigger class in purpose to simplify and make Trigger-Toggleable constructions more API strict in ESL ([4ea1565](https://github.com/exadel-inc/esl/commit/4ea1565d3fc29376f39920b392c9883065723382)) +* **esl-utils:** add provider to default value in attr ([f13cc98](https://github.com/exadel-inc/esl/commit/f13cc98d88dd171d2eb50093fca3e1dad887c9d9)) +* **esl-utils:** extend `attr` decorator with inherit option to take over the value of declared attribute ([a794886](https://github.com/exadel-inc/esl/commit/a794886979347d789e11261c5145c5cb4edc29ef)) + + + +# [4.15.0](https://github.com/exadel-inc/esl/compare/v4.14.1...v4.15.0) (2024-04-05) + + +### Bug Fixes + +* **esl-event-listener:** fix delegation handling for improper targets ([127297c](https://github.com/exadel-inc/esl/commit/127297cdc0552d6ab810ebb829807b8225b46977)) +* **esl-event-listener:** fix delegation recognition on non-DOM targets ([4716947](https://github.com/exadel-inc/esl/commit/47169479b46994e4fd1571a8cefe0454c983a89b)) +* **esl-event-listener:** fix missing host in debug information of empty subscription ([4abfa1e](https://github.com/exadel-inc/esl/commit/4abfa1e12346662616cc7ac431bb9e0161fe0bf0)), closes [#2078](https://github.com/exadel-inc/esl/issues/2078) +* **esl-event-listener:** improve compatibility of decorated event handler type ([de0c37e](https://github.com/exadel-inc/esl/commit/de0c37e2a399c2e88c16b10c2baaec662538e9a8)) +* **esl-panel-group:** `has-opened` attribute inconsistent ([13003e4](https://github.com/exadel-inc/esl/commit/13003e4b8d5bb039b7ae142739ea8a4667af4e2a)) +* **esl-popup:** create optional autofocus property; update flow with optimized rendering flow ([8e71d20](https://github.com/exadel-inc/esl/commit/8e71d208368f9208b167900211399d138ee7eaa6)) +* **esl-popup:** fix esl-popup infinitely created independently of placeholder state ([63ae414](https://github.com/exadel-inc/esl/commit/63ae4146073b1374bb63f23c37a9ac469a742275)) +* **esl-share:** fix focus behavior to a loop inside esl-share-popup ([e3393fe](https://github.com/exadel-inc/esl/commit/e3393fe6641497af149a6f9df5c87e98e7d637c4)) +* **esl-share:** fix share() method signature of print action ([ca7091d](https://github.com/exadel-inc/esl/commit/ca7091df6c6f361e4b8f3e2b328b08a9fb51044e)) +* **esl-tab:** fix `esl-tabs` initialization delay before DOM ready ([52b0beb](https://github.com/exadel-inc/esl/commit/52b0bebe18fc19dc5a2ff528f1b6b44a7c79dce5)) +* **esl-toggleable:** outside action should be handled from entire page ([aa6f5a5](https://github.com/exadel-inc/esl/commit/aa6f5a52a9c3639dc50e27d837247cfa22653aeb)) +* **esl-tooltip:** add constraints to fix DOM position management for `esl-tooltip` ([9c25137](https://github.com/exadel-inc/esl/commit/9c25137217b93e3ef2c22d5898d550eca0160c2f)) + + +### Features + +* **esl-event-listener:** `ESLWheelTarget` proxy target created to handle long wheel user actions ([#2031](https://github.com/exadel-inc/esl/issues/2031)) ([4dc4bfc](https://github.com/exadel-inc/esl/commit/4dc4bfcd3f2f16f9695b9fd468d3b5a6c587c8e8)), closes [#2017](https://github.com/exadel-inc/esl/issues/2017) +* **esl-open-state:** create ESL Open State mixin ([a8327a8](https://github.com/exadel-inc/esl/commit/a8327a8671bde9544c05cb942589cf80415b84d8)) +* **esl-popup:** add support of `PopupActionParams.extraClass` on popup level ([32b6d0a](https://github.com/exadel-inc/esl/commit/32b6d0a62a10b9009ac1352c9f68b2e7128ec5b0)) +* **esl-popup:** add support of `PopupActionParams.extraStyle` ([399685b](https://github.com/exadel-inc/esl/commit/399685ba69e93a517ac9ec1d081c5926f51bd34b)) +* **esl-share:** add ability to update config items (single one or in batch) ([96eac6b](https://github.com/exadel-inc/esl/commit/96eac6b1ad93d50bf16d76c9f0716d570c625bd9)) +* **esl-share:** add OOTB configuration for the Skype share button ([c3a76c4](https://github.com/exadel-inc/esl/commit/c3a76c490288c61fb1f198d8792c407c350055c8)) +* **esl-share:** add OOTB configuration for the Tumblr share button ([bb73186](https://github.com/exadel-inc/esl/commit/bb731864a0448853f2bb8d96f978b5f8e4b6ab65)) +* **esl-share:** add OOTB configuration for the Viber share button ([5dd4ea4](https://github.com/exadel-inc/esl/commit/5dd4ea41a4700722d97cecdcf40193a5b7f01bd2)) +* **esl-share:** add OOTB configuration for the WhatsApp share button ([748117f](https://github.com/exadel-inc/esl/commit/748117f199fcebd596a2079eea03ca5a14f7fe3e)) +* **esl-toggleable:** introducing alternative internal hooks `shouldShow`/`shouldHide` instead of deprecated `onBeforeShow`/`onBeforeHide`. ([3786423](https://github.com/exadel-inc/esl/commit/378642368986284e041b8cc081f342f89c51769f)) +* **esl-utils:** improve `rect` utility (it's almost ready to be immutable) ([f82fb1e](https://github.com/exadel-inc/esl/commit/f82fb1eed5ca06bff3718ce1ac1c86c2769fb2f3)) + +# [5.0.0-beta.9](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.8...v5.0.0-beta.9) (2024-01-19) + + +### Code Refactoring + +* **esl-utils:** `TOUCH_EVENTS` from `device-detector` module retired, DeviceDetector is deprecated ([e9ed603](https://github.com/exadel-inc/esl/commit/e9ed603164f3cd913f6fe80027000f560aae454d)) + + +### Features + +* **attr:** add provider to default value in attr ([e482aaf](https://github.com/exadel-inc/esl/commit/e482aaf5fe6c33b482eecaadf65f00246dc14b8c)) +* **esl-utils:** `isReducedMotion` detection result constant created ([2f3dd13](https://github.com/exadel-inc/esl/commit/2f3dd134ecbbb25c7239f87690448a8f4941110d)) + + +### BREAKING CHANGES + +* **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. + +# [5.0.0-beta.8](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.7...v5.0.0-beta.8) (2024-01-11) + + +### Bug Fixes + +* **esl-share:** fix merging of `additional`(nested) params when `ESLShareConfig.update` method is called ([a1b1942](https://github.com/exadel-inc/esl/commit/a1b1942907e36597bac89166ba239be402b76df4)) +* **esl-share:** rename copy action `alertText` param to `copyAlertMsg` ([3ba61ac](https://github.com/exadel-inc/esl/commit/3ba61aca2d6bd44648ab70a7897dcbffcaaa9233)) + +# [5.0.0-beta.7](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.6...v5.0.0-beta.7) (2024-01-05) + +# [5.0.0-beta.6](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.5...v5.0.0-beta.6) (2024-01-05) + +# [5.0.0-beta.5](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.4...v5.0.0-beta.5) (2024-01-05) + +# [5.0.0-beta.4](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.3...v5.0.0-beta.4) (2024-01-05) + + +### Bug Fixes + +* **esl-utils:** fix getting viewport sizes ([c17d2e3](https://github.com/exadel-inc/esl/commit/c17d2e3f9e5c9e3341857db65e43f6f83ddad240)) + + +### Features + +* **esl-toggleable:** introducing a base trigger class in purpose to simplify and make Trigger-Toggleable constructions more API strict in ESL ([4ea1565](https://github.com/exadel-inc/esl/commit/4ea1565d3fc29376f39920b392c9883065723382)) + +# [5.0.0-beta.3](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.2...v5.0.0-beta.3) (2023-12-21) + + +### Bug Fixes + +* **esl-event-listener:** fix support for any object-like host ([9ca6aa4](https://github.com/exadel-inc/esl/commit/9ca6aa4e5a12971285c4af7d10a2ecf277c83197)) +* **esl-utils:** `createZIndexIframe` retired ([ad678cb](https://github.com/exadel-inc/esl/commit/ad678cb3d20e122c8e7a87cb19c9e92b3f129a0a)) +* **esl-utils:** `SyntheticEventTarget` optimizations ([a4c9b8d](https://github.com/exadel-inc/esl/commit/a4c9b8d4cfd9b9e3ad20b84a16b8eb6ccc5ae4c0)) +* **esl-utils:** clean IE11 micro-optimizations ([7ed8830](https://github.com/exadel-inc/esl/commit/7ed883054b43c8c142409e6c6539aca93ef0048b)) +* **esl-utils:** fix types for `unwrap` array utility ([a4b432a](https://github.com/exadel-inc/esl/commit/a4b432a8680b02cab6edb23a0fb3de85788a2985)) +* **esl-utils:** simplified `flat` array utility ([788a782](https://github.com/exadel-inc/esl/commit/788a782ec03af63d370dd0c2785c40547a0f7624)) +* **esl-utils:** simplified `union` utility ([043fe45](https://github.com/exadel-inc/esl/commit/043fe45054da7dd1c05c61ea16146ff53555c54e)) +* **esl-utils:** simplified `uniq` array utility ([45f282f](https://github.com/exadel-inc/esl/commit/45f282f05ef8d05d0035d1a99d45034d9a4cf790)) + + +### Code Refactoring + +* Drop Edge old versions (<14) support ([b577fd1](https://github.com/exadel-inc/esl/commit/b577fd1cc085a6a2c5fbdcfa97a5401e0ad7b259)) +* Drop IE11 support ([6d376ee](https://github.com/exadel-inc/esl/commit/6d376ee2a6a77ddff4827cda454b61b60a690d8a)) +* **esl-media:** remove legacy features of `esl-media` ([c19561d](https://github.com/exadel-inc/esl/commit/c19561d8b04e95ab9525d7ca2dee2ced261b94a8)) +* exclude duplicated exports of `esl-utils/decorators` ([f6c84af](https://github.com/exadel-inc/esl/commit/f6c84afe00558346994d4220db69ac102ccba817)) + + +### Features + +* drop deprecated aliases ([#1505](https://github.com/exadel-inc/esl/issues/1505)) ([df7f5e5](https://github.com/exadel-inc/esl/commit/df7f5e5c6a3fa62ad559bd93f4c56095def64a0c)) + + +### BREAKING CHANGES + +* **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. + +# [5.0.0-beta.2](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.1...v5.0.0-beta.2) (2023-12-19) + + +### Bug Fixes + +* **eslint:** fix peerDependency constraint ([20b5d9d](https://github.com/exadel-inc/esl/commit/20b5d9d2c8a1b1e51288524024dfe6c17b665671)) + +# [5.0.0-beta.1](https://github.com/exadel-inc/esl/compare/v4.14.1...v5.0.0-beta.1) (2023-12-19) + + +### Bug Fixes + +* **esl-event-listener:** fix delegation recognition on non-DOM targets ([4716947](https://github.com/exadel-inc/esl/commit/47169479b46994e4fd1571a8cefe0454c983a89b)) +* **esl-event-listener:** fix missing host in debug information of empty subscription ([4abfa1e](https://github.com/exadel-inc/esl/commit/4abfa1e12346662616cc7ac431bb9e0161fe0bf0)), closes [#2078](https://github.com/exadel-inc/esl/issues/2078) +* **esl-event-listener:** improve compatibility of decorated event handler type ([de0c37e](https://github.com/exadel-inc/esl/commit/de0c37e2a399c2e88c16b10c2baaec662538e9a8)) +* **esl-panel-group:** `has-opened` attribute inconsistent ([13003e4](https://github.com/exadel-inc/esl/commit/13003e4b8d5bb039b7ae142739ea8a4667af4e2a)) +* **esl-popup:** create optional autofocus property; update flow with optimized rendering flow ([8e71d20](https://github.com/exadel-inc/esl/commit/8e71d208368f9208b167900211399d138ee7eaa6)) +* **esl-share:** fix focus behavior to a loop inside esl-share-popup ([e3393fe](https://github.com/exadel-inc/esl/commit/e3393fe6641497af149a6f9df5c87e98e7d637c4)) +* **esl-share:** fix share() method signature of print action ([ca7091d](https://github.com/exadel-inc/esl/commit/ca7091df6c6f361e4b8f3e2b328b08a9fb51044e)) +* **esl-toggleable:** rework actions pre-checks to fix flow on reopening toggleable ([c023e55](https://github.com/exadel-inc/esl/commit/c023e55da877a03e2378e6685d86839bcecb7dd1)) +* **esl-tooltip:** add constraints to fix DOM position management for `esl-tooltip` ([9c25137](https://github.com/exadel-inc/esl/commit/9c25137217b93e3ef2c22d5898d550eca0160c2f)) +* **esl-trigger:** default target for `esl-trigger` is not logically correct and obvious ([db4ffb8](https://github.com/exadel-inc/esl/commit/db4ffb8de4efb569587e56a978d8a23bb4671b50)) + + +### Code Refactoring + +* **esl-toggleable:** move `open` state updating to `onShow`/`onHide` callbacks ([b184eb1](https://github.com/exadel-inc/esl/commit/b184eb185c6816412c81a3a085e2cac276968165)) + + +### Features + +* **esl-event-listener:** `ESLWheelTarget` proxy target created to handle long wheel user actions ([#2031](https://github.com/exadel-inc/esl/issues/2031)) ([4dc4bfc](https://github.com/exadel-inc/esl/commit/4dc4bfcd3f2f16f9695b9fd468d3b5a6c587c8e8)), closes [#2017](https://github.com/exadel-inc/esl/issues/2017) +* **esl-open-state:** create ESL Open State mixin ([a8327a8](https://github.com/exadel-inc/esl/commit/a8327a8671bde9544c05cb942589cf80415b84d8)) +* **esl-popup:** add support of `PopupActionParams.extraClass` on popup level ([32b6d0a](https://github.com/exadel-inc/esl/commit/32b6d0a62a10b9009ac1352c9f68b2e7128ec5b0)) +* **esl-popup:** add support of `PopupActionParams.extraStyle` ([399685b](https://github.com/exadel-inc/esl/commit/399685ba69e93a517ac9ec1d081c5926f51bd34b)) +* **esl-share:** add ability to update config items (single one or in batch) ([96eac6b](https://github.com/exadel-inc/esl/commit/96eac6b1ad93d50bf16d76c9f0716d570c625bd9)) +* **esl-share:** add OOTB configuration for the Skype share button ([c3a76c4](https://github.com/exadel-inc/esl/commit/c3a76c490288c61fb1f198d8792c407c350055c8)) +* **esl-share:** add OOTB configuration for the Tumblr share button ([bb73186](https://github.com/exadel-inc/esl/commit/bb731864a0448853f2bb8d96f978b5f8e4b6ab65)) +* **esl-share:** add OOTB configuration for the Viber share button ([5dd4ea4](https://github.com/exadel-inc/esl/commit/5dd4ea41a4700722d97cecdcf40193a5b7f01bd2)) +* **esl-share:** add OOTB configuration for the WhatsApp share button ([748117f](https://github.com/exadel-inc/esl/commit/748117f199fcebd596a2079eea03ca5a14f7fe3e)) +* **esl-utils:** improve `rect` utility (it's almost ready to be immutable) ([f82fb1e](https://github.com/exadel-inc/esl/commit/f82fb1eed5ca06bff3718ce1ac1c86c2769fb2f3)) + + +### BREAKING CHANGES + +* **esl-toggleable:** `this.open` of Toggleable`s does not updating util `super.onShow` / `super.onHide` called. +Make sure you update `this.open` synchronously or manually notify consumers in case the super call of `onShow`/`onHide` should be postponed. +* **esl-trigger:** `esl-trigger` does not have target defined to `::next` by default +* **esl-toggleable:** `onBeforeShow` and `onBeforeHide` have retired. The constraint now inside `shouldShow`/`shouldHide` methods, +activator change now is the part of main togglable flow + +## [4.14.1](https://github.com/exadel-inc/esl/compare/v4.14.0...v4.14.1) (2023-11-27) + + +### Bug Fixes + +* **esl-media:** fix loading class condition should ignore lazy state ([c532ec0](https://github.com/exadel-inc/esl/commit/c532ec0ae01be87f6f15f466eb62560c7dd30995)) +* **esl-related-target:** fixed handling of bubbling events `esl:show` and `esl:hide` ([6964148](https://github.com/exadel-inc/esl/commit/6964148eef49760a83a4b4cb589d02acb7a8f998)) + +# [4.14.0](https://github.com/exadel-inc/esl/compare/v4.13.1...v4.14.0) (2023-11-24) + + +### Bug Fixes + +* **esl-scrollbar:** fix esl:change:scroll event handler invoked before scrollbar updates ([0c9c952](https://github.com/exadel-inc/esl/commit/0c9c95258d92e9557d047c739a4b5891e786ffcb)) +* **esl-share:** add support types for correct using in Typesript ([143d3b6](https://github.com/exadel-inc/esl/commit/143d3b6ec81f78ab34b5f76702122c23019695a6)) +* **esl-share:** fix a visual issue of displaying a huge list of buttons in a popup ([a2ce0a9](https://github.com/exadel-inc/esl/commit/a2ce0a92958ecd6da4b0a9717cf2af2969b89030)) +* **esl-share:** fix button initialization on create ([72775f6](https://github.com/exadel-inc/esl/commit/72775f6553dfc82565dc40ac2b63201b9bc8067c)) +* **esl-share:** fix ESLShareConfig deduplication behavior on selecting buttons for the list ([fe0d53a](https://github.com/exadel-inc/esl/commit/fe0d53a9b27cc90a029f412409907b59fd9cce97)) +* **esl-share:** fix ready state attribute and ready state event ([3c3dade](https://github.com/exadel-inc/esl/commit/3c3dadefdba1a9837092bd2ff3f3e408b6a48d96)) +* **esl-share:** make list an observable attribute ([f418820](https://github.com/exadel-inc/esl/commit/f4188203bd2f204e5e48258ef27ee714132378d4)) +* **esl-tabs:** fix iOS auto-scroll / arrow controls boundaries on iOS devices when touch-scroll is enabled ([5845c3a](https://github.com/exadel-inc/esl/commit/5845c3a3c202b40781d79283b5304454e72ee9ab)), closes [#2030](https://github.com/exadel-inc/esl/issues/2030) + + +### Features + +* **esl-panel-group:** add ability to enable match-height behavior for tabs height using `esl-tabs-equal-height` class ([6e0ea33](https://github.com/exadel-inc/esl/commit/6e0ea334eb3b1e52726be3788fe32e3c9b00faeb)), closes [#1949](https://github.com/exadel-inc/esl/issues/1949) +* **esl-popup:** internal ESLPopup implementation updated to use ESLEventListeners; usage of cached properties reduced ([9c78249](https://github.com/exadel-inc/esl/commit/9c78249385fe6c9a5c620cbe5031d3419384f64e)) +* **esl-random-text:** create auxiliary `esl-random-text` component to generate dummy text ([0af54a1](https://github.com/exadel-inc/esl/commit/0af54a13926286ea47d3d7d50a010236f43958f8)) +* **esl-share:** rename attribute into popup-params ([f07b471](https://github.com/exadel-inc/esl/commit/f07b471188b652ca94be9eb9d7d450952a523054)) +* **esl-share:** retire esl-share and rename esl-share-popup-trigger into esl-share ([04baf4b](https://github.com/exadel-inc/esl/commit/04baf4bb36a999dde3afdc3985bb2c3f991d34de)) +* **esl-toggleable:** introduce static option `DEFAULT_PARAMS` to define toggleable instance default show/hide params ([14c9e78](https://github.com/exadel-inc/esl/commit/14c9e787cc108e5ef7367dd12b7d7fcfe3b6a59d)) +* **esl-tooltip:** add inlineStyles param to pass styles into shared instance of tooltip ([7b28cf8](https://github.com/exadel-inc/esl/commit/7b28cf88b50eca9c6a50be350943a04c1994ae49)) +* **esl-utils:** introducing `parseCSSTime` format utility to extract time values from CSS ([#821](https://github.com/exadel-inc/esl/issues/821)) ([d26c96e](https://github.com/exadel-inc/esl/commit/d26c96ed28255a384b801b05ae61f04d34abcd70)) +* **eslint:** eslint plugin to find and replace deprecated ESL alias on the customer's projects ([#1374](https://github.com/exadel-inc/esl/issues/1374)) ([3d43f92](https://github.com/exadel-inc/esl/commit/3d43f9250bacbb21087c808baf5ef007343faffe)) + +## [4.13.1](https://github.com/exadel-inc/esl/compare/v4.13.0...v4.13.1) (2023-11-03) + + +### Bug Fixes + +* **esl-event-listener:** fix subscription to intersects event in `IntersectionObserver` ([0d9ccca](https://github.com/exadel-inc/esl/commit/0d9ccca1e3d9b392ff6b88238f4f745c7e47ce14)) +* **esl-event-utils:** `ESLSwipeGestureTarget` target prevents inside element actions ([8fed4bc](https://github.com/exadel-inc/esl/commit/8fed4bc7784ced724c1d0e9410d6e388a1235a10)), closes [#2024](https://github.com/exadel-inc/esl/issues/2024) + +# [4.13.0](https://github.com/exadel-inc/esl/compare/v4.12.0...v4.13.0) (2023-10-25) + + +### Bug Fixes + +* **esl-media:** fix brightcove provider autoplay marker flow ([58793cd](https://github.com/exadel-inc/esl/commit/58793cd14aa9dfd8ca884d3a984a0c85df726b0d)), closes [#1979](https://github.com/exadel-inc/esl/issues/1979) +* **esl-popup:** fix default styles for `esl-popup` tag (uninitialized) ([e25eedf](https://github.com/exadel-inc/esl/commit/e25eedfcaf4c81ba0e5d446609b1843b3f815d77)) +* **esl-popup:** update popup position according activator change ([#1679](https://github.com/exadel-inc/esl/issues/1679)) ([65e3801](https://github.com/exadel-inc/esl/commit/65e3801a9db981a08275c7c6b1b38be449c12d2a)) +* **esl-scrollbar:** fix incorrect `at-start`/`at-end` handling when browser creates dimensions with the floating point ([852ad15](https://github.com/exadel-inc/esl/commit/852ad15b5c8f8c918f60e26199739ff79c8c6580)) +* **esl-share:** add a fill color to social network icons ([c0d62ac](https://github.com/exadel-inc/esl/commit/c0d62ac774a9750e6d1f25f7d48c125a1d674066)) +* **esl-share:** change default twitter (x.com) icon and bg color ([8c544e4](https://github.com/exadel-inc/esl/commit/8c544e4556c6cf9c98f9f827175f8d3f3dbce408)) +* **esl-share:** show copy notification just in case it is successful ([f57fe98](https://github.com/exadel-inc/esl/commit/f57fe98cf9818c861d6f4cb57dc467d1c2387bb8)) +* **esl-utils:** fix `debounce` helper random access of undefined ([8cd87e8](https://github.com/exadel-inc/esl/commit/8cd87e872cd3a2dcd6231c09e2cdefb7db5ea3d1)) + + +### Features + +* **esl-event-listener:** add `condition` descriptor property to legally prevent subscription ([00b719c](https://github.com/exadel-inc/esl/commit/00b719ca28994f41b2537aefba740b6ed16234ed)), closes [#1947](https://github.com/exadel-inc/esl/issues/1947) +* **esl-event-listener:** create `ESLIntersectionTarget` adapter utility for managing `IntersectionObserver` subscriptions trough event listeners ([34bb7e8](https://github.com/exadel-inc/esl/commit/34bb7e835a33080b63a3dc83928cfbd9f4751072)) +* **esl-share:** add default-icon marker to render icon on button init ([081b526](https://github.com/exadel-inc/esl/commit/081b52601583cc3500e9cf40298ddeec702e0b93)) +* **esl-share:** add out of the box share config default ([4b97632](https://github.com/exadel-inc/esl/commit/4b97632007dab87afaa7966a27f3aade80369c12)) +* **esl-share:** create esl-share-list component ([90b1c1d](https://github.com/exadel-inc/esl/commit/90b1c1d8f4f2a4afa815026a242f1be78a72b2ba)) +* **esl-share:** remove iconBackground property from share buttons config ([27d793d](https://github.com/exadel-inc/esl/commit/27d793d542a3d990d2eb1a94f67135ba1885b7d2)) +* **esl-share:** rework esl-share-button custom element API ([96a7f84](https://github.com/exadel-inc/esl/commit/96a7f84d4f59cac504dd168dd54767cc9687d787)) +* **esl-share:** rework share popup internal implementation ([9b775a0](https://github.com/exadel-inc/esl/commit/9b775a07bb9db96ba6815eb548d0065d28aa965c)) + +# [4.12.0](https://github.com/exadel-inc/esl/compare/v4.11.0...v4.12.0) (2023-09-22) + + +### Bug Fixes + +* **esl-tabs:** observe element resize instead of window using `ESLResizeObserverTarget` ([9dd4639](https://github.com/exadel-inc/esl/commit/9dd4639c6d937758725c5a4e9e444c6c78d31215)) + + +### Code Refactoring + +* **esl-event-listener:** restructure `esl-event-listener/core/targets` ([fbdb6c3](https://github.com/exadel-inc/esl/commit/fbdb6c335e9863fddb6a817a66689cc127356335)) + + +### Features + +* **esl-event-listener:** `ESLEventUtils.unsubscribe` implementation moved to internal `ESLEventListener.unsubscribe` ([eaa4204](https://github.com/exadel-inc/esl/commit/eaa42045c39f3cbb5f07568aab93b9bd2a6fba98)) +* **esl-event-listener:** add `SwipeEventTarget` to subscribe `swipe` events using `ESLEventListener` ([e7e69a2](https://github.com/exadel-inc/esl/commit/e7e69a257b74f985be0c191b8e722dcb124bc74c)), closes [#1809](https://github.com/exadel-inc/esl/issues/1809) +* **esl-media:** support for lazy initialization by `lazy` attribute for `ESLMedia` ([f83d65a](https://github.com/exadel-inc/esl/commit/f83d65a91e064e6f8aa2ddc7f9cc4e8b49eacba5)) + + +### BREAKING CHANGES + +* **esl-event-listener:** (if there is references to internal files) `resize.adapter.ts`/`resize.adapter.event.ts` renamed to `resize.target.ts`/`resize.target.event.ts` + +# [4.11.0](https://github.com/exadel-inc/esl/compare/v4.10.0...v4.11.0) (2023-09-01) + + +### Bug Fixes + +* **esl-event-listener:** `ESLResizeObserverTarget.for` handles no target cases silently (warning + null result) ([b28d6af](https://github.com/exadel-inc/esl/commit/b28d6aff7a674fc04d23aaedadc03ace0f8d9cb3)), closes [#1885](https://github.com/exadel-inc/esl/issues/1885) +* **esl-event-listener:** fix support of separate DOM realms for `ESLEventListener` ([905e7a8](https://github.com/exadel-inc/esl/commit/905e7a886b6ab975e32e712ae4f4b1109c42f0de)) +* **esl-media:** update `esl-media` refresh handler to use consistent `isElement` check ([d6f8855](https://github.com/exadel-inc/esl/commit/d6f8855428d69323815689335449ce1e17f9568f)) +* **esl-scrollbar:** update `esl-scrollbar` to use consistent `isElement` check on refresh and mutation observation ([f817837](https://github.com/exadel-inc/esl/commit/f817837e5ea1b35f8b4f0d2b2000321d2ddcc560)) +* **esl-trigger:** update `esl-trigger` to use consistent `isElement` check in `isTargetIgnored` check ([fe41661](https://github.com/exadel-inc/esl/commit/fe4166110dd077ac6759a7b4b509e6b11af058b2)) +* **esl-utils:** fix support of separate DOM realms for `getScrollParent` ([eb7ede6](https://github.com/exadel-inc/esl/commit/eb7ede60531c97f91c90e66df00aff1f43794514)) +* **esl-utils:** fix support of separate DOM realms for `resolveDomTarget` ([c16e1dd](https://github.com/exadel-inc/esl/commit/c16e1ddfa762f2ad7d64f308857fb5aa1bc93bc8)) +* **esl-utils:** fix types and Element check for `isVisible` predicate (support of separate DOM realms) ([7c83e09](https://github.com/exadel-inc/esl/commit/7c83e09e576ca1afb76cbf93698a261b28de9c42)) + + +### Features + +* **esl-panel-group:** add readonly `has-opened` marker for `esl-panel-group` ([a565a71](https://github.com/exadel-inc/esl/commit/a565a71ba7d6b89f834b5241b941b6314012ac4a)) +* **esl-panel-group:** support for esl-panel-group driven animation to closed state ([0698b1c](https://github.com/exadel-inc/esl/commit/0698b1c4d3942127adcd4c2674ce4807dbf9f963)) +* **esl-utils:** `isPlainObject` and `isElement` type guard utilities ([86f0bfb](https://github.com/exadel-inc/esl/commit/86f0bfb957d2dfbea4143b9b5af6d3e59a1def32)) + +# [4.10.0](https://github.com/exadel-inc/esl/compare/v4.9.4...v4.10.0) (2023-08-10) + + +### Bug Fixes + +* **esl-footnotes:** shape to support TSX is missing in module ([fd8cd07](https://github.com/exadel-inc/esl/commit/fd8cd076e07d2ea745da9cd59488f3f3001dbcae)) +* **esl-togglable:** open attribute change behavior ([826b27b](https://github.com/exadel-inc/esl/commit/826b27b9e4a48e0e42da96c0da7a8db1563473e1)) +* **esl-toggleable:** fix activator when close-on inner trigger click handled ([#1852](https://github.com/exadel-inc/esl/issues/1852)) ([f450d8b](https://github.com/exadel-inc/esl/commit/f450d8b68395785b5bb7e67d753994653d9d1a0a)) +* **esl-utils:** fix unhandled rejection when deferred is rejected but actual promise was not requested ([#1839](https://github.com/exadel-inc/esl/issues/1839)) ([5e111ba](https://github.com/exadel-inc/esl/commit/5e111baf343fba2c4e49c9618131fd50b78376f8)) + + +### Features + +* **esl-toggleable:** change `closeOnEsc` and `closeOnOutsideAction` mappers to extended boolean ('0' and 'false' values now considered as falsy) ([181a2b7](https://github.com/exadel-inc/esl/commit/181a2b767cfcb041620d30c95e08dffd3d3fd064)) +* **esl-trigger:** change `ignoreEsc` mapper to extended boolean ('0' and 'false' values now considered as falsy) ([9ccee3d](https://github.com/exadel-inc/esl/commit/9ccee3d03486df3cc88a7cfd06448f18dd139623)) +* **esl-utils:** `lockScroll` / `unlockScroll` methods reworked with no-scroll detection ([25b5b91](https://github.com/exadel-inc/esl/commit/25b5b9139c36f9bfc78319ba39e7cf6cee464a46)) +* **esl-utils:** create `toBooleanAttribute` and create extended boolean attribute flow ([e039256](https://github.com/exadel-inc/esl/commit/e0392569045dc8526d0d1f8ff383e54b044f5f1b)) + +## [4.9.4](https://github.com/exadel-inc/esl/compare/v4.9.3...v4.9.4) (2023-07-17) + + +### Bug Fixes + +* **esl-base-element:** fix redefine tag feature (existing component receives incorrect tag name) ([6c17690](https://github.com/exadel-inc/esl/commit/6c17690e9c332927df91bd7c87e93cb0732ba8bf)), closes [#1804](https://github.com/exadel-inc/esl/issues/1804) + +## [4.9.3](https://github.com/exadel-inc/esl/compare/v4.9.2...v4.9.3) (2023-07-13) + + +### Bug Fixes + +* **esl-footnotes:** fix esl-tooltip related to the note does not perceive dir and lang of original content ([e506d0d](https://github.com/exadel-inc/esl/commit/e506d0dbf6504197032e384139115433b8d1a414)) + +## [4.9.2](https://github.com/exadel-inc/esl/compare/v4.9.1...v4.9.2) (2023-07-12) + + +### Bug Fixes + +* **esl-footnotes:** remove the possibility of setup esl-note anchor markup conditionally ([a26a3ed](https://github.com/exadel-inc/esl/commit/a26a3eda139eabc5db2094b89028b4c3cd0db8cb)) + +## [4.9.1](https://github.com/exadel-inc/esl/compare/v4.9.0...v4.9.1) (2023-07-07) + + +### Bug Fixes + +* hotfix for writeable `is` field short initialization syntax ([e46461b](https://github.com/exadel-inc/esl/commit/e46461bf69335993f7005efd55b8fd55dbe0f152)) + +# [4.9.0](https://github.com/exadel-inc/esl/compare/v4.8.0...v4.9.0) (2023-07-07) + + +### Bug Fixes + +* **esl-animate:** default print styles for esl-animate ootb animation ([3d4ea2a](https://github.com/exadel-inc/esl/commit/3d4ea2a52cb5c5de019bf5aedc94d182fbf7dfc8)) +* **esl-animate:** missing types for `esl-animate` module ([2000e04](https://github.com/exadel-inc/esl/commit/2000e041f882a7f22af620285b52ff5e5caf3b19)) +* **esl-base-element:** more accurate check for element redeclaration (detects both: tag and class inconsistency) ([66266a9](https://github.com/exadel-inc/esl/commit/66266a9996d52245c3c094edfb8397066e1d6895)) +* **esl-mixin-element:** remove mixin store invalidate on re-requesting registration + more accurate exceptions ([86b7620](https://github.com/exadel-inc/esl/commit/86b7620a3e18408701f7bde3234bc7781abfff9a)) +* **esl-mixin-element:** significant improvement for mixin registration process (scope DOM invalidation to changes records and registered mixin type ) ([06bd2ff](https://github.com/exadel-inc/esl/commit/06bd2ff1d32337af86fbe7d43b4ecc327b17110c)) +* **esl-panel-group:** default print styles for esl-panel-group ([9a2fc28](https://github.com/exadel-inc/esl/commit/9a2fc281d06b2070a90679cbdf758d606dd9aa0b)) +* **esl-panel:** default print styles for esl-panel ([68cf512](https://github.com/exadel-inc/esl/commit/68cf512f709d51686c03797066e382f1f4b38080)) +* **esl-select:** activator lost on dropdown hide ([02de9dd](https://github.com/exadel-inc/esl/commit/02de9ddb7fd6a3e590b4201890565a9321221162)) +* **gh-pages:** default print styles for gh-pages ([bb8a0ab](https://github.com/exadel-inc/esl/commit/bb8a0ab98ac85502af179d43a521dbeee32666cc)) + + +### Code Refactoring + +* **esl-animate:** rework default animation classes ([69ef3af](https://github.com/exadel-inc/esl/commit/69ef3af0927e5cf2e283326e86bc134f8999a477)) + + +### Features + +* **esl-footnotes:** add support of the anchor relationship between note and footnote for the print version ([d30c662](https://github.com/exadel-inc/esl/commit/d30c6629729071db724bd377681863dbf260947b)) +* **esl-footnotes:** create esl-note-ignore mixin ([3caa0d5](https://github.com/exadel-inc/esl/commit/3caa0d52ef260876009bb04c961ebc5fbba11a10)) +* **esl-select:** internal `esl-select-dropdown` is migrated to `esl-popup` ([#1393](https://github.com/exadel-inc/esl/issues/1393)) ([5f0009c](https://github.com/exadel-inc/esl/commit/5f0009cdefb341aa3cd0f5ea7e95e84633148a27)) +* **esl-share:** create esl-share-trigger component ([75a84f6](https://github.com/exadel-inc/esl/commit/75a84f6eb29e971b5bd2095af809ad9149c3c078)) +* **esl-share:** create popup mode for esl-share component ([0df4116](https://github.com/exadel-inc/esl/commit/0df41165e9f5aee54709f2c3c68609412aa5d6bb)) + + +### BREAKING CHANGES + +* **esl-animate:** default esl-animate module class `esl-animate-slide-up` replaced with `esl-animate-slide up` +* **esl-animate:** default esl-animate module class `esl-animate-slide-down` replaced with `esl-animate-slide down` +* **esl-animate:** default esl-animate module class `esl-animate-slide-left` replaced with `esl-animate-slide left` +* **esl-animate:** default esl-animate module class `esl-animate-slide-right` replaced with `esl-animate-slide right` + +# [4.8.0](https://github.com/exadel-inc/esl/compare/v4.7.1...v4.8.0) (2023-06-26) + + +### Features + +* **esl-animate:** animate mixin element ([9f9c156](https://github.com/exadel-inc/esl/commit/9f9c156c098df5d4de61e7cc7d13753e38a0391f)) +* **esl-toggleable:** ability to set up state class to any related element ([#1728](https://github.com/exadel-inc/esl/issues/1728)) ([648b114](https://github.com/exadel-inc/esl/commit/648b1149b1dc336779350fdea25f1cd90f4837f7)), closes [#1727](https://github.com/exadel-inc/esl/issues/1727) + +## [4.7.1](https://github.com/exadel-inc/esl/compare/v4.7.0...v4.7.1) (2023-06-15) + + +### Bug Fixes + +* **esl-utils:** fix missing export of `createDeferred` method under `esl-utils/async/promise` ([756440e](https://github.com/exadel-inc/esl/commit/756440e8840e131a03d0ed7f82c9bd93caa3ba59)) +* **esl-utils:** fix unsubscription if `promisifiedEvent` rejected by timeout ([#1698](https://github.com/exadel-inc/esl/issues/1698)) ([#1724](https://github.com/exadel-inc/esl/issues/1724)) ([b675793](https://github.com/exadel-inc/esl/commit/b675793079c2650f243b1dac580f0666e801a732)) + +# [4.7.0](https://github.com/exadel-inc/esl/compare/v4.6.0...v4.7.0) (2023-06-09) + + +### Bug Fixes + +* **esl-utils:** fix sequence finder behaviour in case step function leads to loop ([c23e2c2](https://github.com/exadel-inc/esl/commit/c23e2c2622bec1e894ba97ba068d198d6dd53a4e)) + + +### Code Refactoring + +* **esl-carousel:** remove legacy esl-carousel implementation ([b31599a](https://github.com/exadel-inc/esl/commit/b31599ab101afb14081c4e2d8619ce9ee390571a)) + + +### Features + +* **esl-event-listener:** add the ability to get the current delegated event target ([#1675](https://github.com/exadel-inc/esl/issues/1675)) ([8b4b089](https://github.com/exadel-inc/esl/commit/8b4b089ca8d63ae7df0f39e4434ff7b2b38f5e59)) +* **esl-popup:** change the logic of auto injection of arrow ([a7ba04c](https://github.com/exadel-inc/esl/commit/a7ba04c2f9f16caab992566354a98376fca1672f)) +* **esl-utils:** add `findNextLooped` and `findPrevLooped` common traversing utility ([80a4e67](https://github.com/exadel-inc/esl/commit/80a4e67324301665b16b3780f6f81e03bcc27914)) +* **esl-utils:** add `promisifyNextRender` common utility ([3a93887](https://github.com/exadel-inc/esl/commit/3a938876791201e38919af33646d8fb28d248e45)) +* **esl-utils:** introduce `promisifyTransition` utility ([68d0556](https://github.com/exadel-inc/esl/commit/68d0556d56624728ff57a77e5f6cead568ab14f3)) +* **esl-utils:** utility to postpone execution to microtask ([4f4f637](https://github.com/exadel-inc/esl/commit/4f4f6374741d2534547e650bf59d39596008f25b)) + + +### BREAKING CHANGES + +* **esl-carousel:** `draft/esl-carousel` no longer available + +# [4.6.0](https://github.com/exadel-inc/esl/compare/v4.5.0...v4.6.0) (2023-05-22) + + +### Bug Fixes + +* **esl-utils:** fix `unwrap` method signature types ([ee16641](https://github.com/exadel-inc/esl/commit/ee16641844fb7d10f845eb26ff54264c799833ac)) +* **esl-utils:** make ts decorators work with babel ([05462da](https://github.com/exadel-inc/esl/commit/05462daf52d1471a9d7676abae2862d2f8e5556a)) + + +### Features + +* **🚩esl-share:** beta version of esl-share([#1327](https://github.com/exadel-inc/esl/issues/1327)) component released ([#1660](https://github.com/exadel-inc/esl/issues/1660)) ([be7aa83](https://github.com/exadel-inc/esl/commit/be7aa830c47ddc0b8e70cd593718e90709e9d3f5)) + +# [4.5.0](https://github.com/exadel-inc/esl/compare/v4.4.1...v4.5.0) (2023-05-15) + + +### Features + +* `ESLBaseComponent` interface shared between `ESLMixinElement` and `ESLBaseElement` ([507dfe8](https://github.com/exadel-inc/esl/commit/507dfe88e9473555f8f0d50c1ea32b0415413e72)) +* **esl-mixin-element:** `ESLMixinElement` API updates: **IMPORTANT !** hooks methods now have protected visibility modifier ([2be1b44](https://github.com/exadel-inc/esl/commit/2be1b4438d7d47af573b83546085475d4e512322)) +* **esl-mixin-element:** add `getAll` public utility method ([2be1b44](https://github.com/exadel-inc/esl/commit/2be1b4438d7d47af573b83546085475d4e512322)) +* **esl-mixin-element:** add the ability to get mixin by name by `ESLMixinElement` ([7365e13](https://github.com/exadel-inc/esl/commit/7365e13d563b1f56daab5be4149a4e6475e1ec3f)) +* **esl-mixin-element:** improve observation mechanism of mixin's observed attributes ([e7ed2ab](https://github.com/exadel-inc/esl/commit/e7ed2ab93493e15e22fbf1c37f3baf310e3651e9)) +* **esl-mixin-element:** mixin primary attribute observed unconditionally by mixin manager ([c6741a4](https://github.com/exadel-inc/esl/commit/c6741a4dddafc11a5017b8bad9cfbf0408aa2ab2)) + + +## [4.4.1](https://github.com/exadel-inc/esl/compare/v4.4.0...v4.4.1) (2023-04-25) + + +### Bug Fixes + +* **esl-utils:** incorrect throttle behaviour ([918944d](https://github.com/exadel-inc/esl/commit/918944d0255961651eb3df8f060a9b65fc1ca228)) +* **gh-pages:** add new favicon icons ([b2846be](https://github.com/exadel-inc/esl/commit/b2846bea077fe19a8c321349b795837a43cb78e6)) +* **gh-pages:** add new favicon icons according to the favicons guide ([83d0ca4](https://github.com/exadel-inc/esl/commit/83d0ca44ac2640fed04023878c696399562b5bac)) + +## [4.4.1](https://github.com/exadel-inc/esl/compare/v4.4.0...v4.4.1) (2023-04-25) + + +### Bug Fixes + +* **esl-utils:** incorrect throttle behaviour ([918944d](https://github.com/exadel-inc/esl/commit/918944d0255961651eb3df8f060a9b65fc1ca228)) +* **gh-pages:** add new favicon icons ([b2846be](https://github.com/exadel-inc/esl/commit/b2846bea077fe19a8c321349b795837a43cb78e6)) +* **gh-pages:** add new favicon icons according to the favicons guide ([83d0ca4](https://github.com/exadel-inc/esl/commit/83d0ca44ac2640fed04023878c696399562b5bac)) + +# [4.4.0](https://github.com/exadel-inc/esl/compare/v4.3.1...v4.4.0) (2023-04-12) + + +### Bug Fixes + +* **esl-event-listener:** fix `ESLEventTargetDecorator` dispatched event `target` ([8252988](https://github.com/exadel-inc/esl/commit/82529888e18e857a0fe86ff4fdd4faf4c746f26b)) +* **esl-event-listener:** fix target delegation checking ([b307ce6](https://github.com/exadel-inc/esl/commit/b307ce647c9efd3d7e639dcf873f7a428ecb1d85)) +* **esl-event-listener:** fix typechecking for TS5 ([d434275](https://github.com/exadel-inc/esl/commit/d434275d7db041c77329f01885dcadf3e53fdb3f)) +* **esl-media:** fix `iv_load_policy` param and small test regexp optimization in YouTube provider ([2deb64b](https://github.com/exadel-inc/esl/commit/2deb64b8ff2e6c564eba5f5b95746c2c285d9394)) +* **esl-utils:** `SynteticEventTarget` no longer mutate `event.target` without need; `event.currentTarget` fix to current instance ([d5e2c78](https://github.com/exadel-inc/esl/commit/d5e2c78a3c41341dffe46c7419aedff0f38ae1d1)), closes [#1534](https://github.com/exadel-inc/esl/issues/1534) + + +### Code Refactoring + +* **esl-event-listener:** change API of extended EventTargets ([39b01cc](https://github.com/exadel-inc/esl/commit/39b01cc210672a6cd832b56a4bf5dfd0b9fb1b09)) + + +### Features + +* **esl-base-element:** `ESLBaseElement.prototype.baseTagName` shortcut ([c10fc6d](https://github.com/exadel-inc/esl/commit/c10fc6da0547658220693979c32d566ccea1637b)) +* **esl-event-listener:** improved `ESLResizeObserverTarget` API with a standardized `ESLElementResizeEvent` ([8e1d72e](https://github.com/exadel-inc/esl/commit/8e1d72e7f28ad6a1865ed092cbc0253709e5b9dd)) +* **esl-event-listener:** support for `ESLDomElementTarget` in `ESLResizeObserverTarget` ([#1573](https://github.com/exadel-inc/esl/issues/1573)) ([f177381](https://github.com/exadel-inc/esl/commit/f177381066024f5fc74704f86a16682f6b2346f8)) +* **esl-utils:** `getEventListeners()` method introduced for `SynteticEventTarget` ([#1548](https://github.com/exadel-inc/esl/issues/1548)) ([c293b61](https://github.com/exadel-inc/esl/commit/c293b61e61e913a7e299e76a2aad88c90bbc9a12)) + + +### BREAKING CHANGES (Beta) + +* **esl-event-listener:** beta `ESLEventUtils.resize` replaced with `ESLResizeObserverTarget.for` +* **esl-event-listener:** beta `ESLEventUtils.decorate` replaced with `ESLDecoratedEventTarget.for` + +## [4.3.1](https://github.com/exadel-inc/esl/compare/v4.3.0...v4.3.1) (2023-03-09) + + +### Bug Fixes + +* **esl-event-listener:** (HOTFIX) `[@listen](https://github.com/listen)` should not require host typeof `ESLDomElementTarget` ([01b84c3](https://github.com/exadel-inc/esl/commit/01b84c361100237a181a46595e0f6b67a5067353)) + +# [4.3.0](https://github.com/exadel-inc/esl/compare/v4.2.1...v4.3.0) (2023-03-08) + + +### Bug Fixes + +* **esl-event-utils:** fix `SyntheticEventTarget` event `target` descriptor configurability ([64a6a84](https://github.com/exadel-inc/esl/commit/64a6a8439a338c4fc2e26a9be6f7750d1487a5ae)) +* **esl-media:** `ref:` prefix is optional, user should be able to use internal id ([465fbec](https://github.com/exadel-inc/esl/commit/465fbecd9b45d5f1a5f2fabf8db5a62b5d0f1ba5)) + + +### Features + +* **esl-event-listener:** `SyntheticEventTarget` extended with ability to pass custom target to `dispatchEvent` method ([4982a45](https://github.com/exadel-inc/esl/commit/4982a45bf7c38304e3e360180d47152fce1db4ad)) +* **esl-event-listener:** create EventTarget decorator and window target utilities ([ca0f0de](https://github.com/exadel-inc/esl/commit/ca0f0de70adf180654afd50b06f78f8e74451f7f)) +* **esl-event-listener:** New `ESLEventUtils.resize` utility to create an adapter `EventTargets` for `ResizeObserver` ([e1de096](https://github.com/exadel-inc/esl/commit/e1de09611815d65bccceb91ae2771b870a70c345)) +* **esl-utils:** `SyntheticEventTarget` API extended with ability to choose target value and specify default event type ([3fc1f5d](https://github.com/exadel-inc/esl/commit/3fc1f5d5a7f87fe41d6f91737f7d217eedb5bb4e)) +* **esl-utils:** attr api extension ([07e3a9f](https://github.com/exadel-inc/esl/commit/07e3a9ffd1a54a9f83cf4e643e507568e730d84c)) + +## [4.2.1](https://github.com/exadel-inc/esl/compare/v4.2.0...v4.2.1) (2023-02-20) + + +### Bug Fixes + +* **esl-image:** attribute callback before connect ([659fa20](https://github.com/exadel-inc/esl/commit/659fa2031577bba2ce19af32c6950c9403a2ef27)) +* **esl-utils:** `memoize.clear` and `memoize.has` signature types improved ([4068bfa](https://github.com/exadel-inc/esl/commit/4068bfaff2150cd2aeb389fcc230a07cd826466a)) + +# [4.2.0](https://github.com/exadel-inc/esl/compare/v4.1.1...v4.2.0) (2023-02-02) + + +### Bug Fixes + +* **esl-event-listener:** allow to redeclare function descriptor data ([e304726](https://github.com/exadel-inc/esl/commit/e304726ba00f65b70ac25a194703a21aa9ac5d5c)) +* **esl-event-listener:** fix `isEventDescriptor` check for incorrect type of event key ([729b486](https://github.com/exadel-inc/esl/commit/729b486e0a934820502ffa8696be28a4f1b1465a)) +* **esl-footnotes:** esl-note is not respond on "ignore" attribute change ([7e0f4b8](https://github.com/exadel-inc/esl/commit/7e0f4b8ea8802b93ca0dc9060cfa47a371d729be)) +* **esl-mixin-element:** fix oldValue argument of attributeChangedCallback ([36c8d0f](https://github.com/exadel-inc/esl/commit/36c8d0fd5c20ba04eeed6139bcf1688c740e0036)) +* **esl-utils:** fix `isObject` predicate signature to accept symbol keys ([c8f0611](https://github.com/exadel-inc/esl/commit/c8f0611ff916e15e8be028766baf6f98a5c9e2a4)) + + +### Features + +* **esl-event-listener:** IE safe private key for ESLEventListeners (now stores under Symbol in modern browsers) ([eb5e6c3](https://github.com/exadel-inc/esl/commit/eb5e6c3c37a224309ba3699f47ac75e01f9dbe9f)) +* **esl-event-listener:** simplified way to subscribe all auto descriptors ([e6c432b](https://github.com/exadel-inc/esl/commit/e6c432b542d7b9f74079fb5012e9b87373bf805f)) +* **esl-related-target:** make related target able to targeting multiple related togglable ([#1398](https://github.com/exadel-inc/esl/issues/1398)) ([9a4423c](https://github.com/exadel-inc/esl/commit/9a4423c63f34731a9708cd93aaca41e8f07690de)) +* **esl-utils:** `isVisible` predicate and `ESLTraversingQuery` filter created according to [#931](https://github.com/exadel-inc/esl/issues/931) spec ([#1341](https://github.com/exadel-inc/esl/issues/1341)) ([70ea8fb](https://github.com/exadel-inc/esl/commit/70ea8fbc134eb03ec2aba911600f7441ee953c93)) +* **esl-utils:** isVisible predicate ([510d396](https://github.com/exadel-inc/esl/commit/510d396e6393b907afc885f038684b421d2a7449)) + +## [4.1.1](https://github.com/exadel-inc/esl/compare/v4.1.0...v4.1.1) (2023-01-11) + + +### Bug Fixes + +* **esl-popup:** protected methods visibility ([f53af36](https://github.com/exadel-inc/esl/commit/f53af369e75e6fe902328b947348d94c3ae41627)) +* **redirect:** add permalink for ` /utils/esl-utils/` path ([bb3e01a](https://github.com/exadel-inc/esl/commit/bb3e01a1e65dd3ab65c18940bcdb03a57cf108ca)) + +# [4.1.0](https://github.com/exadel-inc/esl/compare/v4.0.2...v4.1.0) (2022-12-09) + + +### Bug Fixes + +* **esl-scrollbar:** add `resize` event ([36cd4c3](https://github.com/exadel-inc/esl/commit/36cd4c304feaa4d2279a04f860c478ba007004cc)) +* **esl-scrollbar:** change target on `window` for `scroll` event ([93a0560](https://github.com/exadel-inc/esl/commit/93a05606178180185f7085fe72e9c0defb55784f)) +* **esl-scrollbar:** fix visibility and size of scroll at start ([#1369](https://github.com/exadel-inc/esl/issues/1369)) ([3f58aac](https://github.com/exadel-inc/esl/commit/3f58aacda313cc0a55562a4085a4e15db8b1d480)) +* **esl-scrollbar:** remove meta declaration `[@listen](https://github.com/listen)` ([e105286](https://github.com/exadel-inc/esl/commit/e105286f3ae5013a9474a3d1a6a9c4ad816c88aa)) +* **gh-pages:** code refactoring ([4a8aefb](https://github.com/exadel-inc/esl/commit/4a8aefb3141013f204714264990de25a104b5180)) +* **gh-pages:** code refactoring ([b48eed0](https://github.com/exadel-inc/esl/commit/b48eed098c70bfa9767b0971d9c54df18f562d14)) +* **gh-pages:** create redirect links ([bd7228f](https://github.com/exadel-inc/esl/commit/bd7228fa68c24c1a02e908d0a5746146eb175df9)) + + +### Features + +* **esl-related-target:** add esl-related-target mixin ([97255b1](https://github.com/exadel-inc/esl/commit/97255b15e0f67eb74817cf87a2413d992a2af544)) +* **esl-utils:** add ability to pass multiple memoized props to clear at once ([3dca390](https://github.com/exadel-inc/esl/commit/3dca3905a49aed181b464a686536572e8c0b0d71)) +* **eslint:** move files to new `linting` folder ([a196683](https://github.com/exadel-inc/esl/commit/a1966832ae6fc7872ef464d6e4454185ea1be2c6)) + +## [4.0.2](https://github.com/exadel-inc/esl/compare/v4.0.1...v4.0.2) (2022-10-19) + + +### Bug Fixes + +* **esl-media-query:** fix missing Event type in `core.ts` bundle ([afe54f7](https://github.com/exadel-inc/esl/commit/afe54f7916b6e16c53322dfb492ed2d1ab5936c8)) + +## [4.0.1](https://github.com/exadel-inc/esl/compare/v4.0.0...v4.0.1) (2022-10-18) + + +### Bug Fixes + +* **esl-media:** make `media-type` optional if `media-src` defined (auto-provider feature) ([029e368](https://github.com/exadel-inc/esl/commit/029e368bbafbdad7a4f8c648b96892d090663096)) +* **esl-tabs:** fix styles based on current scrollable type ([c8dd855](https://github.com/exadel-inc/esl/commit/c8dd855c95384d38ffe88c06c1b20c8088e6cc11)) +* fix `esl-tabs` and `esl-panel-group` shape `children` property ([6ad7582](https://github.com/exadel-inc/esl/commit/6ad7582e93406b92bb0f4a5b404978f62b310056)) + +# [4.0.0](https://github.com/exadel-inc/esl/compare/v3.14.3...v4.0.0) (2022-10-04) + +## ESL Core + +### Features: +- `ESLEventListener`s functionality introduced +- `ESLMixinElement`s functionality introduced +- `ESLBaseElement` extended API + - `ESLBaseElement.create` shortcut to create current custom element + +### Structural changes: +- Attribute decorators moved to the `esl-utils` +- All ESL modules migrated to `ESLEventListener`s +- Event names are now defined on the prototype level + +### BREAKING CHANGES +- `$$fire` no longer adds 'esl:' prefix to the fired events + +--- + +## ESL Media Query + +### Features: +- `ESLMediaQuery` now implements `EventTarget` interface +- `ESLMediaRuleList` API reworked with `EventTarget` interface and new calculation strategy + +### BREAKING CHANGES +- `ESLMediaRuleList.parseTuple` arguments order changed +- `ESLMediaRule` no longer supports default marker, now "default" is equal to "all" query +- `ESLMediaRuleList` observation callback signature changed, now it should be `EventListener` +- `ESLMediaRuleList.prototype.default` removed as no longer default rules +- `ESLMediaRuleList` no longer fires events on rule change, now it's based on active value change +- `ESLMediaRuleList` now uses merging of all active rules to define result value, however you were still able to get the last active rule value +- `ESLMediaRuleList.prototype.active` now returns an array of active rules + +--- + +## ESL Traversing Query + +### Features: +- add comma support to define multiple target ([#1120](https://github.com/exadel-inc/esl/issues/1120) / [#1129](https://github.com/exadel-inc/esl/issues/1129)) ([2890d7b](https://github.com/exadel-inc/esl/commit/2890d7b7667492b982b266048d23874c57b938ea)), closes [#1102](https://github.com/exadel-inc/esl/issues/1102) +- add ability to find closest element ([ada6fbb](https://github.com/exadel-inc/esl/commit/ada6fbb172a2fb2cf0d435420ad8fb0a46e7766f)) + +--- + +## ESL Utils + +### Features: +- ability to grow/shrink axis of the `Rect` ([1c58a1c](https://github.com/exadel-inc/esl/commit/1c58a1c19b0aa82abf7eb73c40781e9c4a4860ba)) +- `SyntheticEventTarget` to implement `EventTarget` interface with more listeners control ([e4f3eb8](https://github.com/exadel-inc/esl/commit/e4f3eb89e0dd8227937d476a8d2090730342de64)) +- simplify and extend `@prop` decorator API ([fd6ede3](https://github.com/exadel-inc/esl/commit/fd6ede34b0a3c7496083cb58aa9b726d4a692085)) +- add `skipOneRender` RAF utility ([ddc3227](https://github.com/exadel-inc/esl/commit/ddc322798e6f8cf447874896786fe6d368bbe5ef)) +- add ability to pass predicate to sequence finder ([dd8c3cb](https://github.com/exadel-inc/esl/commit/dd8c3cbb43ed529330c32459b9787949a0927a01)) +- add `@decorate` decorator to bind and decorate method of the class +- `@attr` extended with ability to pass Serializer/Parser ([012eb83](https://github.com/exadel-inc/esl/commit/012eb83ebcbba8315a2766af090239774c21234e)) +- create dom html sanitize method ([004642f](https://github.com/exadel-inc/esl/commit/004642f866ac1b2ed5278084963288d8c2fd17e0)) +- create `extractValues` object utility ([8edd9e7](https://github.com/exadel-inc/esl/commit/8edd9e7b564b4ac78a4fc952ee58f76b6a54cf89)) +- create cumulative imports for esl-utils submodules ([2e9d6ad](https://github.com/exadel-inc/esl/commit/2e9d6ad8f327ede991feef4ebc7c76fdd55726af)) + +### BREAKING CHANGES +- `isMouseEvent`, `isTouchEvent` moved outside of `EventUtils` +- `normalizeTouchPoint` renamed to `touchPoint` and moved outside of `EventUtils` +- `normalizeCoordinates` removed. Use `getOffsetPoint` in combination with `getTouchPoint` instead +- `@prop` signature changed `prop(value?: any, prototypeConfig: OverrideDecoratorConfig = {})` instead +- `ScrollUtils.lock` no longer accessible. Use `lockScroll(document.documentElement, {strategy: '...'})` instead +- `ScrollUtils.unlock` no longer accessible. Use `unlockScroll(document.documentElement, {strategy: '...'})` instead +- `ScrollUtils.lockRequest` no longer accessible. Use `lockScroll(document.documentElement, {strategy: '...', initiatior})` instead +- `ScrollUtils.unlockRequest` no longer accessible. Use `unlockScroll(document.documentElement, {strategy: '...', initiatior})` instead + +### Bugfixes +- make attr decorators correctly strict typed +- `deepMerge` primitive values merging improved, undefined arguments now ignored ([5b7b730](https://github.com/exadel-inc/esl/commit/5b7b73003acd4d29250af12603ced5d58c40aff6)) +- fix `@bind` decorator to save original function enumerable marker ([92c2086](https://github.com/exadel-inc/esl/commit/92c2086df610a5572143463302baf7aeea6174e9)) +- update `@decorate` decorator to allow to save context properly (on instance level) ([0ac1b0c](https://github.com/exadel-inc/esl/commit/0ac1b0cb9c90648ae1e0a18a16a936971c4b4ee9)) + +--- + +## ESL Toggleable and ESL Trigger + +### Features: +- migrate `esl-toggleable` and `esl-trigger` to ESLEventListeners +- `esl:show:request` additional data ([a121872](https://github.com/exadel-inc/esl/commit/a121872b6e69fd7fb7a71bdfa9058430e650f423)) +- support of `esl:hide:request` ([8a0928b](https://github.com/exadel-inc/esl/commit/8a0928b2f2bda63c6fbbaf5e9b6453d660091ec1)) +- add support of dynamic `aria-label` for `esl-trigger` ([5c18841](https://github.com/exadel-inc/esl/commit/5c188418720ad4a972caa7450563a29268d8ec97)) +- add esc key event handler for `esl-trigger` ([3dab6da](https://github.com/exadel-inc/esl/commit/3dab6dad39259f7e920c9a108757271cb58a216d)) +- add `ignore-esc` attribute for `esl-trigger` ([605b715](https://github.com/exadel-inc/esl/commit/605b715a29ef1a852e24ce5120ca30d394fc19c1)) + + +## ESL Panel and ESL Panel Group + +### Features: +- migrate `esl-panel` and `esl-panel-group` to ESLEventListeners +- add `refresh-strategy` attribute ([#1156](https://github.com/exadel-inc/esl/issues/1156)) ([36027ad](https://github.com/exadel-inc/esl/commit/36027ad2574c0c33df1b6370484448a6889a647a)) +- add ability to control min/max open panels per media condition ([67ca2ba](https://github.com/exadel-inc/esl/commit/67ca2ba16e3fc4ee4300d1c79ca2e5d0da845af7)) + +### BREAKING CHANGES +- `ESLPanelGroup.noCollapse` (with related attribute) renamed to `ESLPanelGroup.noAnimate` (`no-animate` attribute) +- `ESLPanelGroup.shouldCollapse` renamed to `ESLPanelGroup.shouldAnimate` +- `PanelActionParams.noCollapse` renamed to `PanelActionParams.noAnimate` +- `ESLPanelGroup` `view` attribute is no longer supported +- `open` mode of `ESLPanelGroup` is no longer supported, it should be replaced with a `min-open-items="all"` +- `accordion-group="single"` attribute of `ESLPanelGroup` is no longer supported, replaced with `max-open-items="1"` +- `accordion-group="single"` attribute of `ESLPanelGroup` is no longer supported, replaced with `max-open-items="all"` +- components inherited from `ESLPanelGroup` should use `@listen({inherit: true})` for proper subscription + +### Bugfixes +- add `capturedBy` and fix `after:show` dispatch ([9bdc98c](https://github.com/exadel-inc/esl/commit/9bdc98c98a2926fe42c7cd15007c31a19171027c)) +- fix `esl:before:hide` bubbling from uncontrolled toggleables ([9212b6b](https://github.com/exadel-inc/esl/commit/9212b6beacd97d39d0410a464598e9e2e0bdb1c2)) +- fix animation process capturing by `ESLPanel` component ([9a5b3a5](https://github.com/exadel-inc/esl/commit/9a5b3a576d5cb4dbd47d113d944932586155c7f6)) +- change `no-animate` API ([dde3500](https://github.com/exadel-inc/esl/commit/dde35009268a92bae92a45f00d11cb29edee98fa)) + + +## ESL Tab and ESLTabs + +### Features: +- `esl-tab` and `esl-tabs` migrated to ESLEventListeners + +### Bugfixes: +- fix alignment behavior ([b5ebd66](https://github.com/exadel-inc/esl/commit/b5ebd668de7b4d1eea7311ae7d734c02abb537cf)) + +### BREAKING CHANGES +- Listeners extended from `ESLTab` should now use `@listen` annotation to work correctly +- Listeners extended from `ESLTabs` should now use `@listen` annotation to work correctly + +## ESL Alert + +### Features: +- `esl-alert` migrated to ESLEventListeners, inner API updates + +### BREAKING CHANGES +- Listeners extended from `ESLAlert` should now use `@listen` annotation to work correctly +- `eventNs` is no longer supported, event is now defined directly on the prototype level + + +## ESL Popup + +### Features: +- add configurable `rootMargin` for the popup activator observer ([5d647d6](https://github.com/exadel-inc/esl/commit/5d647d60673a65e7b27472c1b68a1e174fa40740)) +- add extended `offsetContainer` configuration ([63cbc0a](https://github.com/exadel-inc/esl/commit/63cbc0a996a8578549360dadaa3bb17c53884bfe)) + +### BREAKING CHANGES +- Listeners extended from `ESLPopup` should now use `@listen` annotation to work correctly + + +## ESL Footnotes + +### Features: +- migrate `esl-notes` and `esl-footnotes` to ESLEventListeners +- add configurable `intersectionMargin` for the note tooltip activator observer ([b9b1599](https://github.com/exadel-inc/esl/commit/b9b159942e3534965f43cac94c140d5680308548)) + +### BREAKING CHANGES +- Listeners extended from `ESLNote` should now use `@listen` annotation to work correctly +- Listeners extended from `ESLFootnote` should now use `@listen` annotation to work correctly +- `eventNs` is no longer supported, event is now defined directly on the prototype level + +## ESL Image and ESL Media + +### Bugfixes: +- fix esl-image to prevent DOM XSS vulnerabilities ([4fd925d](https://github.com/exadel-inc/esl/commit/4fd925df8605994b0f7d345d77a425e0cdc487e8)) +- fix wrong error status on svg images in FF ([cad6b40](https://github.com/exadel-inc/esl/commit/cad6b40ccce01aaea8b1869b2cd7d542939a4fd4)) + + +## ESL Scrollbar + +### Features: +- migrate `esl-scrollbar` to ESLEventListeners + +### Bugfixes +- remove unnecessary width ([6e18909](https://github.com/exadel-inc/esl/commit/6e18909c6768c259d76084b463404fe6b29c9af8)) + +### BREAKING CHANGES +- Listeners extended from `ESLScrollbar` should now use `@listen` annotation to work correctly + + +## ESL Select + +### Features: +- migrate `esl-select` to ESLEventListeners ([76ca947](https://github.com/exadel-inc/esl/commit/76ca9479090546cdf092d1c9c3f5d993263f0581)) +- add `dropdown-class` param to specify dropdown additional CSS class(es) ([938357f](https://github.com/exadel-inc/esl/commit/938357fa6fb5db804f445f31eb4f73641dfbcccf)) + + +## ESL Polyfills + +### Features: +- `Event`, `CustomEvent`, `MouseEvent`, `KeyboardEvent`, `FocusEvent` extended polyfills ([9ca3c40](https://github.com/exadel-inc/esl/commit/9ca3c406ff1f6f99490fdf09d2f15bc450c7be57)) +- `Object.assign` and `Array.from` extended polyfills ([590bca4](https://github.com/exadel-inc/esl/commit/590bca4fab39c566db68f7bc2440e5d84355a991)) +- extended `es5-target-shim` ([ef53df9](https://github.com/exadel-inc/esl/commit/ef53df936dd2beda859a41e9f8a900199bb24f3e)) + +### BREAKING CHANGES +- ES5 shim `shimES5ElementConstructor` replaced with `shimES5Constructor` + + +Co-authored-by: NastaLeo +Co-authored-by: Anna Barmina +Co-authored-by: julia-murashko +Co-authored-by: Yuliya Adamska +Co-authored-by: Dmytro Shovchko +Co-authored-by: fshovchko +Co-authored-by: nsmirnova + +# [4.0.0-beta.19](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.18...v4.0.0-beta.19) (2022-09-30) + + +### Bug Fixes + +* **esl-event-listener:** allow to subscribe listener by global selector without host instanceof HTMLElement ([fb17e6b](https://github.com/exadel-inc/esl/commit/fb17e6bb88e4fd054d2426511d12ba755c211760)) +* **esl-tooltip:** keyboard handling fix ([25d7dc6](https://github.com/exadel-inc/esl/commit/25d7dc658339d371b87db44c1fdf86c7be234725)) + + +### Code Refactoring + +* **esl-scrollbar:** migrate all `esl-scrollbar` listeners to ESLEventListener feature ([b5fd7a5](https://github.com/exadel-inc/esl/commit/b5fd7a54ec711298afdd070083958b9f25988bfa)) +* **esl-tabs:** migrate `esl-tabs` to ESLEventListeners ([f2d6157](https://github.com/exadel-inc/esl/commit/f2d6157bd6ace254c9de57653440875362e15602)) + + +### Features + +* **esl-footnotes:** `ESLFootnotes` migrated to use ESLEventListener standard ([13d9289](https://github.com/exadel-inc/esl/commit/13d9289ab4070cb01e6887113331641b03c5d21f)) +* **esl-footnotes:** `ESLNotes` migrated to use ESLEventListener standard ([6cd5502](https://github.com/exadel-inc/esl/commit/6cd55021f1287170294a0e166a9b0bce91d0ede9)) +* **esl-select:** `ESLSelect` and `ESLSelectList` migrated to ESLEventListeners ([df80759](https://github.com/exadel-inc/esl/commit/df80759326ad40524274bacc088135f879738184)) + + +### BREAKING CHANGES + +* **esl-tabs:** listeners extended from `ESLTabs` should now use `@listen` annotation to work correctly +* **esl-scrollbar:** listeners extended from `ESLScrollbar` should now use `@listen` annotation to work correctly +* **esl-select:** `_onChange` and `_onReset` methods of `ESLSelectWrapper` decorated via `@listen` +* **esl-select:** internal handlers of `ESLSelect`, `ESLSelectRender`, `ESLSelectList` now decorated via `@listen` +* **esl-footnotes:** `_onKeydown`, `_onNoteSubscribe` migrated to `@listen` +* **esl-footnotes:** `_onClick` removed and replaced to `_onItemClick` (decorated by `@listen`) +* **esl-footnotes:** `_onFootnotesReady`, `_onBPChange`, `_onMouseLeave`, `_onMouseEnter`, `_onKeydown`, `_onClick` migrated to `@listen` + +# [4.0.0-beta.18](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.17...v4.0.0-beta.18) (2022-09-27) + + +### Bug Fixes + +* **esl-event-listener:** fix ESLListenerDescriptorFn import ([69d81d7](https://github.com/exadel-inc/esl/commit/69d81d70f798902daf31423dbd4d6da3b772c75c)) +* **esl-event-listener:** fix event listener props resolving strategy and uniqueness constraint ([2ec70f2](https://github.com/exadel-inc/esl/commit/2ec70f2ac962463664a0026aaf48e6340c021d41)) +* **esl-event-listener:** fix multiple subscription by single descriptor ([3f80486](https://github.com/exadel-inc/esl/commit/3f804867dc8dd5b348442f66dee8e86a7b6bc755)) +* **esl-event-listener:** fix selector and Storage name of ESLEventListener ([ad2f9db](https://github.com/exadel-inc/esl/commit/ad2f9db0f40ce7c7804b292e0cd390ebd60e54d4)) +* **esl-panel-group:** change strategy of closing panels in case the max-open-items limit is reached ([4b21c34](https://github.com/exadel-inc/esl/commit/4b21c34d7878f394cafcd0e02a575bb23ec9a4c1)) +* **esl-panel-group:** fix initial reset of panel group leads to incorrect panel selection ([7b164dc](https://github.com/exadel-inc/esl/commit/7b164dc5d007a1723495e818c8c4b8ed045a88a8)) +* **esl-scrollbar:** remove unnecessary width ([6e18909](https://github.com/exadel-inc/esl/commit/6e18909c6768c259d76084b463404fe6b29c9af8)) +* **esl-tabs:** fix alignment behavoir ([b5ebd66](https://github.com/exadel-inc/esl/commit/b5ebd668de7b4d1eea7311ae7d734c02abb537cf)) +* **esl-utils:** make undefined condition truthy for `isMatches` helper ([efcd1c6](https://github.com/exadel-inc/esl/commit/efcd1c6dfa83946f66160508f7ee93808cb6d2a2)) + + +### Features + +* **esl-alert:** component reworked according ESLToggleable update ([f8a171f](https://github.com/exadel-inc/esl/commit/f8a171f1850efe3eea23dd8de6f372ba5f3cea8e)) +* **esl-base-element:** add `create` shortcut to create current custom element ([14f5706](https://github.com/exadel-inc/esl/commit/14f57063624b3ac20b8ae1868903f3ef2b2bcdfd)) +* **esl-panel:** migrate `esl-panel` to ESLEventListeners ([b8350a5](https://github.com/exadel-inc/esl/commit/b8350a54ca110756f35b891bc37c2c6110247f77)) +* **esl-select-dropdown:** fix `esl-alert` according `esl-togglable` update ([6e10aaa](https://github.com/exadel-inc/esl/commit/6e10aaab9a8055c1f3333d602b56e5d18b8decdd)) +* **esl-select-dropdown:** migrate `esl-select-dropdown` to ESLEventListeners ([76ca947](https://github.com/exadel-inc/esl/commit/76ca9479090546cdf092d1c9c3f5d993263f0581)) +* **esl-toggleable:** add ability to request hide of the toggleable, refactor toggle request API ([8a0928b](https://github.com/exadel-inc/esl/commit/8a0928b2f2bda63c6fbbaf5e9b6453d660091ec1)) +* **esl-toggleable:** migrate `esl-togglable` to ESLEventListeners ([7159429](https://github.com/exadel-inc/esl/commit/7159429f7237bea78ab80e1b05420594246ff84d)) +* **esl-utils:** create `extractValues` object utility ([8edd9e7](https://github.com/exadel-inc/esl/commit/8edd9e7b564b4ac78a4fc952ee58f76b6a54cf89)) +* **esl-utils:** create cumulative imports for esl-utils submodules ([2e9d6ad](https://github.com/exadel-inc/esl/commit/2e9d6ad8f327ede991feef4ebc7c76fdd55726af)) + +# [4.0.0-beta.17](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.16...v4.0.0-beta.17) (2022-09-01) + + +### Bug Fixes + +* **esl-panel-group:** fix animation process capturing by ESLPanel component ([9a5b3a5](https://github.com/exadel-inc/esl/commit/9a5b3a576d5cb4dbd47d113d944932586155c7f6)) +* **esl-utils:** ESLEventListener descriptors can't be declared trough prototype inheritance ([a055e71](https://github.com/exadel-inc/esl/commit/a055e71643a6b1f2d560dd1ff5c3152767c43bef)) +* **esl-utils:** fix `[@bind](https://github.com/bind)` decorator to save original function enumerable marker ([92c2086](https://github.com/exadel-inc/esl/commit/92c2086df610a5572143463302baf7aeea6174e9)) +* **esl-utils:** fix `[@decorate](https://github.com/decorate)` decorator to work properly with `[@listen](https://github.com/listen)` ([286ef57](https://github.com/exadel-inc/esl/commit/286ef579b61fbf43a793550fcf7dc8018bc15f54)) + + +### Features + +* **esl-panel-group:** extend esl-panel-group refresh strategies list with 'open' and 'close' strategy ([ee18c9d](https://github.com/exadel-inc/esl/commit/ee18c9d673361e53ecc3cd84f04d8d5650c79693)) +* **esl-utils:** add `skipOneRender` RAF utility ([ddc3227](https://github.com/exadel-inc/esl/commit/ddc322798e6f8cf447874896786fe6d368bbe5ef)) + +# [4.0.0-beta.16](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.15...v4.0.0-beta.16) (2022-08-30) + + +### Bug Fixes + +* **esl-image:** remove internal cyclic references in ESLImage modules ([977c32b](https://github.com/exadel-inc/esl/commit/977c32bdbd475f652948ec4d97ac9a9e42357ba1)) +* **esl-media:** remove cyclic reference of the ESLMedia internal IObserver to ESLMedia ([8a3d065](https://github.com/exadel-inc/esl/commit/8a3d065aba6a695451aacb9c3e9b90c6592d6a1e)) +* **esl-panel:** remove cyclic reference of the ESLPanel to ESLPanelGroup ([cffe91a](https://github.com/exadel-inc/esl/commit/cffe91aa57f3ec769cd286ee8f0bc149533bba1a)) +* **esl-select:** fix internal esl-select-renderer cyclic reference ([b97565e](https://github.com/exadel-inc/esl/commit/b97565eff2d7d31a736e6f3461aba62a6de50899)) + +# [4.0.0-beta.15](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.14...v4.0.0-beta.15) (2022-08-30) + + +### Bug Fixes + +* **esl-mixin-element:** incorrect context applied for listener applied trough `$$on` ([0c53d6a](https://github.com/exadel-inc/esl/commit/0c53d6a9afefc703c7c372a789ee92ec4280cebd)) +* **esl-panel-group:** change `no-animate` API ([dde3500](https://github.com/exadel-inc/esl/commit/dde35009268a92bae92a45f00d11cb29edee98fa)) +* **esl-utils:** allow `[@listen](https://github.com/listen)` decorator for decorated methods represented as a get accessor ([dcdc70b](https://github.com/exadel-inc/esl/commit/dcdc70b07c7b46dd37041eb87640ebff5e79d71a)) +* **esl-utils:** change descriptor definition condition (`event` no longer required as an own property) ([d17e256](https://github.com/exadel-inc/esl/commit/d17e2566652eca74f5b4e8634dc5499248fccbff)) +* **esl-utils:** fix `[@decorate](https://github.com/decorate)` decorator binding ([1cbb070](https://github.com/exadel-inc/esl/commit/1cbb0702cdd97520d82fae614825f21df550fb33)) +* **esl-utils:** update `decorate` decorator to allow to save context properly (on instance level) ([0ac1b0c](https://github.com/exadel-inc/esl/commit/0ac1b0cb9c90648ae1e0a18a16a936971c4b4ee9)) + + +### Features + +* **esl-panel-group:** add `refresh-strategy` attribute ([#1156](https://github.com/exadel-inc/esl/issues/1156)) ([36027ad](https://github.com/exadel-inc/esl/commit/36027ad2574c0c33df1b6370484448a6889a647a)) +* **esl-panel-group:** add ability to control min/max open panels per media condition ([67ca2ba](https://github.com/exadel-inc/esl/commit/67ca2ba16e3fc4ee4300d1c79ca2e5d0da845af7)) +* **esl-utils:** allow to pass array of targets to the `ESLEventListener` ([1d23db3](https://github.com/exadel-inc/esl/commit/1d23db3ea84ac4b31adce5d4a1575814ea3fdf54)) + + +### BREAKING CHANGES + +* **esl-panel-group:** `open` mode is no longer supported, it should be replaced with a `min-open-items="all"` +BREAKING-CHANGE: `accordion-group="single"` attribute no longer supported, replaced with `max-open-items="1"` +BREAKING-CHANGE: `accordion-group="single"` attribute no longer supported, replaced with `max-open-items="all"` +* **esl-panel-group:** components inherited from `ESLPanelGroup` should use `@listen({inherit: true})` for proper subscription + +Co-authored-by: NastaLeo + +# [4.0.0-beta.14](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.13...v4.0.0-beta.14) (2022-08-15) + + +### Bug Fixes + +* **esl-traversing-query:** fix uniqueness of result on multiple query ([8ff4ec7](https://github.com/exadel-inc/esl/commit/8ff4ec773344cbf0d95fc6ceee3bb1ce47a806db)) +* **esl-utils:** fix page content jumping after scroll lock ([410f35f](https://github.com/exadel-inc/esl/commit/410f35f9f8fc152da97eeda0299e3ce2c38c1891)) +* **esl-utils:** optimize event subscription with a check for an active targets ([2b2585e](https://github.com/exadel-inc/esl/commit/2b2585e495e74ad5022ebb29239b955e942d96c2)) + + +### Features + +* **esl-utils:** ability to inherit ESLEventDescriptor from supertype method definition ([899698b](https://github.com/exadel-inc/esl/commit/899698bea0c9c3da72ccd8ac7b4f5d7d9ebd76d3)) +* **gh-pages:** add aurora accent to `promo-banner.njk` ([cfe5abb](https://github.com/exadel-inc/esl/commit/cfe5abb2f7e4f3cbf54ebb98c8fcd6f3c9bce766)) +* **gh-pages:** load animation by scrolling ([c8a6a15](https://github.com/exadel-inc/esl/commit/c8a6a1504ed37da64acd7a17588d08b08dd896dc)) + +# [4.0.0-beta.13](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.12...v4.0.0-beta.13) (2022-08-02) + + +### Bug Fixes + +* **esl-utils:** fix missed body style for scroll lock strategy pseudo ([96c37db](https://github.com/exadel-inc/esl/commit/96c37dbd06a24d45809e6a7528143c09ced9f546)) + + +### Features + +* **esl-traversing-query:** add comma support to define multiple target ([#1120](https://github.com/exadel-inc/esl/issues/1120) / [#1129](https://github.com/exadel-inc/esl/issues/1129)) ([2890d7b](https://github.com/exadel-inc/esl/commit/2890d7b7667492b982b266048d23874c57b938ea)), closes [#1102](https://github.com/exadel-inc/esl/issues/1102) +* **esl-trigger:** add `ignore-esc` attribute ([605b715](https://github.com/exadel-inc/esl/commit/605b715a29ef1a852e24ce5120ca30d394fc19c1)) +* **esl-utils:** extend SynteticEventTarget with ability to separate events ([#1118](https://github.com/exadel-inc/esl/issues/1118)) ([507726d](https://github.com/exadel-inc/esl/commit/507726d5b760e54fa3286560931ffbe3110e4151)), closes [#1079](https://github.com/exadel-inc/esl/issues/1079) + +# [4.0.0-beta.12](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.11...v4.0.0-beta.12) (2022-07-18) + + +### Bug Fixes + +* **esl-image:** fix wrong error status on svg images in FF ([cad6b40](https://github.com/exadel-inc/esl/commit/cad6b40ccce01aaea8b1869b2cd7d542939a4fd4)) + +# [4.0.0-beta.11](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.10...v4.0.0-beta.11) (2022-07-18) + + +### Features + +* **esl-trigger:** add esc key event handler ([3dab6da](https://github.com/exadel-inc/esl/commit/3dab6dad39259f7e920c9a108757271cb58a216d)) + +# [4.0.0-beta.10](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.9...v4.0.0-beta.10) (2022-07-08) + + +### Features + +* **esl-select:** add dropdown-class to observed attributes ([29cc1c2](https://github.com/exadel-inc/esl/commit/29cc1c23e20c242c1f4b34a97ddd082fe55c54cb)) +* **esl-traversing-query:** add ability to find closest element ([ada6fbb](https://github.com/exadel-inc/esl/commit/ada6fbb172a2fb2cf0d435420ad8fb0a46e7766f)) +* **esl-utils:** `ScrollUtils` rewritten in a functional way, API updated ([#1051](https://github.com/exadel-inc/esl/issues/1051)) ([6f6c72f](https://github.com/exadel-inc/esl/commit/6f6c72f2d46bc1ba94d0b072df32782d79560313)) +* **esl-utils:** add ability to pass predicate to sequence finder ([dd8c3cb](https://github.com/exadel-inc/esl/commit/dd8c3cbb43ed529330c32459b9787949a0927a01)) +* **esl-utils:** move parsers to `esl-utils/misc/format` for shared usage ([e58270a](https://github.com/exadel-inc/esl/commit/e58270a2844379a612c1c218f7b9ea6f03bd9bcf)) + + +### BREAKING CHANGES + +* **esl-utils:** `ScrollUtils.lock` no longer accessible use `lockScroll(document.documentElement, {strategy: '...'})` +* **esl-utils:** `ScrollUtils.unlock` no longer accessible use `unlockScroll(document.documentElement, {strategy: '...'})` +* **esl-utils:** `ScrollUtils.lockRequest` no longer accessible use `lockScroll(document.documentElement, {strategy: '...', initiatior})` +* **esl-utils:** `ScrollUtils.unlockRequest` no longer accessible use `unlockScroll(document.documentElement, {strategy: '...', initiatior})` + +Co-authored-by: fshovchko +Co-authored-by: nsmirnova +Co-authored-by: ala'n (Alexey Stsefanovich) +Co-authored-by: julia-murashko +Co-authored-by: Anastasiya Lesun <72765981+NastaLeo@users.noreply.github.com> + +# [4.0.0-beta.9](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.8...v4.0.0-beta.9) (2022-06-29) + + +### Bug Fixes + +* **esl-image:** fix esl-image to prevent DOM XSS vulnerabilities ([4fd925d](https://github.com/exadel-inc/esl/commit/4fd925df8605994b0f7d345d77a425e0cdc487e8)) +* **esl-trigger:** custom aria-label maintaining in case a11yLabelActive and a11yLabelInactive are empty ([06d8f92](https://github.com/exadel-inc/esl/commit/06d8f924080849efe90c979151c6c342d4ca8ffc)) +* **esl-utils:** add ability to skip event listener through the target field ([75f6a18](https://github.com/exadel-inc/esl/commit/75f6a186ffcbd98e852627f479284edcb893583f)) + + +### Features + +* **esl-image:** prototype defined events ([f49ce01](https://github.com/exadel-inc/esl/commit/f49ce019d81cb76995c05d2dccc6621e8836af66)) +* **esl-media-query:** normalize data instead of fail ([3226156](https://github.com/exadel-inc/esl/commit/3226156264e58f085f023b0669179cc48f904c55)) +* **esl-media:** prototype defined events ([976a8b9](https://github.com/exadel-inc/esl/commit/976a8b9c54d4e0b40dcf9e5ee48024b1539e94f7)) +* **esl-select:** add `dropdown-class` param to specify dropdown additional CSS class(es) ([938357f](https://github.com/exadel-inc/esl/commit/938357fa6fb5db804f445f31eb4f73641dfbcccf)) +* **esl-utils:** `[@attr](https://github.com/attr)` extended with ability to pass Serializer/Parser ([012eb83](https://github.com/exadel-inc/esl/commit/012eb83ebcbba8315a2766af090239774c21234e)) +* **esl-utils:** create dom html sanitize method ([004642f](https://github.com/exadel-inc/esl/commit/004642f866ac1b2ed5278084963288d8c2fd17e0)) +* **gh-pages:** add blogs landing component ([fa71fe0](https://github.com/exadel-inc/esl/commit/fa71fe040ae4954ea55946b927751e33c9eb02ce)) + +# [4.0.0-beta.8](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.7...v4.0.0-beta.8) (2022-06-16) + + +### Code Refactoring + +* **esl-core:** ESLMixinElement moved to separate module ([9d42adf](https://github.com/exadel-inc/esl/commit/9d42adfc4202ed9def4c86d36debe33d0d14331b)) + + +### Features + +* **esl-utils:** ability to pass Provider functions to `event`, `selector`, `target` listener options ([c3503b0](https://github.com/exadel-inc/esl/commit/c3503b0810556388187deb48b14c3cab450c5a8e)) +* **esl-utils:** simplify and extend `[@prop](https://github.com/prop)` decorator ([fd6ede3](https://github.com/exadel-inc/esl/commit/fd6ede34b0a3c7496083cb58aa9b726d4a692085)) + + +### BREAKING CHANGES + +* **esl-utils:** `@prop` signature changed +`prop(value?: any, prototypeConfig: OverrideDecoratorConfig = {})` +* **esl-core:** (beta only) ESLMixinElement now accessible under 'modules/esl-mixin-element/core' + +# [4.0.0-beta.7](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.6...v4.0.0-beta.7) (2022-05-19) + + +### Code Refactoring + +* **esl-media-query:** change tuple `parseTuple` syntax param order ([49305f1](https://github.com/exadel-inc/esl/commit/49305f1564a047443f843a41614586b7f85ddb83)) + + +### Features + +* **esl-media-query:** `[@media](https://github.com/media)` decorator to shortcut access to the `ESLMediaRuleList` ([ffb59c2](https://github.com/exadel-inc/esl/commit/ffb59c2c619f50e32aa02af0f5212ebc8e829e62)) +* **esl-media-query:** `ESLMediaQuery` now implements `EventTarget` interface ([df2a11e](https://github.com/exadel-inc/esl/commit/df2a11e11c1b781ba261cb33c9eccfdb6a9623a3)) +* **esl-media-query:** `ESLMediaRuleList` API reworked with EventTarget interface and new calculation strategy ([b1d6891](https://github.com/exadel-inc/esl/commit/b1d6891d0c90553a5b89069096ab9596b71b6219)) +* **esl-togglable:** show:request additional data ([a121872](https://github.com/exadel-inc/esl/commit/a121872b6e69fd7fb7a71bdfa9058430e650f423)) +* **esl-trigger:** add support of aria-label ([5c18841](https://github.com/exadel-inc/esl/commit/5c188418720ad4a972caa7450563a29268d8ec97)) +* **esl-utils:** `ESLEventListener` now uses EventListenerObject interface to simplify debug ([e3ac838](https://github.com/exadel-inc/esl/commit/e3ac838d810b2c1d9aecc265bc0d7cbf5fb627c1)) +* **esl-utils:** created `SyntheticEventTarget` implementation ([e4f3eb8](https://github.com/exadel-inc/esl/commit/e4f3eb89e0dd8227937d476a8d2090730342de64)) +* **esl-utils:** extend `SyntheticEventTarget` with ability to subscribe `EventListenerObject` ([e4609e9](https://github.com/exadel-inc/esl/commit/e4609e9e53dfd97cdf9892b1e4f88561ee0eeb67)) +* **polyfills:** extended `es5-target-shim` ([ef53df9](https://github.com/exadel-inc/esl/commit/ef53df936dd2beda859a41e9f8a900199bb24f3e)) + + +### BREAKING CHANGES + +* **esl-media-query:** `ESLMediaRuleList.parseTuple` arguments order changed +* **esl-media-query:** `ESLMediaRule` no longer supports default marker, now "default" is equal "all" query +* **esl-media-query:** `ESLMediaRuleList` observation callback signature changed, now it should be `EventListener` +* **esl-media-query:** `ESLMediaRuleList.prototype.default` removed as no longer default rules +* **esl-media-query:** `ESLMediaRuleList` no longer fire events on rule change, now it's based on active valuer change +* **esl-media-query:** `ESLMediaRuleList` now uses merging of all active rules to define result value, however you were still able to get the last active rule value +* **esl-media-query:** `ESLMediaRuleList.prototype.active` now returns an array of active rules +* **polyfills:** ES5 shim `shimES5ElementConstructor` replaced with `shimES5Constructor` + +# [4.0.0-beta.6](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.5...v4.0.0-beta.6) (2022-04-26) + + +### Bug Fixes + +* **polyfills:** optimized safe version of `Object.assign` polyfill ([96fc0dd](https://github.com/exadel-inc/esl/commit/96fc0dd12f0a45e5862e84d4fa4a5f40f76a964e)) + +# [4.0.0-beta.5](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.4...v4.0.0-beta.5) (2022-04-26) + + +### Bug Fixes + +* **esl-core:** empty children explicitly check in recursion ([412b2ad](https://github.com/exadel-inc/esl/commit/412b2adee0b5698488f6f3def5dcd16e45ca7b45)) +* **esl-popup:** unsubscribe safe check (reproducible in IE11) ([63e842f](https://github.com/exadel-inc/esl/commit/63e842f1b2d4d146e5c5299629f38027fd08bc44)) + + +### Features + +* **polyfills:** `Event`, `CustomEvent`, `MouseEvent`, `KeyboardEvent`, `FocusEvent` extended polyfills ([9ca3c40](https://github.com/exadel-inc/esl/commit/9ca3c406ff1f6f99490fdf09d2f15bc450c7be57)) +* **polyfills:** `Object.assign` and `Array.from` extended polyfills ([590bca4](https://github.com/exadel-inc/esl/commit/590bca4fab39c566db68f7bc2440e5d84355a991)) + +# [4.0.0-beta.4](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.3...v4.0.0-beta.4) (2022-04-25) + + +### Bug Fixes + +* **esl-utils:** `deepMerge` primitive values merging improved, undefined arguments now ignored ([5b7b730](https://github.com/exadel-inc/esl/commit/5b7b73003acd4d29250af12603ced5d58c40aff6)) + + +### Code Refactoring + +* **esl-core:** Update `$$fire` method API ([4983cbc](https://github.com/exadel-inc/esl/commit/4983cbcdb583e0aacc4cbda49c019105fa9b66a4)) + + +### Features + +* **esl-footnotes:** add configurable intersectionMargin for the note tooltip activator observer ([b9b1599](https://github.com/exadel-inc/esl/commit/b9b159942e3534965f43cac94c140d5680308548)) +* **esl-popup:** add configurable rootMargin for the popup activator observer ([5d647d6](https://github.com/exadel-inc/esl/commit/5d647d60673a65e7b27472c1b68a1e174fa40740)) +* **esl-popup:** add extended offsetContainer configuration ([63cbc0a](https://github.com/exadel-inc/esl/commit/63cbc0a996a8578549360dadaa3bb17c53884bfe)) +* **esl-utils/rect:** ability to grow/shrink axis ([1c58a1c](https://github.com/exadel-inc/esl/commit/1c58a1c19b0aa82abf7eb73c40781e9c4a4860ba)) + + +### BREAKING CHANGES + +* **esl-core:** `$$fire` no longer add 'esl:' prefix to the fired events + +# [4.0.0-beta.3](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.2...v4.0.0-beta.3) (2022-04-12) + + +### Bug Fixes + +* **esl-scrollbar:** fix non-passive listener of the scrollbar touchstart ([a3df8ec](https://github.com/exadel-inc/esl/commit/a3df8ec4b7a8eb3ccc67f02ad3116a13a86b26c6)) +* **esl-toggleable:** fix double `esl:` prefix for esl-toggleable `esl:refresh` dispatching ([3316da0](https://github.com/exadel-inc/esl/commit/3316da0c4378466c0bf34346e5791ee36fdfe0a8)), closes [#913](https://github.com/exadel-inc/esl/issues/913) +* **esl-utils:** rename some event/misc utils ([36bdb8a](https://github.com/exadel-inc/esl/commit/36bdb8afa8fdd78f6c71232dfbf65c05a6f54d76)) + + +### Code Refactoring + +* **esl-panel-group:** remove deprecated `view` attribute ([e0c5410](https://github.com/exadel-inc/esl/commit/e0c5410d157017fa96133e9ccb84d364bdc55534)) +* **esl-panel:** rename noCollapse to noAnimate param ([3f5aa74](https://github.com/exadel-inc/esl/commit/3f5aa74be95eff047db076c33ecc9b8a199d15a4)) + + +### BREAKING CHANGES + +* **esl-panel-group:** `ESLPanelGroup` `view` attribute no longer supported +* **esl-panel:** `PanelActionParams.noCollapse` renamed to `PanelActionParams.noAnimate` +* **esl-panel:** `ESLPanelGroup.noCollapse` (with related attribute) +renamed to `ESLPanelGroup.noAnimate` (`no-animate` attribute) +* **esl-panel:** `ESLPanelGroup.shouldCollapse` renamed to `ESLPanelGroup.shouldAnimate` +* **esl-utils:** rename `offsetPoint` to `getOffsetPoint` and `touchPoint` to `getTouchPoint` + +# [4.0.0-beta.2](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.1...v4.0.0-beta.2) (2022-04-05) + + +### Bug Fixes + +* **esl-core:** make attr decorators correctly strict typed ([613c260](https://github.com/exadel-inc/esl/commit/613c2603a72dae1651007ce014a0f3c7836da101)) +* **esl-panel-group:** fix esl:before:hide bubbling from uncontrolled toggleables ([9212b6b](https://github.com/exadel-inc/esl/commit/9212b6beacd97d39d0410a464598e9e2e0bdb1c2)) +* **esl-utils:** add IE compatibility for window rect obtaining ([d5e916c](https://github.com/exadel-inc/esl/commit/d5e916c31c6fd08eacad15ea4274ec57c3a6de2e)) +* **esl-utils:** add IE compatibility for window rect obtaining ([882425e](https://github.com/exadel-inc/esl/commit/882425e2e643e129a258deb8ead22d1f9ab6b5b4)) +* **esl-utils:** fix `isSimilar` comparer for arrays, add flat comparer option ([251c59c](https://github.com/exadel-inc/esl/commit/251c59cd8a3ba46689ba3e7aa6891d7bf4ed43c7)) +* **esl-utils:** fix event descriptors merging and passive listeners support ([6ae7175](https://github.com/exadel-inc/esl/commit/6ae7175d37a0011073b6eaed35075f5e63d4747a)) + + +### Features + +* **esl-core:** add ability to define [mixin components]([#671](https://github.com/exadel-inc/esl/issues/671)) ([15f9f6c](https://github.com/exadel-inc/esl/commit/15f9f6caeea5a5a67b196b42adebea3de6e1efed)) +* **esl-core:** add ability to use event listener api for mixin components ([33ce7aa](https://github.com/exadel-inc/esl/commit/33ce7aa5c3625266b3900ed8d88f012f847945a6)) +* **esl-utils:** `[@decorate](https://github.com/decorate)` syntax-sugar to easily wrap (decorate) method ([1f996f9](https://github.com/exadel-inc/esl/commit/1f996f96665829d3734beae447a48c0b77621f8a)) +* **esl-utils:** ability to subscribe handle one event before unsubscribe ([3e1cbe6](https://github.com/exadel-inc/esl/commit/3e1cbe62e80d15f37e07a0d52d26fb0362c9b042)) +* **esl-utils:** create auxiliary `isPassiveByDefault` utility ([650d75f](https://github.com/exadel-inc/esl/commit/650d75f743299347237a6fdc7e30381749577dfe)) +* **esl-utils:** rework subscription API ([bf1c151](https://github.com/exadel-inc/esl/commit/bf1c1511c74b7323198db0533292a8e34fc9c025)) + +## [3.14.3](https://github.com/exadel-inc/esl/compare/v3.14.2...v3.14.3) (2022-04-07) + + +### Bug Fixes + +* **esl-toggleable:** fix double `esl:` prefix for esl-toggleable `esl:refresh` dispatching ([3316da0](https://github.com/exadel-inc/esl/commit/3316da0c4378466c0bf34346e5791ee36fdfe0a8)), closes [#913](https://github.com/exadel-inc/esl/issues/913) + +## [3.14.2](https://github.com/exadel-inc/esl/compare/v3.14.1...v3.14.2) (2022-03-31) + + +### Bug Fixes + +* **esl-panel-group:** fix esl:before:hide bubbling from uncontrolled toggleables ([9212b6b](https://github.com/exadel-inc/esl/commit/9212b6beacd97d39d0410a464598e9e2e0bdb1c2)) + +## [3.14.1](https://github.com/exadel-inc/esl/compare/v3.14.0...v3.14.1) (2022-03-29) + + +### Bug Fixes + +* **esl-utils:** add IE compatibility for window rect obtaining ([d5e916c](https://github.com/exadel-inc/esl/commit/d5e916c31c6fd08eacad15ea4274ec57c3a6de2e)) + +# [4.0.0-beta.1](https://github.com/exadel-inc/esl/compare/v3.14.0...v4.0.0-beta.1) (2022-03-24) + + +### Bug Fixes + +* **esl-panel-group:** add `capturedBy` and fix 'after:show' dispatch ([9bdc98c](https://github.com/exadel-inc/esl/commit/9bdc98c98a2926fe42c7cd15007c31a19171027c)) +* **esl-utils:** move attribute decorators to the `esl-utils` ([6e5028a](https://github.com/exadel-inc/esl/commit/6e5028a0d147d9b6b9742088f97c6110c58523c0)) + + +### Features + +* **esl-core:** event listeners functionality introduced (`ESLEventListener`s) ([16ae8db](https://github.com/exadel-inc/esl/commit/16ae8db2c7c6f5d2488268c5ecf69b277f9db05b)) +* **esl-utils:** event utils destructuring ([a822738](https://github.com/exadel-inc/esl/commit/a82273883b9e7393790de5c75b01092b30838a5a)) +* **esl-utils:** extend object:compare utils with `isSimilar` method ([9aa937e](https://github.com/exadel-inc/esl/commit/9aa937e620456457aa9954be161da6816f002e66)) + + +### BREAKING CHANGES + +* **esl-utils:** - `isMouseEvent`, `isTouchEvent` moved outside of `EventUtils` + - `normalizeTouchPoint` renamed to `touchPoint` and moved outside of `EventUtils` + - `normalizeCoordinates` removed `offsetPoint` introduced instead + to be used in combination with `touchPoint` + +# [3.14.0](https://github.com/exadel-inc/esl/compare/v3.13.2...v3.14.0) (2022-03-11) + + +### Bug Fixes + +* **esl-core:** type and implementation improvements for attribute decorators ([73edd53](https://github.com/exadel-inc/esl/commit/73edd5340b5bef0e548ef00e932b4630907332b4)) +* **esl-media:** fix incorrect `group` definition in shape ([5358933](https://github.com/exadel-inc/esl/commit/5358933c62076a850cdf314f3a31205db5bd2b51)) +* **esl-panel-group:** fix animation-end handling target check ([2d66781](https://github.com/exadel-inc/esl/commit/2d6678123141cb2c20eed8f95449ab4126e847b0)) +* **esl-panel:** fix animation-end handling target check ([ea897fa](https://github.com/exadel-inc/esl/commit/ea897fabdbbe166adeac9f0c36bda69ca7c63ffd)) +* **gh-pages:** change loadScript import ([acad20a](https://github.com/exadel-inc/esl/commit/acad20acbdafc1d3f49482b65800e80acf8512dc)) + + +### Features + +* **esl-core:** extend `ESLBaseElement` with `$$cls` and `$$attr` methods ([65ab74a](https://github.com/exadel-inc/esl/commit/65ab74a5d1a749958e7d633e973fd679821a057a)) +* **esl-media-query:** extend `ESLMediaRuleList.parseTuple` with ability to pass Parser ([44e9a1c](https://github.com/exadel-inc/esl/commit/44e9a1cf108b82d13908e65ca2d4691b026c49a2)) +* **esl-panel-group:** fallback-duration retired, now it's controlled out of the box ([d78553e](https://github.com/exadel-inc/esl/commit/d78553ec4ad474149eb1eba3b4be8d66db942e33)) +* **esl-panel:** ESLPanel no longer requires fallback-time definition ([6140ecd](https://github.com/exadel-inc/esl/commit/6140ecd902a0f888a77310fb8a607d5119b143fc)) +* **esl-utils:** `misc/object#get` API extended to be similar to `misc/object#set` ([474bd76](https://github.com/exadel-inc/esl/commit/474bd760f4738450d3692fdb08ea5da8d1b9be1b)) +* **esl-utils:** add `object#set` extended syntax support ([6d5799c](https://github.com/exadel-inc/esl/commit/6d5799c6dcb19da7e42e08a17b27e4eb1bfb589a)) +* **esl-utils:** add small attr utility ([f4ee57a](https://github.com/exadel-inc/esl/commit/f4ee57a8f151f82e1ce7cd187799e2cece3c8a10)) +* **esl-utils:** extend `promisifyTimeout` with ability to reject timeout ([#868](https://github.com/exadel-inc/esl/issues/868)) ([0594e5c](https://github.com/exadel-inc/esl/commit/0594e5ca8ec3aea82652fcc8abc3f7cfe87c3496)), closes [#858](https://github.com/exadel-inc/esl/issues/858) +* **esl-utils:** extend `set` method with ability to pass an array of path keys ([9dfa77b](https://github.com/exadel-inc/esl/commit/9dfa77bc47d71ab0e2b440bfcc2cd83c91cf29b5)) +* **esl-utils:** extend CSSClassUtils with `has` check ([f260823](https://github.com/exadel-inc/esl/commit/f260823c913e48313f572006dd6ebf376723461c)) + +# [3.14.0-beta.4](https://github.com/exadel-inc/esl/compare/v3.14.0-beta.3...v3.14.0-beta.4) (2022-03-11) + + +### Features + +* **esl-utils:** `misc/object#get` API extended to be similar to `misc/object#set` ([474bd76](https://github.com/exadel-inc/esl/commit/474bd760f4738450d3692fdb08ea5da8d1b9be1b)) +* **esl-utils:** add `object#set` extended syntax support ([6d5799c](https://github.com/exadel-inc/esl/commit/6d5799c6dcb19da7e42e08a17b27e4eb1bfb589a)) +* **esl-utils:** extend `promisifyTimeout` with ability to reject timeout ([#868](https://github.com/exadel-inc/esl/issues/868)) ([0594e5c](https://github.com/exadel-inc/esl/commit/0594e5ca8ec3aea82652fcc8abc3f7cfe87c3496)), closes [#858](https://github.com/exadel-inc/esl/issues/858) +* **esl-utils:** extend `set` method with ability to pass an array of path keys ([9dfa77b](https://github.com/exadel-inc/esl/commit/9dfa77bc47d71ab0e2b440bfcc2cd83c91cf29b5)) + +# [3.14.0-beta.3](https://github.com/exadel-inc/esl/compare/v3.14.0-beta.2...v3.14.0-beta.3) (2022-02-25) + + +### Features + +* **esl-media-query:** extend `ESLMediaRuleList.parseTuple` with ability to pass Parser ([44e9a1c](https://github.com/exadel-inc/esl/commit/44e9a1cf108b82d13908e65ca2d4691b026c49a2)) + +# [3.14.0-beta.2](https://github.com/exadel-inc/esl/compare/v3.14.0-beta.1...v3.14.0-beta.2) (2022-02-23) + + +### Bug Fixes + +* **esl-panel-group:** fix animation-end handling target check ([2d66781](https://github.com/exadel-inc/esl/commit/2d6678123141cb2c20eed8f95449ab4126e847b0)) +* **esl-panel:** fix animation-end handling target check ([ea897fa](https://github.com/exadel-inc/esl/commit/ea897fabdbbe166adeac9f0c36bda69ca7c63ffd)) +* **gh-pages:** change loadScript import ([acad20a](https://github.com/exadel-inc/esl/commit/acad20acbdafc1d3f49482b65800e80acf8512dc)) + +# [3.14.0-beta.1](https://github.com/exadel-inc/esl/compare/v3.13.2...v3.14.0-beta.1) (2022-02-21) + + +### Bug Fixes + +* **esl-core:** type and implementation improvements for attribute decorators ([73edd53](https://github.com/exadel-inc/esl/commit/73edd5340b5bef0e548ef00e932b4630907332b4)) +* **esl-media:** fix incorrect `group` definition in shape ([5358933](https://github.com/exadel-inc/esl/commit/5358933c62076a850cdf314f3a31205db5bd2b51)) + + +### Features + +* **esl-core:** extend `ESLBaseElement` with `$$cls` and `$$attr` methods ([65ab74a](https://github.com/exadel-inc/esl/commit/65ab74a5d1a749958e7d633e973fd679821a057a)) +* **esl-panel-group:** fallback-duration retired, now it's controlled out of the box ([d78553e](https://github.com/exadel-inc/esl/commit/d78553ec4ad474149eb1eba3b4be8d66db942e33)) +* **esl-panel:** ESLPanel no longer requires fallback-time definition ([6140ecd](https://github.com/exadel-inc/esl/commit/6140ecd902a0f888a77310fb8a607d5119b143fc)) +* **esl-utils:** add small attr utility ([f4ee57a](https://github.com/exadel-inc/esl/commit/f4ee57a8f151f82e1ce7cd187799e2cece3c8a10)) +* **esl-utils:** extend CSSClassUtils with `has` check ([f260823](https://github.com/exadel-inc/esl/commit/f260823c913e48313f572006dd6ebf376723461c)) + +## [3.13.2](https://github.com/exadel-inc/esl/compare/v3.13.1...v3.13.2) (2022-02-16) + + +### Bug Fixes + +* **esl-utils:** fix `RTLUtils.isRtl` types API ([f77791b](https://github.com/exadel-inc/esl/commit/f77791b22c99b6fec927c779b350caf2cbbbf918)) + +## [3.13.1](https://github.com/exadel-inc/esl/compare/v3.13.0...v3.13.1) (2022-02-16) + + +### Bug Fixes + +* **esl-scrollbar:** fix `normalizePosition` method to handle vertical scroll on RTL ([#839](https://github.com/exadel-inc/esl/issues/839)) ([a67c2a3](https://github.com/exadel-inc/esl/commit/a67c2a32262ad025fa328d9d63679d9acb52a550)) + +# [3.13.0](https://github.com/exadel-inc/esl/compare/v3.12.1...v3.13.0) (2022-02-14) + + +### Bug Fixes + +* **els-footnotes:** add ready decorator to disconnected callback ([87aa3e7](https://github.com/exadel-inc/esl/commit/87aa3e78649605bce24acc313b76f1ad4694778e)) +* **esl-footnotes:** fix behavior during connect/disconnect callbacks ([68a0553](https://github.com/exadel-inc/esl/commit/68a0553b409fa42b0251952401bee54a55fd24e6)) +* **esl-footnotes:** fix esl-note scroll into view on activate ([7a71a14](https://github.com/exadel-inc/esl/commit/7a71a143e0df804b07baa50cb0fb1a8f35fc438c)) +* **esl-footnotes:** fix esl-note-group attributes propagation ([9fe21b1](https://github.com/exadel-inc/esl/commit/9fe21b19daa87c95a2153ef932051ab8d27b1f81)) +* **esl-footnotes:** fix esl-note-group attributes propagation ([7f3d569](https://github.com/exadel-inc/esl/commit/7f3d569c3fc13353b7e4007de3142b7d537e810f)) +* **esl-footnotes:** fix the sort order of notes ([e299def](https://github.com/exadel-inc/esl/commit/e299def2b6e2daac0c4baa2b9ea6a3f6405da1c9)) +* **esl-footnotes:** replace container with containerEl at tooltip params ([5278b1f](https://github.com/exadel-inc/esl/commit/5278b1fe1be6107f0b5e089b7a9999111938cbe9)) +* **esl-note:** fix the corruption of the note's content ([bd0340d](https://github.com/exadel-inc/esl/commit/bd0340d44388c95b2cd749bcf8380d15460a1b3d)) +* **esl-popup:** fix the position of popups container ([e2d4ba4](https://github.com/exadel-inc/esl/commit/e2d4ba4a3c1a73d00abf5cb5dff0ff1eec2d96d3)) + + +### Features + +* **esl-footnotes:** add activate timeout ([c91d4e8](https://github.com/exadel-inc/esl/commit/c91d4e83a53726c14b4018b391e0e907ef615c7b)) +* **esl-footnotes:** add container attribute to esl-note-group ([621ab2e](https://github.com/exadel-inc/esl/commit/621ab2e97ff7dc12dd6d534aef0cb8afe72329d5)) +* **esl-footnotes:** add container attribute to set up bounds of visibility ([f420ac6](https://github.com/exadel-inc/esl/commit/f420ac6c61439de75478e28a69a12ad66f98dfc5)) +* **esl-footnotes:** add getting attribute value from closest element with group behavior settings ([b286e92](https://github.com/exadel-inc/esl/commit/b286e92cdef5ab44058263e4c8fcdae474125b9f)) +* **esl-footnotes:** add ignore-footnotes attribute to disallow footnotes to pick up a note ([9b8db3e](https://github.com/exadel-inc/esl/commit/9b8db3e17a3f0f8ecde8833146f44aeaf1e01d30)) +* **esl-footnotes:** create els-note-group element ([ffce746](https://github.com/exadel-inc/esl/commit/ffce746973011ec333c08365e317535f8115d43c)) +* **esl-popup:** add container attribute to set up bounds of visibility ([5ae9238](https://github.com/exadel-inc/esl/commit/5ae92386d0f9a336d65c6be48080548174eda9e0)) +* **esl-popup:** add containerEl param to action params ([4321863](https://github.com/exadel-inc/esl/commit/43218638eed1b17f57be36ffc1adef3f4efd0b7e)) +* **esl-popup:** add the ability to esl-popup to move into body in case when it is not in body ([13d3733](https://github.com/exadel-inc/esl/commit/13d3733b4012ef8958af3e823719c4b150985272)) +* **esl-popup:** create esl-popup-proxy component ([ee27f90](https://github.com/exadel-inc/esl/commit/ee27f90506910d77c9dc794205cf9bfe7652c413)) +* **esl-toggleable:** add handler for esl:show:request ([0d32ae9](https://github.com/exadel-inc/esl/commit/0d32ae9f86247d95d1f9e9ba465f77f78a10957a)) +* **esl-toggleable:** create esl-toggleable-proxy element ([d0fb90e](https://github.com/exadel-inc/esl/commit/d0fb90e6397b5e1eb1ad19fbf541c3791980d5ec)) +* **esl-trigger:** add the ability for the target to get origin from proxied element ([523752a](https://github.com/exadel-inc/esl/commit/523752a394918fdcccba001a7e182d6639a87afc)) +* rename elements from *-proxy to *-placeholder ([b98fe34](https://github.com/exadel-inc/esl/commit/b98fe345d9e86aae58160b9e01d5dfe137747b55)) + +# [3.13.0-beta.6](https://github.com/exadel-inc/esl/compare/v3.13.0-beta.5...v3.13.0-beta.6) (2022-02-10) + + +### Features + +* **esl-footnotes:** add getting attribute value from closest element with group behavior settings ([b286e92](https://github.com/exadel-inc/esl/commit/b286e92cdef5ab44058263e4c8fcdae474125b9f)) + +# [3.13.0-beta.5](https://github.com/exadel-inc/esl/compare/v3.13.0-beta.4...v3.13.0-beta.5) (2022-02-02) + + +### Bug Fixes + +* **els-footnotes:** add ready decorator to disconnected callback ([87aa3e7](https://github.com/exadel-inc/esl/commit/87aa3e78649605bce24acc313b76f1ad4694778e)) + +# [3.13.0-beta.4](https://github.com/exadel-inc/esl/compare/v3.13.0-beta.3...v3.13.0-beta.4) (2022-02-02) + + +### Bug Fixes + +* **esl-footnotes:** fix behavior during connect/disconnect callbacks ([68a0553](https://github.com/exadel-inc/esl/commit/68a0553b409fa42b0251952401bee54a55fd24e6)) +* **esl-footnotes:** fix esl-note scroll into view on activate ([7a71a14](https://github.com/exadel-inc/esl/commit/7a71a143e0df804b07baa50cb0fb1a8f35fc438c)) +* **esl-footnotes:** fix esl-note-group attributes propagation ([9fe21b1](https://github.com/exadel-inc/esl/commit/9fe21b19daa87c95a2153ef932051ab8d27b1f81)) +* **esl-footnotes:** fix esl-note-group attributes propagation ([7f3d569](https://github.com/exadel-inc/esl/commit/7f3d569c3fc13353b7e4007de3142b7d537e810f)) +* **esl-footnotes:** replace container with containerEl at tooltip params ([5278b1f](https://github.com/exadel-inc/esl/commit/5278b1fe1be6107f0b5e089b7a9999111938cbe9)) +* **esl-popup:** fix the position of popups container ([e2d4ba4](https://github.com/exadel-inc/esl/commit/e2d4ba4a3c1a73d00abf5cb5dff0ff1eec2d96d3)) + + +### Features + +* **esl-popup:** add containerEl param to action params ([4321863](https://github.com/exadel-inc/esl/commit/43218638eed1b17f57be36ffc1adef3f4efd0b7e)) + +# [3.13.0-beta.3](https://github.com/exadel-inc/esl/compare/v3.13.0-beta.2...v3.13.0-beta.3) (2022-01-26) + + +### Features + +* **esl-footnotes:** add activate timeout ([c91d4e8](https://github.com/exadel-inc/esl/commit/c91d4e83a53726c14b4018b391e0e907ef615c7b)) +* **esl-footnotes:** add container attribute to esl-note-group ([621ab2e](https://github.com/exadel-inc/esl/commit/621ab2e97ff7dc12dd6d534aef0cb8afe72329d5)) +* **esl-footnotes:** add container attribute to set up bounds of visibility ([f420ac6](https://github.com/exadel-inc/esl/commit/f420ac6c61439de75478e28a69a12ad66f98dfc5)) +* **esl-popup:** add container attribute to set up bounds of visibility ([5ae9238](https://github.com/exadel-inc/esl/commit/5ae92386d0f9a336d65c6be48080548174eda9e0)) +* **esl-popup:** add the ability to esl-popup to move into body in case when it is not in body ([13d3733](https://github.com/exadel-inc/esl/commit/13d3733b4012ef8958af3e823719c4b150985272)) +* **esl-popup:** create esl-popup-proxy component ([ee27f90](https://github.com/exadel-inc/esl/commit/ee27f90506910d77c9dc794205cf9bfe7652c413)) +* **esl-toggleable:** create esl-toggleable-proxy element ([d0fb90e](https://github.com/exadel-inc/esl/commit/d0fb90e6397b5e1eb1ad19fbf541c3791980d5ec)) +* **esl-trigger:** add the ability for the target to get origin from proxied element ([523752a](https://github.com/exadel-inc/esl/commit/523752a394918fdcccba001a7e182d6639a87afc)) +* rename elements from *-proxy to *-placeholder ([b98fe34](https://github.com/exadel-inc/esl/commit/b98fe345d9e86aae58160b9e01d5dfe137747b55)) +* update husky ([d15499d](https://github.com/exadel-inc/esl/commit/d15499db4026437ea26c70084e740d822e17bf35)) + +# [3.13.0-beta.2](https://github.com/exadel-inc/esl/compare/v3.13.0-beta.1...v3.13.0-beta.2) (2022-01-18) + + +### Bug Fixes + +* **esl-media:** fix incorrect `load-condition` definition in shape ([94e8d77](https://github.com/exadel-inc/esl/commit/94e8d7784392585ce787d35fee3cce1e1b07a7c7)) + +## [3.12.1](https://github.com/exadel-inc/esl/compare/v3.12.0...v3.12.1) (2022-01-18) + + +### Bug Fixes + +* **esl-media:** fix incorrect `load-condition` definition in shape ([94e8d77](https://github.com/exadel-inc/esl/commit/94e8d7784392585ce787d35fee3cce1e1b07a7c7)) + +# [3.13.0-beta.1](https://github.com/exadel-inc/esl/compare/v3.12.0...v3.13.0-beta.1) (2022-01-17) + + +### Bug Fixes + +* **esl-footnotes:** fix the sort order of notes ([e299def](https://github.com/exadel-inc/esl/commit/e299def2b6e2daac0c4baa2b9ea6a3f6405da1c9)) +* **esl-note:** fix the corruption of the note's content ([bd0340d](https://github.com/exadel-inc/esl/commit/bd0340d44388c95b2cd749bcf8380d15460a1b3d)) + + +### Features + +* **esl-footnotes:** add ignore-footnotes attribute to disallow footnotes to pick up a note ([9b8db3e](https://github.com/exadel-inc/esl/commit/9b8db3e17a3f0f8ecde8833146f44aeaf1e01d30)) +* **esl-footnotes:** create els-note-group element ([ffce746](https://github.com/exadel-inc/esl/commit/ffce746973011ec333c08365e317535f8115d43c)) +* **esl-toggleable:** add handler for esl:show:request ([0d32ae9](https://github.com/exadel-inc/esl/commit/0d32ae9f86247d95d1f9e9ba465f77f78a10957a)) + +# [3.12.0](https://github.com/exadel-inc/esl/compare/v3.11.0...v3.12.0) (2022-01-17) + + +### Bug Fixes + +* **esl-media:** fix missing load condition reinitialization and docs ([4f136d7](https://github.com/exadel-inc/esl/commit/4f136d7b37e06fc0c8ed4b00a150d943e3cad941)) +* **esl-media:** style/performance improvement for condition query ([#777](https://github.com/exadel-inc/esl/issues/777)) ([48bfed5](https://github.com/exadel-inc/esl/commit/48bfed540eedc4b766452c8dfea7b650e6e0a98c)) + + +### Features + +* **esl-toggleable:** add handler for esl:show:request ([ff0556a](https://github.com/exadel-inc/esl/commit/ff0556a41760473ed0a11af087f3a97e550c9b40)) + +# [3.11.0](https://github.com/exadel-inc/esl/compare/v3.10.0...v3.11.0) (2022-01-12) + + +### Bug Fixes + +* **esl-media-query:** fix `ESLMediaRuleList.prototype.default` type ([0ec7ef3](https://github.com/exadel-inc/esl/commit/0ec7ef3019ff7e56ab8c105c13163d534771febb)) +* **esl-panel-group:** fix event trowing when class target not specified ([4ad5e56](https://github.com/exadel-inc/esl/commit/4ad5e56d6d28c995e8b978c0d0c8a84d05ea41da)) +* **esl-toggleable:** improve outside keyboard events handling ([38160b6](https://github.com/exadel-inc/esl/commit/38160b66d4fec7c93b072b1d857fd9d2b093416f)) +* **esl-tooltip:** fix focus out behavior after SHIFT+TAB keypress ([98821a0](https://github.com/exadel-inc/esl/commit/98821a04131f4af234b0f3233f8825d786386a8d)) +* tests unhandled promise rejection ([d6ca55a](https://github.com/exadel-inc/esl/commit/d6ca55a7a0b11e2fe2e161dd04bf60609dfc9d0c)) + + +### Features + +* **esl-panel-group:** ability to define params for child panels requests ([08cf513](https://github.com/exadel-inc/esl/commit/08cf51385cae2514b220b9950d53d0afa4b1b5d3)) +* **esl-panel-group:** dispatch esl:change:mode event ([8d41dbd](https://github.com/exadel-inc/esl/commit/8d41dbd69ac703858f1dd8d43ece748da58780f1)) +* **esl-panel-group:** make animation disabled on transform by default ([1815b00](https://github.com/exadel-inc/esl/commit/1815b006a6decfc91b275b5c28ae9da17b1bf311)) +* **esl-panel-group:** rename `view` attribute to `current-mode`; extend mode class API ([52188fe](https://github.com/exadel-inc/esl/commit/52188fe43457d2f362cd7cca0a126cbf01ffb9c9)) +* **esl-toggleable:** add id auto-creation feature for toggleable instances ([eaf02dc](https://github.com/exadel-inc/esl/commit/eaf02dc490dd0c92b6b9bbdf758769eeba15d62d)) +* **gh-pages:** GSS integration ([#723](https://github.com/exadel-inc/esl/issues/723)) ([8c348be](https://github.com/exadel-inc/esl/commit/8c348be9e6c0a535b2b94c20634cdf1ab13fe5ef)) +* **gh-pages:** GSS integration ([#723](https://github.com/exadel-inc/esl/issues/723)) ([9636e1e](https://github.com/exadel-inc/esl/commit/9636e1eae99c5378d91f2d941663bd2c798fb7cc)) + +# [3.11.0-beta.3](https://github.com/exadel-inc/esl/compare/v3.11.0-beta.2...v3.11.0-beta.3) (2021-12-23) + + +### Bug Fixes + +* **esl-toggleable:** improve outside keyboard events handling ([38160b6](https://github.com/exadel-inc/esl/commit/38160b66d4fec7c93b072b1d857fd9d2b093416f)) + +# [3.11.0-beta.2](https://github.com/exadel-inc/esl/compare/v3.11.0-beta.1...v3.11.0-beta.2) (2021-12-23) + + +### Bug Fixes + +* **esl-panel-group:** fix event trowing when class target not specified ([4ad5e56](https://github.com/exadel-inc/esl/commit/4ad5e56d6d28c995e8b978c0d0c8a84d05ea41da)) + +# [3.11.0-beta.1](https://github.com/exadel-inc/esl/compare/v3.10.1-beta.1...v3.11.0-beta.1) (2021-12-22) + + +### Features + +* **esl-panel-group:** dispatch esl:change:mode event ([8d41dbd](https://github.com/exadel-inc/esl/commit/8d41dbd69ac703858f1dd8d43ece748da58780f1)) + +## [3.10.1-beta.1](https://github.com/exadel-inc/esl/compare/v3.10.0...v3.10.1-beta.1) (2021-12-22) + + +### Bug Fixes + +* **esl-tooltip:** fix focus out behavior after SHIFT+TAB keypress ([98821a0](https://github.com/exadel-inc/esl/commit/98821a04131f4af234b0f3233f8825d786386a8d)) + +# [3.10.0](https://github.com/exadel-inc/esl/compare/v3.9.1...v3.10.0) (2021-12-22) + + +### Bug Fixes + +* **esl-scrollbar:** fix event subscriber leak ([abaf22a](https://github.com/exadel-inc/esl/commit/abaf22a9ec6380fec3d6676dc7f6944688724c1c)) +* **esl-toggleable:** fix `_onOutsideAction` and `_onClick` signature ([0a2600b](https://github.com/exadel-inc/esl/commit/0a2600b66d0ade06fa19e811cfdb1a8fc050dd37)) +* **esl-toggleable:** fix wrong and missing TSX shape attributes ([0dc77ff](https://github.com/exadel-inc/esl/commit/0dc77ffe2b7cf55d7cb3c71e15d65604b7a82fb4)) + + +### Features + +* **esl-toggleable:** `keypress` event now also considered as an outside action ([b3c5374](https://github.com/exadel-inc/esl/commit/b3c537430287f2fd909824d4cabab986f368debe)) + +## [3.9.1](https://github.com/exadel-inc/esl/compare/v3.9.0...v3.9.1) (2021-12-16) + + +### Bug Fixes + +* **esl-scrollbar:** fix drag behaviour for short scroll ([03b179d](https://github.com/exadel-inc/esl/commit/03b179d5c0e1dbf974b8e61af700ffff7bc4decc)) + +# [3.9.0](https://github.com/exadel-inc/esl/compare/v3.8.0...v3.9.0) (2021-12-15) + + +### Bug Fixes + +* **esl-utils:** add support for Touch and Pointer events in normalize utilities ([a5a183c](https://github.com/exadel-inc/esl/commit/a5a183c34655aa04899ed66d57eeac59d5c6a5a5)) + + +### Features + +* **esl-animate:** add jsx/tsx support ([3db5644](https://github.com/exadel-inc/esl/commit/3db564497ea478dc263199cce7c1e232a41d06c4)) +* **esl-scrollbar:** api simplified + performance improvements ([81b8824](https://github.com/exadel-inc/esl/commit/81b8824535253477efb06c8dc640e92746d1da56)) +* **esl-scrollbar:** support for continues click on the scrollbar area ([#688](https://github.com/exadel-inc/esl/issues/688)) ([aae79b4](https://github.com/exadel-inc/esl/commit/aae79b43d05d2ef2a3de144075cddeaf48207d98)) +* **esl-scrollbar:** support for touch actions on scrollbar ([acc42f7](https://github.com/exadel-inc/esl/commit/acc42f702273a1612f551e0df0fdce7c9df8195d)) + +# [3.8.0](https://github.com/exadel-inc/esl/compare/v3.7.0...v3.8.0) (2021-12-10) + + +### Bug Fixes + +* **esl-footnotes:** add event propagation stop at esl-note ([d69ff60](https://github.com/exadel-inc/esl/commit/d69ff60822d6976fbd2c03302322f89d8a504aa3)) +* **esl-footnotes:** fix handling keydown event on return to note button ([83b4131](https://github.com/exadel-inc/esl/commit/83b4131c488b30692997f97a5440cfa3c30523b3)) +* **esl-footnotes:** fix inappropriate behaviour when activating note through the return to note ([c054226](https://github.com/exadel-inc/esl/commit/c054226f6466fbbc59da994d725e5023657d7c49)) +* **esl-popup:** fix wrong arrow position when popup size greater than size outer limiter ([d6f7c2e](https://github.com/exadel-inc/esl/commit/d6f7c2eb377cd539521dce692a76900c3b65810f)) +* **esl-utils:** fix scrollIntoView resolution and horizontal scroll ([15e0891](https://github.com/exadel-inc/esl/commit/15e0891655bc4bc4ae6b0b5d58ca1a30a9986ee5)) + + +### Features + +* **esl-footnotes:** add back-to-note-label to outputting title for the button ([717c23f](https://github.com/exadel-inc/esl/commit/717c23ffe30f5d9963d7463262e4739d2d7d0b1d)) +* **esl-footnotes:** add dispatch esl:show:request event on activate esl-note ([023b7c6](https://github.com/exadel-inc/esl/commit/023b7c6aed677b7734a31aec6d4d1ab64d280388)) +* **esl-footnotes:** add separate method to render content of connected note ([bea4379](https://github.com/exadel-inc/esl/commit/bea4379d35aab4f2e550cb4af13622eee733877e)) +* **esl-popup:** add disable activator observation attribute and add to behavior new values ([bcd8212](https://github.com/exadel-inc/esl/commit/bcd8212ff8acbf90e9d7c7f464800faad5163093)) +* **esl-popup:** add RTL support ([9aab290](https://github.com/exadel-inc/esl/commit/9aab290738547a5b8d7b64e0437e00cdacc13d1c)) +* **esl-popup:** add updating position on transition ([8fb47ed](https://github.com/exadel-inc/esl/commit/8fb47ed866b7c67f93919edcf66b7611eabcbe1f)) +* **esl-popup:** create esl-popup-init mixin to make it easier to initialize styles ([6e78265](https://github.com/exadel-inc/esl/commit/6e7826561d3c7be943dbedd75f94ab1bdcb6f280)) +* **esl-tooltip:** add focus out handling to return focus to activator ([4b20ef8](https://github.com/exadel-inc/esl/commit/4b20ef84d7bac792e43a0b77caec1695faf6c4e1)) +* **esl-utils:** add helper method to get keyboard-focusable elements within a specified element ([3577397](https://github.com/exadel-inc/esl/commit/3577397adc339eb15313637bb1672de159b279d8)) +* **esl-utils:** add static method isEqual() to Rect ([128cbcb](https://github.com/exadel-inc/esl/commit/128cbcbd0f470a960f5ab50479e765f43b31e3b2)) + +# [3.8.0-beta.1](https://github.com/exadel-inc/esl/compare/v3.7.0...v3.8.0-beta.1) (2021-12-07) + + +### Bug Fixes + +* **esl-footnotes:** add event propagation stop at esl-note ([d69ff60](https://github.com/exadel-inc/esl/commit/d69ff60822d6976fbd2c03302322f89d8a504aa3)) +* **esl-footnotes:** fix handling keydown event on return to note button ([83b4131](https://github.com/exadel-inc/esl/commit/83b4131c488b30692997f97a5440cfa3c30523b3)) +* **esl-footnotes:** fix inappropriate behaviour when activating note through the return to note ([c054226](https://github.com/exadel-inc/esl/commit/c054226f6466fbbc59da994d725e5023657d7c49)) +* **esl-utils:** fix scrollIntoView resolution and horizontal scroll ([15e0891](https://github.com/exadel-inc/esl/commit/15e0891655bc4bc4ae6b0b5d58ca1a30a9986ee5)) + + +### Features + +* **esl-footnotes:** add back-to-note-label to outputting title for the button ([717c23f](https://github.com/exadel-inc/esl/commit/717c23ffe30f5d9963d7463262e4739d2d7d0b1d)) +* **esl-footnotes:** add dispatch esl:show:request event on activate esl-note ([023b7c6](https://github.com/exadel-inc/esl/commit/023b7c6aed677b7734a31aec6d4d1ab64d280388)) +* **esl-footnotes:** add separate method to render content of connected note ([bea4379](https://github.com/exadel-inc/esl/commit/bea4379d35aab4f2e550cb4af13622eee733877e)) +* **esl-popup:** add disable activator observation attribute and add to behavior new values ([bcd8212](https://github.com/exadel-inc/esl/commit/bcd8212ff8acbf90e9d7c7f464800faad5163093)) +* **esl-popup:** add RTL support ([9aab290](https://github.com/exadel-inc/esl/commit/9aab290738547a5b8d7b64e0437e00cdacc13d1c)) +* **esl-popup:** add updating position on transition ([8fb47ed](https://github.com/exadel-inc/esl/commit/8fb47ed866b7c67f93919edcf66b7611eabcbe1f)) +* **esl-popup:** create esl-popup-init mixin to make it easier to initialize styles ([6e78265](https://github.com/exadel-inc/esl/commit/6e7826561d3c7be943dbedd75f94ab1bdcb6f280)) +* **esl-tooltip:** add focus out handling to return focus to activator ([4b20ef8](https://github.com/exadel-inc/esl/commit/4b20ef84d7bac792e43a0b77caec1695faf6c4e1)) +* **esl-utils:** add helper method to get keyboard-focusable elements within a specified element ([3577397](https://github.com/exadel-inc/esl/commit/3577397adc339eb15313637bb1672de159b279d8)) +* **esl-utils:** add static method isEqual() to Rect ([128cbcb](https://github.com/exadel-inc/esl/commit/128cbcbd0f470a960f5ab50479e765f43b31e3b2)) + +# [3.7.0-beta.4](https://github.com/exadel-inc/esl/compare/v3.7.0-beta.3...v3.7.0-beta.4) (2021-12-03) + + +### Features + +* **esl-footnotes:** add dispatch esl:show:request event on activate esl-note ([023b7c6](https://github.com/exadel-inc/esl/commit/023b7c6aed677b7734a31aec6d4d1ab64d280388)) + +# [3.7.0-beta.3](https://github.com/exadel-inc/esl/compare/v3.7.0-beta.2...v3.7.0-beta.3) (2021-12-01) + + +### Bug Fixes + +* **esl-footnotes:** fix handling keydown event on return to note button ([83b4131](https://github.com/exadel-inc/esl/commit/83b4131c488b30692997f97a5440cfa3c30523b3)) + + +### Features + +* **esl-tooltip:** add focus out handling to return focus to activator ([4b20ef8](https://github.com/exadel-inc/esl/commit/4b20ef84d7bac792e43a0b77caec1695faf6c4e1)) +* **esl-utils:** `ESLVSizeCSSProxy` utility to fix 100vh problem is introduced ([5bae888](https://github.com/exadel-inc/esl/commit/5bae8882f87797741ef10cc835e50f7485fe63c8)) +* **esl-utils:** add helper method to get keyboard-focusable elements within a specified element ([3577397](https://github.com/exadel-inc/esl/commit/3577397adc339eb15313637bb1672de159b279d8)) + +# [3.7.0-beta.2](https://github.com/exadel-inc/esl/compare/v3.7.0-beta.1...v3.7.0-beta.2) (2021-11-30) + + +### Bug Fixes + +* **esl-footnotes:** add event propagation stop at esl-note ([d69ff60](https://github.com/exadel-inc/esl/commit/d69ff60822d6976fbd2c03302322f89d8a504aa3)) + + +### Features + +* **esl-popup:** add updating position on transition ([8fb47ed](https://github.com/exadel-inc/esl/commit/8fb47ed866b7c67f93919edcf66b7611eabcbe1f)) +* **esl-popup:** create esl-popup-init mixin to make it easier to initialize styles ([6e78265](https://github.com/exadel-inc/esl/commit/6e7826561d3c7be943dbedd75f94ab1bdcb6f280)) +* **esl-utils:** add static method isEqual() to Rect ([128cbcb](https://github.com/exadel-inc/esl/commit/128cbcbd0f470a960f5ab50479e765f43b31e3b2)) + +# [3.7.0-beta.1](https://github.com/exadel-inc/esl/compare/v3.6.0...v3.7.0-beta.1) (2021-11-28) + + +### Features + +* **esl-footnotes:** add back-to-note-label to outputting title for the button ([717c23f](https://github.com/exadel-inc/esl/commit/717c23ffe30f5d9963d7463262e4739d2d7d0b1d)) +* **esl-footnotes:** add separate method to render content of connected note ([bea4379](https://github.com/exadel-inc/esl/commit/bea4379d35aab4f2e550cb4af13622eee733877e)) + +# [3.7.0](https://github.com/exadel-inc/esl/compare/v3.6.0...v3.7.0) (2021-12-07) + + +### Bug Fixes + +* **esl-utils:** `CSSClassUtils` utility should support lower DOM API ([594b889](https://github.com/exadel-inc/esl/commit/594b8892db600f3fcb99915fe28ea062a5942281)) +* **esl-utils:** fix usage of deprecated substr in `CSSClassUtils` ([c142152](https://github.com/exadel-inc/esl/commit/c142152edfab5ab5398a53eb3029cb94fc03eb94)) + + +### Features + +* **esl-animate:** make a new module "esl-animate" to animate elements on viewport intersecting ([e369350](https://github.com/exadel-inc/esl/commit/e3693507b65194ec952ada37d5255bc6f9d48b31)) +* **esl-utils:** `ESLVSizeCSSProxy` utility to fix 100vh problem is introduced ([5bae888](https://github.com/exadel-inc/esl/commit/5bae8882f87797741ef10cc835e50f7485fe63c8)) + +# [3.6.0](https://github.com/exadel-inc/esl/compare/v3.5.0...v3.6.0) (2021-11-23) + + +### Bug Fixes + +* **esl-media:** `preload` and `fill-mode` types restricted ([4c41cb3](https://github.com/exadel-inc/esl/commit/4c41cb338c49559a3425029fd31f9957c741b3aa)) +* **esl-poup:** fix popup positioning ([61b0237](https://github.com/exadel-inc/esl/commit/61b0237f3b7fc9c14f786d382b0900ceffeaa9d0)) + + +### Features + +* **esl-popup:** add new feature to be able to set position of arrow on popup ([7973e1f](https://github.com/exadel-inc/esl/commit/7973e1f4f2281f538abb7783046463d2b7967fa2)) +* **esl-traversing-query:** add ability to restrict global scope ([3e136c0](https://github.com/exadel-inc/esl/commit/3e136c09245f10dd5bfe24cc0c7deb94551f8aed)) +* **esl-utils:** array unwrap utility ([45c50a0](https://github.com/exadel-inc/esl/commit/45c50a067b9a0de42e1740ae6bba0264d1229280)) +* **esl-utils:** fix `isPrimitive` check and `isObject` return type, add `isArrayLike` ([80b8aa0](https://github.com/exadel-inc/esl/commit/80b8aa04068f9d047c459769ce32a71a5ddaf0d9)) + +# [3.5.0](https://github.com/exadel-inc/esl/compare/v3.4.1...v3.5.0) (2021-11-15) + + +### Bug Fixes + +* **esl-alert:** default alert background color changed ([0243e63](https://github.com/exadel-inc/esl/commit/0243e632efd2a6a27679f3b942fa828f2c5bcfe2)) +* **esl-popup:** fix arrow position for adjacent axis ([b37d550](https://github.com/exadel-inc/esl/commit/b37d55021659c6781f516641f5fc88eda77aaf39)) +* **esl-select:** return min-width ([c07ceba](https://github.com/exadel-inc/esl/commit/c07ceba75b320e4bc7eaa0c4333d7cfb51ee6d43)) + + +### Features +* **gh-pages** new demo site released +* **esl-utils** add ability to scrollIntoView to detect when scrolling stops ([d1a4845](https://github.com/exadel-inc/esl/commit/d1a48452f1fcdfd7347f86bf6d09eeeb2dc1d80a)) +* **esl-alert:** ability to control initial params ([1cda5ea](https://github.com/exadel-inc/esl/commit/1cda5ea2d4d121cb73b50f2dbf7518151081db85)) + + +## [3.4.1](https://github.com/exadel-inc/esl/compare/v3.4.0...v3.4.1) (2021-11-08) + + +### Bug Fixes + +* **esl-utils:** scrollIntoViewAsync() method signature ([6817b31](https://github.com/exadel-inc/esl/commit/6817b31dea274bf57e271d34dcfb7625d1e9b57f)) +* **esl-utils:** update dispatch parameter type ([0834a97](https://github.com/exadel-inc/esl/commit/0834a974babf59aaef1bacb753057586a433a056)) + +# [3.4.0](https://github.com/exadel-inc/esl/compare/v3.3.0...v3.4.0) (2021-10-21) + + +### Bug Fixes + +* **esl-trigger:** remove debug information about incorrect target ([1b4bea9](https://github.com/exadel-inc/esl/commit/1b4bea973bd236c30d2b3654dd6979578faabf00)) + + +### Features + +* **esl-forms:** add TSX shapes for ESLSelect and ESLSelectList ([ab1c550](https://github.com/exadel-inc/esl/commit/ab1c550292f8a19bdb4deb1458e2f0b9b7a58ca3)) +* **esl-scrollbar:** default inactive state for arrows in the boundary stages ([9a72663](https://github.com/exadel-inc/esl/commit/9a7266374cb3c795a7b5fd01cbff02c71b111cb5)) +* **esl-utils:** add `repeatSequence` utility to call async function in chain n-th count of times ([03eff4c](https://github.com/exadel-inc/esl/commit/03eff4c08064024025a16186c57eab6d9d403028)) +* **esl-utils:** add a capitalize method to `esl-utils/misc/format.ts` ([#554](https://github.com/exadel-inc/esl/issues/554)) ([a2c19fc](https://github.com/exadel-inc/esl/commit/a2c19fcfbc0bbdfbac6b28ceb01100990fed219a)) + +# [3.3.0](https://github.com/exadel-inc/esl/compare/v3.2.0...v3.3.0) (2021-10-08) + + +### Features + +* **esl-scrollbar:** add at-end / at-start markers ([ce0a6fe](https://github.com/exadel-inc/esl/commit/ce0a6fecebdb7332674aa3369674c80c5937bab8)) +* **esl-scrollbar:** dispatch position event ([ad7e7db](https://github.com/exadel-inc/esl/commit/ad7e7db105d75f08be2f47225b02eb1311b2ab00)) +* **esl-utils:** add new groupBy utility to the array utils ([5d65b82](https://github.com/exadel-inc/esl/commit/5d65b82979113ae3020a948a56a816dbacf88a43)), closes [#503](https://github.com/exadel-inc/esl/issues/503) + +# [3.2.0](https://github.com/exadel-inc/esl/compare/v3.1.0...v3.2.0) (2021-09-22) + + +### Bug Fixes + +* **esl-trigger:** can be of the type null ([58f0644](https://github.com/exadel-inc/esl/commit/58f0644dee92dcb37c76b86df2e5da8bb4ccdbc2)) +* **esl-trigger:** error handling if the target is not an instance of togglable ([85cb6c1](https://github.com/exadel-inc/esl/commit/85cb6c17c9299c5b6e5dca0ecaff9d6586da0351)) +* **esl-utils:** fix `Debounced` and `Throttled` function return types ([3d2c598](https://github.com/exadel-inc/esl/commit/3d2c59811de982156e672e874cc38a711b40b3e8)) + + +### Features + +* add ability to prevent scroll on focus ([#490](https://github.com/exadel-inc/esl/issues/490)) ([a9a8a02](https://github.com/exadel-inc/esl/commit/a9a8a02706a11327eceb52f0c5d97bef40858015)) +* **esl-trigger:** add `esl:change:active` event details & fix event emmit condition ([a0237b2](https://github.com/exadel-inc/esl/commit/a0237b267fbe0a0f9fa0eaa546bac92d90d3a76a)), closes [#480](https://github.com/exadel-inc/esl/issues/480) +* **esl-utils:** add optional `throttle` and `debounce` context argument ([eb948ce](https://github.com/exadel-inc/esl/commit/eb948cead3bd3afa7138e5fb96c58e8dde389116)) + +# [3.1.0](https://github.com/exadel-inc/esl/compare/v3.0.3...v3.1.0) (2021-09-16) + +New Exadel Smart Library version comes with extended and out-of-the-box support for TSX. +TSX Shapes updated and complete, `JSX.Element` merging no longer required, everything available OOTB. +**Default ESL tags definition no longer needed, get rid of the `IntrinsicElements` interface expansion, ESL now define everything that's required.** + +### Bug Fixes + +* tsx single tags allowed child definition ([10e465a](https://github.com/exadel-inc/esl/commit/10e465a268059ffe5f1e96aecd6f123f5af6cc04)) + + +### Features + +* add `ESLBaseElement` complete and independent TSX shape definition ([7517bf4](https://github.com/exadel-inc/esl/commit/7517bf40b6c53e7593e198ba4520ee467d2755b7)) +* add TSX shapes for `ESLAlert` ([b2ff733](https://github.com/exadel-inc/esl/commit/b2ff733028e3fb5ac27831388bc67b73e72e9eed)) +* add TSX shapes for `ESLPopup` ([180f411](https://github.com/exadel-inc/esl/commit/180f411ceef38d3b558de4c5b4c902dc1cb8a1eb)) +* ootb TSX types for components & updates complete TSX shapes ([2bd409c](https://github.com/exadel-inc/esl/commit/2bd409c3f5be79df76c7745ffdcaf574f614b35a)), closes [#476](https://github.com/exadel-inc/esl/issues/476) +* add new set utilities with the following methods: + - `intersection` - to create a unique array intersection + - `union` - to create a union of the unique values + - `complement` - to create a complement of one array to another + - `fullIntersection` - check if the arrays have a full intersection + + +## [3.0.3](https://github.com/exadel-inc/esl/compare/v3.0.2...v3.0.3) (2021-09-07) + + +### Bug Fixes + +* fix allowed children for new JSX Shapes ([aa3182b](https://github.com/exadel-inc/esl/commit/aa3182bcce565ad23802286663d54ed96b694f5e)) +* fix default value for trigger ([b7c600a](https://github.com/exadel-inc/esl/commit/b7c600a24e562b15204c4223ee6a03ba592f04f7)) + +## [3.0.2](https://github.com/exadel-inc/esl/compare/v3.0.1...v3.0.2) (2021-09-06) + + +### Bug Fixes + +* **esl-panel:** fix animation reflow for esl-panel ([3603609](https://github.com/exadel-inc/esl/commit/36036098be10b265324f0b3f8ecfa3464715f234)) +* **esl-toggleable:** final fix for outside action handling flow ([9b3056c](https://github.com/exadel-inc/esl/commit/9b3056c85c12bfdf41f2b44a4415fb0dea6695f7)) +* fix unsubscribe for outside actions ([27e9d32](https://github.com/exadel-inc/esl/commit/27e9d3242e9d2efce4b94c0ef2bd08ecaa228635)) + +## [3.0.1](https://github.com/exadel-inc/esl/compare/v3.0.0...v3.0.1) (2021-09-03) + + +### Bug Fixes + +* **esl-toggleable:** fix outside action binding ([eccc2d7](https://github.com/exadel-inc/esl/commit/eccc2d75453f8d4b84167fdc10d2bcb0e1d86c3d)) + +# [3.0.0](https://github.com/exadel-inc/esl/compare/v2.9.1...v3.0.0) (2021-09-01) + + +### Bug Fixes + +* **esl-footnotes:** fix broken click on back-to-note ([e66ae96](https://github.com/exadel-inc/esl/commit/e66ae967681fc2a59e71fb5c7f990d4e16dbc6c2)) +* **esl-footnotes:** fix character for return to note due to its absence at fonts on some platforms ([d74788f](https://github.com/exadel-inc/esl/commit/d74788fe1efde9aed4b8a3ffdb201c5aea138e34)) +* **esl-footnotes:** fix footnotes soting and reindex ([f13ba79](https://github.com/exadel-inc/esl/commit/f13ba79d72383584bf62ced35cda9d587697a677)) +* **esl-footnotes:** fix IE11 issue with Map.iterator absent ([3bad82b](https://github.com/exadel-inc/esl/commit/3bad82b383a0e9fcd41d3d3bb5d6452a9673e491)) +* **esl-media:** fix toggle method and process keydown event otb ([b3ad030](https://github.com/exadel-inc/esl/commit/b3ad030b42ed0e28946b73bfe5c661bd9d899d74)) +* **esl-note:** fix broken connection between esl-note and esl-footnotes ([646ebbc](https://github.com/exadel-inc/esl/commit/646ebbc46d92e50e6070c5aa34b98d9623f417a4)) +* **esl-note:** fix the issue with lost tooltip text after cloning of element ([882e0b0](https://github.com/exadel-inc/esl/commit/882e0b0398d16bff04e022ce994484bbdc917489)) +* **esl-panel:** add missing observedAttributes method ([2bae85f](https://github.com/exadel-inc/esl/commit/2bae85f46cb81ba83d4eee08b4536d40cd1fbb58)) +* **esl-panel:** fix twitchy panel animation on multiple requests ([fee25af](https://github.com/exadel-inc/esl/commit/fee25aff21b328fcf9eb61dee7a87bb80eef2a64)) +* **esl-popup:** fix IE11 errors in popup behaviour ([6c7c50d](https://github.com/exadel-inc/esl/commit/6c7c50d0f88d659c399f4e38cb7b6fdbf651070d)) +* **esl-popup:** fix wrong popup arrow positioning ([d127a67](https://github.com/exadel-inc/esl/commit/d127a67588d2e32230304edcf69079a0a8e58223)) +* **esl-popup:** fix wrong popup positioning ([907ce47](https://github.com/exadel-inc/esl/commit/907ce4750e4b4729d5ae1634ca9e0346161408c8)) +* **esl-popup:** remove position attr from popup arrow and add placed-at attr to popup element ([32d9d93](https://github.com/exadel-inc/esl/commit/32d9d937fc28209904c8f9fd7c14e0783a0c60d5)) +* **esl-popup:** wrong popup position when the popup is shown at the first time ([c5195ab](https://github.com/exadel-inc/esl/commit/c5195ab7415ba4c7309879e93be8db049b61bb3e)) +* **esl-popup:** wrong popup position when the popup is shown at the first time ([7533683](https://github.com/exadel-inc/esl/commit/753368395f238fe9870a92436adbb749828a325d)) +* **esl-select-list:** fix IE11 scroll ([0c4bebb](https://github.com/exadel-inc/esl/commit/0c4bebb15536a2eeaaf84723928b634682f1573d)) +* **esl-toggleable:** allow to register toggleable as independent component ([ac98970](https://github.com/exadel-inc/esl/commit/ac98970987dda5e2103f6e1104568d60642c0f2a)) +* **esl-toggleable:** fix trackHover hideDelay inheritance from the original activator ([e67acb3](https://github.com/exadel-inc/esl/commit/e67acb38530105629cb82560246a22af795d0c39)) +* **esl-toggleable:** fix trackHover precondition ([751eb76](https://github.com/exadel-inc/esl/commit/751eb7636797cb1b79f6df1b6bcf3ff5b8350fb9)) +* **esl-trigger:** fix incorrect tap handling on mobile devices ([a297ff6](https://github.com/exadel-inc/esl/commit/a297ff6688c1044f62679db2136b9f442bc7bc68)), closes [#436](https://github.com/exadel-inc/esl/issues/436) +* **esl-utils:** delayed-task now accept numeric string delay representation ([d1122f4](https://github.com/exadel-inc/esl/commit/d1122f45365e3599f3a3a35fc3f8528b10d5c659)) +* activator is not defined in hide handler ([6e2473e](https://github.com/exadel-inc/esl/commit/6e2473eae4a0742c0737b4d743415d4de5e207cf)) +* add cleanup step for the build and start ([31dd317](https://github.com/exadel-inc/esl/commit/31dd3176c7fc4b03c06c9804046ae79f710bf4f6)) +* fix twitchy scrollbar when scroll-behavior set to smooth for target ([4b9848c](https://github.com/exadel-inc/esl/commit/4b9848c9881cce9de4a4e283b61b3ffa78c9f73e)), closes [#430](https://github.com/exadel-inc/esl/issues/430) +* **esl-select:** fix height empty space appeared with little amount of list items ([9dfadc4](https://github.com/exadel-inc/esl/commit/9dfadc410cb5f5fcbaafc3debfe64386ca0013c7)) +* **esl-select:** specify max-height for standalone list in pixels & for list in dropdown in vh ([70ed2f0](https://github.com/exadel-inc/esl/commit/70ed2f0cba83dcf2801ee6f9729fac4ce53bb114)) +* **esl-utils:** deep merge: fix array case and refactor ([4191b85](https://github.com/exadel-inc/esl/commit/4191b851cb84f59ef31cf8bbb0dd29c5594fea86)) +* **esl-utils:** device detector touch detection improved ([7a5956e](https://github.com/exadel-inc/esl/commit/7a5956ebf55d00bde38707c92bc921ac48c1c5ef)) +* **esl-utils:** fix IE issue 'ShadowRoot is undefined' ([4a8cffc](https://github.com/exadel-inc/esl/commit/4a8cffc025441016b75a723365fec4ad7ca2d288)) +* **esl-utils:** fix IE11 issue with x and y absent in DOMRect ([b64a654](https://github.com/exadel-inc/esl/commit/b64a6545048164022cfa4a180da9ae8a922a8241)) +* declare global interface HTMLElementTagNameMap ([b5c96de](https://github.com/exadel-inc/esl/commit/b5c96de0e88e96b63796c7a1921774c71693cbfd)) +* fix namespace types and typing placement ([c2e2ab0](https://github.com/exadel-inc/esl/commit/c2e2ab00901dc599a5c994ae16036d1ea92b3a11)) +* pseudo scroll locker styles fix ([8d2cfeb](https://github.com/exadel-inc/esl/commit/8d2cfeb04525fb968a2372d86fd1cbd3f6a866b2)) +* remove drafts collection from sitemap ([3dc726a](https://github.com/exadel-inc/esl/commit/3dc726a8a617bf622fedb640e41f7b1087f12d58)) +* **esl-utils:** fix IE issue 'ShadowRoot is undefined' ([c354ab9](https://github.com/exadel-inc/esl/commit/c354ab9971ed82c45168b29354f1f943f3a3b4ae)) +* merge changes ([ec09584](https://github.com/exadel-inc/esl/commit/ec095848cbb2efd195bc5963c8c76cb385172632)) +* **esl-utils:** add hasHover device detection ([2f46dc5](https://github.com/exadel-inc/esl/commit/2f46dc593f21822cb00a883acdcead608f6ee3b7)) +* **esl-utils:** fix IE pseudo scroll lock artifacts ([90961e0](https://github.com/exadel-inc/esl/commit/90961e07e8af28091245cdaac5bf7b93f8c34edc)) +* **esl-utils:** fix media query empty rule payload type (null -> undefined) ([423506e](https://github.com/exadel-inc/esl/commit/423506e83ae9793518ce3e19351a56600d0d5f5d)) +* **esl-utils:** fix pseudo scroll RTL support ([db23758](https://github.com/exadel-inc/esl/commit/db23758a408c1f0309c71391fc68bd30f1933f6a)) +* **esl-utils:** strict types for deep merge ([04bbad4](https://github.com/exadel-inc/esl/commit/04bbad4ea68b18caf01420c6aeae05c83f23ead1)) +* activator should be available after hide ([817181a](https://github.com/exadel-inc/esl/commit/817181aad59499abb15d0f2ad9a82f56e63f98cd)) +* editing styles for correct display on mobile ([58a35b1](https://github.com/exadel-inc/esl/commit/58a35b104dfa96783f9bd25d43b5b3d3663bf378)) +* fix esl-popup arrow position ([b0490df](https://github.com/exadel-inc/esl/commit/b0490dff03cd42dad6dfdd885ff1dbb6bb749076)) +* **esl-image:** svg loading check update ([6f72a70](https://github.com/exadel-inc/esl/commit/6f72a708cf0594ff1ef5a7f2eabbc03f4164fa87)) +* **esl-utils:** isRtl check updated to use computed styles instead of attribute ([89ae48d](https://github.com/exadel-inc/esl/commit/89ae48d5da35eab386d2f3cb53cdb20273e29423)) +* **esl-utils:** update export list ([5b9df8b](https://github.com/exadel-inc/esl/commit/5b9df8b2733efa8fbf3999c47150b4e7e2464ad5)) +* **esl-utils:** utility DeviceDetector updated to recognize iOS13 ([dc2bda2](https://github.com/exadel-inc/esl/commit/dc2bda2be9b30f89953bc5c7b79c03ae6a3fc8ea)) + + +### Code Refactoring + +* **esl-utils:** remove deprecations of version v2.0.0 ([cbd38b6](https://github.com/exadel-inc/esl/commit/cbd38b6011b790b89a243fb4b0d419b7c80907a8)) + + +### Features + +* **esl-a11y-group:** add jsx tag shape ([c469f20](https://github.com/exadel-inc/esl/commit/c469f2018989fa03b44ca300e9593a04b16ab79f)) +* **esl-footnotes:** add a grouping of footnotes with non-unique text ([9890124](https://github.com/exadel-inc/esl/commit/9890124c6a65750a52e543a863c2def739504937)) +* **esl-footnotes:** add a grouping of footnotes with non-unique text ([05344a0](https://github.com/exadel-inc/esl/commit/05344a0e881b15a1ff6cba67557e15fa950518bc)) +* **esl-media-query:** media query v2 update ([#232](https://github.com/exadel-inc/esl/issues/232)) ([0c122e9](https://github.com/exadel-inc/esl/commit/0c122e91514355b376043f8e67dbae244dac1c81)) +* **esl-note:** add highlighting for notes ([2864205](https://github.com/exadel-inc/esl/commit/2864205e2118e0aa8869913df2c3bb0daac63974)) +* **esl-panel:** add jsx tag shape ([ba00085](https://github.com/exadel-inc/esl/commit/ba00085e44e8c45c9e4ae6182251e7e420857df3)) +* **esl-panel-group:** allows any number of open panels for accordion mode ([3476e90](https://github.com/exadel-inc/esl/commit/3476e90f9b5b89fb8c16a92540fb799cd12ffdff)) +* **esl-popup:** add bottom, left, right position and update position when parents scroll ([9242fca](https://github.com/exadel-inc/esl/commit/9242fcabded6a5f349b40ef1cc46cedda86b058a)) +* **esl-popup:** add popup flipping and hiding by detection intersection side ([a213262](https://github.com/exadel-inc/esl/commit/a213262813c1ddc79d51510bbb4001cae2aeca4c)) +* **esl-popup:** remake popup positioning ([2ffe381](https://github.com/exadel-inc/esl/commit/2ffe3817d990e6ed98117ece5196c286ad3f71d4)) +* **esl-popup:** update esl-popup demo page ([bb0e396](https://github.com/exadel-inc/esl/commit/bb0e396a69819590db923578ddcbe1d411aa2b0e)) +* **esl-popup:** update imports, move separate window helpers, remove unnecessary code ([f198295](https://github.com/exadel-inc/esl/commit/f19829520f195f787288eb21a800af23bb9c4eba)) +* **esl-scrollbar:** add rtl support for horizontal scrollbar ([fa27e5d](https://github.com/exadel-inc/esl/commit/fa27e5d49f7e2f864ae8fd65816cf00bdb5035da)) +* **esl-tabs:** add jsx tag shape ([4688984](https://github.com/exadel-inc/esl/commit/4688984cb00a0fabdc7322d1e4cc8d68b12dac28)) +* **esl-toggleable:** add jsx tag shape ([d583f24](https://github.com/exadel-inc/esl/commit/d583f243fdb68ef02c7b711ade7c7ad360a69d10)) +* **esl-tooltip:** add new action param to set up tooltip extra classes ([1b1587f](https://github.com/exadel-inc/esl/commit/1b1587fed6581997b758d5464505bdc68540123b)) +* **esl-trigger:** add jsx tag shape ([2b36fae](https://github.com/exadel-inc/esl/commit/2b36fae8e1d08f11eb9311098a4763e2d432788b)) +* **esl-utils:** add ability check if the memoized property create a cache ([81f2e02](https://github.com/exadel-inc/esl/commit/81f2e02fcabd20e2c6b5f59c15e3718c7e177b1d)) +* **esl-utils:** add butch manipulations support for `CSSClassUtils` ([#395](https://github.com/exadel-inc/esl/issues/395)) ([3635e39](https://github.com/exadel-inc/esl/commit/3635e39507fd9227052580d07f1490f8dc8ac863)) +* **esl-utils:** add new syntax options support for format utility ([#393](https://github.com/exadel-inc/esl/issues/393)) ([e44aca0](https://github.com/exadel-inc/esl/commit/e44aca01b054430fe724fc896bfb9d55ea30f959)) +* **esl-utils:** range array utility ([fbeae90](https://github.com/exadel-inc/esl/commit/fbeae90ba0a2746dd7086b4d6afaf1915cd9171d)) +* 'throttle' API changes ([8db7bfb](https://github.com/exadel-inc/esl/commit/8db7bfb4adbb74d595b5fe041a930edfaaa65986)) +* add deepMerge utility ([11331d8](https://github.com/exadel-inc/esl/commit/11331d885c236a882e192311dc2e2848e145b4b3)) +* add helpers (isScrollParent, getScrollParent and getListScrollParent) for working with scroll parents ([a4d25f9](https://github.com/exadel-inc/esl/commit/a4d25f9b4f2f381cd831192f0289bfd0d9caefe9)) +* add priority tag ([43904be](https://github.com/exadel-inc/esl/commit/43904be29875f15dd563ac286ebd7797faa15f55)) +* add sitemap generator ([78651ce](https://github.com/exadel-inc/esl/commit/78651ce4b9d79fc57fc908d91e8aab0e8feaeb15)) +* add some tests ([25e4e01](https://github.com/exadel-inc/esl/commit/25e4e0108103ea6e172a1e34e2d73fae6e71d14f)) +* create dom helpers class Rect to manage size and position of rectangles ([3343bfd](https://github.com/exadel-inc/esl/commit/3343bfd04884adb5a3cd0afb1e4fb3b7d088cce5)) +* create esl-popup demo page ([b4eec2c](https://github.com/exadel-inc/esl/commit/b4eec2c911027d0d4e860b2d26c326cb956f486f)) +* create helpers for working with the window as part esl-util DOM helpers ([49a58b2](https://github.com/exadel-inc/esl/commit/49a58b288c5c4f323d12c994b117467c3b01132a)) +* debounced method API changes ([#402](https://github.com/exadel-inc/esl/issues/402)) ([420f8bc](https://github.com/exadel-inc/esl/commit/420f8bc8a800f4e2362b47fdf9c84c912af16ba6)) +* **gh-pages:** the ability to include markdown into demo pages ([#368](https://github.com/exadel-inc/esl/issues/368)) ([7fa42fc](https://github.com/exadel-inc/esl/commit/7fa42fc9fe4fbc2ccb4c320811b922a2bcb3eec1)) +* add `isPrototype` check predicate to 'misc/object' utils ([ad30d37](https://github.com/exadel-inc/esl/commit/ad30d3756ad38fe67bf2502f8eb38804fe2a314b)) +* add meta tag viewport ([2994954](https://github.com/exadel-inc/esl/commit/2994954f7aa2837fc7ace328700a2ae6f6e6c73b)) +* create helpers for working with the element as part esl-util DOM helpers ([2d72af1](https://github.com/exadel-inc/esl/commit/2d72af1d72542666d4d96f32a4f7db7971f31cba)) +* **esl-toggleable:** add track hover params property ([50f8d77](https://github.com/exadel-inc/esl/commit/50f8d77c7bdd7470bd8ae996cda33f11a67bee43)) +* **esl-toggleable:** set track hover activator to initial ([c48d182](https://github.com/exadel-inc/esl/commit/c48d182277411524024b03741dd3b4dbbdf65b2b)) +* **esl-trigger:** show/hide delay override for hover on trigger ([7962eba](https://github.com/exadel-inc/esl/commit/7962eba74f01177f97f30aab68a2a9b4d4d2dc9f)) +* **esl-utils:** add copy & omit utilities ([d31b957](https://github.com/exadel-inc/esl/commit/d31b9573d271708943b0abb717952fb7d7c01ef5)) +* **esl-utils:** add EventUtil stopPropagation and preventDefault stubs ([2e835f4](https://github.com/exadel-inc/esl/commit/2e835f47e310599067823f1fef8ba69035695344)) +* **gh-pages:** migration of the demo-site to 11ty ([#287](https://github.com/exadel-inc/esl/issues/287)) ([61e42de](https://github.com/exadel-inc/esl/commit/61e42de87b188f4a8b7e61d89a368bfaf1313d84)) +* add prefix support for random uid ([6d7e180](https://github.com/exadel-inc/esl/commit/6d7e1806390e5e1d02431e78fa9bcb98879c0f27)) +* add trigger esl-tooltip to esl-note ([ff13d74](https://github.com/exadel-inc/esl/commit/ff13d7472328afd8f0fd9ccf262aa487a6a92612)) +* add updating activator state to esl-tooltip ([238c744](https://github.com/exadel-inc/esl/commit/238c744c765bcd32752b6963be35c062adab1204)) +* create localdev page for esl-note and esl-footnotes ([c22b192](https://github.com/exadel-inc/esl/commit/c22b192bccb8966ed64d378980ec42d3802bf436)) +* esl-note replace note text with note html ([5882e71](https://github.com/exadel-inc/esl/commit/5882e71326ad3262ad62fb7f76bedbfbc5f08779)) +* **esl-utils:** add parseNumber utility ([5e5fff1](https://github.com/exadel-inc/esl/commit/5e5fff12af6f16da2888f6770423e718ce9853aa)) +* add resize listener to esl-popup for updating position ([c5017d5](https://github.com/exadel-inc/esl/commit/c5017d56ef5fcbda0359f35cc8d581d9ebab60ed)) +* create back-to-note button at esl-footntes ([a619d73](https://github.com/exadel-inc/esl/commit/a619d73195511403c7efcd1378e537bbaa5624ab)) +* extend UID utilities ([f90a1c1](https://github.com/exadel-inc/esl/commit/f90a1c178b11364d4e1424d0e0673e77cbbaf553)) +* improve interconnection between esl-notes and esl-footnotes ([2e79fd0](https://github.com/exadel-inc/esl/commit/2e79fd0e224c0c04db7b5f78aede727c16e545c4)) +* improved interconnection between esl-notes and esl-footnotes ([5e422d7](https://github.com/exadel-inc/esl/commit/5e422d7134df4a76b7f750b387141bbb71375c38)) +* initial implementation of esl-footnotes ([042c4e7](https://github.com/exadel-inc/esl/commit/042c4e7d60916cc0eecf7a4eaaaa810d70d42498)) +* initial implementation of esl-note ([d158c5a](https://github.com/exadel-inc/esl/commit/d158c5a0d9cd76926ad403948d5f53625d627f04)) +* initial implementation of esl-tooltip ([4a0620b](https://github.com/exadel-inc/esl/commit/4a0620b87377a39ec8c0aaeadac51037b753878b)) +* rework esl-note ([c709022](https://github.com/exadel-inc/esl/commit/c7090224b2d104f93b986e2c6dfbfdbd605cbeb9)) +* rework esl-popup ([5723b38](https://github.com/exadel-inc/esl/commit/5723b38c91098088cdca6ec267dec42810bf9b70)) +* share sequences between bundles ([307fe53](https://github.com/exadel-inc/esl/commit/307fe53b8ff3bb7219b1095ea50aa23126391f71)) +* support mode="open" to make all panels active ([2619fe5](https://github.com/exadel-inc/esl/commit/2619fe55e63b78af237af09a30b55ec442172774)) +* update esl-note after esl-trigger reimplementation ([134c020](https://github.com/exadel-inc/esl/commit/134c02010ecb1ee9649ff8ce2751316fd0f9f310)) +* update esl-popup styles ([167ef0a](https://github.com/exadel-inc/esl/commit/167ef0ae54da9f593d6474b3823ca8df37e3cd8b)) +* update memoization for object getter accessor with a lightweight version ([ae5614b](https://github.com/exadel-inc/esl/commit/ae5614b1e3b23876326a1656110eee42f4c26be6)) +* **esl-toggleable:** automatic initial a11y ([49e30c4](https://github.com/exadel-inc/esl/commit/49e30c458e6860955718440451fe91ee7545fdc1)) +* **esl-toggleable:** esl-toggleable reimplementation ([94bf814](https://github.com/exadel-inc/esl/commit/94bf8142c82fc91e91dae86440202a0450906bb0)) +* **esl-toggleable:** toggleable API updated, show/hide flow refactored ([2e77654](https://github.com/exadel-inc/esl/commit/2e776541da85d1c5760cc1c622843f50577f7799)) +* **esl-utils:** aggregate decorator function introduced ([0915fd6](https://github.com/exadel-inc/esl/commit/0915fd6dfad7f09405ebb71877f82fd1a0ed1a92)) +* **esl-utils:** focus order utility ([bd61f99](https://github.com/exadel-inc/esl/commit/bd61f996c5138254bade5a19c40561ed075d340b)) + + +### BREAKING CHANGES + +* **esl-panel:** ESLPanelGroup is now distributed as a separate module +* decorated `debouncedMethod = debounce(fn)` call no longer returns Promise use 'debouncedMethod.promise' instead + +Co-authored-by: ala'n (Alexey Stsefanovich) +* **esl-media-query:** - `ESLMediaQuery` no longer constructible use `ESLMediaQuery.for` and `ESLMediaQuery.from` instead +- `ESLMediaRule` - DPR and device marker no longer available +- `ESLMediaBreakpoints.addCustomBreakpoint` replaced with `ESLScreenBreakpoints.add` +- `ESLMediaBreakpoints.getBreakpoint` replaced with `ESLScreenBreakpoints.get` +- `ESLMediaQuery.ignoreBotsDpr` replaced with `ESLMediaDPRShortcut.ignoreBotsDpr` +- `ObserverCallback` removed use strict type instead +* **esl-toggleable:** * `event` property no longer available. +Alternative `track-click`/`track-hover` options provided +* `touchShowDelay` and `touchShowDelay` removed. +Use `showDelay` / `hideDelay` with ESLMediaQuery support +* Inner API changes: `showEvent`, `hideEvent` removed +* Inner API changes: `_onClick`, `_onMouseEnter`, `_onMouseLeave` handlers +* `generateUId` renamed to `randUID` +* **esl-toggleable:** onShow/onHide no longer contains inner state changes. +* **esl-utils:** `CSSUtil` from 'esl-utils/dom/styles' is removed; +`ScrollUtility` alias is no longer available use `ScrollUtils` instead; +`@override` and `@readonly` deprecated decorators are removed use `@prop` decorator instead; + +# [3.0.0-beta.20](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.19...v3.0.0-beta.20) (2021-08-30) + + +### Bug Fixes + +* **esl-panel:** add missing observedAttributes method ([2bae85f](https://github.com/exadel-inc/esl/commit/2bae85f46cb81ba83d4eee08b4536d40cd1fbb58)) +* **esl-panel:** fix twitchy panel animation on multiple requests ([fee25af](https://github.com/exadel-inc/esl/commit/fee25aff21b328fcf9eb61dee7a87bb80eef2a64)) +* **esl-toggleable:** fix trackHover hideDelay inheritance from the original activator ([e67acb3](https://github.com/exadel-inc/esl/commit/e67acb38530105629cb82560246a22af795d0c39)) +* **esl-utils:** deep merge: fix array case and refactor ([4191b85](https://github.com/exadel-inc/esl/commit/4191b851cb84f59ef31cf8bbb0dd29c5594fea86)) +* **esl-utils:** delayed-task now accept numeric string delay representation ([d1122f4](https://github.com/exadel-inc/esl/commit/d1122f45365e3599f3a3a35fc3f8528b10d5c659)) +* add cleanup step for the build and start ([31dd317](https://github.com/exadel-inc/esl/commit/31dd3176c7fc4b03c06c9804046ae79f710bf4f6)) +* fix twitchy scrollbar when scroll-behavior set to smooth for target ([4b9848c](https://github.com/exadel-inc/esl/commit/4b9848c9881cce9de4a4e283b61b3ffa78c9f73e)), closes [#430](https://github.com/exadel-inc/esl/issues/430) +* **esl-utils:** strict types for deep merge ([04bbad4](https://github.com/exadel-inc/esl/commit/04bbad4ea68b18caf01420c6aeae05c83f23ead1)) + + +### Features + +* **esl-utils:** add ability check if the memoized property create a cache ([81f2e02](https://github.com/exadel-inc/esl/commit/81f2e02fcabd20e2c6b5f59c15e3718c7e177b1d)) +* 'throttle' API changes ([8db7bfb](https://github.com/exadel-inc/esl/commit/8db7bfb4adbb74d595b5fe041a930edfaaa65986)) +* debounced method API changes ([#402](https://github.com/exadel-inc/esl/issues/402)) ([420f8bc](https://github.com/exadel-inc/esl/commit/420f8bc8a800f4e2362b47fdf9c84c912af16ba6)) + + +### BREAKING CHANGES + +* **esl-panel:** ESLPanelGroup is now distributed as a separate module +* decorated `debouncedMethod = debounce(fn)` call no longer returns Promise use 'debouncedMethod.promise' instead + +Co-authored-by: ala'n (Alexey Stsefanovich) + +## [2.9.1](https://github.com/exadel-inc/esl/compare/v2.9.0...v2.9.1) (2021-08-25) + + +# [3.0.0-beta.19](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.18...v3.0.0-beta.19) (2021-08-19) + + +### Bug Fixes + +* **esl-footnotes:** fix broken click on back-to-note ([e66ae96](https://github.com/exadel-inc/esl/commit/e66ae967681fc2a59e71fb5c7f990d4e16dbc6c2)) + +# [3.0.0-beta.18](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.17...v3.0.0-beta.18) (2021-08-18) + + +### Bug Fixes + +* **esl-footnotes:** fix footnotes soting and reindex ([f13ba79](https://github.com/exadel-inc/esl/commit/f13ba79d72383584bf62ced35cda9d587697a677)) +* **esl-footnotes:** fix IE11 issue with Map.iterator absent ([3bad82b](https://github.com/exadel-inc/esl/commit/3bad82b383a0e9fcd41d3d3bb5d6452a9673e491)) +* **esl-media:** fix toggle method and process keydown event otb ([b3ad030](https://github.com/exadel-inc/esl/commit/b3ad030b42ed0e28946b73bfe5c661bd9d899d74)) +* **esl-note:** fix the issue with lost tooltip text after cloning of element ([882e0b0](https://github.com/exadel-inc/esl/commit/882e0b0398d16bff04e022ce994484bbdc917489)) + + +### Features + +* **esl-a11y-group:** add jsx tag shape ([c469f20](https://github.com/exadel-inc/esl/commit/c469f2018989fa03b44ca300e9593a04b16ab79f)) +* **esl-panel:** add jsx tag shape ([ba00085](https://github.com/exadel-inc/esl/commit/ba00085e44e8c45c9e4ae6182251e7e420857df3)) +* **esl-tabs:** add jsx tag shape ([4688984](https://github.com/exadel-inc/esl/commit/4688984cb00a0fabdc7322d1e4cc8d68b12dac28)) +* **esl-toggleable:** add jsx tag shape ([d583f24](https://github.com/exadel-inc/esl/commit/d583f243fdb68ef02c7b711ade7c7ad360a69d10)) +* **esl-trigger:** add jsx tag shape ([2b36fae](https://github.com/exadel-inc/esl/commit/2b36fae8e1d08f11eb9311098a4763e2d432788b)) +* **esl-utils:** add butch manipulations support for `CSSClassUtils` ([#395](https://github.com/exadel-inc/esl/issues/395)) ([3635e39](https://github.com/exadel-inc/esl/commit/3635e39507fd9227052580d07f1490f8dc8ac863)) +* **esl-utils:** add new syntax options support for format utility ([#393](https://github.com/exadel-inc/esl/issues/393)) ([e44aca0](https://github.com/exadel-inc/esl/commit/e44aca01b054430fe724fc896bfb9d55ea30f959)) + +# [3.0.0-beta.17](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.16...v3.0.0-beta.17) (2021-08-13) + + +### Features + +* **esl-footnotes:** add a grouping of footnotes with non-unique text ([9890124](https://github.com/exadel-inc/esl/commit/9890124c6a65750a52e543a863c2def739504937)) +* **esl-footnotes:** add a grouping of footnotes with non-unique text ([05344a0](https://github.com/exadel-inc/esl/commit/05344a0e881b15a1ff6cba67557e15fa950518bc)) +* **esl-note:** add highlighting for notes ([2864205](https://github.com/exadel-inc/esl/commit/2864205e2118e0aa8869913df2c3bb0daac63974)) + +# [3.0.0-beta.16](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.15...v3.0.0-beta.16) (2021-08-09) + + +### Bug Fixes + +* **esl-popup:** wrong popup position when the popup is shown at the first time ([c5195ab](https://github.com/exadel-inc/esl/commit/c5195ab7415ba4c7309879e93be8db049b61bb3e)) +* **esl-popup:** wrong popup position when the popup is shown at the first time ([7533683](https://github.com/exadel-inc/esl/commit/753368395f238fe9870a92436adbb749828a325d)) +* **esl-utils:** fix IE issue 'ShadowRoot is undefined' ([4a8cffc](https://github.com/exadel-inc/esl/commit/4a8cffc025441016b75a723365fec4ad7ca2d288)) +* **esl-utils:** fix IE11 issue with x and y absent in DOMRect ([b64a654](https://github.com/exadel-inc/esl/commit/b64a6545048164022cfa4a180da9ae8a922a8241)) +* merge changes ([ec09584](https://github.com/exadel-inc/esl/commit/ec095848cbb2efd195bc5963c8c76cb385172632)) +* remove drafts collection from sitemap ([3dc726a](https://github.com/exadel-inc/esl/commit/3dc726a8a617bf622fedb640e41f7b1087f12d58)) + + +### Features + +* **esl-tooltip:** add new action param to set up tooltip extra classes ([1b1587f](https://github.com/exadel-inc/esl/commit/1b1587fed6581997b758d5464505bdc68540123b)) +* **esl-utils:** promise functional declarations ([19b1e2b](https://github.com/exadel-inc/esl/commit/19b1e2b7e5b0fe2cf4431b35a06b07122108ddfb)) +* add priority tag ([43904be](https://github.com/exadel-inc/esl/commit/43904be29875f15dd563ac286ebd7797faa15f55)) +* add sitemap generator ([78651ce](https://github.com/exadel-inc/esl/commit/78651ce4b9d79fc57fc908d91e8aab0e8feaeb15)) + +# [2.9.0](https://github.com/exadel-inc/esl/compare/v2.8.2...v2.9.0) (2021-08-08) + + +### Features + +* **esl-utils:** promise functional declarations ([19b1e2b](https://github.com/exadel-inc/esl/commit/19b1e2b7e5b0fe2cf4431b35a06b07122108ddfb)) + +# [3.0.0-beta.15](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.14...v3.0.0-beta.15) (2021-08-05) + + +### Bug Fixes + +* fix namespace types and typing placement ([c2e2ab0](https://github.com/exadel-inc/esl/commit/c2e2ab00901dc599a5c994ae16036d1ea92b3a11)) +* **esl-popup:** remove position attr from popup arrow and add placed-at attr to popup element ([32d9d93](https://github.com/exadel-inc/esl/commit/32d9d937fc28209904c8f9fd7c14e0783a0c60d5)) +* **esl-utils:** fix IE issue 'ShadowRoot is undefined' ([c354ab9](https://github.com/exadel-inc/esl/commit/c354ab9971ed82c45168b29354f1f943f3a3b4ae)) +* declare global interface HTMLElementTagNameMap ([b5c96de](https://github.com/exadel-inc/esl/commit/b5c96de0e88e96b63796c7a1921774c71693cbfd)) + + +### Features + +* **gh-pages:** the ability to include markdown into demo pages ([#368](https://github.com/exadel-inc/esl/issues/368)) ([7fa42fc](https://github.com/exadel-inc/esl/commit/7fa42fc9fe4fbc2ccb4c320811b922a2bcb3eec1)) + +## [2.8.2](https://github.com/exadel-inc/esl/compare/v2.8.1...v2.8.2) (2021-08-04) + +# [3.0.0-beta.14](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.13...v3.0.0-beta.14) (2021-08-02) + + +### Bug Fixes + +* **esl-footnotes:** fix character for return to note due to its absence at fonts on some platforms ([d74788f](https://github.com/exadel-inc/esl/commit/d74788fe1efde9aed4b8a3ffdb201c5aea138e34)) +* **esl-note:** fix broken connection between esl-note and esl-footnotes ([646ebbc](https://github.com/exadel-inc/esl/commit/646ebbc46d92e50e6070c5aa34b98d9623f417a4)) +* **esl-popup:** fix wrong popup arrow positioning ([d127a67](https://github.com/exadel-inc/esl/commit/d127a67588d2e32230304edcf69079a0a8e58223)) +* **esl-popup:** fix wrong popup positioning ([907ce47](https://github.com/exadel-inc/esl/commit/907ce4750e4b4729d5ae1634ca9e0346161408c8)) +* editing styles for correct display on mobile ([58a35b1](https://github.com/exadel-inc/esl/commit/58a35b104dfa96783f9bd25d43b5b3d3663bf378)) +* fix esl-popup arrow position ([b0490df](https://github.com/exadel-inc/esl/commit/b0490dff03cd42dad6dfdd885ff1dbb6bb749076)) + + +### Features + +* **esl-media-query:** media query v2 update ([#232](https://github.com/exadel-inc/esl/issues/232)) ([0c122e9](https://github.com/exadel-inc/esl/commit/0c122e91514355b376043f8e67dbae244dac1c81)) +* **esl-scrollbar:** add rtl support for horizontal scrollbar ([fa27e5d](https://github.com/exadel-inc/esl/commit/fa27e5d49f7e2f864ae8fd65816cf00bdb5035da)) +* add `isPrototype` check predicate to 'misc/object' utils ([ad30d37](https://github.com/exadel-inc/esl/commit/ad30d3756ad38fe67bf2502f8eb38804fe2a314b)) +* add deepMerge utility ([11331d8](https://github.com/exadel-inc/esl/commit/11331d885c236a882e192311dc2e2848e145b4b3)) +* add meta tag viewport ([2994954](https://github.com/exadel-inc/esl/commit/2994954f7aa2837fc7ace328700a2ae6f6e6c73b)) +* add some tests ([25e4e01](https://github.com/exadel-inc/esl/commit/25e4e0108103ea6e172a1e34e2d73fae6e71d14f)) +* create dom helpers class Rect to manage size and position of rectangles ([3343bfd](https://github.com/exadel-inc/esl/commit/3343bfd04884adb5a3cd0afb1e4fb3b7d088cce5)) +* **esl-popup:** update imports, move separate window helpers, remove unnecessary code ([f198295](https://github.com/exadel-inc/esl/commit/f19829520f195f787288eb21a800af23bb9c4eba)) +* add helpers (isScrollParent, getScrollParent and getListScrollParent) for working with scroll parents ([a4d25f9](https://github.com/exadel-inc/esl/commit/a4d25f9b4f2f381cd831192f0289bfd0d9caefe9)) +* create helpers for working with the element as part esl-util DOM helpers ([2d72af1](https://github.com/exadel-inc/esl/commit/2d72af1d72542666d4d96f32a4f7db7971f31cba)) +* create helpers for working with the window as part esl-util DOM helpers ([49a58b2](https://github.com/exadel-inc/esl/commit/49a58b288c5c4f323d12c994b117467c3b01132a)) +* **esl-popup:** add bottom, left, right position and update position when parents scroll ([9242fca](https://github.com/exadel-inc/esl/commit/9242fcabded6a5f349b40ef1cc46cedda86b058a)) +* **esl-popup:** add popup flipping and hiding by detection intersection side ([a213262](https://github.com/exadel-inc/esl/commit/a213262813c1ddc79d51510bbb4001cae2aeca4c)) +* **esl-popup:** remake popup positioning ([2ffe381](https://github.com/exadel-inc/esl/commit/2ffe3817d990e6ed98117ece5196c286ad3f71d4)) +* **esl-popup:** update esl-popup demo page ([bb0e396](https://github.com/exadel-inc/esl/commit/bb0e396a69819590db923578ddcbe1d411aa2b0e)) +* create esl-popup demo page ([b4eec2c](https://github.com/exadel-inc/esl/commit/b4eec2c911027d0d4e860b2d26c326cb956f486f)) +* update memoization for object getter accessor with a lightweight version ([ae5614b](https://github.com/exadel-inc/esl/commit/ae5614b1e3b23876326a1656110eee42f4c26be6)) + + +### BREAKING CHANGES + +* **esl-media-query:** - `ESLMediaQuery` no longer constructible use `ESLMediaQuery.for` and `ESLMediaQuery.from` instead +- `ESLMediaRule` - DPR and device marker no longer available +- `ESLMediaBreakpoints.addCustomBreakpoint` replaced with `ESLScreenBreakpoints.add` +- `ESLMediaBreakpoints.getBreakpoint` replaced with `ESLScreenBreakpoints.get` +- `ESLMediaQuery.ignoreBotsDpr` replaced with `ESLMediaDPRShortcut.ignoreBotsDpr` +- `ObserverCallback` removed use strict type instead + +# [2.8.1](https://github.com/exadel-inc/esl/compare/v2.8.0...v2.8.1) (2021-07-20) + +# [3.0.0-beta.13](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.12...v3.0.0-beta.13) (2021-07-06) + +# [2.8.0](https://github.com/exadel-inc/esl/compare/v2.7.3...v2.8.0) (2021-07-06) + +### Bug Fixes + +* **esl-utils:** fixed extra space ([bf0aea7](https://github.com/exadel-inc/esl/commit/bf0aea776fb05c7d3770aa0bcab7b1bfa9ee67d3)) + + +### Features + +* **esl-utils:** added delete, backspace to the keys.ts ([234d433](https://github.com/exadel-inc/esl/commit/234d433c58455e2f83612ade8b49866ebd5e40d2)) + +# [2.8.0](https://github.com/exadel-inc/esl/compare/v2.7.3...v2.8.0) (2021-07-06) + +### Features + +* **esl-utils:** added delete, backspace to the keys.ts ([234d433](https://github.com/exadel-inc/esl/commit/234d433c58455e2f83612ade8b49866ebd5e40d2)) + +# [3.0.0-beta.12](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.11...v3.0.0-beta.12) (2021-07-01) + + +### Bug Fixes + +* **esl-utils:** isRtl check updated to use computed styles instead of attribute ([89ae48d](https://github.com/exadel-inc/esl/commit/89ae48d5da35eab386d2f3cb53cdb20273e29423)) + + +### Features + +* **esl-toggleable:** set track hover activator to initial ([c48d182](https://github.com/exadel-inc/esl/commit/c48d182277411524024b03741dd3b4dbbdf65b2b)) +* **esl-utils:** add EventUtil stopPropagation and preventDefault stubs ([2e835f4](https://github.com/exadel-inc/esl/commit/2e835f47e310599067823f1fef8ba69035695344)) +* **gh-pages:** migration of the demo-site to 11ty ([#287](https://github.com/exadel-inc/esl/issues/287)) ([61e42de](https://github.com/exadel-inc/esl/commit/61e42de87b188f4a8b7e61d89a368bfaf1313d84)) + +## [2.7.3](https://github.com/exadel-inc/esl/compare/v2.7.2...v2.7.3) (2021-06-30) +Dependencies versions update + +# [3.0.0-beta.11](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.10...v3.0.0-beta.11) (2021-06-22) + + +### Bug Fixes + +* **esl-toggleable:** allow to register toggleable as independent component ([ac98970](https://github.com/exadel-inc/esl/commit/ac98970987dda5e2103f6e1104568d60642c0f2a)) + + +### Features +* **esl-footnotes:** new component released in beta +* **esl-tooltip:** new component released in beta +* **esl-popup** component reworked to v2.0.0 + +#### Detailed log: +* add resize listener to esl-popup for updating position ([c5017d5](https://github.com/exadel-inc/esl/commit/c5017d56ef5fcbda0359f35cc8d581d9ebab60ed)) +* add trigger esl-tooltip to esl-note ([ff13d74](https://github.com/exadel-inc/esl/commit/ff13d7472328afd8f0fd9ccf262aa487a6a92612)) +* add updating activator state to esl-tooltip ([238c744](https://github.com/exadel-inc/esl/commit/238c744c765bcd32752b6963be35c062adab1204)) +* create back-to-note button at esl-footntes ([a619d73](https://github.com/exadel-inc/esl/commit/a619d73195511403c7efcd1378e537bbaa5624ab)) +* create localdev page for esl-note and esl-footnotes ([c22b192](https://github.com/exadel-inc/esl/commit/c22b192bccb8966ed64d378980ec42d3802bf436)) +* esl-note replace note text with note html ([5882e71](https://github.com/exadel-inc/esl/commit/5882e71326ad3262ad62fb7f76bedbfbc5f08779)) +* improve interconnection between esl-notes and esl-footnotes ([2e79fd0](https://github.com/exadel-inc/esl/commit/2e79fd0e224c0c04db7b5f78aede727c16e545c4)) +* improved interconnection between esl-notes and esl-footnotes ([5e422d7](https://github.com/exadel-inc/esl/commit/5e422d7134df4a76b7f750b387141bbb71375c38)) +* initial implementation of esl-footnotes ([042c4e7](https://github.com/exadel-inc/esl/commit/042c4e7d60916cc0eecf7a4eaaaa810d70d42498)) +* initial implementation of esl-note ([d158c5a](https://github.com/exadel-inc/esl/commit/d158c5a0d9cd76926ad403948d5f53625d627f04)) +* initial implementation of esl-tooltip ([4a0620b](https://github.com/exadel-inc/esl/commit/4a0620b87377a39ec8c0aaeadac51037b753878b)) +* rework esl-note ([c709022](https://github.com/exadel-inc/esl/commit/c7090224b2d104f93b986e2c6dfbfdbd605cbeb9)) +* rework esl-popup ([5723b38](https://github.com/exadel-inc/esl/commit/5723b38c91098088cdca6ec267dec42810bf9b70)) +* update esl-note after esl-trigger reimplementation ([134c020](https://github.com/exadel-inc/esl/commit/134c02010ecb1ee9649ff8ce2751316fd0f9f310)) +* update esl-popup styles ([167ef0a](https://github.com/exadel-inc/esl/commit/167ef0ae54da9f593d6474b3823ca8df37e3cd8b)) + +## [2.7.2](https://github.com/exadel-inc/esl/compare/v2.7.1...v2.7.2) (2021-06-18) +Dependencies versions update + +# [3.0.0-beta.10](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.9...v3.0.0-beta.10) (2021-06-17) + + +### Bug Fixes + +* **esl-utils:** fix IE pseudo scroll lock artifacts ([90961e0](https://github.com/exadel-inc/esl/commit/90961e07e8af28091245cdaac5bf7b93f8c34edc)) +* **esl-utils:** fix pseudo scroll RTL support ([db23758](https://github.com/exadel-inc/esl/commit/db23758a408c1f0309c71391fc68bd30f1933f6a)) + + +### Features + +* **esl-toggleable:** add track hover params property ([50f8d77](https://github.com/exadel-inc/esl/commit/50f8d77c7bdd7470bd8ae996cda33f11a67bee43)) +* **esl-utils:** add parseNumber utility ([5e5fff1](https://github.com/exadel-inc/esl/commit/5e5fff12af6f16da2888f6770423e718ce9853aa)) +* add prefix support for random uid ([6d7e180](https://github.com/exadel-inc/esl/commit/6d7e1806390e5e1d02431e78fa9bcb98879c0f27)) +* share sequences between bundles ([307fe53](https://github.com/exadel-inc/esl/commit/307fe53b8ff3bb7219b1095ea50aa23126391f71)) + +# [3.0.0-beta.9](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.8...v3.0.0-beta.9) (2021-06-16) + + +### Features + +* **esl-trigger:** show/hide delay override for hover on trigger ([7962eba](https://github.com/exadel-inc/esl/commit/7962eba74f01177f97f30aab68a2a9b4d4d2dc9f)) + +# [3.0.0-beta.8](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.7...v3.0.0-beta.8) (2021-06-13) + + +### Bug Fixes + +* pseudo scroll locker styles fix ([8d2cfeb](https://github.com/exadel-inc/esl/commit/8d2cfeb04525fb968a2372d86fd1cbd3f6a866b2)) +* **esl-toggleable:** fix trackHover precondition ([751eb76](https://github.com/exadel-inc/esl/commit/751eb7636797cb1b79f6df1b6bcf3ff5b8350fb9)) +* **esl-utils:** add hasHover device detection ([2f46dc5](https://github.com/exadel-inc/esl/commit/2f46dc593f21822cb00a883acdcead608f6ee3b7)) +* **esl-utils:** fix media query empty rule payload type (null -> undefined) ([423506e](https://github.com/exadel-inc/esl/commit/423506e83ae9793518ce3e19351a56600d0d5f5d)) + + +### Features + +* **esl-toggleable:** automatic initial a11y ([49e30c4](https://github.com/exadel-inc/esl/commit/49e30c458e6860955718440451fe91ee7545fdc1)) +* **esl-toggleable:** esl-toggleable reimplementation ([94bf814](https://github.com/exadel-inc/esl/commit/94bf8142c82fc91e91dae86440202a0450906bb0)) + + +### BREAKING CHANGES + +* **esl-toggleable:** + * `event` property no longer available. +Alternative `track-click`/`track-hover` options provided + * `touchShowDelay` and `touchShowDelay` removed. +Use `showDelay` / `hideDelay` with ESLMediaQuery support + * Inner API changes: `showEvent`, `hideEvent` removed + * Inner API changes: `_onClick`, `_onMouseEnter`, `_onMouseLeave` handlers + +## [2.7.1](https://github.com/exadel-inc/esl/compare/v2.7.0...v2.7.1) (2021-06-13) +Dependencies versions update + + +# [3.0.0-beta.7](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.6...v3.0.0-beta.7) (2021-06-08) + + +### BREACKING CHANGES: +* **esl-image**: make original mode rule meta independent +* **esl-media-query**: get rid of DPR meta +* **esl-media-query**: mobile device marker removed + +# [3.0.0-beta.6](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.5...v3.0.0-beta.6) (2021-06-07) + + +### Bug Fixes + +* **esl-utils:** device detector touch detection improved ([7a5956e](https://github.com/exadel-inc/esl/commit/7a5956ebf55d00bde38707c92bc921ac48c1c5ef)) + + +### Features + +* **esl-utils:** add copy & omit utilities ([d31b957](https://github.com/exadel-inc/esl/commit/d31b9573d271708943b0abb717952fb7d7c01ef5)) + +# [3.0.0-beta.5](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.4...v3.0.0-beta.5) (2021-06-03) + + +### Bug Fixes + +* activator should be available after hide ([817181a](https://github.com/exadel-inc/esl/commit/817181aad59499abb15d0f2ad9a82f56e63f98cd)) + +# [3.0.0-beta.4](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.3...v3.0.0-beta.4) (2021-06-02) + + +### Bug Fixes + +* activator is not defined in hide handler ([6e2473e](https://github.com/exadel-inc/esl/commit/6e2473eae4a0742c0737b4d743415d4de5e207cf)) + + +### Features + +* extend UID utilities ([f90a1c1](https://github.com/exadel-inc/esl/commit/f90a1c178b11364d4e1424d0e0673e77cbbaf553)) + + +### BREAKING CHANGES + +* `generateUId` renamed to `randUID` + +# [3.0.0-beta.3](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.2...v3.0.0-beta.3) (2021-05-31) + + +### Bug Fixes + +* **esl-select:** fix height empty space appeared with little amount of list items ([9dfadc4](https://github.com/exadel-inc/esl/commit/9dfadc410cb5f5fcbaafc3debfe64386ca0013c7)) +* **esl-select:** specify max-height for standalone list in pixels & for list in dropdown in vh ([70ed2f0](https://github.com/exadel-inc/esl/commit/70ed2f0cba83dcf2801ee6f9729fac4ce53bb114)) +* jest defaults for new version ([9ba56b4](https://github.com/exadel-inc/esl/commit/9ba56b4794944f808c18f6e3e6e5002cf561d6ef)) + + +### Features + +* **esl-utils:** added alt, shift and control to the keys.ts (within hpe keycode removing) ([73580ec](https://github.com/exadel-inc/esl/commit/73580ecf60dd2abd7aebe72d7958a3539286f1b3)) + +# [3.0.0-beta.2](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.1...v3.0.0-beta.2) (2021-05-26) + + +### Bug Fixes + +* **esl-utils:** utility DeviceDetector updated to recognize iOS13 ([dc2bda2](https://github.com/exadel-inc/esl/commit/dc2bda2be9b30f89953bc5c7b79c03ae6a3fc8ea)) + +# [3.0.0-beta.1](https://github.com/exadel-inc/esl/compare/v2.7.0-beta.2...v3.0.0-beta.1) (2021-05-24) + + +### Bug Fixes + +* **esl-image:** svg loading check update ([6f72a70](https://github.com/exadel-inc/esl/commit/6f72a708cf0594ff1ef5a7f2eabbc03f4164fa87)) + + +### Features + +* **esl-toggleable:** toggleable API updated, show/hide flow refactored ([2e77654](https://github.com/exadel-inc/esl/commit/2e776541da85d1c5760cc1c622843f50577f7799)) + + +### BREAKING CHANGES + +* **esl-toggleable:** onShow/onHide no longer contains inner state changes. + +# [2.7.0-beta.2](https://github.com/exadel-inc/esl/compare/v2.7.0-beta.1...v2.7.0-beta.2) (2021-05-20) + + +### Bug Fixes + +* **esl-utils:** update export list ([5b9df8b](https://github.com/exadel-inc/esl/commit/5b9df8b2733efa8fbf3999c47150b4e7e2464ad5)) + + +### Code Refactoring + +* **esl-utils:** remove deprecations of version v2.0.0 ([cbd38b6](https://github.com/exadel-inc/esl/commit/cbd38b6011b790b89a243fb4b0d419b7c80907a8)) + + +### Features + +* **esl-utils:** aggregate decorator function introduced ([0915fd6](https://github.com/exadel-inc/esl/commit/0915fd6dfad7f09405ebb71877f82fd1a0ed1a92)) +* **esl-utils:** focus order utility ([bd61f99](https://github.com/exadel-inc/esl/commit/bd61f996c5138254bade5a19c40561ed075d340b)) + + +### BREAKING CHANGES + +* **esl-utils:** `CSSUtil` from 'esl-utils/dom/styles' is removed; +`ScrollUtility` alias is no longer available use `ScrollUtils` instead; +`@override` and `@readonly` deprecated decorators are removed use `@prop` decorator instead; + +# [2.7.0-beta.1](https://github.com/exadel-inc/esl/compare/v2.6.4...v2.7.0-beta.1) (2021-05-17) + + +### Features + +* support mode="open" to make all panels active ([2619fe5](https://github.com/exadel-inc/esl/commit/2619fe55e63b78af237af09a30b55ec442172774)) + +# [2.7.0](https://github.com/exadel-inc/esl/compare/v2.6.4...v2.7.0) (2021-05-31) + + +### Bug Fixes + +* jest defaults for new version ([9ba56b4](https://github.com/exadel-inc/esl/commit/9ba56b4794944f808c18f6e3e6e5002cf561d6ef)) + + +### Features + +* **esl-utils:** added alt, shift and control to the keys.ts (within hpe keycode removing) ([73580ec](https://github.com/exadel-inc/esl/commit/73580ecf60dd2abd7aebe72d7958a3539286f1b3)) + +## [2.6.4](https://github.com/exadel-inc/esl/compare/v2.6.3...v2.6.4) (2021-05-15) + + +### Bug Fixes + +* 'Stack out of bounds' exception for memoized non static member in IE ([4493f90](https://github.com/exadel-inc/esl/commit/4493f9076f7f590fb72d7f24ee6c9bd735120c9c)) + +## [2.6.3](https://github.com/exadel-inc/esl/compare/v2.6.2...v2.6.3) (2021-04-29) + +## [2.6.2](https://github.com/exadel-inc/esl/compare/v2.6.1...v2.6.2) (2021-04-26) + + +### Bug Fixes + +* fix fallback animation call for esl-panel and esl-panel-group ([712f53d](https://github.com/exadel-inc/esl/commit/712f53d44198f8bbc32ed890c10a763667a61cf7)) + +## [2.6.1](https://github.com/exadel-inc/esl/compare/v2.6.0...v2.6.1) (2021-04-23) + +# [2.6.0](https://github.com/exadel-inc/esl/compare/v2.5.2...v2.6.0) (2021-04-22) + + +### Bug Fixes + +* remove undefined prop keys from toggleable properties merging ([3bb5d30](https://github.com/exadel-inc/esl/commit/3bb5d301e34a98d7afb5a32838d63cdbe21a2403)) +* toggleable attribute change detection and extend action params with more information ([1627056](https://github.com/exadel-inc/esl/commit/16270569b3b54e55ff80f27c6f10d4c1fe13fdfc)) + + +### Features + +* copyDefinedKeys utility created ([11306c4](https://github.com/exadel-inc/esl/commit/11306c402104e3355031ee100af523664d3a2124)) +* disabled options support for esl-select-item and fix list mutation detection ([53dfe01](https://github.com/exadel-inc/esl/commit/53dfe01622e07ffa196f46448b85818dd4d79f94)) +* extend ToggleableDispatcher params with more information ([e8febf3](https://github.com/exadel-inc/esl/commit/e8febf394578bcb380481aff14cdc1faf78856e2)) + +## [2.5.2](https://github.com/exadel-inc/esl/compare/v2.5.1...v2.5.2) (2021-04-21) + + +### Bug Fixes + +* provider type dynamic registration fix ([128b22f](https://github.com/exadel-inc/esl/commit/128b22f6d0b113608c533cc12a3164f37dca4d45)) + +## [2.5.1](https://github.com/exadel-inc/esl/compare/v2.5.0...v2.5.1) (2021-04-19) + +# [2.5.0](https://github.com/exadel-inc/esl/compare/v2.4.1...v2.5.0) (2021-04-19) + + +### Features + +* adjust scrollable attr ([b80a211](https://github.com/exadel-inc/esl/commit/b80a21175495927924bf4d923eb2b0dc45e4dfc0)) +* body class manger feature rejection ([07ba596](https://github.com/exadel-inc/esl/commit/07ba596eec58e81108c02179f0a873a6931d7b21)) +* change body class behaviour of the toggleable to support locks ([5379c65](https://github.com/exadel-inc/esl/commit/5379c65aeae9e2ec824cc366638770a63ffe00a4)) +* class utils extended ([c3e7f66](https://github.com/exadel-inc/esl/commit/c3e7f660330d310a0181b59927e163acb7380bf5)) + +## [2.4.1](https://github.com/exadel-inc/esl/compare/v2.4.0...v2.4.1) (2021-04-15) + + +### Bug Fixes + +* add TraversingQuery to ESL ns ([d1b2af2](https://github.com/exadel-inc/esl/commit/d1b2af2dedc17ccde818d5910029feda6deee2dc)) +* disable scroll native mode fix ([2f5bb86](https://github.com/exadel-inc/esl/commit/2f5bb868647ae12af5312a4af8fd9995cb896432)) +* outsideAction tracker conflicts with outside esl-triggers / activators ([b544e07](https://github.com/exadel-inc/esl/commit/b544e07f37bbb61a6b8d57166ebe5077f5585d7d)) + +# [2.4.0](https://github.com/exadel-inc/esl/compare/v2.3.2...v2.4.0) (2021-04-13) + + +### Bug Fixes + +* add ability to pass custom user data trough toggleable params ([9e7af26](https://github.com/exadel-inc/esl/commit/9e7af2640be7868749184cff0fb9d489229b1dbb)) + + +### Features + +* extend Scrollable Tabs to support center position ([b3bb7d8](https://github.com/exadel-inc/esl/commit/b3bb7d8f3602a81da4f5ce7bfab6e48db73df4ac)) +* override and readonly decorators deprecate and replaced with a `prop` decorator ([eb4040e](https://github.com/exadel-inc/esl/commit/eb4040e08ce7522e330faabb6696fbc1f0d25afa)) + +## [2.3.2](https://github.com/exadel-inc/esl/compare/v2.3.1...v2.3.2) (2021-04-08) + + +### Bug Fixes + +* fix for the less files build ([#41](https://github.com/exadel-inc/esl/issues/41)dd93a) ([d079851](https://github.com/exadel-inc/esl/commit/d0798516a536e7a76f1a282c3ed944d1455f2286)), closes [#41dd93](https://github.com/exadel-inc/esl/issues/41dd93) + +## [2.3.1](https://github.com/exadel-inc/esl/compare/v2.3.0...v2.3.1) (2021-04-08) + + +### Bug Fixes + +* temporary npm build vix ([41dd93a](https://github.com/exadel-inc/esl/commit/41dd93a96c4e3313d55bca4d0dbbf470605c05a7)) + +# [2.3.0](https://github.com/exadel-inc/esl/compare/v2.2.1...v2.3.0) (2021-04-08) + +### Features + +* override and readonly implementation ([641da83](https://github.com/exadel-inc/esl/commit/641da83f7b43ea10711e8d64d2047582d2376ac1)) + +## [2.2.1](https://github.com/exadel-inc/esl/compare/v2.2.0...v2.2.1) (2021-04-02) + + +### Bug Fixes + +* remove allow-same-version ([0016ada](https://github.com/exadel-inc/esl/commit/0016ada0a694bbc75cbaba23deb61037f9d1737e)) + +# [2.2.0](https://github.com/exadel-inc/esl/compare/v2.1.0...v2.2.0) (2021-04-02) + + +### Bug Fixes + +* allow-same-version temporary set to true ([75eb9a0](https://github.com/exadel-inc/esl/commit/75eb9a052749ff394c275e8e091fff54a28158b9)) +* npm members ([0b9fbae](https://github.com/exadel-inc/esl/commit/0b9fbae649c5a8cee8434db08031763bf278575f)) + + +### Features + +* npm release-ready version ([30c8624](https://github.com/exadel-inc/esl/commit/30c8624fdfc37a14fd35eafd8678633844813846)) + +# [2.2.0](https://github.com/exadel-inc/esl/compare/v2.1.0...v2.2.0) (2021-04-02) + + +### Features + +* npm release-ready version ([30c8624](https://github.com/exadel-inc/esl/commit/30c8624fdfc37a14fd35eafd8678633844813846)) + +# [2.1.0](https://github.com/exadel-inc/esl/compare/v2.0.0...v2.1.0) (2021-04-02) + + +### Bug Fixes + +* debounce fit to viewport ([0413596](https://github.com/exadel-inc/esl/commit/04135969988fcc5e0ff560c45f253a40279eb2cc)) +* dependencies vulnerability cleanup ([7823287](https://github.com/exadel-inc/esl/commit/782328704aee31b31163f35f443ae3a8696eb21c)) +* dependencies vulnerability cleanup 2 ([d335aaa](https://github.com/exadel-inc/esl/commit/d335aaac3525c0004347df21440c2add5a035753)) + + +### Features + +* ability to refresh esl-media via esl:refresh ([2419237](https://github.com/exadel-inc/esl/commit/2419237dd3ea4dfd62b9ad08fd86218aa53c92df)) + +# [2.0.0](https://github.com/exadel-inc/esl/compare/v1.1.0...v2.0.0) (2021-03-29) + + +### Bug Fixes + +* a11y ([8d1085b](https://github.com/exadel-inc/esl/commit/8d1085ba0d9e8e05e2633e8e943a50539972e279)) +* accordion styles animation fixes ([d59a44b](https://github.com/exadel-inc/esl/commit/d59a44bebfbe639846f4e86a0f430e4b820be8e9)) +* add full ts export for scroll ([1e40678](https://github.com/exadel-inc/esl/commit/1e406783222a74d7d22a7a9ea5b26566377c4d83)) +* add multiple active panels control ([c662999](https://github.com/exadel-inc/esl/commit/c6629992476a78f9469bed49faf876f261f91e13)) +* adjust group control ([86286b1](https://github.com/exadel-inc/esl/commit/86286b1df18e04e9a8114be44ecf05dc2be3db67)) +* allow super.register call for esl-base-element instances ([19e8e05](https://github.com/exadel-inc/esl/commit/19e8e051d413c28e1ecd74b2b636e1a3281d2d08)) +* animation of single panel (w/o panel group) ([01aa5e9](https://github.com/exadel-inc/esl/commit/01aa5e92e9a5027c1fd2f2a6c42381f1e1e561f7)) +* bind method hotfix ([b7d3b1c](https://github.com/exadel-inc/esl/commit/b7d3b1ca711044c3de29c872173e98bc9bb2a3bc)) +* bouncing up when crossing between tabs ([ea7053b](https://github.com/exadel-inc/esl/commit/ea7053b64b97865f3768ba298d906a82da0a0e5e)) +* change iframe provide scrolling to no ([b8672e3](https://github.com/exadel-inc/esl/commit/b8672e335a177c5d34768f7f145ad78c58352c1f)) +* cover mode calculation for non blink browsers ([5cd6bc2](https://github.com/exadel-inc/esl/commit/5cd6bc29498b46634a74ce4885ae45c89511b47b)) +* deepCompare null check fix ([8211738](https://github.com/exadel-inc/esl/commit/82117384c58911632cb3565d037bd0aedec61982)) +* default export value replaced with singleton accessor ([ca323aa](https://github.com/exadel-inc/esl/commit/ca323aafb66dfe21e8fe2bee54e91ee080e9d377)) +* empty alert on initiating in the animation hide time ([0b1ed7a](https://github.com/exadel-inc/esl/commit/0b1ed7a45295a59a2fd6e6a5de09d99b8759d2ce)) +* esl-alert a11y and post animate cleanup ([7646ffb](https://github.com/exadel-inc/esl/commit/7646ffb70eb46bc786a5f5153b8352b18907deaa)) +* esl-alert target attribute change observation fixed ([5226c96](https://github.com/exadel-inc/esl/commit/5226c9653e69547819ebe407e6a75dba9dba012c)) +* fallback timer reset for panel animation ([c61c9f1](https://github.com/exadel-inc/esl/commit/c61c9f11e7bc7ee1169acb9aa32708c19506a257)) +* fallback timer reset for panel-group animation ([0bb9b02](https://github.com/exadel-inc/esl/commit/0bb9b0236c56c791b181c09dd46899b302f01099)) +* fix ESLMedia events prefix ([76035fe](https://github.com/exadel-inc/esl/commit/76035fea0216157ee4f68ec9a7e14d20f3a4dc1a)) +* fix focus and position calculation ([815b8ad](https://github.com/exadel-inc/esl/commit/815b8ad5bd58e0814a569dd3337884417f55f790)) +* fix package.json and IE compatibility problems ([68f1bb6](https://github.com/exadel-inc/esl/commit/68f1bb669d7b50acf68253cfeb795dac5b486ae1)) +* fix tracking click event for Popup ([2c3bff0](https://github.com/exadel-inc/esl/commit/2c3bff00a7f129e4382eca7fac37b7e6b28f2ead)) +* fix tracking click event for Popup (rename the method and arguments) ([8abd6e5](https://github.com/exadel-inc/esl/commit/8abd6e544ea49fc13379928d6b6f43f137e0bb76)) +* format utility support for multiple replacements ([3d8a6e7](https://github.com/exadel-inc/esl/commit/3d8a6e7ddec1a201de90262d69f4e269c810e614)) +* optimize select performance. update demo content ([9c916d6](https://github.com/exadel-inc/esl/commit/9c916d684df4a75fe5a6bcc0d75fed7ea25781f5)) +* optimize UX for close outside feature ([c058400](https://github.com/exadel-inc/esl/commit/c0584007b0597b1b6c5d308592635267986f1efb)) +* remove eventNs for image & scroll fix image ready event ([2f3382f](https://github.com/exadel-inc/esl/commit/2f3382f206255b85be143fbb802d6c0fa12d4ac6)) +* rename loaded event of ESLImage to the load event (from spec) ([23ecb84](https://github.com/exadel-inc/esl/commit/23ecb844fe41e54c1dd9ac58ac3f9fe23917ae97)) +* select a11y basic improvements ([5c1657d](https://github.com/exadel-inc/esl/commit/5c1657df7d688eb93042c15955152f8e13d9a840)) +* set position relative to smart-media root for special fill-modes ([4f5bbd7](https://github.com/exadel-inc/esl/commit/4f5bbd70522c7b279063970cdecf9e1f971e7a86)) +* small styling and imports updates ([3e10b5f](https://github.com/exadel-inc/esl/commit/3e10b5f0babe747df4f3cf478f5c42340c8eeb11)) + + +### Code Refactoring + +* cleanup for ESLBasePopupGroupManager ([5f68efd](https://github.com/exadel-inc/esl/commit/5f68efdff5848e4a98f0293328545d00371c244d)) +* get rid of default imports and fix draft select component accessor naming ([155dbf9](https://github.com/exadel-inc/esl/commit/155dbf981d54c33a2323e2ec740400ba5b563d87)) +* popup property of the trigger renamed to $target ([cdc4230](https://github.com/exadel-inc/esl/commit/cdc423072fd0ba48a311042d026e572a9457a369)) +* scrollable & alert renaming ([a61e56e](https://github.com/exadel-inc/esl/commit/a61e56ebaa348a98853a08ebb33d8ae971d0ac54)) + + +### Documentation + +* esl-select fixes ([5407ac2](https://github.com/exadel-inc/esl/commit/5407ac241afce10c3991ffee7bc5e2cb939bc4b4)) + + +### Features + +* !revert back esl prefix for events ([adef294](https://github.com/exadel-inc/esl/commit/adef294f76ef6b9c9a46cd743fd26d65b45cbfdf)) +* `[@ready](https://github.com/ready)` decorator and readyState listener ([6d1a32f](https://github.com/exadel-inc/esl/commit/6d1a32fd1d5b83dcb03902fb0cd874cc32b8f806)) +* add ability to cancel animation ([53b3235](https://github.com/exadel-inc/esl/commit/53b32352983e94bcb6e015eacdd3094ece50de51)) +* add ability to decline collapsing ([44885c7](https://github.com/exadel-inc/esl/commit/44885c77aef69ea241a43a83c5b23b222b05d3a9)) +* add empty text for select. update select events and flow ([3435ae9](https://github.com/exadel-inc/esl/commit/3435ae9460853ceb64f9c51b44bb5a4e913c0afc)) +* add more label format for esl-select; fix select dropdown focus ([8682ec0](https://github.com/exadel-inc/esl/commit/8682ec054fcc31685221be050750ce77e669b425)) +* add separate simplified ESLBaseTrigger ([3f5500a](https://github.com/exadel-inc/esl/commit/3f5500af7a7a5b2cd9020db9a80b3b8245ac64fe)) +* esl-media extended with a ready class target option ([9966b42](https://github.com/exadel-inc/esl/commit/9966b42de148c9d5fc2390e357c4ceac057416de)) +* esl-scroll moved from draft to beta components ([88e6ea6](https://github.com/exadel-inc/esl/commit/88e6ea6c12ceda66dab8441577622ed257e89842)) +* esl-select basic form element proxy and reset handler fix ([85f2f78](https://github.com/exadel-inc/esl/commit/85f2f788027c2572340a5ab1465cbf7b31c5e02e)) +* esl-select component POC ([dd2644e](https://github.com/exadel-inc/esl/commit/dd2644eb0bd4840ad1285298f51f238e11aaa414)) +* esl-select public update and support for mutations ([b297ae2](https://github.com/exadel-inc/esl/commit/b297ae2d181e6ac96536f0041a6c921467fec9d4)) +* esl-select support for simple select wrap ([b6debd8](https://github.com/exadel-inc/esl/commit/b6debd8366dcf1c438676d047b18ef0afc78eeea)) +* esl-trigger rewritten ([64c05f6](https://github.com/exadel-inc/esl/commit/64c05f6b4588b2526405c531031ac055e92f533f)) +* extended shim for ES5 ElementConstructor ([0eabf64](https://github.com/exadel-inc/esl/commit/0eabf64896bcf6e3e61f9c08df478614d9770af3)) +* filtration common pseudo-selectors ([8b4d80e](https://github.com/exadel-inc/esl/commit/8b4d80e01c7963c3e939e1cd0ae15d765406b947)) +* introduce EventUtils with a set of event related utilities ([04c5368](https://github.com/exadel-inc/esl/commit/04c536884d63dce864b2427cc2f98175b5e35e39)) +* introduce new BasePopupGroupManager based on events ([8f9a426](https://github.com/exadel-inc/esl/commit/8f9a4260dac3d9d4c604e7cbcf75b9628c426f87)) +* optional prevent default option for triggers. Merge triggers directory ([8c6cc3c](https://github.com/exadel-inc/esl/commit/8c6cc3cf54cb0141d83de15312b41789818d66c1)) +* set iframe as a default provider for valid urls ([f320d88](https://github.com/exadel-inc/esl/commit/f320d8855cb2184e3e4747aafec0e65e91fc859f)) +* **memoize:** add func cash for class instances ([f4dd895](https://github.com/exadel-inc/esl/commit/f4dd895c1dbb4dbb335ff0d75403b9cdee2b3dd2)) +* support for html content for alert ([86507d8](https://github.com/exadel-inc/esl/commit/86507d8d694af05337aa4d8cd4b30fa70dda8503)) +* support for multiple esl-alerts ([fd99dab](https://github.com/exadel-inc/esl/commit/fd99dabb3e4ae65560c368cf847d89681f464141)) +* upgrade BasePopupGroupManager ([07aa02a](https://github.com/exadel-inc/esl/commit/07aa02a65173b85bbcf6076d7861a5950fc26e63)) + + +### Styles + +* cleanup esl-tabs documentation ([fdefaa5](https://github.com/exadel-inc/esl/commit/fdefaa58a9f02e59a9f98754e60854e052f79e07)) + + +* chore!: history fixup commit ([c9efe88](https://github.com/exadel-inc/esl/commit/c9efe88ae6f3ffeefeedde3dc9486ad3b44f4d2a)) +* refactor!: cleanup for KeyboardEvent key polyfill and keys usages ([c694727](https://github.com/exadel-inc/esl/commit/c6947279ed913dd712d6df7564810068676dcb05)) +* refactor!: rename ESLBasePopup ([390f8f1](https://github.com/exadel-inc/esl/commit/390f8f16c4b40e8144a49cd37297227c933ac3d0)) +* feat!: refactor of Panel & PanelStack ([d819259](https://github.com/exadel-inc/esl/commit/d8192599333101b46bab930326b2b2ef8eef6292)) +* feat!: add last activator feature, fix outside action ([76bd08b](https://github.com/exadel-inc/esl/commit/76bd08ba4262e68a52de2ff21bc72ca8016c17ae)) +* feat!: update for tab and trigger events; fix double a11y control for tabs ([dce85b6](https://github.com/exadel-inc/esl/commit/dce85b62a4b9e3fd270e1192a75f1796275f778f)) +* feat!: eventing cleanup ([22efb73](https://github.com/exadel-inc/esl/commit/22efb7308140f40c4493716c3de1e7705ef1c0ad)) +* feat!: popups massive cleanup 1 ([7441e41](https://github.com/exadel-inc/esl/commit/7441e411c0f586e366df3057c9c81b58fbdeab5f)) + + +### BREAKING CHANGES + +* make esl-tab mode="show" by default +* replace `empty-text` with `placeholder` attribute +* Rename ESLPanelStack to ESLPanelGroup + +- Introduce new ESLA11yGroup component + +- ESLTabsContainer renamed to ESLTabs + +- ESLScrollableTabs removed functionality moved under ESLTabs scrollable feature +* esl-alert should be registered and initialized as separate steps + esl-alert now use target (paren by default) to listen events instead of window +* `keycodes.ts` constants for deprecated `keycode` removed, `key` property should be used instead +* `targetElement` renamed to `$target` +* `popup` renamed to `$target` in the trigger +* default imports no longer accepted for esl modules +* 'ESLBasePopup' comp rename to 'ESLToggleable' +'ESLPopupDispatcher' comp rename to 'ESLToggleableDispatcher' +* Panel Stack uses self group management. +Group attribute should be removed to reach collapsible behavior. +Panel Stack & Panel inner API changes. +* rename ESLBasePopupGroupManager to ESLPopupGroupDispatcher +* 'outsideclick' initiator type replaced with 'outsideaction' +* events of BasePopup now have esl prefix +('esl:hide' / 'esl:show' / 'esl:before:hide' / 'esl:before:show') + + events of Trigger now have esl prefix: 'esl:change:active' + + events of Panel now have esl prefix: 'esl:after:hide' / 'esl:after:show' +* - `transitionend` event of ESLPanel replaced with `after:show`/`after:hide` +- `statechange` event of ESLTrigger replaced with `change:active` +* - `ESLBaseElement` no longer contains eventNs and $$fireNs methods +- Whole popups based component system no longer use event namespaces +* - `ESLBasePopup` statechange events replaced with a separate `(before:)show/hide` + +# [2.0.0-beta.31](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.30...v2.0.0-beta.31) (2021-03-26) + + +### Documentation + +* esl-select fixes ([5407ac2](https://github.com/exadel-inc/esl/commit/5407ac241afce10c3991ffee7bc5e2cb939bc4b4)) + + +### Styles + +* cleanup esl-tabs documentation ([fdefaa5](https://github.com/exadel-inc/esl/commit/fdefaa58a9f02e59a9f98754e60854e052f79e07)) + + +### BREAKING CHANGES + +* make esl-tab mode="show" by default +* replace `empty-text` with `placeholder` attribute + +# [2.0.0-beta.30](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.29...v2.0.0-beta.30) (2021-03-24) + + +### Features + +* esl-trigger rewritten ([64c05f6](https://github.com/exadel-inc/esl/commit/64c05f6b4588b2526405c531031ac055e92f533f)) + +# [2.0.0-beta.29](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.28...v2.0.0-beta.29) (2021-03-24) + + +### Bug Fixes + +* accordion styles animation fixes ([d59a44b](https://github.com/exadel-inc/esl/commit/d59a44bebfbe639846f4e86a0f430e4b820be8e9)) + + +### Features + +* esl-media extended with a ready class target option ([9966b42](https://github.com/exadel-inc/esl/commit/9966b42de148c9d5fc2390e357c4ceac057416de)) +* optional prevent default option for triggers. Merge triggers directory ([8c6cc3c](https://github.com/exadel-inc/esl/commit/8c6cc3cf54cb0141d83de15312b41789818d66c1)) + +# [2.0.0-beta.28](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.27...v2.0.0-beta.28) (2021-03-17) + + +### Features + +* add ability to cancel animation ([53b3235](https://github.com/exadel-inc/esl/commit/53b32352983e94bcb6e015eacdd3094ece50de51)) +* add ability to decline collapsing ([44885c7](https://github.com/exadel-inc/esl/commit/44885c77aef69ea241a43a83c5b23b222b05d3a9)) + +# [2.0.0-beta.27](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.26...v2.0.0-beta.27) (2021-03-15) + + +### Features + +* extended shim for ES5 ElementConstructor ([0eabf64](https://github.com/exadel-inc/esl/commit/0eabf64896bcf6e3e61f9c08df478614d9770af3)) +* filtration common pseudo-selectors ([8b4d80e](https://github.com/exadel-inc/esl/commit/8b4d80e01c7963c3e939e1cd0ae15d765406b947)) +* set iframe as a default provider for valid urls ([f320d88](https://github.com/exadel-inc/esl/commit/f320d8855cb2184e3e4747aafec0e65e91fc859f)) + +# [2.0.0-beta.26](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.25...v2.0.0-beta.26) (2021-03-03) + + +### Bug Fixes + +* adjust group control ([86286b1](https://github.com/exadel-inc/esl/commit/86286b1df18e04e9a8114be44ecf05dc2be3db67)) +* fallback timer reset for panel animation ([c61c9f1](https://github.com/exadel-inc/esl/commit/c61c9f11e7bc7ee1169acb9aa32708c19506a257)) +* fallback timer reset for panel-group animation ([0bb9b02](https://github.com/exadel-inc/esl/commit/0bb9b0236c56c791b181c09dd46899b302f01099)) + +# [2.0.0-beta.25](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.24...v2.0.0-beta.25) (2021-03-02) + + +### Bug Fixes + +* deepCompare null check fix ([8211738](https://github.com/exadel-inc/esl/commit/82117384c58911632cb3565d037bd0aedec61982)) + +# [2.0.0-beta.24](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.23...v2.0.0-beta.24) (2021-03-02) + + +### Bug Fixes + +* add multiple active panels control ([c662999](https://github.com/exadel-inc/esl/commit/c6629992476a78f9469bed49faf876f261f91e13)) +* animation of single panel (w/o panel group) ([01aa5e9](https://github.com/exadel-inc/esl/commit/01aa5e92e9a5027c1fd2f2a6c42381f1e1e561f7)) + +# [2.0.0-beta.23](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.22...v2.0.0-beta.23) (2021-02-26) + + +### Bug Fixes + +* empty alert on initiating in the animation hide time ([0b1ed7a](https://github.com/exadel-inc/esl/commit/0b1ed7a45295a59a2fd6e6a5de09d99b8759d2ce)) +* set position relative to smart-media root for special fill-modes ([4f5bbd7](https://github.com/exadel-inc/esl/commit/4f5bbd70522c7b279063970cdecf9e1f971e7a86)) + + +### Features + +* esl-select public update and support for mutations ([b297ae2](https://github.com/exadel-inc/esl/commit/b297ae2d181e6ac96536f0041a6c921467fec9d4)) + +# [2.0.0-beta.22](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.21...v2.0.0-beta.22) (2021-02-24) + + +### Bug Fixes + +* change iframe provide scrolling to no ([b8672e3](https://github.com/exadel-inc/esl/commit/b8672e335a177c5d34768f7f145ad78c58352c1f)) + +# [2.0.0-beta.21](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.20...v2.0.0-beta.21) (2021-02-24) + + +### Bug Fixes + +* format utility support for multiple replacements ([3d8a6e7](https://github.com/exadel-inc/esl/commit/3d8a6e7ddec1a201de90262d69f4e269c810e614)) + + +### Features + +* **memoize:** add func cash for class instances ([f4dd895](https://github.com/exadel-inc/esl/commit/f4dd895c1dbb4dbb335ff0d75403b9cdee2b3dd2)) + + +* chore!: history fixup commit ([c9efe88](https://github.com/exadel-inc/esl/commit/c9efe88ae6f3ffeefeedde3dc9486ad3b44f4d2a)) + + +### BREAKING CHANGES + +* Rename ESLPanelStack to ESLPanelGroup + +- Introduce new ESLA11yGroup component + +- ESLTabsContainer renamed to ESLTabs + +- ESLScrollableTabs removed functionality moved under ESLTabs scrollable feature + +# [2.0.0-beta.21](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.20...v2.0.0-beta.21) (2021-02-23) + +### Features +- Introduce new ESLA11yGroup component ([e354d2d](https://github.com/exadel-inc/esl/commit/e354d2daef1e7368426a2b3a794189c69c0936a7)) + +### BREAKING CHANGES +- Rename ESLPanelStack to ESLPanelGroup ([e354d2d](https://github.com/exadel-inc/esl/commit/e354d2daef1e7368426a2b3a794189c69c0936a7)) +- ESLTabsContainer renamed to ESLTabs ([e354d2d](https://github.com/exadel-inc/esl/commit/e354d2daef1e7368426a2b3a794189c69c0936a7)) +- ESLScrollableTabs removed functionality moved under ESLTabs scrollable feature ([e354d2d](https://github.com/exadel-inc/esl/commit/e354d2daef1e7368426a2b3a794189c69c0936a7)) + +# [2.0.0-beta.20](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.19...v2.0.0-beta.20) (2021-02-22) + + +### Features + +* esl-select basic form element proxy and reset handler fix ([85f2f78](https://github.com/exadel-inc/esl/commit/85f2f788027c2572340a5ab1465cbf7b31c5e02e)) + +# [2.0.0-beta.19](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.18...v2.0.0-beta.19) (2021-02-19) + + +### Bug Fixes + +* esl-alert a11y and post animate cleanup ([7646ffb](https://github.com/exadel-inc/esl/commit/7646ffb70eb46bc786a5f5153b8352b18907deaa)) + +# [2.0.0-beta.18](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.17...v2.0.0-beta.18) (2021-02-18) + + +### Bug Fixes + +* esl-alert target attribute change observation fixed ([5226c96](https://github.com/exadel-inc/esl/commit/5226c9653e69547819ebe407e6a75dba9dba012c)) +* select a11y basic improvements ([5c1657d](https://github.com/exadel-inc/esl/commit/5c1657df7d688eb93042c15955152f8e13d9a840)) + + +### Features + +* support for multiple esl-alerts ([fd99dab](https://github.com/exadel-inc/esl/commit/fd99dabb3e4ae65560c368cf847d89681f464141)) + + +* refactor!: cleanup for KeyboardEvent key polyfill and keys usages ([c694727](https://github.com/exadel-inc/esl/commit/c6947279ed913dd712d6df7564810068676dcb05)) + + +### BREAKING CHANGES + +* esl-alert should be registered and initialized as separate steps + esl-alert now use target (paren by default) to listen events instead of window +* `keycodes.ts` constants for deprecated `keycode` removed, `key` property should be used instead + +# [2.0.0-beta.17](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.16...v2.0.0-beta.17) (2021-02-11) + + +### Bug Fixes + +* default export value replaced with singleton accessor ([ca323aa](https://github.com/exadel-inc/esl/commit/ca323aafb66dfe21e8fe2bee54e91ee080e9d377)) +* small styling and imports updates ([3e10b5f](https://github.com/exadel-inc/esl/commit/3e10b5f0babe747df4f3cf478f5c42340c8eeb11)) + + +### Code Refactoring + +* get rid of default imports and fix draft select component accessor naming ([155dbf9](https://github.com/exadel-inc/esl/commit/155dbf981d54c33a2323e2ec740400ba5b563d87)) +* popup property of the trigger renamed to $target ([cdc4230](https://github.com/exadel-inc/esl/commit/cdc423072fd0ba48a311042d026e572a9457a369)) +* scrollable & alert renaming ([a61e56e](https://github.com/exadel-inc/esl/commit/a61e56ebaa348a98853a08ebb33d8ae971d0ac54)) + + +### Features + +* esl-scroll moved from draft to beta components ([88e6ea6](https://github.com/exadel-inc/esl/commit/88e6ea6c12ceda66dab8441577622ed257e89842)) +* esl-select support for simple select wrap ([b6debd8](https://github.com/exadel-inc/esl/commit/b6debd8366dcf1c438676d047b18ef0afc78eeea)) +* support for html content for alert ([86507d8](https://github.com/exadel-inc/esl/commit/86507d8d694af05337aa4d8cd4b30fa70dda8503)) + + +* refactor!: rename ESLBasePopup ([390f8f1](https://github.com/exadel-inc/esl/commit/390f8f16c4b40e8144a49cd37297227c933ac3d0)) + + +### BREAKING CHANGES + +* `targetElement` renamed to `$target` +* `popup` renamed to `$target` in the trigger +* default imports no longer accepted for esl modules +* 'ESLBasePopup' comp rename to 'ESLToggleable' +'ESLPopupDispatcher' comp rename to 'ESLToggleableDispatcher' + +# [2.0.0-beta.16](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.15...v2.0.0-beta.16) (2021-02-08) + + +### Bug Fixes + +* allow super.register call for esl-base-element instances ([19e8e05](https://github.com/exadel-inc/esl/commit/19e8e051d413c28e1ecd74b2b636e1a3281d2d08)) + +# [2.0.0-beta.15](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.14...v2.0.0-beta.15) (2021-02-04) + + +### Features + +* add more label format for esl-select; fix select dropdown focus ([8682ec0](https://github.com/exadel-inc/esl/commit/8682ec054fcc31685221be050750ce77e669b425)) + +# [2.0.0-beta.14](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.13...v2.0.0-beta.14) (2021-02-04) + + +### Bug Fixes + +* fix focus and position calculation ([815b8ad](https://github.com/exadel-inc/esl/commit/815b8ad5bd58e0814a569dd3337884417f55f790)) + +# [2.0.0-beta.13](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.12...v2.0.0-beta.13) (2021-02-04) + + +### Bug Fixes + +* a11y ([8d1085b](https://github.com/exadel-inc/esl/commit/8d1085ba0d9e8e05e2633e8e943a50539972e279)) + + +### Features + +* add empty text for select. update select events and flow ([3435ae9](https://github.com/exadel-inc/esl/commit/3435ae9460853ceb64f9c51b44bb5a4e913c0afc)) + +# [2.0.0-beta.12](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.11...v2.0.0-beta.12) (2021-02-04) + + +### Bug Fixes + +* add full ts export for scroll ([1e40678](https://github.com/exadel-inc/esl/commit/1e406783222a74d7d22a7a9ea5b26566377c4d83)) +* optimize select performance. update demo content ([9c916d6](https://github.com/exadel-inc/esl/commit/9c916d684df4a75fe5a6bcc0d75fed7ea25781f5)) + + +### Features + +* esl-select component POC ([dd2644e](https://github.com/exadel-inc/esl/commit/dd2644eb0bd4840ad1285298f51f238e11aaa414)) + +# [2.0.0-beta.11](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.10...v2.0.0-beta.11) (2021-02-03) + + +### Bug Fixes + +* bouncing up when crossing between tabs ([ea7053b](https://github.com/exadel-inc/esl/commit/ea7053b64b97865f3768ba298d906a82da0a0e5e)) + +# [2.0.0-beta.10](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.9...v2.0.0-beta.10) (2021-02-03) + +# [2.0.0-beta.9](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.8...v2.0.0-beta.9) (2021-02-03) + +# [2.0.0-beta.8](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.7...v2.0.0-beta.8) (2021-02-02) + +# [2.0.0-beta.7](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.6...v2.0.0-beta.7) (2021-02-02) + + +* feat!: refactor of Panel & PanelStack ([d819259](https://github.com/exadel-inc/esl/commit/d8192599333101b46bab930326b2b2ef8eef6292)) + + +### Features + +* upgrade BasePopupGroupManager ([07aa02a](https://github.com/exadel-inc/esl/commit/07aa02a65173b85bbcf6076d7861a5950fc26e63)) + + +### BREAKING CHANGES + +* Panel Stack uses self group management. +Group attribute should be removed to reach collapsible behavior. +Panel Stack & Panel inner API changes. + +# [2.0.0-beta.6](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.5...v2.0.0-beta.6) (2021-02-01) + + +### Bug Fixes + +* rename loaded event of ESLImage to the load event (from spec) ([23ecb84](https://github.com/exadel-inc/esl/commit/23ecb844fe41e54c1dd9ac58ac3f9fe23917ae97)) + + +### Code Refactoring + +* cleanup for ESLBasePopupGroupManager ([5f68efd](https://github.com/exadel-inc/esl/commit/5f68efdff5848e4a98f0293328545d00371c244d)) + + +### BREAKING CHANGES + +* rename ESLBasePopupGroupManager to ESLPopupGroupDispatcher + +# [2.0.0-beta.5](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.4...v2.0.0-beta.5) (2021-02-01) + + +### Bug Fixes + +* bind method hotfix ([b7d3b1c](https://github.com/exadel-inc/esl/commit/b7d3b1ca711044c3de29c872173e98bc9bb2a3bc)) + +# [2.0.0-beta.4](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.3...v2.0.0-beta.4) (2021-01-31) + + +### Features + +* add separate simplified ESLBaseTrigger ([3f5500a](https://github.com/exadel-inc/esl/commit/3f5500af7a7a5b2cd9020db9a80b3b8245ac64fe)) +* introduce EventUtils with a set of event related utilities ([04c5368](https://github.com/exadel-inc/esl/commit/04c536884d63dce864b2427cc2f98175b5e35e39)) +* introduce new BasePopupGroupManager based on events ([8f9a426](https://github.com/exadel-inc/esl/commit/8f9a4260dac3d9d4c604e7cbcf75b9628c426f87)) + + +* feat!: add last activator feature, fix outside action ([76bd08b](https://github.com/exadel-inc/esl/commit/76bd08ba4262e68a52de2ff21bc72ca8016c17ae)) + + +### Bug Fixes + +* fix package.json and IE compatibility problems ([68f1bb6](https://github.com/exadel-inc/esl/commit/68f1bb669d7b50acf68253cfeb795dac5b486ae1)) + + +### BREAKING CHANGES + +* 'outsideclick' initiator type replaced with 'outsideaction' + +# [2.0.0-beta.3](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.2...v2.0.0-beta.3) (2021-01-28) + + +### Bug Fixes + +* fix ESLMedia events prefix ([76035fe](https://github.com/exadel-inc/esl/commit/76035fea0216157ee4f68ec9a7e14d20f3a4dc1a)) + +# [2.0.0-beta.2](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.1...v2.0.0-beta.2) (2021-01-28) + + +### Features + +* !revert back esl prefix for events ([adef294](https://github.com/exadel-inc/esl/commit/adef294f76ef6b9c9a46cd743fd26d65b45cbfdf)) +* add originalWidth / originalHeight accessors to ESLImage ([365e31b](https://github.com/exadel-inc/esl/commit/365e31b78db67b4bbc335c17078b117459753aa4)) + + +### BREAKING CHANGES + +* events of BasePopup now have esl prefix +('esl:hide' / 'esl:show' / 'esl:before:hide' / 'esl:before:show') + + events of Trigger now have esl prefix: 'esl:change:active' + + events of Panel now have esl prefix: 'esl:after:hide' / 'esl:after:show' + +# [2.0.0-beta.1](https://github.com/exadel-inc/esl/compare/v1.0.1...v2.0.0-beta.1) (2021-01-26) + + +* feat!: update for tab and trigger events; fix double a11y control for tabs ([dce85b6](https://github.com/exadel-inc/esl/commit/dce85b62a4b9e3fd270e1192a75f1796275f778f)) +* feat!: eventing cleanup ([22efb73](https://github.com/exadel-inc/esl/commit/22efb7308140f40c4493716c3de1e7705ef1c0ad)) +* feat!: popups massive cleanup 1 ([7441e41](https://github.com/exadel-inc/esl/commit/7441e411c0f586e366df3057c9c81b58fbdeab5f)) + + +### Bug Fixes + +* fix tracking click event for Popup ([2c3bff0](https://github.com/exadel-inc/esl/commit/2c3bff00a7f129e4382eca7fac37b7e6b28f2ead)) +* fix tracking click event for Popup (rename the method and arguments) ([8abd6e5](https://github.com/exadel-inc/esl/commit/8abd6e544ea49fc13379928d6b6f43f137e0bb76)) +* optimize UX for close outside feature ([c058400](https://github.com/exadel-inc/esl/commit/c0584007b0597b1b6c5d308592635267986f1efb)) +* remove eventNs for image & scroll fix image ready event ([2f3382f](https://github.com/exadel-inc/esl/commit/2f3382f206255b85be143fbb802d6c0fa12d4ac6)) + + +### Features + +* `[@ready](https://github.com/ready)` decorator and readyState listener ([6d1a32f](https://github.com/exadel-inc/esl/commit/6d1a32fd1d5b83dcb03902fb0cd874cc32b8f806)) + + +### BREAKING CHANGES + +* - `transitionend` event of ESLPanel replaced with `after:show`/`after:hide` +- `statechange` event of ESLTrigger replaced with `change:active` +* - `ESLBaseElement` no longer contains eventNs and $$fireNs methods +- Whole popups based component system no longer use event namespaces +* - `ESLBasePopup` statechange events replaced with a separate `(before:)show/hide` + +# [1.1.0](https://github.com/exadel-inc/esl/compare/v1.0.1...v1.1.0) (2021-01-27) + + +### Features + +* add originalWidth / originalHeight accessors to ESLImage ([365e31b](https://github.com/exadel-inc/esl/commit/365e31b78db67b4bbc335c17078b117459753aa4)) + +## [1.0.1](https://github.com/exadel-inc/esl/compare/v1.0.0...v1.0.1) (2021-01-18) + + +### Bug Fixes + +* fix providerName type to allow user to extend default providers ([4b6e67e](https://github.com/exadel-inc/esl/commit/4b6e67eb2895f327fec7f45abb539d4217ba7757)) + +# 1.0.0 (2021-01-18) + + +### Bug Fixes + +* Add extend draggable area for esl-scrollbar ([403cf33](https://github.com/exadel-inc/esl/commit/403cf339d165917ceb65e7e1264c264a21397a09)) +* browser list term in package.json ([39426dd](https://github.com/exadel-inc/esl/commit/39426dd33c159454091f5c4e14ed26545ff7e691)) +* build process updated; NPM release file-list fix ([a13bacf](https://github.com/exadel-inc/esl/commit/a13bacf053cdc6fee583965003dfd246881c1a04)) +* ESL media query fix ([ca4a904](https://github.com/exadel-inc/esl/commit/ca4a9043615f672bff381cf1971356129866ab0d)) +* fix linting error for scrollbar a11y pseudo-element ([4974354](https://github.com/exadel-inc/esl/commit/49743548defb74ff46886f1b2410c0189ad8dd81)) +* fix strict comparison. ([5462ae3](https://github.com/exadel-inc/esl/commit/5462ae339983c98dcdb76949a938c26fd0c7ea88)) +* fix youtube url regexp, typo in error and mock formatting ([1da03bd](https://github.com/exadel-inc/esl/commit/1da03bdd285da5c21cfce9d07ca45591c001ad78)) +* ie-zindex-fix update ([5729f30](https://github.com/exadel-inc/esl/commit/5729f30d283ac67cbd12fe75bf46c32904a03d1b)) +* native 'close on body click' feature can be prevented by outside click handlers ([853106d](https://github.com/exadel-inc/esl/commit/853106db29bd0dce0fa2dbd0f8a0290c87c8cac7)) +* path for coverage test exclusions ([6c29f49](https://github.com/exadel-inc/esl/commit/6c29f490cde159ecc6fda483fc291660c02ce6d6)) +* polyfill content fix ([ecb738e](https://github.com/exadel-inc/esl/commit/ecb738e8173f1834ef2a8eb8f7ed863baf3b6a1d)) +* pr comments and bugfixes ([6783473](https://github.com/exadel-inc/esl/commit/6783473363c313948d924325027162f4a418bf72)) +* semantic release test ([2b53b37](https://github.com/exadel-inc/esl/commit/2b53b37455d0cc96ab855a91b40b9b3783aaccca)) +* Sonar code small fix. ([947c4e0](https://github.com/exadel-inc/esl/commit/947c4e097bb2858b6fe9c9064aed49c39e953184)) +* test fix. ([2e09121](https://github.com/exadel-inc/esl/commit/2e09121b335da5675e7155b2a96f0cc44f044ebb)) +* Tests and fix for BreakpointRegistry ([6c1b333](https://github.com/exadel-inc/esl/commit/6c1b333f3195a9e354322998faa67cd47aaa902e)) +* typo fixes. ([c477f5f](https://github.com/exadel-inc/esl/commit/c477f5f8fcbdb6658978f7fecbcfcd3c8cd46885)) + + +### Features + +* add get / set utility and simple compile method ([8283bfa](https://github.com/exadel-inc/esl/commit/8283bfa34a5068d5ddadfadb4aaa64699a6b7936)) +* commit-lint integration ([138c4c2](https://github.com/exadel-inc/esl/commit/138c4c237400f9fb8b1099296cd4762cb36e333a)) +* commit-lint use conventional-commit rules ([03dc5cd](https://github.com/exadel-inc/esl/commit/03dc5cd7c6a982fb546a98e197c951e24d424bfb)) +* ESL Scroll bar updated with unified event handling. ([5a5aa30](https://github.com/exadel-inc/esl/commit/5a5aa305e4fc214bc91b838d65c5dfe18c50fa7a)) +* esl-media-query tests and fixes ([e8f554f](https://github.com/exadel-inc/esl/commit/e8f554f1470559c4a7de1836f4be7b36b7602508)) +* JSX interface for ESL Scrollbar and ESL Media ([1a99746](https://github.com/exadel-inc/esl/commit/1a9974604c57174fa9f936e943815d1277d4388b)) +* update ESL Alert Component ([1c047ae](https://github.com/exadel-inc/esl/commit/1c047aed767d5d4d5670e84e6d0541c6d7cac10f)) + +## [1.41.2](https://github.com/exadel-inc/esl/compare/v1.41.1-alpha...v1.41.2-alpha) (2021-01-13) + + +### Bug Fixes + +* browser list term in package.json ([39426dd](https://github.com/exadel-inc/esl/commit/39426dd33c159454091f5c4e14ed26545ff7e691)) +* build process updated; NPM release file-list fix ([a13bacf](https://github.com/exadel-inc/esl/commit/a13bacf053cdc6fee583965003dfd246881c1a04)) + +## [1.41.1](https://github.com/exadel-inc/esl/compare/v1.41.0-alpha...v1.41.1-alpha) (2021-01-13) + + +### Bug Fixes + +* semantic release test ([2b53b37](https://github.com/exadel-inc/esl/commit/2b53b37455d0cc96ab855a91b40b9b3783aaccca)) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0caae657..9db88a4f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2921 +1,332 @@ -## [4.18.1](https://github.com/exadel-inc/esl/compare/v4.18.0...v4.18.1) (2024-08-16) - - -### Bug Fixes - -* **lint:** fix package missing `kleur` dependency ([b6581b9](https://github.com/exadel-inc/esl/commit/b6581b9094e222ce218e1dd9b3f7295de838d2cf)) - -# [4.18.0](https://github.com/exadel-inc/esl/compare/v4.17.1...v4.18.0) (2024-07-12) - - -### Bug Fixes - -* **deps:** bump puppeteer from 22.11.1 to 22.11.2 ([8a824cf](https://github.com/exadel-inc/esl/commit/8a824cffc9ba70a56bc877fcf6683fb5a80d9b6f)) -* **deps:** bump puppeteer from 22.11.2 to 22.12.0 ([2a5c371](https://github.com/exadel-inc/esl/commit/2a5c3713c51b55efa37d676d89e815708431072c)) -* **deps:** bump puppeteer from 22.12.0 to 22.12.1 ([56ebbfa](https://github.com/exadel-inc/esl/commit/56ebbfa67a90695aa43c867705bcd16fe5fcc5d6)) -* **deps:** bump webpack from 5.92.0 to 5.92.1 ([6909d17](https://github.com/exadel-inc/esl/commit/6909d1709e32b570af9d8cffb7c0ba509d724ae6)) -* **deps:** bump ws from 7.5.9 to 7.5.10 ([330fd97](https://github.com/exadel-inc/esl/commit/330fd97664ba5276e89ef723e4ca388a201424db)) -* **esl-mixin-element:** major fix for nested hierarchy mixin disconnection ([d360da0](https://github.com/exadel-inc/esl/commit/d360da0e61e90c2ef71ba219256505e741429ca3)), closes [#2505](https://github.com/exadel-inc/esl/issues/2505) - - -### Features - -* **lint:** deprecation rule for `ESlMediaRuleList.parse` ([#2509](https://github.com/exadel-inc/esl/issues/2509)) ([a1f916a](https://github.com/exadel-inc/esl/commit/a1f916ae4cf9a7d618516646e6629ae3a58f3d68)) - -## [4.17.1](https://github.com/exadel-inc/esl/compare/v4.17.0...v4.17.1) (2024-06-17) - - -### Bug Fixes - -* **deps:** bump @11ty/eleventy-dev-server from 2.0.0 to 2.0.1 ([9211eaf](https://github.com/exadel-inc/esl/commit/9211eaff52c013cc13a010234f013e13e162df1b)) -* **deps:** bump puppeteer from 22.10.0 to 22.11.0 ([1f3b833](https://github.com/exadel-inc/esl/commit/1f3b83321778662127f9aa1167de0c387feafdfd)) -* **deps:** bump puppeteer from 22.11.0 to 22.11.1 ([40c7f0a](https://github.com/exadel-inc/esl/commit/40c7f0a06018f756c2ec88cfdd472fc1d22a9332)) -* **deps:** bump webpack from 5.91.0 to 5.92.0 ([ab7f579](https://github.com/exadel-inc/esl/commit/ab7f579cc46f602e4575fc9562c9d8d8baa9b7cd)) -* **lint:** notify about version differences for `eslint-plugin-esl` ([4cc0ddc](https://github.com/exadel-inc/esl/commit/4cc0ddc515f1c2b5ed2f4e2d745001784a98ce2f)) - -# [4.17.0](https://github.com/exadel-inc/esl/compare/v4.16.0...v4.17.0) (2024-05-31) - - -### Bug Fixes - -* **deps:** bump pug from 3.0.2 to 3.0.3 ([8006a45](https://github.com/exadel-inc/esl/commit/8006a45a96aaf52e9a341bf13768613cc0bf17b4)) -* **deps:** bump puppeteer from 22.9.0 to 22.10.0 ([d82fa11](https://github.com/exadel-inc/esl/commit/d82fa11e6059fe34eaaca7f0990e8d013826fca7)) -* **esl-animate:** fix handling of `esl-animate-mixin` attribute changes ([0bb3a44](https://github.com/exadel-inc/esl/commit/0bb3a449ff2b5e6c9c74f763fa1d98a6757a6038)) -* **esl-event-listener:** `ESLEventUtils.descriptors` api notes correction ([309c130](https://github.com/exadel-inc/esl/commit/309c130a7e62348fd02f8bf71cc546f9eab3fe21)) -* **esl-event-listener:** fix `listen` decorator strict types are incorrect ([94c85f2](https://github.com/exadel-inc/esl/commit/94c85f2ddbea29b420c2540e025c7d510dfba5b1)) -* **esl-event-listener:** fix re-subscription when condition is used ([b304c52](https://github.com/exadel-inc/esl/commit/b304c52a30d86d462e2d5e03b00353b7bbf39cb7)) -* **esl-media:** add exact element resize observation reduce; extra subscriptions manipulation ([7e58bbd](https://github.com/exadel-inc/esl/commit/7e58bbdc981ec54902bb7940242e238df5780df5)) -* **esl-media:** fix missing reinitialization on start-time attribute changing ([e5922ed](https://github.com/exadel-inc/esl/commit/e5922ed801b08066c96dba10edef6e8abb6655b2)) -* **esl-media:** fix TSX shape for supporting start-time attribute ([1f43a22](https://github.com/exadel-inc/esl/commit/1f43a22094db5f204f0b69df36272d60beffb638)) -* **esl-media:** play-in-viewport tolerance changed to 50% (75% before) ([06d2a13](https://github.com/exadel-inc/esl/commit/06d2a13ca0bbde6c5d4fbd93e6a68f94fe93ef4e)) -* **esl-media:** seekTo leads to no proper behavior when YouTube video is not ready ([f5a0762](https://github.com/exadel-inc/esl/commit/f5a0762301b4e108b708ea1e75834be0b74d2827)) -* **esl-panel:** fix the falsy state of animation in the default open panel in esl-panel-group ([64925e0](https://github.com/exadel-inc/esl/commit/64925e0b47293124430f988474df821c423cc2bd)) -* **esl-popup:** fix it is not possible to set the offset-arrow to 0 ([c6f1a9f](https://github.com/exadel-inc/esl/commit/c6f1a9f2ddfcbbc5bad2adb3da6a73bc34e50277)) -* **esl-utils:** fix event cancellation handling ([8e45a75](https://github.com/exadel-inc/esl/commit/8e45a7560c3260f21dbe22e9beaa64c8afe19ca5)) -* **esl-utils:** fix isRelativeNode signature (can accept undefined as a node) ([4e2c7af](https://github.com/exadel-inc/esl/commit/4e2c7af179d186de521e7a55c0be66d1e3dc68fa)) -* **esl-utils:** fix parseNumber signature (undefined when default provided) ([647b736](https://github.com/exadel-inc/esl/commit/647b7364e3a8024d9d3d4cdef464dc98078a0d01)) -* **site:** `esl-animate` example page wrong animation ([7fd86b4](https://github.com/exadel-inc/esl/commit/7fd86b405839ebb3c15dcd22eabdcf14967e41a5)) - - -### Features - -* **esl-event-listener:** add a `group` key to process batch subscription operations ([3d1ece0](https://github.com/exadel-inc/esl/commit/3d1ece0fcf747efdb7de7fcfb125c4ad02390e50)), closes [#2381](https://github.com/exadel-inc/esl/issues/2381) -* **esl-event-listener:** rework and make warnings of event listener system with more strict and truthful detection of a problem ([f6fd40b](https://github.com/exadel-inc/esl/commit/f6fd40b8e370de1bcc61cb3d6862b2be9188018a)) -* **esl-event-listener:** separate intersection events ([370d33b](https://github.com/exadel-inc/esl/commit/370d33bf384c5fed6ca734bb680a9fd3ede86680)) -* **esl-media:** add ability to provide video initial position (start time) ([7367bb7](https://github.com/exadel-inc/esl/commit/7367bb78c50514a96edbf4cef7b56b2bf0fe0340)) -* **esl-popup:** add handler for refresh event ([5864c92](https://github.com/exadel-inc/esl/commit/5864c9293046a43d49b900818573b4fd879b6834)) -* **esl-utils:** add ability to reject promisifyEvent by using AbortSignal ([b49da0e](https://github.com/exadel-inc/esl/commit/b49da0e533de7771ccc50465d15a51f157bde568)) -* **esl-utils:** add provider function support into `[@prop](https://github.com/prop)` decorator ([9f4bfbe](https://github.com/exadel-inc/esl/commit/9f4bfbee09e1cbd1aeac1b9d4176cc6518682bc9)) -* **esl-utils:** add the ability to use additional attributes in `loadScript` utility ([#2279](https://github.com/exadel-inc/esl/issues/2279)) ([f803226](https://github.com/exadel-inc/esl/commit/f80322656efc10dd138f6452f1d3f601229405c9)) -* **esl-utils:** make DelegatedEvent equal too `DelegatedEvent`, fix types compatibility ([#2360](https://github.com/exadel-inc/esl/issues/2360)) ([458ea53](https://github.com/exadel-inc/esl/commit/458ea53900ed2554772b54e3a0a1567757bb6125)) -* **lint:** add deprecation warning regarding incorrect direct imports for `attr`, `prop`, `jsonAttr`, `boolAttr`, `listen` ([e592048](https://github.com/exadel-inc/esl/commit/e592048d19aa4575f89e056632e7455a50f47eac)) - -# [4.16.0](https://github.com/exadel-inc/esl/compare/v4.15.0...v4.16.0) (2024-04-10) - - -### Bug Fixes - -* **esl-event-listener:** fix support for any object-like host ([ae4c98d](https://github.com/exadel-inc/esl/commit/ae4c98d6839d063f3260bea59d66f86611bab8d4)) -* **esl-share:** fix merging of `additional`(nested) params when `ESLShareConfig.update` method is called ([b9b4e5f](https://github.com/exadel-inc/esl/commit/b9b4e5fad974a60c22fbaf022cd5076ae96e6e74)) -* **esl-share:** rename copy action `alertText` param to `copyAlertMsg` ([d3e3c3a](https://github.com/exadel-inc/esl/commit/d3e3c3ae62197972fed35c08b992a2ba7f121634)) -* **esl-utils:** fix argument list on next fn call ([c2e5c1d](https://github.com/exadel-inc/esl/commit/c2e5c1d89384bff3d7f27f81a79f5e568122b26f)) - - -### Features - -* **esl-event-listener:** ootb ability to skip custom `longwheel` and `swipe` events in case of content scrolling ([#2098](https://github.com/exadel-inc/esl/issues/2098)) ([80c5747](https://github.com/exadel-inc/esl/commit/80c57471d9a7c0c9e126ecd53baafc978999d7f8)), closes [#2085](https://github.com/exadel-inc/esl/issues/2085) -* **esl-toggleable:** introducing a base trigger class in purpose to simplify and make Trigger-Toggleable constructions more API strict in ESL ([4ea1565](https://github.com/exadel-inc/esl/commit/4ea1565d3fc29376f39920b392c9883065723382)) -* **esl-utils:** add provider to default value in attr ([f13cc98](https://github.com/exadel-inc/esl/commit/f13cc98d88dd171d2eb50093fca3e1dad887c9d9)) -* **esl-utils:** extend `attr` decorator with inherit option to take over the value of declared attribute ([a794886](https://github.com/exadel-inc/esl/commit/a794886979347d789e11261c5145c5cb4edc29ef)) - -# [4.15.0](https://github.com/exadel-inc/esl/compare/v4.14.1...v4.15.0) (2024-04-05) - - -### Bug Fixes - -* **esl-event-listener:** fix delegation handling for improper targets ([127297c](https://github.com/exadel-inc/esl/commit/127297cdc0552d6ab810ebb829807b8225b46977)) -* **esl-event-listener:** fix delegation recognition on non-DOM targets ([4716947](https://github.com/exadel-inc/esl/commit/47169479b46994e4fd1571a8cefe0454c983a89b)) -* **esl-event-listener:** fix missing host in debug information of empty subscription ([4abfa1e](https://github.com/exadel-inc/esl/commit/4abfa1e12346662616cc7ac431bb9e0161fe0bf0)), closes [#2078](https://github.com/exadel-inc/esl/issues/2078) -* **esl-event-listener:** improve compatibility of decorated event handler type ([de0c37e](https://github.com/exadel-inc/esl/commit/de0c37e2a399c2e88c16b10c2baaec662538e9a8)) -* **esl-panel-group:** `has-opened` attribute inconsistent ([13003e4](https://github.com/exadel-inc/esl/commit/13003e4b8d5bb039b7ae142739ea8a4667af4e2a)) -* **esl-popup:** create optional autofocus property; update flow with optimized rendering flow ([8e71d20](https://github.com/exadel-inc/esl/commit/8e71d208368f9208b167900211399d138ee7eaa6)) -* **esl-popup:** fix esl-popup infinitely created independently of placeholder state ([63ae414](https://github.com/exadel-inc/esl/commit/63ae4146073b1374bb63f23c37a9ac469a742275)) -* **esl-share:** fix focus behavior to a loop inside esl-share-popup ([e3393fe](https://github.com/exadel-inc/esl/commit/e3393fe6641497af149a6f9df5c87e98e7d637c4)) -* **esl-share:** fix share() method signature of print action ([ca7091d](https://github.com/exadel-inc/esl/commit/ca7091df6c6f361e4b8f3e2b328b08a9fb51044e)) -* **esl-tab:** fix `esl-tabs` initialization delay before DOM ready ([52b0beb](https://github.com/exadel-inc/esl/commit/52b0bebe18fc19dc5a2ff528f1b6b44a7c79dce5)) -* **esl-toggleable:** outside action should be handled from entire page ([aa6f5a5](https://github.com/exadel-inc/esl/commit/aa6f5a52a9c3639dc50e27d837247cfa22653aeb)) -* **esl-tooltip:** add constraints to fix DOM position management for `esl-tooltip` ([9c25137](https://github.com/exadel-inc/esl/commit/9c25137217b93e3ef2c22d5898d550eca0160c2f)) - - -### Features - -* **esl-event-listener:** `ESLWheelTarget` proxy target created to handle long wheel user actions ([#2031](https://github.com/exadel-inc/esl/issues/2031)) ([4dc4bfc](https://github.com/exadel-inc/esl/commit/4dc4bfcd3f2f16f9695b9fd468d3b5a6c587c8e8)), closes [#2017](https://github.com/exadel-inc/esl/issues/2017) -* **esl-open-state:** create ESL Open State mixin ([a8327a8](https://github.com/exadel-inc/esl/commit/a8327a8671bde9544c05cb942589cf80415b84d8)) -* **esl-popup:** add support of `PopupActionParams.extraClass` on popup level ([32b6d0a](https://github.com/exadel-inc/esl/commit/32b6d0a62a10b9009ac1352c9f68b2e7128ec5b0)) -* **esl-popup:** add support of `PopupActionParams.extraStyle` ([399685b](https://github.com/exadel-inc/esl/commit/399685ba69e93a517ac9ec1d081c5926f51bd34b)) -* **esl-share:** add ability to update config items (single one or in batch) ([96eac6b](https://github.com/exadel-inc/esl/commit/96eac6b1ad93d50bf16d76c9f0716d570c625bd9)) -* **esl-share:** add OOTB configuration for the Skype share button ([c3a76c4](https://github.com/exadel-inc/esl/commit/c3a76c490288c61fb1f198d8792c407c350055c8)) -* **esl-share:** add OOTB configuration for the Tumblr share button ([bb73186](https://github.com/exadel-inc/esl/commit/bb731864a0448853f2bb8d96f978b5f8e4b6ab65)) -* **esl-share:** add OOTB configuration for the Viber share button ([5dd4ea4](https://github.com/exadel-inc/esl/commit/5dd4ea41a4700722d97cecdcf40193a5b7f01bd2)) -* **esl-share:** add OOTB configuration for the WhatsApp share button ([748117f](https://github.com/exadel-inc/esl/commit/748117f199fcebd596a2079eea03ca5a14f7fe3e)) -* **esl-toggleable:** introducing alternative internal hooks `shouldShow`/`shouldHide` instead of deprecated `onBeforeShow`/`onBeforeHide`. ([3786423](https://github.com/exadel-inc/esl/commit/378642368986284e041b8cc081f342f89c51769f)) -* **esl-utils:** improve `rect` utility (it's almost ready to be immutable) ([f82fb1e](https://github.com/exadel-inc/esl/commit/f82fb1eed5ca06bff3718ce1ac1c86c2769fb2f3)) - -## [4.14.1](https://github.com/exadel-inc/esl/compare/v4.14.0...v4.14.1) (2023-11-27) - - -### Bug Fixes - -* **esl-media:** fix loading class condition should ignore lazy state ([c532ec0](https://github.com/exadel-inc/esl/commit/c532ec0ae01be87f6f15f466eb62560c7dd30995)) -* **esl-related-target:** fixed handling of bubbling events `esl:show` and `esl:hide` ([6964148](https://github.com/exadel-inc/esl/commit/6964148eef49760a83a4b4cb589d02acb7a8f998)) - -# [4.14.0](https://github.com/exadel-inc/esl/compare/v4.13.1...v4.14.0) (2023-11-24) - - -### Bug Fixes - -* **esl-scrollbar:** fix esl:change:scroll event handler invoked before scrollbar updates ([0c9c952](https://github.com/exadel-inc/esl/commit/0c9c95258d92e9557d047c739a4b5891e786ffcb)) -* **esl-share:** add support types for correct using in Typesript ([143d3b6](https://github.com/exadel-inc/esl/commit/143d3b6ec81f78ab34b5f76702122c23019695a6)) -* **esl-share:** fix a visual issue of displaying a huge list of buttons in a popup ([a2ce0a9](https://github.com/exadel-inc/esl/commit/a2ce0a92958ecd6da4b0a9717cf2af2969b89030)) -* **esl-share:** fix button initialization on create ([72775f6](https://github.com/exadel-inc/esl/commit/72775f6553dfc82565dc40ac2b63201b9bc8067c)) -* **esl-share:** fix ESLShareConfig deduplication behavior on selecting buttons for the list ([fe0d53a](https://github.com/exadel-inc/esl/commit/fe0d53a9b27cc90a029f412409907b59fd9cce97)) -* **esl-share:** fix ready state attribute and ready state event ([3c3dade](https://github.com/exadel-inc/esl/commit/3c3dadefdba1a9837092bd2ff3f3e408b6a48d96)) -* **esl-share:** make list an observable attribute ([f418820](https://github.com/exadel-inc/esl/commit/f4188203bd2f204e5e48258ef27ee714132378d4)) -* **esl-tabs:** fix iOS auto-scroll / arrow controls boundaries on iOS devices when touch-scroll is enabled ([5845c3a](https://github.com/exadel-inc/esl/commit/5845c3a3c202b40781d79283b5304454e72ee9ab)), closes [#2030](https://github.com/exadel-inc/esl/issues/2030) - - -### Features - -* **esl-panel-group:** add ability to enable match-height behavior for tabs height using `esl-tabs-equal-height` class ([6e0ea33](https://github.com/exadel-inc/esl/commit/6e0ea334eb3b1e52726be3788fe32e3c9b00faeb)), closes [#1949](https://github.com/exadel-inc/esl/issues/1949) -* **esl-popup:** internal ESLPopup implementation updated to use ESLEventListeners; usage of cached properties reduced ([9c78249](https://github.com/exadel-inc/esl/commit/9c78249385fe6c9a5c620cbe5031d3419384f64e)) -* **esl-random-text:** create auxiliary `esl-random-text` component to generate dummy text ([0af54a1](https://github.com/exadel-inc/esl/commit/0af54a13926286ea47d3d7d50a010236f43958f8)) -* **esl-share:** rename attribute into popup-params ([f07b471](https://github.com/exadel-inc/esl/commit/f07b471188b652ca94be9eb9d7d450952a523054)) -* **esl-share:** retire esl-share and rename esl-share-popup-trigger into esl-share ([04baf4b](https://github.com/exadel-inc/esl/commit/04baf4bb36a999dde3afdc3985bb2c3f991d34de)) -* **esl-toggleable:** introduce static option `DEFAULT_PARAMS` to define toggleable instance default show/hide params ([14c9e78](https://github.com/exadel-inc/esl/commit/14c9e787cc108e5ef7367dd12b7d7fcfe3b6a59d)) -* **esl-tooltip:** add inlineStyles param to pass styles into shared instance of tooltip ([7b28cf8](https://github.com/exadel-inc/esl/commit/7b28cf88b50eca9c6a50be350943a04c1994ae49)) -* **esl-utils:** introducing `parseCSSTime` format utility to extract time values from CSS ([#821](https://github.com/exadel-inc/esl/issues/821)) ([d26c96e](https://github.com/exadel-inc/esl/commit/d26c96ed28255a384b801b05ae61f04d34abcd70)) -* **eslint:** eslint plugin to find and replace deprecated ESL alias on the customer's projects ([#1374](https://github.com/exadel-inc/esl/issues/1374)) ([3d43f92](https://github.com/exadel-inc/esl/commit/3d43f9250bacbb21087c808baf5ef007343faffe)) - -## [4.13.1](https://github.com/exadel-inc/esl/compare/v4.13.0...v4.13.1) (2023-11-03) - - -### Bug Fixes - -* **esl-event-listener:** fix subscription to intersects event in `IntersectionObserver` ([0d9ccca](https://github.com/exadel-inc/esl/commit/0d9ccca1e3d9b392ff6b88238f4f745c7e47ce14)) -* **esl-event-utils:** `ESLSwipeGestureTarget` target prevents inside element actions ([8fed4bc](https://github.com/exadel-inc/esl/commit/8fed4bc7784ced724c1d0e9410d6e388a1235a10)), closes [#2024](https://github.com/exadel-inc/esl/issues/2024) - -# [4.13.0](https://github.com/exadel-inc/esl/compare/v4.12.0...v4.13.0) (2023-10-25) - - -### Bug Fixes - -* **esl-media:** fix brightcove provider autoplay marker flow ([58793cd](https://github.com/exadel-inc/esl/commit/58793cd14aa9dfd8ca884d3a984a0c85df726b0d)), closes [#1979](https://github.com/exadel-inc/esl/issues/1979) -* **esl-popup:** fix default styles for `esl-popup` tag (uninitialized) ([e25eedf](https://github.com/exadel-inc/esl/commit/e25eedfcaf4c81ba0e5d446609b1843b3f815d77)) -* **esl-popup:** update popup position according activator change ([#1679](https://github.com/exadel-inc/esl/issues/1679)) ([65e3801](https://github.com/exadel-inc/esl/commit/65e3801a9db981a08275c7c6b1b38be449c12d2a)) -* **esl-scrollbar:** fix incorrect `at-start`/`at-end` handling when browser creates dimensions with the floating point ([852ad15](https://github.com/exadel-inc/esl/commit/852ad15b5c8f8c918f60e26199739ff79c8c6580)) -* **esl-share:** add a fill color to social network icons ([c0d62ac](https://github.com/exadel-inc/esl/commit/c0d62ac774a9750e6d1f25f7d48c125a1d674066)) -* **esl-share:** change default twitter (x.com) icon and bg color ([8c544e4](https://github.com/exadel-inc/esl/commit/8c544e4556c6cf9c98f9f827175f8d3f3dbce408)) -* **esl-share:** show copy notification just in case it is successful ([f57fe98](https://github.com/exadel-inc/esl/commit/f57fe98cf9818c861d6f4cb57dc467d1c2387bb8)) -* **esl-utils:** fix `debounce` helper random access of undefined ([8cd87e8](https://github.com/exadel-inc/esl/commit/8cd87e872cd3a2dcd6231c09e2cdefb7db5ea3d1)) - - -### Features - -* **esl-event-listener:** add `condition` descriptor property to legally prevent subscription ([00b719c](https://github.com/exadel-inc/esl/commit/00b719ca28994f41b2537aefba740b6ed16234ed)), closes [#1947](https://github.com/exadel-inc/esl/issues/1947) -* **esl-event-listener:** create `ESLIntersectionTarget` adapter utility for managing `IntersectionObserver` subscriptions trough event listeners ([34bb7e8](https://github.com/exadel-inc/esl/commit/34bb7e835a33080b63a3dc83928cfbd9f4751072)) -* **esl-share:** add default-icon marker to render icon on button init ([081b526](https://github.com/exadel-inc/esl/commit/081b52601583cc3500e9cf40298ddeec702e0b93)) -* **esl-share:** add out of the box share config default ([4b97632](https://github.com/exadel-inc/esl/commit/4b97632007dab87afaa7966a27f3aade80369c12)) -* **esl-share:** create esl-share-list component ([90b1c1d](https://github.com/exadel-inc/esl/commit/90b1c1d8f4f2a4afa815026a242f1be78a72b2ba)) -* **esl-share:** remove iconBackground property from share buttons config ([27d793d](https://github.com/exadel-inc/esl/commit/27d793d542a3d990d2eb1a94f67135ba1885b7d2)) -* **esl-share:** rework esl-share-button custom element API ([96a7f84](https://github.com/exadel-inc/esl/commit/96a7f84d4f59cac504dd168dd54767cc9687d787)) -* **esl-share:** rework share popup internal implementation ([9b775a0](https://github.com/exadel-inc/esl/commit/9b775a07bb9db96ba6815eb548d0065d28aa965c)) - -# [4.12.0](https://github.com/exadel-inc/esl/compare/v4.11.0...v4.12.0) (2023-09-22) - - -### Bug Fixes - -* **esl-tabs:** observe element resize instead of window using `ESLResizeObserverTarget` ([9dd4639](https://github.com/exadel-inc/esl/commit/9dd4639c6d937758725c5a4e9e444c6c78d31215)) - - -### Code Refactoring - -* **esl-event-listener:** restructure `esl-event-listener/core/targets` ([fbdb6c3](https://github.com/exadel-inc/esl/commit/fbdb6c335e9863fddb6a817a66689cc127356335)) - - -### Features - -* **esl-event-listener:** `ESLEventUtils.unsubscribe` implementation moved to internal `ESLEventListener.unsubscribe` ([eaa4204](https://github.com/exadel-inc/esl/commit/eaa42045c39f3cbb5f07568aab93b9bd2a6fba98)) -* **esl-event-listener:** add `SwipeEventTarget` to subscribe `swipe` events using `ESLEventListener` ([e7e69a2](https://github.com/exadel-inc/esl/commit/e7e69a257b74f985be0c191b8e722dcb124bc74c)), closes [#1809](https://github.com/exadel-inc/esl/issues/1809) -* **esl-media:** support for lazy initialization by `lazy` attribute for `ESLMedia` ([f83d65a](https://github.com/exadel-inc/esl/commit/f83d65a91e064e6f8aa2ddc7f9cc4e8b49eacba5)) - - -### BREAKING CHANGES - -* **esl-event-listener:** (if there is references to internal files) `resize.adapter.ts`/`resize.adapter.event.ts` renamed to `resize.target.ts`/`resize.target.event.ts` - -# [4.11.0](https://github.com/exadel-inc/esl/compare/v4.10.0...v4.11.0) (2023-09-01) - - -### Bug Fixes - -* **esl-event-listener:** `ESLResizeObserverTarget.for` handles no target cases silently (warning + null result) ([b28d6af](https://github.com/exadel-inc/esl/commit/b28d6aff7a674fc04d23aaedadc03ace0f8d9cb3)), closes [#1885](https://github.com/exadel-inc/esl/issues/1885) -* **esl-event-listener:** fix support of separate DOM realms for `ESLEventListener` ([905e7a8](https://github.com/exadel-inc/esl/commit/905e7a886b6ab975e32e712ae4f4b1109c42f0de)) -* **esl-media:** update `esl-media` refresh handler to use consistent `isElement` check ([d6f8855](https://github.com/exadel-inc/esl/commit/d6f8855428d69323815689335449ce1e17f9568f)) -* **esl-scrollbar:** update `esl-scrollbar` to use consistent `isElement` check on refresh and mutation observation ([f817837](https://github.com/exadel-inc/esl/commit/f817837e5ea1b35f8b4f0d2b2000321d2ddcc560)) -* **esl-trigger:** update `esl-trigger` to use consistent `isElement` check in `isTargetIgnored` check ([fe41661](https://github.com/exadel-inc/esl/commit/fe4166110dd077ac6759a7b4b509e6b11af058b2)) -* **esl-utils:** fix support of separate DOM realms for `getScrollParent` ([eb7ede6](https://github.com/exadel-inc/esl/commit/eb7ede60531c97f91c90e66df00aff1f43794514)) -* **esl-utils:** fix support of separate DOM realms for `resolveDomTarget` ([c16e1dd](https://github.com/exadel-inc/esl/commit/c16e1ddfa762f2ad7d64f308857fb5aa1bc93bc8)) -* **esl-utils:** fix types and Element check for `isVisible` predicate (support of separate DOM realms) ([7c83e09](https://github.com/exadel-inc/esl/commit/7c83e09e576ca1afb76cbf93698a261b28de9c42)) - - -### Features - -* **esl-panel-group:** add readonly `has-opened` marker for `esl-panel-group` ([a565a71](https://github.com/exadel-inc/esl/commit/a565a71ba7d6b89f834b5241b941b6314012ac4a)) -* **esl-panel-group:** support for esl-panel-group driven animation to closed state ([0698b1c](https://github.com/exadel-inc/esl/commit/0698b1c4d3942127adcd4c2674ce4807dbf9f963)) -* **esl-utils:** `isPlainObject` and `isElement` type guard utilities ([86f0bfb](https://github.com/exadel-inc/esl/commit/86f0bfb957d2dfbea4143b9b5af6d3e59a1def32)) - -# [4.10.0](https://github.com/exadel-inc/esl/compare/v4.9.4...v4.10.0) (2023-08-10) - - -### Bug Fixes - -* **esl-footnotes:** shape to support TSX is missing in module ([fd8cd07](https://github.com/exadel-inc/esl/commit/fd8cd076e07d2ea745da9cd59488f3f3001dbcae)) -* **esl-togglable:** open attribute change behavior ([826b27b](https://github.com/exadel-inc/esl/commit/826b27b9e4a48e0e42da96c0da7a8db1563473e1)) -* **esl-toggleable:** fix activator when close-on inner trigger click handled ([#1852](https://github.com/exadel-inc/esl/issues/1852)) ([f450d8b](https://github.com/exadel-inc/esl/commit/f450d8b68395785b5bb7e67d753994653d9d1a0a)) -* **esl-utils:** fix unhandled rejection when deferred is rejected but actual promise was not requested ([#1839](https://github.com/exadel-inc/esl/issues/1839)) ([5e111ba](https://github.com/exadel-inc/esl/commit/5e111baf343fba2c4e49c9618131fd50b78376f8)) - - -### Features - -* **esl-toggleable:** change `closeOnEsc` and `closeOnOutsideAction` mappers to extended boolean ('0' and 'false' values now considered as falsy) ([181a2b7](https://github.com/exadel-inc/esl/commit/181a2b767cfcb041620d30c95e08dffd3d3fd064)) -* **esl-trigger:** change `ignoreEsc` mapper to extended boolean ('0' and 'false' values now considered as falsy) ([9ccee3d](https://github.com/exadel-inc/esl/commit/9ccee3d03486df3cc88a7cfd06448f18dd139623)) -* **esl-utils:** `lockScroll` / `unlockScroll` methods reworked with no-scroll detection ([25b5b91](https://github.com/exadel-inc/esl/commit/25b5b9139c36f9bfc78319ba39e7cf6cee464a46)) -* **esl-utils:** create `toBooleanAttribute` and create extended boolean attribute flow ([e039256](https://github.com/exadel-inc/esl/commit/e0392569045dc8526d0d1f8ff383e54b044f5f1b)) - -## [4.9.4](https://github.com/exadel-inc/esl/compare/v4.9.3...v4.9.4) (2023-07-17) - - -### Bug Fixes - -* **esl-base-element:** fix redefine tag feature (existing component receives incorrect tag name) ([6c17690](https://github.com/exadel-inc/esl/commit/6c17690e9c332927df91bd7c87e93cb0732ba8bf)), closes [#1804](https://github.com/exadel-inc/esl/issues/1804) - -## [4.9.3](https://github.com/exadel-inc/esl/compare/v4.9.2...v4.9.3) (2023-07-13) - - -### Bug Fixes - -* **esl-footnotes:** fix esl-tooltip related to the note does not perceive dir and lang of original content ([e506d0d](https://github.com/exadel-inc/esl/commit/e506d0dbf6504197032e384139115433b8d1a414)) - -## [4.9.2](https://github.com/exadel-inc/esl/compare/v4.9.1...v4.9.2) (2023-07-12) - - -### Bug Fixes - -* **esl-footnotes:** remove the possibility of setup esl-note anchor markup conditionally ([a26a3ed](https://github.com/exadel-inc/esl/commit/a26a3eda139eabc5db2094b89028b4c3cd0db8cb)) - -## [4.9.1](https://github.com/exadel-inc/esl/compare/v4.9.0...v4.9.1) (2023-07-07) - - -### Bug Fixes - -* hotfix for writeable `is` field short initialization syntax ([e46461b](https://github.com/exadel-inc/esl/commit/e46461bf69335993f7005efd55b8fd55dbe0f152)) - -# [4.9.0](https://github.com/exadel-inc/esl/compare/v4.8.0...v4.9.0) (2023-07-07) - - -### Bug Fixes - -* **esl-animate:** default print styles for esl-animate ootb animation ([3d4ea2a](https://github.com/exadel-inc/esl/commit/3d4ea2a52cb5c5de019bf5aedc94d182fbf7dfc8)) -* **esl-animate:** missing types for `esl-animate` module ([2000e04](https://github.com/exadel-inc/esl/commit/2000e041f882a7f22af620285b52ff5e5caf3b19)) -* **esl-base-element:** more accurate check for element redeclaration (detects both: tag and class inconsistency) ([66266a9](https://github.com/exadel-inc/esl/commit/66266a9996d52245c3c094edfb8397066e1d6895)) -* **esl-mixin-element:** remove mixin store invalidate on re-requesting registration + more accurate exceptions ([86b7620](https://github.com/exadel-inc/esl/commit/86b7620a3e18408701f7bde3234bc7781abfff9a)) -* **esl-mixin-element:** significant improvement for mixin registration process (scope DOM invalidation to changes records and registered mixin type ) ([06bd2ff](https://github.com/exadel-inc/esl/commit/06bd2ff1d32337af86fbe7d43b4ecc327b17110c)) -* **esl-panel-group:** default print styles for esl-panel-group ([9a2fc28](https://github.com/exadel-inc/esl/commit/9a2fc281d06b2070a90679cbdf758d606dd9aa0b)) -* **esl-panel:** default print styles for esl-panel ([68cf512](https://github.com/exadel-inc/esl/commit/68cf512f709d51686c03797066e382f1f4b38080)) -* **esl-select:** activator lost on dropdown hide ([02de9dd](https://github.com/exadel-inc/esl/commit/02de9ddb7fd6a3e590b4201890565a9321221162)) -* **gh-pages:** default print styles for gh-pages ([bb8a0ab](https://github.com/exadel-inc/esl/commit/bb8a0ab98ac85502af179d43a521dbeee32666cc)) - - -### Code Refactoring - -* **esl-animate:** rework default animation classes ([69ef3af](https://github.com/exadel-inc/esl/commit/69ef3af0927e5cf2e283326e86bc134f8999a477)) - - -### Features - -* **esl-footnotes:** add support of the anchor relationship between note and footnote for the print version ([d30c662](https://github.com/exadel-inc/esl/commit/d30c6629729071db724bd377681863dbf260947b)) -* **esl-footnotes:** create esl-note-ignore mixin ([3caa0d5](https://github.com/exadel-inc/esl/commit/3caa0d52ef260876009bb04c961ebc5fbba11a10)) -* **esl-select:** internal `esl-select-dropdown` is migrated to `esl-popup` ([#1393](https://github.com/exadel-inc/esl/issues/1393)) ([5f0009c](https://github.com/exadel-inc/esl/commit/5f0009cdefb341aa3cd0f5ea7e95e84633148a27)) -* **esl-share:** create esl-share-trigger component ([75a84f6](https://github.com/exadel-inc/esl/commit/75a84f6eb29e971b5bd2095af809ad9149c3c078)) -* **esl-share:** create popup mode for esl-share component ([0df4116](https://github.com/exadel-inc/esl/commit/0df41165e9f5aee54709f2c3c68609412aa5d6bb)) - - -### BREAKING CHANGES - -* **esl-animate:** default esl-animate module class `esl-animate-slide-up` replaced with `esl-animate-slide up` -* **esl-animate:** default esl-animate module class `esl-animate-slide-down` replaced with `esl-animate-slide down` -* **esl-animate:** default esl-animate module class `esl-animate-slide-left` replaced with `esl-animate-slide left` -* **esl-animate:** default esl-animate module class `esl-animate-slide-right` replaced with `esl-animate-slide right` - -# [4.8.0](https://github.com/exadel-inc/esl/compare/v4.7.1...v4.8.0) (2023-06-26) - - -### Features - -* **esl-animate:** animate mixin element ([9f9c156](https://github.com/exadel-inc/esl/commit/9f9c156c098df5d4de61e7cc7d13753e38a0391f)) -* **esl-toggleable:** ability to set up state class to any related element ([#1728](https://github.com/exadel-inc/esl/issues/1728)) ([648b114](https://github.com/exadel-inc/esl/commit/648b1149b1dc336779350fdea25f1cd90f4837f7)), closes [#1727](https://github.com/exadel-inc/esl/issues/1727) - -## [4.7.1](https://github.com/exadel-inc/esl/compare/v4.7.0...v4.7.1) (2023-06-15) - - -### Bug Fixes - -* **esl-utils:** fix missing export of `createDeferred` method under `esl-utils/async/promise` ([756440e](https://github.com/exadel-inc/esl/commit/756440e8840e131a03d0ed7f82c9bd93caa3ba59)) -* **esl-utils:** fix unsubscription if `promisifiedEvent` rejected by timeout ([#1698](https://github.com/exadel-inc/esl/issues/1698)) ([#1724](https://github.com/exadel-inc/esl/issues/1724)) ([b675793](https://github.com/exadel-inc/esl/commit/b675793079c2650f243b1dac580f0666e801a732)) - -# [4.7.0](https://github.com/exadel-inc/esl/compare/v4.6.0...v4.7.0) (2023-06-09) - - -### Bug Fixes - -* **esl-utils:** fix sequence finder behaviour in case step function leads to loop ([c23e2c2](https://github.com/exadel-inc/esl/commit/c23e2c2622bec1e894ba97ba068d198d6dd53a4e)) - - -### Code Refactoring - -* **esl-carousel:** remove legacy esl-carousel implementation ([b31599a](https://github.com/exadel-inc/esl/commit/b31599ab101afb14081c4e2d8619ce9ee390571a)) - - -### Features - -* **esl-event-listener:** add the ability to get the current delegated event target ([#1675](https://github.com/exadel-inc/esl/issues/1675)) ([8b4b089](https://github.com/exadel-inc/esl/commit/8b4b089ca8d63ae7df0f39e4434ff7b2b38f5e59)) -* **esl-popup:** change the logic of auto injection of arrow ([a7ba04c](https://github.com/exadel-inc/esl/commit/a7ba04c2f9f16caab992566354a98376fca1672f)) -* **esl-utils:** add `findNextLooped` and `findPrevLooped` common traversing utility ([80a4e67](https://github.com/exadel-inc/esl/commit/80a4e67324301665b16b3780f6f81e03bcc27914)) -* **esl-utils:** add `promisifyNextRender` common utility ([3a93887](https://github.com/exadel-inc/esl/commit/3a938876791201e38919af33646d8fb28d248e45)) -* **esl-utils:** introduce `promisifyTransition` utility ([68d0556](https://github.com/exadel-inc/esl/commit/68d0556d56624728ff57a77e5f6cead568ab14f3)) -* **esl-utils:** utility to postpone execution to microtask ([4f4f637](https://github.com/exadel-inc/esl/commit/4f4f6374741d2534547e650bf59d39596008f25b)) - - -### BREAKING CHANGES - -* **esl-carousel:** `draft/esl-carousel` no longer available - -# [4.6.0](https://github.com/exadel-inc/esl/compare/v4.5.0...v4.6.0) (2023-05-22) - - -### Bug Fixes - -* **esl-utils:** fix `unwrap` method signature types ([ee16641](https://github.com/exadel-inc/esl/commit/ee16641844fb7d10f845eb26ff54264c799833ac)) -* **esl-utils:** make ts decorators work with babel ([05462da](https://github.com/exadel-inc/esl/commit/05462daf52d1471a9d7676abae2862d2f8e5556a)) - - -### Features - -* **🚩esl-share:** beta version of esl-share([#1327](https://github.com/exadel-inc/esl/issues/1327)) component released ([#1660](https://github.com/exadel-inc/esl/issues/1660)) ([be7aa83](https://github.com/exadel-inc/esl/commit/be7aa830c47ddc0b8e70cd593718e90709e9d3f5)) - -# [4.5.0](https://github.com/exadel-inc/esl/compare/v4.4.1...v4.5.0) (2023-05-15) - - -### Features - -* `ESLBaseComponent` interface shared between `ESLMixinElement` and `ESLBaseElement` ([507dfe8](https://github.com/exadel-inc/esl/commit/507dfe88e9473555f8f0d50c1ea32b0415413e72)) -* **esl-mixin-element:** `ESLMixinElement` API updates: **IMPORTANT !** hooks methods now have protected visibility modifier ([2be1b44](https://github.com/exadel-inc/esl/commit/2be1b4438d7d47af573b83546085475d4e512322)) -* **esl-mixin-element:** add `getAll` public utility method ([2be1b44](https://github.com/exadel-inc/esl/commit/2be1b4438d7d47af573b83546085475d4e512322)) -* **esl-mixin-element:** add the ability to get mixin by name by `ESLMixinElement` ([7365e13](https://github.com/exadel-inc/esl/commit/7365e13d563b1f56daab5be4149a4e6475e1ec3f)) -* **esl-mixin-element:** improve observation mechanism of mixin's observed attributes ([e7ed2ab](https://github.com/exadel-inc/esl/commit/e7ed2ab93493e15e22fbf1c37f3baf310e3651e9)) -* **esl-mixin-element:** mixin primary attribute observed unconditionally by mixin manager ([c6741a4](https://github.com/exadel-inc/esl/commit/c6741a4dddafc11a5017b8bad9cfbf0408aa2ab2)) - - -## [4.4.1](https://github.com/exadel-inc/esl/compare/v4.4.0...v4.4.1) (2023-04-25) - - -### Bug Fixes - -* **esl-utils:** incorrect throttle behaviour ([918944d](https://github.com/exadel-inc/esl/commit/918944d0255961651eb3df8f060a9b65fc1ca228)) -* **gh-pages:** add new favicon icons ([b2846be](https://github.com/exadel-inc/esl/commit/b2846bea077fe19a8c321349b795837a43cb78e6)) -* **gh-pages:** add new favicon icons according to the favicons guide ([83d0ca4](https://github.com/exadel-inc/esl/commit/83d0ca44ac2640fed04023878c696399562b5bac)) - -## [4.4.1](https://github.com/exadel-inc/esl/compare/v4.4.0...v4.4.1) (2023-04-25) - - -### Bug Fixes - -* **esl-utils:** incorrect throttle behaviour ([918944d](https://github.com/exadel-inc/esl/commit/918944d0255961651eb3df8f060a9b65fc1ca228)) -* **gh-pages:** add new favicon icons ([b2846be](https://github.com/exadel-inc/esl/commit/b2846bea077fe19a8c321349b795837a43cb78e6)) -* **gh-pages:** add new favicon icons according to the favicons guide ([83d0ca4](https://github.com/exadel-inc/esl/commit/83d0ca44ac2640fed04023878c696399562b5bac)) - -# [4.4.0](https://github.com/exadel-inc/esl/compare/v4.3.1...v4.4.0) (2023-04-12) - - -### Bug Fixes - -* **esl-event-listener:** fix `ESLEventTargetDecorator` dispatched event `target` ([8252988](https://github.com/exadel-inc/esl/commit/82529888e18e857a0fe86ff4fdd4faf4c746f26b)) -* **esl-event-listener:** fix target delegation checking ([b307ce6](https://github.com/exadel-inc/esl/commit/b307ce647c9efd3d7e639dcf873f7a428ecb1d85)) -* **esl-event-listener:** fix typechecking for TS5 ([d434275](https://github.com/exadel-inc/esl/commit/d434275d7db041c77329f01885dcadf3e53fdb3f)) -* **esl-media:** fix `iv_load_policy` param and small test regexp optimization in YouTube provider ([2deb64b](https://github.com/exadel-inc/esl/commit/2deb64b8ff2e6c564eba5f5b95746c2c285d9394)) -* **esl-utils:** `SynteticEventTarget` no longer mutate `event.target` without need; `event.currentTarget` fix to current instance ([d5e2c78](https://github.com/exadel-inc/esl/commit/d5e2c78a3c41341dffe46c7419aedff0f38ae1d1)), closes [#1534](https://github.com/exadel-inc/esl/issues/1534) - - -### Code Refactoring - -* **esl-event-listener:** change API of extended EventTargets ([39b01cc](https://github.com/exadel-inc/esl/commit/39b01cc210672a6cd832b56a4bf5dfd0b9fb1b09)) - - -### Features - -* **esl-base-element:** `ESLBaseElement.prototype.baseTagName` shortcut ([c10fc6d](https://github.com/exadel-inc/esl/commit/c10fc6da0547658220693979c32d566ccea1637b)) -* **esl-event-listener:** improved `ESLResizeObserverTarget` API with a standardized `ESLElementResizeEvent` ([8e1d72e](https://github.com/exadel-inc/esl/commit/8e1d72e7f28ad6a1865ed092cbc0253709e5b9dd)) -* **esl-event-listener:** support for `ESLDomElementTarget` in `ESLResizeObserverTarget` ([#1573](https://github.com/exadel-inc/esl/issues/1573)) ([f177381](https://github.com/exadel-inc/esl/commit/f177381066024f5fc74704f86a16682f6b2346f8)) -* **esl-utils:** `getEventListeners()` method introduced for `SynteticEventTarget` ([#1548](https://github.com/exadel-inc/esl/issues/1548)) ([c293b61](https://github.com/exadel-inc/esl/commit/c293b61e61e913a7e299e76a2aad88c90bbc9a12)) - - -### BREAKING CHANGES (Beta) - -* **esl-event-listener:** beta `ESLEventUtils.resize` replaced with `ESLResizeObserverTarget.for` -* **esl-event-listener:** beta `ESLEventUtils.decorate` replaced with `ESLDecoratedEventTarget.for` - -## [4.3.1](https://github.com/exadel-inc/esl/compare/v4.3.0...v4.3.1) (2023-03-09) - - -### Bug Fixes - -* **esl-event-listener:** (HOTFIX) `[@listen](https://github.com/listen)` should not require host typeof `ESLDomElementTarget` ([01b84c3](https://github.com/exadel-inc/esl/commit/01b84c361100237a181a46595e0f6b67a5067353)) - -# [4.3.0](https://github.com/exadel-inc/esl/compare/v4.2.1...v4.3.0) (2023-03-08) - - -### Bug Fixes - -* **esl-event-utils:** fix `SyntheticEventTarget` event `target` descriptor configurability ([64a6a84](https://github.com/exadel-inc/esl/commit/64a6a8439a338c4fc2e26a9be6f7750d1487a5ae)) -* **esl-media:** `ref:` prefix is optional, user should be able to use internal id ([465fbec](https://github.com/exadel-inc/esl/commit/465fbecd9b45d5f1a5f2fabf8db5a62b5d0f1ba5)) - - -### Features - -* **esl-event-listener:** `SyntheticEventTarget` extended with ability to pass custom target to `dispatchEvent` method ([4982a45](https://github.com/exadel-inc/esl/commit/4982a45bf7c38304e3e360180d47152fce1db4ad)) -* **esl-event-listener:** create EventTarget decorator and window target utilities ([ca0f0de](https://github.com/exadel-inc/esl/commit/ca0f0de70adf180654afd50b06f78f8e74451f7f)) -* **esl-event-listener:** New `ESLEventUtils.resize` utility to create an adapter `EventTargets` for `ResizeObserver` ([e1de096](https://github.com/exadel-inc/esl/commit/e1de09611815d65bccceb91ae2771b870a70c345)) -* **esl-utils:** `SyntheticEventTarget` API extended with ability to choose target value and specify default event type ([3fc1f5d](https://github.com/exadel-inc/esl/commit/3fc1f5d5a7f87fe41d6f91737f7d217eedb5bb4e)) -* **esl-utils:** attr api extension ([07e3a9f](https://github.com/exadel-inc/esl/commit/07e3a9ffd1a54a9f83cf4e643e507568e730d84c)) - -## [4.2.1](https://github.com/exadel-inc/esl/compare/v4.2.0...v4.2.1) (2023-02-20) - - -### Bug Fixes - -* **esl-image:** attribute callback before connect ([659fa20](https://github.com/exadel-inc/esl/commit/659fa2031577bba2ce19af32c6950c9403a2ef27)) -* **esl-utils:** `memoize.clear` and `memoize.has` signature types improved ([4068bfa](https://github.com/exadel-inc/esl/commit/4068bfaff2150cd2aeb389fcc230a07cd826466a)) - -# [4.2.0](https://github.com/exadel-inc/esl/compare/v4.1.1...v4.2.0) (2023-02-02) - - -### Bug Fixes - -* **esl-event-listener:** allow to redeclare function descriptor data ([e304726](https://github.com/exadel-inc/esl/commit/e304726ba00f65b70ac25a194703a21aa9ac5d5c)) -* **esl-event-listener:** fix `isEventDescriptor` check for incorrect type of event key ([729b486](https://github.com/exadel-inc/esl/commit/729b486e0a934820502ffa8696be28a4f1b1465a)) -* **esl-footnotes:** esl-note is not respond on "ignore" attribute change ([7e0f4b8](https://github.com/exadel-inc/esl/commit/7e0f4b8ea8802b93ca0dc9060cfa47a371d729be)) -* **esl-mixin-element:** fix oldValue argument of attributeChangedCallback ([36c8d0f](https://github.com/exadel-inc/esl/commit/36c8d0fd5c20ba04eeed6139bcf1688c740e0036)) -* **esl-utils:** fix `isObject` predicate signature to accept symbol keys ([c8f0611](https://github.com/exadel-inc/esl/commit/c8f0611ff916e15e8be028766baf6f98a5c9e2a4)) - - -### Features - -* **esl-event-listener:** IE safe private key for ESLEventListeners (now stores under Symbol in modern browsers) ([eb5e6c3](https://github.com/exadel-inc/esl/commit/eb5e6c3c37a224309ba3699f47ac75e01f9dbe9f)) -* **esl-event-listener:** simplified way to subscribe all auto descriptors ([e6c432b](https://github.com/exadel-inc/esl/commit/e6c432b542d7b9f74079fb5012e9b87373bf805f)) -* **esl-related-target:** make related target able to targeting multiple related togglable ([#1398](https://github.com/exadel-inc/esl/issues/1398)) ([9a4423c](https://github.com/exadel-inc/esl/commit/9a4423c63f34731a9708cd93aaca41e8f07690de)) -* **esl-utils:** `isVisible` predicate and `ESLTraversingQuery` filter created according to [#931](https://github.com/exadel-inc/esl/issues/931) spec ([#1341](https://github.com/exadel-inc/esl/issues/1341)) ([70ea8fb](https://github.com/exadel-inc/esl/commit/70ea8fbc134eb03ec2aba911600f7441ee953c93)) -* **esl-utils:** isVisible predicate ([510d396](https://github.com/exadel-inc/esl/commit/510d396e6393b907afc885f038684b421d2a7449)) - -## [4.1.1](https://github.com/exadel-inc/esl/compare/v4.1.0...v4.1.1) (2023-01-11) - - -### Bug Fixes - -* **esl-popup:** protected methods visibility ([f53af36](https://github.com/exadel-inc/esl/commit/f53af369e75e6fe902328b947348d94c3ae41627)) -* **redirect:** add permalink for ` /utils/esl-utils/` path ([bb3e01a](https://github.com/exadel-inc/esl/commit/bb3e01a1e65dd3ab65c18940bcdb03a57cf108ca)) - -# [4.1.0](https://github.com/exadel-inc/esl/compare/v4.0.2...v4.1.0) (2022-12-09) - - -### Bug Fixes - -* **esl-scrollbar:** add `resize` event ([36cd4c3](https://github.com/exadel-inc/esl/commit/36cd4c304feaa4d2279a04f860c478ba007004cc)) -* **esl-scrollbar:** change target on `window` for `scroll` event ([93a0560](https://github.com/exadel-inc/esl/commit/93a05606178180185f7085fe72e9c0defb55784f)) -* **esl-scrollbar:** fix visibility and size of scroll at start ([#1369](https://github.com/exadel-inc/esl/issues/1369)) ([3f58aac](https://github.com/exadel-inc/esl/commit/3f58aacda313cc0a55562a4085a4e15db8b1d480)) -* **esl-scrollbar:** remove meta declaration `[@listen](https://github.com/listen)` ([e105286](https://github.com/exadel-inc/esl/commit/e105286f3ae5013a9474a3d1a6a9c4ad816c88aa)) -* **gh-pages:** code refactoring ([4a8aefb](https://github.com/exadel-inc/esl/commit/4a8aefb3141013f204714264990de25a104b5180)) -* **gh-pages:** code refactoring ([b48eed0](https://github.com/exadel-inc/esl/commit/b48eed098c70bfa9767b0971d9c54df18f562d14)) -* **gh-pages:** create redirect links ([bd7228f](https://github.com/exadel-inc/esl/commit/bd7228fa68c24c1a02e908d0a5746146eb175df9)) - - -### Features - -* **esl-related-target:** add esl-related-target mixin ([97255b1](https://github.com/exadel-inc/esl/commit/97255b15e0f67eb74817cf87a2413d992a2af544)) -* **esl-utils:** add ability to pass multiple memoized props to clear at once ([3dca390](https://github.com/exadel-inc/esl/commit/3dca3905a49aed181b464a686536572e8c0b0d71)) -* **eslint:** move files to new `linting` folder ([a196683](https://github.com/exadel-inc/esl/commit/a1966832ae6fc7872ef464d6e4454185ea1be2c6)) - -## [4.0.2](https://github.com/exadel-inc/esl/compare/v4.0.1...v4.0.2) (2022-10-19) - - -### Bug Fixes - -* **esl-media-query:** fix missing Event type in `core.ts` bundle ([afe54f7](https://github.com/exadel-inc/esl/commit/afe54f7916b6e16c53322dfb492ed2d1ab5936c8)) - -## [4.0.1](https://github.com/exadel-inc/esl/compare/v4.0.0...v4.0.1) (2022-10-18) - - -### Bug Fixes - -* **esl-media:** make `media-type` optional if `media-src` defined (auto-provider feature) ([029e368](https://github.com/exadel-inc/esl/commit/029e368bbafbdad7a4f8c648b96892d090663096)) -* **esl-tabs:** fix styles based on current scrollable type ([c8dd855](https://github.com/exadel-inc/esl/commit/c8dd855c95384d38ffe88c06c1b20c8088e6cc11)) -* fix `esl-tabs` and `esl-panel-group` shape `children` property ([6ad7582](https://github.com/exadel-inc/esl/commit/6ad7582e93406b92bb0f4a5b404978f62b310056)) - -# [4.0.0](https://github.com/exadel-inc/esl/compare/v3.14.3...v4.0.0) (2022-10-04) - -## ESL Core - -### Features: -- `ESLEventListener`s functionality introduced -- `ESLMixinElement`s functionality introduced -- `ESLBaseElement` extended API - - `ESLBaseElement.create` shortcut to create current custom element - -### Structural changes: -- Attribute decorators moved to the `esl-utils` -- All ESL modules migrated to `ESLEventListener`s -- Event names are now defined on the prototype level - -### BREAKING CHANGES -- `$$fire` no longer adds 'esl:' prefix to the fired events - ---- - -## ESL Media Query - -### Features: -- `ESLMediaQuery` now implements `EventTarget` interface -- `ESLMediaRuleList` API reworked with `EventTarget` interface and new calculation strategy - -### BREAKING CHANGES -- `ESLMediaRuleList.parseTuple` arguments order changed -- `ESLMediaRule` no longer supports default marker, now "default" is equal to "all" query -- `ESLMediaRuleList` observation callback signature changed, now it should be `EventListener` -- `ESLMediaRuleList.prototype.default` removed as no longer default rules -- `ESLMediaRuleList` no longer fires events on rule change, now it's based on active value change -- `ESLMediaRuleList` now uses merging of all active rules to define result value, however you were still able to get the last active rule value -- `ESLMediaRuleList.prototype.active` now returns an array of active rules - ---- - -## ESL Traversing Query - -### Features: -- add comma support to define multiple target ([#1120](https://github.com/exadel-inc/esl/issues/1120) / [#1129](https://github.com/exadel-inc/esl/issues/1129)) ([2890d7b](https://github.com/exadel-inc/esl/commit/2890d7b7667492b982b266048d23874c57b938ea)), closes [#1102](https://github.com/exadel-inc/esl/issues/1102) -- add ability to find closest element ([ada6fbb](https://github.com/exadel-inc/esl/commit/ada6fbb172a2fb2cf0d435420ad8fb0a46e7766f)) - ---- - -## ESL Utils - -### Features: -- ability to grow/shrink axis of the `Rect` ([1c58a1c](https://github.com/exadel-inc/esl/commit/1c58a1c19b0aa82abf7eb73c40781e9c4a4860ba)) -- `SyntheticEventTarget` to implement `EventTarget` interface with more listeners control ([e4f3eb8](https://github.com/exadel-inc/esl/commit/e4f3eb89e0dd8227937d476a8d2090730342de64)) -- simplify and extend `@prop` decorator API ([fd6ede3](https://github.com/exadel-inc/esl/commit/fd6ede34b0a3c7496083cb58aa9b726d4a692085)) -- add `skipOneRender` RAF utility ([ddc3227](https://github.com/exadel-inc/esl/commit/ddc322798e6f8cf447874896786fe6d368bbe5ef)) -- add ability to pass predicate to sequence finder ([dd8c3cb](https://github.com/exadel-inc/esl/commit/dd8c3cbb43ed529330c32459b9787949a0927a01)) -- add `@decorate` decorator to bind and decorate method of the class -- `@attr` extended with ability to pass Serializer/Parser ([012eb83](https://github.com/exadel-inc/esl/commit/012eb83ebcbba8315a2766af090239774c21234e)) -- create dom html sanitize method ([004642f](https://github.com/exadel-inc/esl/commit/004642f866ac1b2ed5278084963288d8c2fd17e0)) -- create `extractValues` object utility ([8edd9e7](https://github.com/exadel-inc/esl/commit/8edd9e7b564b4ac78a4fc952ee58f76b6a54cf89)) -- create cumulative imports for esl-utils submodules ([2e9d6ad](https://github.com/exadel-inc/esl/commit/2e9d6ad8f327ede991feef4ebc7c76fdd55726af)) - -### BREAKING CHANGES -- `isMouseEvent`, `isTouchEvent` moved outside of `EventUtils` -- `normalizeTouchPoint` renamed to `touchPoint` and moved outside of `EventUtils` -- `normalizeCoordinates` removed. Use `getOffsetPoint` in combination with `getTouchPoint` instead -- `@prop` signature changed `prop(value?: any, prototypeConfig: OverrideDecoratorConfig = {})` instead -- `ScrollUtils.lock` no longer accessible. Use `lockScroll(document.documentElement, {strategy: '...'})` instead -- `ScrollUtils.unlock` no longer accessible. Use `unlockScroll(document.documentElement, {strategy: '...'})` instead -- `ScrollUtils.lockRequest` no longer accessible. Use `lockScroll(document.documentElement, {strategy: '...', initiatior})` instead -- `ScrollUtils.unlockRequest` no longer accessible. Use `unlockScroll(document.documentElement, {strategy: '...', initiatior})` instead - -### Bugfixes -- make attr decorators correctly strict typed -- `deepMerge` primitive values merging improved, undefined arguments now ignored ([5b7b730](https://github.com/exadel-inc/esl/commit/5b7b73003acd4d29250af12603ced5d58c40aff6)) -- fix `@bind` decorator to save original function enumerable marker ([92c2086](https://github.com/exadel-inc/esl/commit/92c2086df610a5572143463302baf7aeea6174e9)) -- update `@decorate` decorator to allow to save context properly (on instance level) ([0ac1b0c](https://github.com/exadel-inc/esl/commit/0ac1b0cb9c90648ae1e0a18a16a936971c4b4ee9)) - ---- - -## ESL Toggleable and ESL Trigger - -### Features: -- migrate `esl-toggleable` and `esl-trigger` to ESLEventListeners -- `esl:show:request` additional data ([a121872](https://github.com/exadel-inc/esl/commit/a121872b6e69fd7fb7a71bdfa9058430e650f423)) -- support of `esl:hide:request` ([8a0928b](https://github.com/exadel-inc/esl/commit/8a0928b2f2bda63c6fbbaf5e9b6453d660091ec1)) -- add support of dynamic `aria-label` for `esl-trigger` ([5c18841](https://github.com/exadel-inc/esl/commit/5c188418720ad4a972caa7450563a29268d8ec97)) -- add esc key event handler for `esl-trigger` ([3dab6da](https://github.com/exadel-inc/esl/commit/3dab6dad39259f7e920c9a108757271cb58a216d)) -- add `ignore-esc` attribute for `esl-trigger` ([605b715](https://github.com/exadel-inc/esl/commit/605b715a29ef1a852e24ce5120ca30d394fc19c1)) - - -## ESL Panel and ESL Panel Group - -### Features: -- migrate `esl-panel` and `esl-panel-group` to ESLEventListeners -- add `refresh-strategy` attribute ([#1156](https://github.com/exadel-inc/esl/issues/1156)) ([36027ad](https://github.com/exadel-inc/esl/commit/36027ad2574c0c33df1b6370484448a6889a647a)) -- add ability to control min/max open panels per media condition ([67ca2ba](https://github.com/exadel-inc/esl/commit/67ca2ba16e3fc4ee4300d1c79ca2e5d0da845af7)) - -### BREAKING CHANGES -- `ESLPanelGroup.noCollapse` (with related attribute) renamed to `ESLPanelGroup.noAnimate` (`no-animate` attribute) -- `ESLPanelGroup.shouldCollapse` renamed to `ESLPanelGroup.shouldAnimate` -- `PanelActionParams.noCollapse` renamed to `PanelActionParams.noAnimate` -- `ESLPanelGroup` `view` attribute is no longer supported -- `open` mode of `ESLPanelGroup` is no longer supported, it should be replaced with a `min-open-items="all"` -- `accordion-group="single"` attribute of `ESLPanelGroup` is no longer supported, replaced with `max-open-items="1"` -- `accordion-group="single"` attribute of `ESLPanelGroup` is no longer supported, replaced with `max-open-items="all"` -- components inherited from `ESLPanelGroup` should use `@listen({inherit: true})` for proper subscription - -### Bugfixes -- add `capturedBy` and fix `after:show` dispatch ([9bdc98c](https://github.com/exadel-inc/esl/commit/9bdc98c98a2926fe42c7cd15007c31a19171027c)) -- fix `esl:before:hide` bubbling from uncontrolled toggleables ([9212b6b](https://github.com/exadel-inc/esl/commit/9212b6beacd97d39d0410a464598e9e2e0bdb1c2)) -- fix animation process capturing by `ESLPanel` component ([9a5b3a5](https://github.com/exadel-inc/esl/commit/9a5b3a576d5cb4dbd47d113d944932586155c7f6)) -- change `no-animate` API ([dde3500](https://github.com/exadel-inc/esl/commit/dde35009268a92bae92a45f00d11cb29edee98fa)) - - -## ESL Tab and ESLTabs - -### Features: -- `esl-tab` and `esl-tabs` migrated to ESLEventListeners - -### Bugfixes: -- fix alignment behavior ([b5ebd66](https://github.com/exadel-inc/esl/commit/b5ebd668de7b4d1eea7311ae7d734c02abb537cf)) - -### BREAKING CHANGES -- Listeners extended from `ESLTab` should now use `@listen` annotation to work correctly -- Listeners extended from `ESLTabs` should now use `@listen` annotation to work correctly - -## ESL Alert - -### Features: -- `esl-alert` migrated to ESLEventListeners, inner API updates - -### BREAKING CHANGES -- Listeners extended from `ESLAlert` should now use `@listen` annotation to work correctly -- `eventNs` is no longer supported, event is now defined directly on the prototype level - - -## ESL Popup - -### Features: -- add configurable `rootMargin` for the popup activator observer ([5d647d6](https://github.com/exadel-inc/esl/commit/5d647d60673a65e7b27472c1b68a1e174fa40740)) -- add extended `offsetContainer` configuration ([63cbc0a](https://github.com/exadel-inc/esl/commit/63cbc0a996a8578549360dadaa3bb17c53884bfe)) - -### BREAKING CHANGES -- Listeners extended from `ESLPopup` should now use `@listen` annotation to work correctly - - -## ESL Footnotes - -### Features: -- migrate `esl-notes` and `esl-footnotes` to ESLEventListeners -- add configurable `intersectionMargin` for the note tooltip activator observer ([b9b1599](https://github.com/exadel-inc/esl/commit/b9b159942e3534965f43cac94c140d5680308548)) - -### BREAKING CHANGES -- Listeners extended from `ESLNote` should now use `@listen` annotation to work correctly -- Listeners extended from `ESLFootnote` should now use `@listen` annotation to work correctly -- `eventNs` is no longer supported, event is now defined directly on the prototype level - -## ESL Image and ESL Media - -### Bugfixes: -- fix esl-image to prevent DOM XSS vulnerabilities ([4fd925d](https://github.com/exadel-inc/esl/commit/4fd925df8605994b0f7d345d77a425e0cdc487e8)) -- fix wrong error status on svg images in FF ([cad6b40](https://github.com/exadel-inc/esl/commit/cad6b40ccce01aaea8b1869b2cd7d542939a4fd4)) - - -## ESL Scrollbar - -### Features: -- migrate `esl-scrollbar` to ESLEventListeners - -### Bugfixes -- remove unnecessary width ([6e18909](https://github.com/exadel-inc/esl/commit/6e18909c6768c259d76084b463404fe6b29c9af8)) - -### BREAKING CHANGES -- Listeners extended from `ESLScrollbar` should now use `@listen` annotation to work correctly - - -## ESL Select - -### Features: -- migrate `esl-select` to ESLEventListeners ([76ca947](https://github.com/exadel-inc/esl/commit/76ca9479090546cdf092d1c9c3f5d993263f0581)) -- add `dropdown-class` param to specify dropdown additional CSS class(es) ([938357f](https://github.com/exadel-inc/esl/commit/938357fa6fb5db804f445f31eb4f73641dfbcccf)) - - -## ESL Polyfills - -### Features: -- `Event`, `CustomEvent`, `MouseEvent`, `KeyboardEvent`, `FocusEvent` extended polyfills ([9ca3c40](https://github.com/exadel-inc/esl/commit/9ca3c406ff1f6f99490fdf09d2f15bc450c7be57)) -- `Object.assign` and `Array.from` extended polyfills ([590bca4](https://github.com/exadel-inc/esl/commit/590bca4fab39c566db68f7bc2440e5d84355a991)) -- extended `es5-target-shim` ([ef53df9](https://github.com/exadel-inc/esl/commit/ef53df936dd2beda859a41e9f8a900199bb24f3e)) - -### BREAKING CHANGES -- ES5 shim `shimES5ElementConstructor` replaced with `shimES5Constructor` - - -Co-authored-by: NastaLeo -Co-authored-by: Anna Barmina -Co-authored-by: julia-murashko -Co-authored-by: Yuliya Adamska -Co-authored-by: Dmytro Shovchko -Co-authored-by: fshovchko -Co-authored-by: nsmirnova - -# [4.0.0-beta.19](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.18...v4.0.0-beta.19) (2022-09-30) - - -### Bug Fixes - -* **esl-event-listener:** allow to subscribe listener by global selector without host instanceof HTMLElement ([fb17e6b](https://github.com/exadel-inc/esl/commit/fb17e6bb88e4fd054d2426511d12ba755c211760)) -* **esl-tooltip:** keyboard handling fix ([25d7dc6](https://github.com/exadel-inc/esl/commit/25d7dc658339d371b87db44c1fdf86c7be234725)) - - -### Code Refactoring - -* **esl-scrollbar:** migrate all `esl-scrollbar` listeners to ESLEventListener feature ([b5fd7a5](https://github.com/exadel-inc/esl/commit/b5fd7a54ec711298afdd070083958b9f25988bfa)) -* **esl-tabs:** migrate `esl-tabs` to ESLEventListeners ([f2d6157](https://github.com/exadel-inc/esl/commit/f2d6157bd6ace254c9de57653440875362e15602)) - - -### Features - -* **esl-footnotes:** `ESLFootnotes` migrated to use ESLEventListener standard ([13d9289](https://github.com/exadel-inc/esl/commit/13d9289ab4070cb01e6887113331641b03c5d21f)) -* **esl-footnotes:** `ESLNotes` migrated to use ESLEventListener standard ([6cd5502](https://github.com/exadel-inc/esl/commit/6cd55021f1287170294a0e166a9b0bce91d0ede9)) -* **esl-select:** `ESLSelect` and `ESLSelectList` migrated to ESLEventListeners ([df80759](https://github.com/exadel-inc/esl/commit/df80759326ad40524274bacc088135f879738184)) - - -### BREAKING CHANGES - -* **esl-tabs:** listeners extended from `ESLTabs` should now use `@listen` annotation to work correctly -* **esl-scrollbar:** listeners extended from `ESLScrollbar` should now use `@listen` annotation to work correctly -* **esl-select:** `_onChange` and `_onReset` methods of `ESLSelectWrapper` decorated via `@listen` -* **esl-select:** internal handlers of `ESLSelect`, `ESLSelectRender`, `ESLSelectList` now decorated via `@listen` -* **esl-footnotes:** `_onKeydown`, `_onNoteSubscribe` migrated to `@listen` -* **esl-footnotes:** `_onClick` removed and replaced to `_onItemClick` (decorated by `@listen`) -* **esl-footnotes:** `_onFootnotesReady`, `_onBPChange`, `_onMouseLeave`, `_onMouseEnter`, `_onKeydown`, `_onClick` migrated to `@listen` - -# [4.0.0-beta.18](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.17...v4.0.0-beta.18) (2022-09-27) - - -### Bug Fixes - -* **esl-event-listener:** fix ESLListenerDescriptorFn import ([69d81d7](https://github.com/exadel-inc/esl/commit/69d81d70f798902daf31423dbd4d6da3b772c75c)) -* **esl-event-listener:** fix event listener props resolving strategy and uniqueness constraint ([2ec70f2](https://github.com/exadel-inc/esl/commit/2ec70f2ac962463664a0026aaf48e6340c021d41)) -* **esl-event-listener:** fix multiple subscription by single descriptor ([3f80486](https://github.com/exadel-inc/esl/commit/3f804867dc8dd5b348442f66dee8e86a7b6bc755)) -* **esl-event-listener:** fix selector and Storage name of ESLEventListener ([ad2f9db](https://github.com/exadel-inc/esl/commit/ad2f9db0f40ce7c7804b292e0cd390ebd60e54d4)) -* **esl-panel-group:** change strategy of closing panels in case the max-open-items limit is reached ([4b21c34](https://github.com/exadel-inc/esl/commit/4b21c34d7878f394cafcd0e02a575bb23ec9a4c1)) -* **esl-panel-group:** fix initial reset of panel group leads to incorrect panel selection ([7b164dc](https://github.com/exadel-inc/esl/commit/7b164dc5d007a1723495e818c8c4b8ed045a88a8)) -* **esl-scrollbar:** remove unnecessary width ([6e18909](https://github.com/exadel-inc/esl/commit/6e18909c6768c259d76084b463404fe6b29c9af8)) -* **esl-tabs:** fix alignment behavoir ([b5ebd66](https://github.com/exadel-inc/esl/commit/b5ebd668de7b4d1eea7311ae7d734c02abb537cf)) -* **esl-utils:** make undefined condition truthy for `isMatches` helper ([efcd1c6](https://github.com/exadel-inc/esl/commit/efcd1c6dfa83946f66160508f7ee93808cb6d2a2)) - - -### Features - -* **esl-alert:** component reworked according ESLToggleable update ([f8a171f](https://github.com/exadel-inc/esl/commit/f8a171f1850efe3eea23dd8de6f372ba5f3cea8e)) -* **esl-base-element:** add `create` shortcut to create current custom element ([14f5706](https://github.com/exadel-inc/esl/commit/14f57063624b3ac20b8ae1868903f3ef2b2bcdfd)) -* **esl-panel:** migrate `esl-panel` to ESLEventListeners ([b8350a5](https://github.com/exadel-inc/esl/commit/b8350a54ca110756f35b891bc37c2c6110247f77)) -* **esl-select-dropdown:** fix `esl-alert` according `esl-togglable` update ([6e10aaa](https://github.com/exadel-inc/esl/commit/6e10aaab9a8055c1f3333d602b56e5d18b8decdd)) -* **esl-select-dropdown:** migrate `esl-select-dropdown` to ESLEventListeners ([76ca947](https://github.com/exadel-inc/esl/commit/76ca9479090546cdf092d1c9c3f5d993263f0581)) -* **esl-toggleable:** add ability to request hide of the toggleable, refactor toggle request API ([8a0928b](https://github.com/exadel-inc/esl/commit/8a0928b2f2bda63c6fbbaf5e9b6453d660091ec1)) -* **esl-toggleable:** migrate `esl-togglable` to ESLEventListeners ([7159429](https://github.com/exadel-inc/esl/commit/7159429f7237bea78ab80e1b05420594246ff84d)) -* **esl-utils:** create `extractValues` object utility ([8edd9e7](https://github.com/exadel-inc/esl/commit/8edd9e7b564b4ac78a4fc952ee58f76b6a54cf89)) -* **esl-utils:** create cumulative imports for esl-utils submodules ([2e9d6ad](https://github.com/exadel-inc/esl/commit/2e9d6ad8f327ede991feef4ebc7c76fdd55726af)) - -# [4.0.0-beta.17](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.16...v4.0.0-beta.17) (2022-09-01) - - -### Bug Fixes - -* **esl-panel-group:** fix animation process capturing by ESLPanel component ([9a5b3a5](https://github.com/exadel-inc/esl/commit/9a5b3a576d5cb4dbd47d113d944932586155c7f6)) -* **esl-utils:** ESLEventListener descriptors can't be declared trough prototype inheritance ([a055e71](https://github.com/exadel-inc/esl/commit/a055e71643a6b1f2d560dd1ff5c3152767c43bef)) -* **esl-utils:** fix `[@bind](https://github.com/bind)` decorator to save original function enumerable marker ([92c2086](https://github.com/exadel-inc/esl/commit/92c2086df610a5572143463302baf7aeea6174e9)) -* **esl-utils:** fix `[@decorate](https://github.com/decorate)` decorator to work properly with `[@listen](https://github.com/listen)` ([286ef57](https://github.com/exadel-inc/esl/commit/286ef579b61fbf43a793550fcf7dc8018bc15f54)) - - -### Features - -* **esl-panel-group:** extend esl-panel-group refresh strategies list with 'open' and 'close' strategy ([ee18c9d](https://github.com/exadel-inc/esl/commit/ee18c9d673361e53ecc3cd84f04d8d5650c79693)) -* **esl-utils:** add `skipOneRender` RAF utility ([ddc3227](https://github.com/exadel-inc/esl/commit/ddc322798e6f8cf447874896786fe6d368bbe5ef)) - -# [4.0.0-beta.16](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.15...v4.0.0-beta.16) (2022-08-30) - - -### Bug Fixes - -* **esl-image:** remove internal cyclic references in ESLImage modules ([977c32b](https://github.com/exadel-inc/esl/commit/977c32bdbd475f652948ec4d97ac9a9e42357ba1)) -* **esl-media:** remove cyclic reference of the ESLMedia internal IObserver to ESLMedia ([8a3d065](https://github.com/exadel-inc/esl/commit/8a3d065aba6a695451aacb9c3e9b90c6592d6a1e)) -* **esl-panel:** remove cyclic reference of the ESLPanel to ESLPanelGroup ([cffe91a](https://github.com/exadel-inc/esl/commit/cffe91aa57f3ec769cd286ee8f0bc149533bba1a)) -* **esl-select:** fix internal esl-select-renderer cyclic reference ([b97565e](https://github.com/exadel-inc/esl/commit/b97565eff2d7d31a736e6f3461aba62a6de50899)) - -# [4.0.0-beta.15](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.14...v4.0.0-beta.15) (2022-08-30) - - -### Bug Fixes - -* **esl-mixin-element:** incorrect context applied for listener applied trough `$$on` ([0c53d6a](https://github.com/exadel-inc/esl/commit/0c53d6a9afefc703c7c372a789ee92ec4280cebd)) -* **esl-panel-group:** change `no-animate` API ([dde3500](https://github.com/exadel-inc/esl/commit/dde35009268a92bae92a45f00d11cb29edee98fa)) -* **esl-utils:** allow `[@listen](https://github.com/listen)` decorator for decorated methods represented as a get accessor ([dcdc70b](https://github.com/exadel-inc/esl/commit/dcdc70b07c7b46dd37041eb87640ebff5e79d71a)) -* **esl-utils:** change descriptor definition condition (`event` no longer required as an own property) ([d17e256](https://github.com/exadel-inc/esl/commit/d17e2566652eca74f5b4e8634dc5499248fccbff)) -* **esl-utils:** fix `[@decorate](https://github.com/decorate)` decorator binding ([1cbb070](https://github.com/exadel-inc/esl/commit/1cbb0702cdd97520d82fae614825f21df550fb33)) -* **esl-utils:** update `decorate` decorator to allow to save context properly (on instance level) ([0ac1b0c](https://github.com/exadel-inc/esl/commit/0ac1b0cb9c90648ae1e0a18a16a936971c4b4ee9)) - - -### Features - -* **esl-panel-group:** add `refresh-strategy` attribute ([#1156](https://github.com/exadel-inc/esl/issues/1156)) ([36027ad](https://github.com/exadel-inc/esl/commit/36027ad2574c0c33df1b6370484448a6889a647a)) -* **esl-panel-group:** add ability to control min/max open panels per media condition ([67ca2ba](https://github.com/exadel-inc/esl/commit/67ca2ba16e3fc4ee4300d1c79ca2e5d0da845af7)) -* **esl-utils:** allow to pass array of targets to the `ESLEventListener` ([1d23db3](https://github.com/exadel-inc/esl/commit/1d23db3ea84ac4b31adce5d4a1575814ea3fdf54)) - - -### BREAKING CHANGES - -* **esl-panel-group:** `open` mode is no longer supported, it should be replaced with a `min-open-items="all"` -BREAKING-CHANGE: `accordion-group="single"` attribute no longer supported, replaced with `max-open-items="1"` -BREAKING-CHANGE: `accordion-group="single"` attribute no longer supported, replaced with `max-open-items="all"` -* **esl-panel-group:** components inherited from `ESLPanelGroup` should use `@listen({inherit: true})` for proper subscription - -Co-authored-by: NastaLeo - -# [4.0.0-beta.14](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.13...v4.0.0-beta.14) (2022-08-15) - - -### Bug Fixes - -* **esl-traversing-query:** fix uniqueness of result on multiple query ([8ff4ec7](https://github.com/exadel-inc/esl/commit/8ff4ec773344cbf0d95fc6ceee3bb1ce47a806db)) -* **esl-utils:** fix page content jumping after scroll lock ([410f35f](https://github.com/exadel-inc/esl/commit/410f35f9f8fc152da97eeda0299e3ce2c38c1891)) -* **esl-utils:** optimize event subscription with a check for an active targets ([2b2585e](https://github.com/exadel-inc/esl/commit/2b2585e495e74ad5022ebb29239b955e942d96c2)) - - -### Features - -* **esl-utils:** ability to inherit ESLEventDescriptor from supertype method definition ([899698b](https://github.com/exadel-inc/esl/commit/899698bea0c9c3da72ccd8ac7b4f5d7d9ebd76d3)) -* **gh-pages:** add aurora accent to `promo-banner.njk` ([cfe5abb](https://github.com/exadel-inc/esl/commit/cfe5abb2f7e4f3cbf54ebb98c8fcd6f3c9bce766)) -* **gh-pages:** load animation by scrolling ([c8a6a15](https://github.com/exadel-inc/esl/commit/c8a6a1504ed37da64acd7a17588d08b08dd896dc)) - -# [4.0.0-beta.13](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.12...v4.0.0-beta.13) (2022-08-02) - - -### Bug Fixes - -* **esl-utils:** fix missed body style for scroll lock strategy pseudo ([96c37db](https://github.com/exadel-inc/esl/commit/96c37dbd06a24d45809e6a7528143c09ced9f546)) - - -### Features - -* **esl-traversing-query:** add comma support to define multiple target ([#1120](https://github.com/exadel-inc/esl/issues/1120) / [#1129](https://github.com/exadel-inc/esl/issues/1129)) ([2890d7b](https://github.com/exadel-inc/esl/commit/2890d7b7667492b982b266048d23874c57b938ea)), closes [#1102](https://github.com/exadel-inc/esl/issues/1102) -* **esl-trigger:** add `ignore-esc` attribute ([605b715](https://github.com/exadel-inc/esl/commit/605b715a29ef1a852e24ce5120ca30d394fc19c1)) -* **esl-utils:** extend SynteticEventTarget with ability to separate events ([#1118](https://github.com/exadel-inc/esl/issues/1118)) ([507726d](https://github.com/exadel-inc/esl/commit/507726d5b760e54fa3286560931ffbe3110e4151)), closes [#1079](https://github.com/exadel-inc/esl/issues/1079) - -# [4.0.0-beta.12](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.11...v4.0.0-beta.12) (2022-07-18) - - -### Bug Fixes - -* **esl-image:** fix wrong error status on svg images in FF ([cad6b40](https://github.com/exadel-inc/esl/commit/cad6b40ccce01aaea8b1869b2cd7d542939a4fd4)) - -# [4.0.0-beta.11](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.10...v4.0.0-beta.11) (2022-07-18) - - -### Features - -* **esl-trigger:** add esc key event handler ([3dab6da](https://github.com/exadel-inc/esl/commit/3dab6dad39259f7e920c9a108757271cb58a216d)) - -# [4.0.0-beta.10](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.9...v4.0.0-beta.10) (2022-07-08) - - -### Features - -* **esl-select:** add dropdown-class to observed attributes ([29cc1c2](https://github.com/exadel-inc/esl/commit/29cc1c23e20c242c1f4b34a97ddd082fe55c54cb)) -* **esl-traversing-query:** add ability to find closest element ([ada6fbb](https://github.com/exadel-inc/esl/commit/ada6fbb172a2fb2cf0d435420ad8fb0a46e7766f)) -* **esl-utils:** `ScrollUtils` rewritten in a functional way, API updated ([#1051](https://github.com/exadel-inc/esl/issues/1051)) ([6f6c72f](https://github.com/exadel-inc/esl/commit/6f6c72f2d46bc1ba94d0b072df32782d79560313)) -* **esl-utils:** add ability to pass predicate to sequence finder ([dd8c3cb](https://github.com/exadel-inc/esl/commit/dd8c3cbb43ed529330c32459b9787949a0927a01)) -* **esl-utils:** move parsers to `esl-utils/misc/format` for shared usage ([e58270a](https://github.com/exadel-inc/esl/commit/e58270a2844379a612c1c218f7b9ea6f03bd9bcf)) - - -### BREAKING CHANGES - -* **esl-utils:** `ScrollUtils.lock` no longer accessible use `lockScroll(document.documentElement, {strategy: '...'})` -* **esl-utils:** `ScrollUtils.unlock` no longer accessible use `unlockScroll(document.documentElement, {strategy: '...'})` -* **esl-utils:** `ScrollUtils.lockRequest` no longer accessible use `lockScroll(document.documentElement, {strategy: '...', initiatior})` -* **esl-utils:** `ScrollUtils.unlockRequest` no longer accessible use `unlockScroll(document.documentElement, {strategy: '...', initiatior})` - -Co-authored-by: fshovchko -Co-authored-by: nsmirnova -Co-authored-by: ala'n (Alexey Stsefanovich) -Co-authored-by: julia-murashko -Co-authored-by: Anastasiya Lesun <72765981+NastaLeo@users.noreply.github.com> - -# [4.0.0-beta.9](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.8...v4.0.0-beta.9) (2022-06-29) - - -### Bug Fixes - -* **esl-image:** fix esl-image to prevent DOM XSS vulnerabilities ([4fd925d](https://github.com/exadel-inc/esl/commit/4fd925df8605994b0f7d345d77a425e0cdc487e8)) -* **esl-trigger:** custom aria-label maintaining in case a11yLabelActive and a11yLabelInactive are empty ([06d8f92](https://github.com/exadel-inc/esl/commit/06d8f924080849efe90c979151c6c342d4ca8ffc)) -* **esl-utils:** add ability to skip event listener through the target field ([75f6a18](https://github.com/exadel-inc/esl/commit/75f6a186ffcbd98e852627f479284edcb893583f)) - - -### Features - -* **esl-image:** prototype defined events ([f49ce01](https://github.com/exadel-inc/esl/commit/f49ce019d81cb76995c05d2dccc6621e8836af66)) -* **esl-media-query:** normalize data instead of fail ([3226156](https://github.com/exadel-inc/esl/commit/3226156264e58f085f023b0669179cc48f904c55)) -* **esl-media:** prototype defined events ([976a8b9](https://github.com/exadel-inc/esl/commit/976a8b9c54d4e0b40dcf9e5ee48024b1539e94f7)) -* **esl-select:** add `dropdown-class` param to specify dropdown additional CSS class(es) ([938357f](https://github.com/exadel-inc/esl/commit/938357fa6fb5db804f445f31eb4f73641dfbcccf)) -* **esl-utils:** `[@attr](https://github.com/attr)` extended with ability to pass Serializer/Parser ([012eb83](https://github.com/exadel-inc/esl/commit/012eb83ebcbba8315a2766af090239774c21234e)) -* **esl-utils:** create dom html sanitize method ([004642f](https://github.com/exadel-inc/esl/commit/004642f866ac1b2ed5278084963288d8c2fd17e0)) -* **gh-pages:** add blogs landing component ([fa71fe0](https://github.com/exadel-inc/esl/commit/fa71fe040ae4954ea55946b927751e33c9eb02ce)) - -# [4.0.0-beta.8](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.7...v4.0.0-beta.8) (2022-06-16) - - -### Code Refactoring - -* **esl-core:** ESLMixinElement moved to separate module ([9d42adf](https://github.com/exadel-inc/esl/commit/9d42adfc4202ed9def4c86d36debe33d0d14331b)) - - -### Features - -* **esl-utils:** ability to pass Provider functions to `event`, `selector`, `target` listener options ([c3503b0](https://github.com/exadel-inc/esl/commit/c3503b0810556388187deb48b14c3cab450c5a8e)) -* **esl-utils:** simplify and extend `[@prop](https://github.com/prop)` decorator ([fd6ede3](https://github.com/exadel-inc/esl/commit/fd6ede34b0a3c7496083cb58aa9b726d4a692085)) - - -### BREAKING CHANGES - -* **esl-utils:** `@prop` signature changed -`prop(value?: any, prototypeConfig: OverrideDecoratorConfig = {})` -* **esl-core:** (beta only) ESLMixinElement now accessible under 'modules/esl-mixin-element/core' - -# [4.0.0-beta.7](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.6...v4.0.0-beta.7) (2022-05-19) - - -### Code Refactoring - -* **esl-media-query:** change tuple `parseTuple` syntax param order ([49305f1](https://github.com/exadel-inc/esl/commit/49305f1564a047443f843a41614586b7f85ddb83)) - - -### Features - -* **esl-media-query:** `[@media](https://github.com/media)` decorator to shortcut access to the `ESLMediaRuleList` ([ffb59c2](https://github.com/exadel-inc/esl/commit/ffb59c2c619f50e32aa02af0f5212ebc8e829e62)) -* **esl-media-query:** `ESLMediaQuery` now implements `EventTarget` interface ([df2a11e](https://github.com/exadel-inc/esl/commit/df2a11e11c1b781ba261cb33c9eccfdb6a9623a3)) -* **esl-media-query:** `ESLMediaRuleList` API reworked with EventTarget interface and new calculation strategy ([b1d6891](https://github.com/exadel-inc/esl/commit/b1d6891d0c90553a5b89069096ab9596b71b6219)) -* **esl-togglable:** show:request additional data ([a121872](https://github.com/exadel-inc/esl/commit/a121872b6e69fd7fb7a71bdfa9058430e650f423)) -* **esl-trigger:** add support of aria-label ([5c18841](https://github.com/exadel-inc/esl/commit/5c188418720ad4a972caa7450563a29268d8ec97)) -* **esl-utils:** `ESLEventListener` now uses EventListenerObject interface to simplify debug ([e3ac838](https://github.com/exadel-inc/esl/commit/e3ac838d810b2c1d9aecc265bc0d7cbf5fb627c1)) -* **esl-utils:** created `SyntheticEventTarget` implementation ([e4f3eb8](https://github.com/exadel-inc/esl/commit/e4f3eb89e0dd8227937d476a8d2090730342de64)) -* **esl-utils:** extend `SyntheticEventTarget` with ability to subscribe `EventListenerObject` ([e4609e9](https://github.com/exadel-inc/esl/commit/e4609e9e53dfd97cdf9892b1e4f88561ee0eeb67)) -* **polyfills:** extended `es5-target-shim` ([ef53df9](https://github.com/exadel-inc/esl/commit/ef53df936dd2beda859a41e9f8a900199bb24f3e)) - - -### BREAKING CHANGES - -* **esl-media-query:** `ESLMediaRuleList.parseTuple` arguments order changed -* **esl-media-query:** `ESLMediaRule` no longer supports default marker, now "default" is equal "all" query -* **esl-media-query:** `ESLMediaRuleList` observation callback signature changed, now it should be `EventListener` -* **esl-media-query:** `ESLMediaRuleList.prototype.default` removed as no longer default rules -* **esl-media-query:** `ESLMediaRuleList` no longer fire events on rule change, now it's based on active valuer change -* **esl-media-query:** `ESLMediaRuleList` now uses merging of all active rules to define result value, however you were still able to get the last active rule value -* **esl-media-query:** `ESLMediaRuleList.prototype.active` now returns an array of active rules -* **polyfills:** ES5 shim `shimES5ElementConstructor` replaced with `shimES5Constructor` - -# [4.0.0-beta.6](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.5...v4.0.0-beta.6) (2022-04-26) - - -### Bug Fixes - -* **polyfills:** optimized safe version of `Object.assign` polyfill ([96fc0dd](https://github.com/exadel-inc/esl/commit/96fc0dd12f0a45e5862e84d4fa4a5f40f76a964e)) - -# [4.0.0-beta.5](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.4...v4.0.0-beta.5) (2022-04-26) - - -### Bug Fixes - -* **esl-core:** empty children explicitly check in recursion ([412b2ad](https://github.com/exadel-inc/esl/commit/412b2adee0b5698488f6f3def5dcd16e45ca7b45)) -* **esl-popup:** unsubscribe safe check (reproducible in IE11) ([63e842f](https://github.com/exadel-inc/esl/commit/63e842f1b2d4d146e5c5299629f38027fd08bc44)) - - -### Features - -* **polyfills:** `Event`, `CustomEvent`, `MouseEvent`, `KeyboardEvent`, `FocusEvent` extended polyfills ([9ca3c40](https://github.com/exadel-inc/esl/commit/9ca3c406ff1f6f99490fdf09d2f15bc450c7be57)) -* **polyfills:** `Object.assign` and `Array.from` extended polyfills ([590bca4](https://github.com/exadel-inc/esl/commit/590bca4fab39c566db68f7bc2440e5d84355a991)) - -# [4.0.0-beta.4](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.3...v4.0.0-beta.4) (2022-04-25) - - -### Bug Fixes - -* **esl-utils:** `deepMerge` primitive values merging improved, undefined arguments now ignored ([5b7b730](https://github.com/exadel-inc/esl/commit/5b7b73003acd4d29250af12603ced5d58c40aff6)) - - -### Code Refactoring - -* **esl-core:** Update `$$fire` method API ([4983cbc](https://github.com/exadel-inc/esl/commit/4983cbcdb583e0aacc4cbda49c019105fa9b66a4)) - - -### Features - -* **esl-footnotes:** add configurable intersectionMargin for the note tooltip activator observer ([b9b1599](https://github.com/exadel-inc/esl/commit/b9b159942e3534965f43cac94c140d5680308548)) -* **esl-popup:** add configurable rootMargin for the popup activator observer ([5d647d6](https://github.com/exadel-inc/esl/commit/5d647d60673a65e7b27472c1b68a1e174fa40740)) -* **esl-popup:** add extended offsetContainer configuration ([63cbc0a](https://github.com/exadel-inc/esl/commit/63cbc0a996a8578549360dadaa3bb17c53884bfe)) -* **esl-utils/rect:** ability to grow/shrink axis ([1c58a1c](https://github.com/exadel-inc/esl/commit/1c58a1c19b0aa82abf7eb73c40781e9c4a4860ba)) - - -### BREAKING CHANGES - -* **esl-core:** `$$fire` no longer add 'esl:' prefix to the fired events - -# [4.0.0-beta.3](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.2...v4.0.0-beta.3) (2022-04-12) - - -### Bug Fixes - -* **esl-scrollbar:** fix non-passive listener of the scrollbar touchstart ([a3df8ec](https://github.com/exadel-inc/esl/commit/a3df8ec4b7a8eb3ccc67f02ad3116a13a86b26c6)) -* **esl-toggleable:** fix double `esl:` prefix for esl-toggleable `esl:refresh` dispatching ([3316da0](https://github.com/exadel-inc/esl/commit/3316da0c4378466c0bf34346e5791ee36fdfe0a8)), closes [#913](https://github.com/exadel-inc/esl/issues/913) -* **esl-utils:** rename some event/misc utils ([36bdb8a](https://github.com/exadel-inc/esl/commit/36bdb8afa8fdd78f6c71232dfbf65c05a6f54d76)) - - -### Code Refactoring - -* **esl-panel-group:** remove deprecated `view` attribute ([e0c5410](https://github.com/exadel-inc/esl/commit/e0c5410d157017fa96133e9ccb84d364bdc55534)) -* **esl-panel:** rename noCollapse to noAnimate param ([3f5aa74](https://github.com/exadel-inc/esl/commit/3f5aa74be95eff047db076c33ecc9b8a199d15a4)) - - -### BREAKING CHANGES - -* **esl-panel-group:** `ESLPanelGroup` `view` attribute no longer supported -* **esl-panel:** `PanelActionParams.noCollapse` renamed to `PanelActionParams.noAnimate` -* **esl-panel:** `ESLPanelGroup.noCollapse` (with related attribute) -renamed to `ESLPanelGroup.noAnimate` (`no-animate` attribute) -* **esl-panel:** `ESLPanelGroup.shouldCollapse` renamed to `ESLPanelGroup.shouldAnimate` -* **esl-utils:** rename `offsetPoint` to `getOffsetPoint` and `touchPoint` to `getTouchPoint` - -# [4.0.0-beta.2](https://github.com/exadel-inc/esl/compare/v4.0.0-beta.1...v4.0.0-beta.2) (2022-04-05) - - -### Bug Fixes - -* **esl-core:** make attr decorators correctly strict typed ([613c260](https://github.com/exadel-inc/esl/commit/613c2603a72dae1651007ce014a0f3c7836da101)) -* **esl-panel-group:** fix esl:before:hide bubbling from uncontrolled toggleables ([9212b6b](https://github.com/exadel-inc/esl/commit/9212b6beacd97d39d0410a464598e9e2e0bdb1c2)) -* **esl-utils:** add IE compatibility for window rect obtaining ([d5e916c](https://github.com/exadel-inc/esl/commit/d5e916c31c6fd08eacad15ea4274ec57c3a6de2e)) -* **esl-utils:** add IE compatibility for window rect obtaining ([882425e](https://github.com/exadel-inc/esl/commit/882425e2e643e129a258deb8ead22d1f9ab6b5b4)) -* **esl-utils:** fix `isSimilar` comparer for arrays, add flat comparer option ([251c59c](https://github.com/exadel-inc/esl/commit/251c59cd8a3ba46689ba3e7aa6891d7bf4ed43c7)) -* **esl-utils:** fix event descriptors merging and passive listeners support ([6ae7175](https://github.com/exadel-inc/esl/commit/6ae7175d37a0011073b6eaed35075f5e63d4747a)) - - -### Features - -* **esl-core:** add ability to define [mixin components]([#671](https://github.com/exadel-inc/esl/issues/671)) ([15f9f6c](https://github.com/exadel-inc/esl/commit/15f9f6caeea5a5a67b196b42adebea3de6e1efed)) -* **esl-core:** add ability to use event listener api for mixin components ([33ce7aa](https://github.com/exadel-inc/esl/commit/33ce7aa5c3625266b3900ed8d88f012f847945a6)) -* **esl-utils:** `[@decorate](https://github.com/decorate)` syntax-sugar to easily wrap (decorate) method ([1f996f9](https://github.com/exadel-inc/esl/commit/1f996f96665829d3734beae447a48c0b77621f8a)) -* **esl-utils:** ability to subscribe handle one event before unsubscribe ([3e1cbe6](https://github.com/exadel-inc/esl/commit/3e1cbe62e80d15f37e07a0d52d26fb0362c9b042)) -* **esl-utils:** create auxiliary `isPassiveByDefault` utility ([650d75f](https://github.com/exadel-inc/esl/commit/650d75f743299347237a6fdc7e30381749577dfe)) -* **esl-utils:** rework subscription API ([bf1c151](https://github.com/exadel-inc/esl/commit/bf1c1511c74b7323198db0533292a8e34fc9c025)) - -## [3.14.3](https://github.com/exadel-inc/esl/compare/v3.14.2...v3.14.3) (2022-04-07) - - -### Bug Fixes - -* **esl-toggleable:** fix double `esl:` prefix for esl-toggleable `esl:refresh` dispatching ([3316da0](https://github.com/exadel-inc/esl/commit/3316da0c4378466c0bf34346e5791ee36fdfe0a8)), closes [#913](https://github.com/exadel-inc/esl/issues/913) - -## [3.14.2](https://github.com/exadel-inc/esl/compare/v3.14.1...v3.14.2) (2022-03-31) - - -### Bug Fixes - -* **esl-panel-group:** fix esl:before:hide bubbling from uncontrolled toggleables ([9212b6b](https://github.com/exadel-inc/esl/commit/9212b6beacd97d39d0410a464598e9e2e0bdb1c2)) - -## [3.14.1](https://github.com/exadel-inc/esl/compare/v3.14.0...v3.14.1) (2022-03-29) - - -### Bug Fixes - -* **esl-utils:** add IE compatibility for window rect obtaining ([d5e916c](https://github.com/exadel-inc/esl/commit/d5e916c31c6fd08eacad15ea4274ec57c3a6de2e)) - -# [4.0.0-beta.1](https://github.com/exadel-inc/esl/compare/v3.14.0...v4.0.0-beta.1) (2022-03-24) - - -### Bug Fixes - -* **esl-panel-group:** add `capturedBy` and fix 'after:show' dispatch ([9bdc98c](https://github.com/exadel-inc/esl/commit/9bdc98c98a2926fe42c7cd15007c31a19171027c)) -* **esl-utils:** move attribute decorators to the `esl-utils` ([6e5028a](https://github.com/exadel-inc/esl/commit/6e5028a0d147d9b6b9742088f97c6110c58523c0)) - - -### Features - -* **esl-core:** event listeners functionality introduced (`ESLEventListener`s) ([16ae8db](https://github.com/exadel-inc/esl/commit/16ae8db2c7c6f5d2488268c5ecf69b277f9db05b)) -* **esl-utils:** event utils destructuring ([a822738](https://github.com/exadel-inc/esl/commit/a82273883b9e7393790de5c75b01092b30838a5a)) -* **esl-utils:** extend object:compare utils with `isSimilar` method ([9aa937e](https://github.com/exadel-inc/esl/commit/9aa937e620456457aa9954be161da6816f002e66)) - - -### BREAKING CHANGES - -* **esl-utils:** - `isMouseEvent`, `isTouchEvent` moved outside of `EventUtils` - - `normalizeTouchPoint` renamed to `touchPoint` and moved outside of `EventUtils` - - `normalizeCoordinates` removed `offsetPoint` introduced instead - to be used in combination with `touchPoint` - -# [3.14.0](https://github.com/exadel-inc/esl/compare/v3.13.2...v3.14.0) (2022-03-11) - - -### Bug Fixes - -* **esl-core:** type and implementation improvements for attribute decorators ([73edd53](https://github.com/exadel-inc/esl/commit/73edd5340b5bef0e548ef00e932b4630907332b4)) -* **esl-media:** fix incorrect `group` definition in shape ([5358933](https://github.com/exadel-inc/esl/commit/5358933c62076a850cdf314f3a31205db5bd2b51)) -* **esl-panel-group:** fix animation-end handling target check ([2d66781](https://github.com/exadel-inc/esl/commit/2d6678123141cb2c20eed8f95449ab4126e847b0)) -* **esl-panel:** fix animation-end handling target check ([ea897fa](https://github.com/exadel-inc/esl/commit/ea897fabdbbe166adeac9f0c36bda69ca7c63ffd)) -* **gh-pages:** change loadScript import ([acad20a](https://github.com/exadel-inc/esl/commit/acad20acbdafc1d3f49482b65800e80acf8512dc)) - - -### Features - -* **esl-core:** extend `ESLBaseElement` with `$$cls` and `$$attr` methods ([65ab74a](https://github.com/exadel-inc/esl/commit/65ab74a5d1a749958e7d633e973fd679821a057a)) -* **esl-media-query:** extend `ESLMediaRuleList.parseTuple` with ability to pass Parser ([44e9a1c](https://github.com/exadel-inc/esl/commit/44e9a1cf108b82d13908e65ca2d4691b026c49a2)) -* **esl-panel-group:** fallback-duration retired, now it's controlled out of the box ([d78553e](https://github.com/exadel-inc/esl/commit/d78553ec4ad474149eb1eba3b4be8d66db942e33)) -* **esl-panel:** ESLPanel no longer requires fallback-time definition ([6140ecd](https://github.com/exadel-inc/esl/commit/6140ecd902a0f888a77310fb8a607d5119b143fc)) -* **esl-utils:** `misc/object#get` API extended to be similar to `misc/object#set` ([474bd76](https://github.com/exadel-inc/esl/commit/474bd760f4738450d3692fdb08ea5da8d1b9be1b)) -* **esl-utils:** add `object#set` extended syntax support ([6d5799c](https://github.com/exadel-inc/esl/commit/6d5799c6dcb19da7e42e08a17b27e4eb1bfb589a)) -* **esl-utils:** add small attr utility ([f4ee57a](https://github.com/exadel-inc/esl/commit/f4ee57a8f151f82e1ce7cd187799e2cece3c8a10)) -* **esl-utils:** extend `promisifyTimeout` with ability to reject timeout ([#868](https://github.com/exadel-inc/esl/issues/868)) ([0594e5c](https://github.com/exadel-inc/esl/commit/0594e5ca8ec3aea82652fcc8abc3f7cfe87c3496)), closes [#858](https://github.com/exadel-inc/esl/issues/858) -* **esl-utils:** extend `set` method with ability to pass an array of path keys ([9dfa77b](https://github.com/exadel-inc/esl/commit/9dfa77bc47d71ab0e2b440bfcc2cd83c91cf29b5)) -* **esl-utils:** extend CSSClassUtils with `has` check ([f260823](https://github.com/exadel-inc/esl/commit/f260823c913e48313f572006dd6ebf376723461c)) - -# [3.14.0-beta.4](https://github.com/exadel-inc/esl/compare/v3.14.0-beta.3...v3.14.0-beta.4) (2022-03-11) - - -### Features - -* **esl-utils:** `misc/object#get` API extended to be similar to `misc/object#set` ([474bd76](https://github.com/exadel-inc/esl/commit/474bd760f4738450d3692fdb08ea5da8d1b9be1b)) -* **esl-utils:** add `object#set` extended syntax support ([6d5799c](https://github.com/exadel-inc/esl/commit/6d5799c6dcb19da7e42e08a17b27e4eb1bfb589a)) -* **esl-utils:** extend `promisifyTimeout` with ability to reject timeout ([#868](https://github.com/exadel-inc/esl/issues/868)) ([0594e5c](https://github.com/exadel-inc/esl/commit/0594e5ca8ec3aea82652fcc8abc3f7cfe87c3496)), closes [#858](https://github.com/exadel-inc/esl/issues/858) -* **esl-utils:** extend `set` method with ability to pass an array of path keys ([9dfa77b](https://github.com/exadel-inc/esl/commit/9dfa77bc47d71ab0e2b440bfcc2cd83c91cf29b5)) - -# [3.14.0-beta.3](https://github.com/exadel-inc/esl/compare/v3.14.0-beta.2...v3.14.0-beta.3) (2022-02-25) - - -### Features - -* **esl-media-query:** extend `ESLMediaRuleList.parseTuple` with ability to pass Parser ([44e9a1c](https://github.com/exadel-inc/esl/commit/44e9a1cf108b82d13908e65ca2d4691b026c49a2)) - -# [3.14.0-beta.2](https://github.com/exadel-inc/esl/compare/v3.14.0-beta.1...v3.14.0-beta.2) (2022-02-23) - - -### Bug Fixes - -* **esl-panel-group:** fix animation-end handling target check ([2d66781](https://github.com/exadel-inc/esl/commit/2d6678123141cb2c20eed8f95449ab4126e847b0)) -* **esl-panel:** fix animation-end handling target check ([ea897fa](https://github.com/exadel-inc/esl/commit/ea897fabdbbe166adeac9f0c36bda69ca7c63ffd)) -* **gh-pages:** change loadScript import ([acad20a](https://github.com/exadel-inc/esl/commit/acad20acbdafc1d3f49482b65800e80acf8512dc)) - -# [3.14.0-beta.1](https://github.com/exadel-inc/esl/compare/v3.13.2...v3.14.0-beta.1) (2022-02-21) - - -### Bug Fixes - -* **esl-core:** type and implementation improvements for attribute decorators ([73edd53](https://github.com/exadel-inc/esl/commit/73edd5340b5bef0e548ef00e932b4630907332b4)) -* **esl-media:** fix incorrect `group` definition in shape ([5358933](https://github.com/exadel-inc/esl/commit/5358933c62076a850cdf314f3a31205db5bd2b51)) - - -### Features - -* **esl-core:** extend `ESLBaseElement` with `$$cls` and `$$attr` methods ([65ab74a](https://github.com/exadel-inc/esl/commit/65ab74a5d1a749958e7d633e973fd679821a057a)) -* **esl-panel-group:** fallback-duration retired, now it's controlled out of the box ([d78553e](https://github.com/exadel-inc/esl/commit/d78553ec4ad474149eb1eba3b4be8d66db942e33)) -* **esl-panel:** ESLPanel no longer requires fallback-time definition ([6140ecd](https://github.com/exadel-inc/esl/commit/6140ecd902a0f888a77310fb8a607d5119b143fc)) -* **esl-utils:** add small attr utility ([f4ee57a](https://github.com/exadel-inc/esl/commit/f4ee57a8f151f82e1ce7cd187799e2cece3c8a10)) -* **esl-utils:** extend CSSClassUtils with `has` check ([f260823](https://github.com/exadel-inc/esl/commit/f260823c913e48313f572006dd6ebf376723461c)) - -## [3.13.2](https://github.com/exadel-inc/esl/compare/v3.13.1...v3.13.2) (2022-02-16) - - -### Bug Fixes - -* **esl-utils:** fix `RTLUtils.isRtl` types API ([f77791b](https://github.com/exadel-inc/esl/commit/f77791b22c99b6fec927c779b350caf2cbbbf918)) - -## [3.13.1](https://github.com/exadel-inc/esl/compare/v3.13.0...v3.13.1) (2022-02-16) - - -### Bug Fixes - -* **esl-scrollbar:** fix `normalizePosition` method to handle vertical scroll on RTL ([#839](https://github.com/exadel-inc/esl/issues/839)) ([a67c2a3](https://github.com/exadel-inc/esl/commit/a67c2a32262ad025fa328d9d63679d9acb52a550)) - -# [3.13.0](https://github.com/exadel-inc/esl/compare/v3.12.1...v3.13.0) (2022-02-14) - - -### Bug Fixes - -* **els-footnotes:** add ready decorator to disconnected callback ([87aa3e7](https://github.com/exadel-inc/esl/commit/87aa3e78649605bce24acc313b76f1ad4694778e)) -* **esl-footnotes:** fix behavior during connect/disconnect callbacks ([68a0553](https://github.com/exadel-inc/esl/commit/68a0553b409fa42b0251952401bee54a55fd24e6)) -* **esl-footnotes:** fix esl-note scroll into view on activate ([7a71a14](https://github.com/exadel-inc/esl/commit/7a71a143e0df804b07baa50cb0fb1a8f35fc438c)) -* **esl-footnotes:** fix esl-note-group attributes propagation ([9fe21b1](https://github.com/exadel-inc/esl/commit/9fe21b19daa87c95a2153ef932051ab8d27b1f81)) -* **esl-footnotes:** fix esl-note-group attributes propagation ([7f3d569](https://github.com/exadel-inc/esl/commit/7f3d569c3fc13353b7e4007de3142b7d537e810f)) -* **esl-footnotes:** fix the sort order of notes ([e299def](https://github.com/exadel-inc/esl/commit/e299def2b6e2daac0c4baa2b9ea6a3f6405da1c9)) -* **esl-footnotes:** replace container with containerEl at tooltip params ([5278b1f](https://github.com/exadel-inc/esl/commit/5278b1fe1be6107f0b5e089b7a9999111938cbe9)) -* **esl-note:** fix the corruption of the note's content ([bd0340d](https://github.com/exadel-inc/esl/commit/bd0340d44388c95b2cd749bcf8380d15460a1b3d)) -* **esl-popup:** fix the position of popups container ([e2d4ba4](https://github.com/exadel-inc/esl/commit/e2d4ba4a3c1a73d00abf5cb5dff0ff1eec2d96d3)) - - -### Features - -* **esl-footnotes:** add activate timeout ([c91d4e8](https://github.com/exadel-inc/esl/commit/c91d4e83a53726c14b4018b391e0e907ef615c7b)) -* **esl-footnotes:** add container attribute to esl-note-group ([621ab2e](https://github.com/exadel-inc/esl/commit/621ab2e97ff7dc12dd6d534aef0cb8afe72329d5)) -* **esl-footnotes:** add container attribute to set up bounds of visibility ([f420ac6](https://github.com/exadel-inc/esl/commit/f420ac6c61439de75478e28a69a12ad66f98dfc5)) -* **esl-footnotes:** add getting attribute value from closest element with group behavior settings ([b286e92](https://github.com/exadel-inc/esl/commit/b286e92cdef5ab44058263e4c8fcdae474125b9f)) -* **esl-footnotes:** add ignore-footnotes attribute to disallow footnotes to pick up a note ([9b8db3e](https://github.com/exadel-inc/esl/commit/9b8db3e17a3f0f8ecde8833146f44aeaf1e01d30)) -* **esl-footnotes:** create els-note-group element ([ffce746](https://github.com/exadel-inc/esl/commit/ffce746973011ec333c08365e317535f8115d43c)) -* **esl-popup:** add container attribute to set up bounds of visibility ([5ae9238](https://github.com/exadel-inc/esl/commit/5ae92386d0f9a336d65c6be48080548174eda9e0)) -* **esl-popup:** add containerEl param to action params ([4321863](https://github.com/exadel-inc/esl/commit/43218638eed1b17f57be36ffc1adef3f4efd0b7e)) -* **esl-popup:** add the ability to esl-popup to move into body in case when it is not in body ([13d3733](https://github.com/exadel-inc/esl/commit/13d3733b4012ef8958af3e823719c4b150985272)) -* **esl-popup:** create esl-popup-proxy component ([ee27f90](https://github.com/exadel-inc/esl/commit/ee27f90506910d77c9dc794205cf9bfe7652c413)) -* **esl-toggleable:** add handler for esl:show:request ([0d32ae9](https://github.com/exadel-inc/esl/commit/0d32ae9f86247d95d1f9e9ba465f77f78a10957a)) -* **esl-toggleable:** create esl-toggleable-proxy element ([d0fb90e](https://github.com/exadel-inc/esl/commit/d0fb90e6397b5e1eb1ad19fbf541c3791980d5ec)) -* **esl-trigger:** add the ability for the target to get origin from proxied element ([523752a](https://github.com/exadel-inc/esl/commit/523752a394918fdcccba001a7e182d6639a87afc)) -* rename elements from *-proxy to *-placeholder ([b98fe34](https://github.com/exadel-inc/esl/commit/b98fe345d9e86aae58160b9e01d5dfe137747b55)) - -# [3.13.0-beta.6](https://github.com/exadel-inc/esl/compare/v3.13.0-beta.5...v3.13.0-beta.6) (2022-02-10) - - -### Features - -* **esl-footnotes:** add getting attribute value from closest element with group behavior settings ([b286e92](https://github.com/exadel-inc/esl/commit/b286e92cdef5ab44058263e4c8fcdae474125b9f)) - -# [3.13.0-beta.5](https://github.com/exadel-inc/esl/compare/v3.13.0-beta.4...v3.13.0-beta.5) (2022-02-02) - - -### Bug Fixes - -* **els-footnotes:** add ready decorator to disconnected callback ([87aa3e7](https://github.com/exadel-inc/esl/commit/87aa3e78649605bce24acc313b76f1ad4694778e)) - -# [3.13.0-beta.4](https://github.com/exadel-inc/esl/compare/v3.13.0-beta.3...v3.13.0-beta.4) (2022-02-02) - - -### Bug Fixes - -* **esl-footnotes:** fix behavior during connect/disconnect callbacks ([68a0553](https://github.com/exadel-inc/esl/commit/68a0553b409fa42b0251952401bee54a55fd24e6)) -* **esl-footnotes:** fix esl-note scroll into view on activate ([7a71a14](https://github.com/exadel-inc/esl/commit/7a71a143e0df804b07baa50cb0fb1a8f35fc438c)) -* **esl-footnotes:** fix esl-note-group attributes propagation ([9fe21b1](https://github.com/exadel-inc/esl/commit/9fe21b19daa87c95a2153ef932051ab8d27b1f81)) -* **esl-footnotes:** fix esl-note-group attributes propagation ([7f3d569](https://github.com/exadel-inc/esl/commit/7f3d569c3fc13353b7e4007de3142b7d537e810f)) -* **esl-footnotes:** replace container with containerEl at tooltip params ([5278b1f](https://github.com/exadel-inc/esl/commit/5278b1fe1be6107f0b5e089b7a9999111938cbe9)) -* **esl-popup:** fix the position of popups container ([e2d4ba4](https://github.com/exadel-inc/esl/commit/e2d4ba4a3c1a73d00abf5cb5dff0ff1eec2d96d3)) - - -### Features - -* **esl-popup:** add containerEl param to action params ([4321863](https://github.com/exadel-inc/esl/commit/43218638eed1b17f57be36ffc1adef3f4efd0b7e)) - -# [3.13.0-beta.3](https://github.com/exadel-inc/esl/compare/v3.13.0-beta.2...v3.13.0-beta.3) (2022-01-26) - - -### Features - -* **esl-footnotes:** add activate timeout ([c91d4e8](https://github.com/exadel-inc/esl/commit/c91d4e83a53726c14b4018b391e0e907ef615c7b)) -* **esl-footnotes:** add container attribute to esl-note-group ([621ab2e](https://github.com/exadel-inc/esl/commit/621ab2e97ff7dc12dd6d534aef0cb8afe72329d5)) -* **esl-footnotes:** add container attribute to set up bounds of visibility ([f420ac6](https://github.com/exadel-inc/esl/commit/f420ac6c61439de75478e28a69a12ad66f98dfc5)) -* **esl-popup:** add container attribute to set up bounds of visibility ([5ae9238](https://github.com/exadel-inc/esl/commit/5ae92386d0f9a336d65c6be48080548174eda9e0)) -* **esl-popup:** add the ability to esl-popup to move into body in case when it is not in body ([13d3733](https://github.com/exadel-inc/esl/commit/13d3733b4012ef8958af3e823719c4b150985272)) -* **esl-popup:** create esl-popup-proxy component ([ee27f90](https://github.com/exadel-inc/esl/commit/ee27f90506910d77c9dc794205cf9bfe7652c413)) -* **esl-toggleable:** create esl-toggleable-proxy element ([d0fb90e](https://github.com/exadel-inc/esl/commit/d0fb90e6397b5e1eb1ad19fbf541c3791980d5ec)) -* **esl-trigger:** add the ability for the target to get origin from proxied element ([523752a](https://github.com/exadel-inc/esl/commit/523752a394918fdcccba001a7e182d6639a87afc)) -* rename elements from *-proxy to *-placeholder ([b98fe34](https://github.com/exadel-inc/esl/commit/b98fe345d9e86aae58160b9e01d5dfe137747b55)) -* update husky ([d15499d](https://github.com/exadel-inc/esl/commit/d15499db4026437ea26c70084e740d822e17bf35)) - -# [3.13.0-beta.2](https://github.com/exadel-inc/esl/compare/v3.13.0-beta.1...v3.13.0-beta.2) (2022-01-18) - - -### Bug Fixes - -* **esl-media:** fix incorrect `load-condition` definition in shape ([94e8d77](https://github.com/exadel-inc/esl/commit/94e8d7784392585ce787d35fee3cce1e1b07a7c7)) - -## [3.12.1](https://github.com/exadel-inc/esl/compare/v3.12.0...v3.12.1) (2022-01-18) - - -### Bug Fixes - -* **esl-media:** fix incorrect `load-condition` definition in shape ([94e8d77](https://github.com/exadel-inc/esl/commit/94e8d7784392585ce787d35fee3cce1e1b07a7c7)) - -# [3.13.0-beta.1](https://github.com/exadel-inc/esl/compare/v3.12.0...v3.13.0-beta.1) (2022-01-17) - - -### Bug Fixes - -* **esl-footnotes:** fix the sort order of notes ([e299def](https://github.com/exadel-inc/esl/commit/e299def2b6e2daac0c4baa2b9ea6a3f6405da1c9)) -* **esl-note:** fix the corruption of the note's content ([bd0340d](https://github.com/exadel-inc/esl/commit/bd0340d44388c95b2cd749bcf8380d15460a1b3d)) - - -### Features - -* **esl-footnotes:** add ignore-footnotes attribute to disallow footnotes to pick up a note ([9b8db3e](https://github.com/exadel-inc/esl/commit/9b8db3e17a3f0f8ecde8833146f44aeaf1e01d30)) -* **esl-footnotes:** create els-note-group element ([ffce746](https://github.com/exadel-inc/esl/commit/ffce746973011ec333c08365e317535f8115d43c)) -* **esl-toggleable:** add handler for esl:show:request ([0d32ae9](https://github.com/exadel-inc/esl/commit/0d32ae9f86247d95d1f9e9ba465f77f78a10957a)) - -# [3.12.0](https://github.com/exadel-inc/esl/compare/v3.11.0...v3.12.0) (2022-01-17) - - -### Bug Fixes - -* **esl-media:** fix missing load condition reinitialization and docs ([4f136d7](https://github.com/exadel-inc/esl/commit/4f136d7b37e06fc0c8ed4b00a150d943e3cad941)) -* **esl-media:** style/performance improvement for condition query ([#777](https://github.com/exadel-inc/esl/issues/777)) ([48bfed5](https://github.com/exadel-inc/esl/commit/48bfed540eedc4b766452c8dfea7b650e6e0a98c)) - - -### Features - -* **esl-toggleable:** add handler for esl:show:request ([ff0556a](https://github.com/exadel-inc/esl/commit/ff0556a41760473ed0a11af087f3a97e550c9b40)) - -# [3.11.0](https://github.com/exadel-inc/esl/compare/v3.10.0...v3.11.0) (2022-01-12) - - -### Bug Fixes - -* **esl-media-query:** fix `ESLMediaRuleList.prototype.default` type ([0ec7ef3](https://github.com/exadel-inc/esl/commit/0ec7ef3019ff7e56ab8c105c13163d534771febb)) -* **esl-panel-group:** fix event trowing when class target not specified ([4ad5e56](https://github.com/exadel-inc/esl/commit/4ad5e56d6d28c995e8b978c0d0c8a84d05ea41da)) -* **esl-toggleable:** improve outside keyboard events handling ([38160b6](https://github.com/exadel-inc/esl/commit/38160b66d4fec7c93b072b1d857fd9d2b093416f)) -* **esl-tooltip:** fix focus out behavior after SHIFT+TAB keypress ([98821a0](https://github.com/exadel-inc/esl/commit/98821a04131f4af234b0f3233f8825d786386a8d)) -* tests unhandled promise rejection ([d6ca55a](https://github.com/exadel-inc/esl/commit/d6ca55a7a0b11e2fe2e161dd04bf60609dfc9d0c)) - - -### Features - -* **esl-panel-group:** ability to define params for child panels requests ([08cf513](https://github.com/exadel-inc/esl/commit/08cf51385cae2514b220b9950d53d0afa4b1b5d3)) -* **esl-panel-group:** dispatch esl:change:mode event ([8d41dbd](https://github.com/exadel-inc/esl/commit/8d41dbd69ac703858f1dd8d43ece748da58780f1)) -* **esl-panel-group:** make animation disabled on transform by default ([1815b00](https://github.com/exadel-inc/esl/commit/1815b006a6decfc91b275b5c28ae9da17b1bf311)) -* **esl-panel-group:** rename `view` attribute to `current-mode`; extend mode class API ([52188fe](https://github.com/exadel-inc/esl/commit/52188fe43457d2f362cd7cca0a126cbf01ffb9c9)) -* **esl-toggleable:** add id auto-creation feature for toggleable instances ([eaf02dc](https://github.com/exadel-inc/esl/commit/eaf02dc490dd0c92b6b9bbdf758769eeba15d62d)) -* **gh-pages:** GSS integration ([#723](https://github.com/exadel-inc/esl/issues/723)) ([8c348be](https://github.com/exadel-inc/esl/commit/8c348be9e6c0a535b2b94c20634cdf1ab13fe5ef)) -* **gh-pages:** GSS integration ([#723](https://github.com/exadel-inc/esl/issues/723)) ([9636e1e](https://github.com/exadel-inc/esl/commit/9636e1eae99c5378d91f2d941663bd2c798fb7cc)) - -# [3.11.0-beta.3](https://github.com/exadel-inc/esl/compare/v3.11.0-beta.2...v3.11.0-beta.3) (2021-12-23) - - -### Bug Fixes - -* **esl-toggleable:** improve outside keyboard events handling ([38160b6](https://github.com/exadel-inc/esl/commit/38160b66d4fec7c93b072b1d857fd9d2b093416f)) - -# [3.11.0-beta.2](https://github.com/exadel-inc/esl/compare/v3.11.0-beta.1...v3.11.0-beta.2) (2021-12-23) - - -### Bug Fixes - -* **esl-panel-group:** fix event trowing when class target not specified ([4ad5e56](https://github.com/exadel-inc/esl/commit/4ad5e56d6d28c995e8b978c0d0c8a84d05ea41da)) - -# [3.11.0-beta.1](https://github.com/exadel-inc/esl/compare/v3.10.1-beta.1...v3.11.0-beta.1) (2021-12-22) - - -### Features - -* **esl-panel-group:** dispatch esl:change:mode event ([8d41dbd](https://github.com/exadel-inc/esl/commit/8d41dbd69ac703858f1dd8d43ece748da58780f1)) - -## [3.10.1-beta.1](https://github.com/exadel-inc/esl/compare/v3.10.0...v3.10.1-beta.1) (2021-12-22) - - -### Bug Fixes - -* **esl-tooltip:** fix focus out behavior after SHIFT+TAB keypress ([98821a0](https://github.com/exadel-inc/esl/commit/98821a04131f4af234b0f3233f8825d786386a8d)) - -# [3.10.0](https://github.com/exadel-inc/esl/compare/v3.9.1...v3.10.0) (2021-12-22) - - -### Bug Fixes - -* **esl-scrollbar:** fix event subscriber leak ([abaf22a](https://github.com/exadel-inc/esl/commit/abaf22a9ec6380fec3d6676dc7f6944688724c1c)) -* **esl-toggleable:** fix `_onOutsideAction` and `_onClick` signature ([0a2600b](https://github.com/exadel-inc/esl/commit/0a2600b66d0ade06fa19e811cfdb1a8fc050dd37)) -* **esl-toggleable:** fix wrong and missing TSX shape attributes ([0dc77ff](https://github.com/exadel-inc/esl/commit/0dc77ffe2b7cf55d7cb3c71e15d65604b7a82fb4)) - - -### Features - -* **esl-toggleable:** `keypress` event now also considered as an outside action ([b3c5374](https://github.com/exadel-inc/esl/commit/b3c537430287f2fd909824d4cabab986f368debe)) - -## [3.9.1](https://github.com/exadel-inc/esl/compare/v3.9.0...v3.9.1) (2021-12-16) - - -### Bug Fixes - -* **esl-scrollbar:** fix drag behaviour for short scroll ([03b179d](https://github.com/exadel-inc/esl/commit/03b179d5c0e1dbf974b8e61af700ffff7bc4decc)) - -# [3.9.0](https://github.com/exadel-inc/esl/compare/v3.8.0...v3.9.0) (2021-12-15) - - -### Bug Fixes - -* **esl-utils:** add support for Touch and Pointer events in normalize utilities ([a5a183c](https://github.com/exadel-inc/esl/commit/a5a183c34655aa04899ed66d57eeac59d5c6a5a5)) - - -### Features - -* **esl-animate:** add jsx/tsx support ([3db5644](https://github.com/exadel-inc/esl/commit/3db564497ea478dc263199cce7c1e232a41d06c4)) -* **esl-scrollbar:** api simplified + performance improvements ([81b8824](https://github.com/exadel-inc/esl/commit/81b8824535253477efb06c8dc640e92746d1da56)) -* **esl-scrollbar:** support for continues click on the scrollbar area ([#688](https://github.com/exadel-inc/esl/issues/688)) ([aae79b4](https://github.com/exadel-inc/esl/commit/aae79b43d05d2ef2a3de144075cddeaf48207d98)) -* **esl-scrollbar:** support for touch actions on scrollbar ([acc42f7](https://github.com/exadel-inc/esl/commit/acc42f702273a1612f551e0df0fdce7c9df8195d)) - -# [3.8.0](https://github.com/exadel-inc/esl/compare/v3.7.0...v3.8.0) (2021-12-10) - - -### Bug Fixes - -* **esl-footnotes:** add event propagation stop at esl-note ([d69ff60](https://github.com/exadel-inc/esl/commit/d69ff60822d6976fbd2c03302322f89d8a504aa3)) -* **esl-footnotes:** fix handling keydown event on return to note button ([83b4131](https://github.com/exadel-inc/esl/commit/83b4131c488b30692997f97a5440cfa3c30523b3)) -* **esl-footnotes:** fix inappropriate behaviour when activating note through the return to note ([c054226](https://github.com/exadel-inc/esl/commit/c054226f6466fbbc59da994d725e5023657d7c49)) -* **esl-popup:** fix wrong arrow position when popup size greater than size outer limiter ([d6f7c2e](https://github.com/exadel-inc/esl/commit/d6f7c2eb377cd539521dce692a76900c3b65810f)) -* **esl-utils:** fix scrollIntoView resolution and horizontal scroll ([15e0891](https://github.com/exadel-inc/esl/commit/15e0891655bc4bc4ae6b0b5d58ca1a30a9986ee5)) - - -### Features - -* **esl-footnotes:** add back-to-note-label to outputting title for the button ([717c23f](https://github.com/exadel-inc/esl/commit/717c23ffe30f5d9963d7463262e4739d2d7d0b1d)) -* **esl-footnotes:** add dispatch esl:show:request event on activate esl-note ([023b7c6](https://github.com/exadel-inc/esl/commit/023b7c6aed677b7734a31aec6d4d1ab64d280388)) -* **esl-footnotes:** add separate method to render content of connected note ([bea4379](https://github.com/exadel-inc/esl/commit/bea4379d35aab4f2e550cb4af13622eee733877e)) -* **esl-popup:** add disable activator observation attribute and add to behavior new values ([bcd8212](https://github.com/exadel-inc/esl/commit/bcd8212ff8acbf90e9d7c7f464800faad5163093)) -* **esl-popup:** add RTL support ([9aab290](https://github.com/exadel-inc/esl/commit/9aab290738547a5b8d7b64e0437e00cdacc13d1c)) -* **esl-popup:** add updating position on transition ([8fb47ed](https://github.com/exadel-inc/esl/commit/8fb47ed866b7c67f93919edcf66b7611eabcbe1f)) -* **esl-popup:** create esl-popup-init mixin to make it easier to initialize styles ([6e78265](https://github.com/exadel-inc/esl/commit/6e7826561d3c7be943dbedd75f94ab1bdcb6f280)) -* **esl-tooltip:** add focus out handling to return focus to activator ([4b20ef8](https://github.com/exadel-inc/esl/commit/4b20ef84d7bac792e43a0b77caec1695faf6c4e1)) -* **esl-utils:** add helper method to get keyboard-focusable elements within a specified element ([3577397](https://github.com/exadel-inc/esl/commit/3577397adc339eb15313637bb1672de159b279d8)) -* **esl-utils:** add static method isEqual() to Rect ([128cbcb](https://github.com/exadel-inc/esl/commit/128cbcbd0f470a960f5ab50479e765f43b31e3b2)) - -# [3.8.0-beta.1](https://github.com/exadel-inc/esl/compare/v3.7.0...v3.8.0-beta.1) (2021-12-07) - - -### Bug Fixes - -* **esl-footnotes:** add event propagation stop at esl-note ([d69ff60](https://github.com/exadel-inc/esl/commit/d69ff60822d6976fbd2c03302322f89d8a504aa3)) -* **esl-footnotes:** fix handling keydown event on return to note button ([83b4131](https://github.com/exadel-inc/esl/commit/83b4131c488b30692997f97a5440cfa3c30523b3)) -* **esl-footnotes:** fix inappropriate behaviour when activating note through the return to note ([c054226](https://github.com/exadel-inc/esl/commit/c054226f6466fbbc59da994d725e5023657d7c49)) -* **esl-utils:** fix scrollIntoView resolution and horizontal scroll ([15e0891](https://github.com/exadel-inc/esl/commit/15e0891655bc4bc4ae6b0b5d58ca1a30a9986ee5)) - - -### Features - -* **esl-footnotes:** add back-to-note-label to outputting title for the button ([717c23f](https://github.com/exadel-inc/esl/commit/717c23ffe30f5d9963d7463262e4739d2d7d0b1d)) -* **esl-footnotes:** add dispatch esl:show:request event on activate esl-note ([023b7c6](https://github.com/exadel-inc/esl/commit/023b7c6aed677b7734a31aec6d4d1ab64d280388)) -* **esl-footnotes:** add separate method to render content of connected note ([bea4379](https://github.com/exadel-inc/esl/commit/bea4379d35aab4f2e550cb4af13622eee733877e)) -* **esl-popup:** add disable activator observation attribute and add to behavior new values ([bcd8212](https://github.com/exadel-inc/esl/commit/bcd8212ff8acbf90e9d7c7f464800faad5163093)) -* **esl-popup:** add RTL support ([9aab290](https://github.com/exadel-inc/esl/commit/9aab290738547a5b8d7b64e0437e00cdacc13d1c)) -* **esl-popup:** add updating position on transition ([8fb47ed](https://github.com/exadel-inc/esl/commit/8fb47ed866b7c67f93919edcf66b7611eabcbe1f)) -* **esl-popup:** create esl-popup-init mixin to make it easier to initialize styles ([6e78265](https://github.com/exadel-inc/esl/commit/6e7826561d3c7be943dbedd75f94ab1bdcb6f280)) -* **esl-tooltip:** add focus out handling to return focus to activator ([4b20ef8](https://github.com/exadel-inc/esl/commit/4b20ef84d7bac792e43a0b77caec1695faf6c4e1)) -* **esl-utils:** add helper method to get keyboard-focusable elements within a specified element ([3577397](https://github.com/exadel-inc/esl/commit/3577397adc339eb15313637bb1672de159b279d8)) -* **esl-utils:** add static method isEqual() to Rect ([128cbcb](https://github.com/exadel-inc/esl/commit/128cbcbd0f470a960f5ab50479e765f43b31e3b2)) - -# [3.7.0-beta.4](https://github.com/exadel-inc/esl/compare/v3.7.0-beta.3...v3.7.0-beta.4) (2021-12-03) - - -### Features - -* **esl-footnotes:** add dispatch esl:show:request event on activate esl-note ([023b7c6](https://github.com/exadel-inc/esl/commit/023b7c6aed677b7734a31aec6d4d1ab64d280388)) - -# [3.7.0-beta.3](https://github.com/exadel-inc/esl/compare/v3.7.0-beta.2...v3.7.0-beta.3) (2021-12-01) - - -### Bug Fixes - -* **esl-footnotes:** fix handling keydown event on return to note button ([83b4131](https://github.com/exadel-inc/esl/commit/83b4131c488b30692997f97a5440cfa3c30523b3)) - - -### Features - -* **esl-tooltip:** add focus out handling to return focus to activator ([4b20ef8](https://github.com/exadel-inc/esl/commit/4b20ef84d7bac792e43a0b77caec1695faf6c4e1)) -* **esl-utils:** `ESLVSizeCSSProxy` utility to fix 100vh problem is introduced ([5bae888](https://github.com/exadel-inc/esl/commit/5bae8882f87797741ef10cc835e50f7485fe63c8)) -* **esl-utils:** add helper method to get keyboard-focusable elements within a specified element ([3577397](https://github.com/exadel-inc/esl/commit/3577397adc339eb15313637bb1672de159b279d8)) - -# [3.7.0-beta.2](https://github.com/exadel-inc/esl/compare/v3.7.0-beta.1...v3.7.0-beta.2) (2021-11-30) - - -### Bug Fixes - -* **esl-footnotes:** add event propagation stop at esl-note ([d69ff60](https://github.com/exadel-inc/esl/commit/d69ff60822d6976fbd2c03302322f89d8a504aa3)) - - -### Features - -* **esl-popup:** add updating position on transition ([8fb47ed](https://github.com/exadel-inc/esl/commit/8fb47ed866b7c67f93919edcf66b7611eabcbe1f)) -* **esl-popup:** create esl-popup-init mixin to make it easier to initialize styles ([6e78265](https://github.com/exadel-inc/esl/commit/6e7826561d3c7be943dbedd75f94ab1bdcb6f280)) -* **esl-utils:** add static method isEqual() to Rect ([128cbcb](https://github.com/exadel-inc/esl/commit/128cbcbd0f470a960f5ab50479e765f43b31e3b2)) - -# [3.7.0-beta.1](https://github.com/exadel-inc/esl/compare/v3.6.0...v3.7.0-beta.1) (2021-11-28) - - -### Features - -* **esl-footnotes:** add back-to-note-label to outputting title for the button ([717c23f](https://github.com/exadel-inc/esl/commit/717c23ffe30f5d9963d7463262e4739d2d7d0b1d)) -* **esl-footnotes:** add separate method to render content of connected note ([bea4379](https://github.com/exadel-inc/esl/commit/bea4379d35aab4f2e550cb4af13622eee733877e)) - -# [3.7.0](https://github.com/exadel-inc/esl/compare/v3.6.0...v3.7.0) (2021-12-07) - - -### Bug Fixes - -* **esl-utils:** `CSSClassUtils` utility should support lower DOM API ([594b889](https://github.com/exadel-inc/esl/commit/594b8892db600f3fcb99915fe28ea062a5942281)) -* **esl-utils:** fix usage of deprecated substr in `CSSClassUtils` ([c142152](https://github.com/exadel-inc/esl/commit/c142152edfab5ab5398a53eb3029cb94fc03eb94)) - - -### Features - -* **esl-animate:** make a new module "esl-animate" to animate elements on viewport intersecting ([e369350](https://github.com/exadel-inc/esl/commit/e3693507b65194ec952ada37d5255bc6f9d48b31)) -* **esl-utils:** `ESLVSizeCSSProxy` utility to fix 100vh problem is introduced ([5bae888](https://github.com/exadel-inc/esl/commit/5bae8882f87797741ef10cc835e50f7485fe63c8)) - -# [3.6.0](https://github.com/exadel-inc/esl/compare/v3.5.0...v3.6.0) (2021-11-23) - - -### Bug Fixes - -* **esl-media:** `preload` and `fill-mode` types restricted ([4c41cb3](https://github.com/exadel-inc/esl/commit/4c41cb338c49559a3425029fd31f9957c741b3aa)) -* **esl-poup:** fix popup positioning ([61b0237](https://github.com/exadel-inc/esl/commit/61b0237f3b7fc9c14f786d382b0900ceffeaa9d0)) - - -### Features - -* **esl-popup:** add new feature to be able to set position of arrow on popup ([7973e1f](https://github.com/exadel-inc/esl/commit/7973e1f4f2281f538abb7783046463d2b7967fa2)) -* **esl-traversing-query:** add ability to restrict global scope ([3e136c0](https://github.com/exadel-inc/esl/commit/3e136c09245f10dd5bfe24cc0c7deb94551f8aed)) -* **esl-utils:** array unwrap utility ([45c50a0](https://github.com/exadel-inc/esl/commit/45c50a067b9a0de42e1740ae6bba0264d1229280)) -* **esl-utils:** fix `isPrimitive` check and `isObject` return type, add `isArrayLike` ([80b8aa0](https://github.com/exadel-inc/esl/commit/80b8aa04068f9d047c459769ce32a71a5ddaf0d9)) - -# [3.5.0](https://github.com/exadel-inc/esl/compare/v3.4.1...v3.5.0) (2021-11-15) - - -### Bug Fixes - -* **esl-alert:** default alert background color changed ([0243e63](https://github.com/exadel-inc/esl/commit/0243e632efd2a6a27679f3b942fa828f2c5bcfe2)) -* **esl-popup:** fix arrow position for adjacent axis ([b37d550](https://github.com/exadel-inc/esl/commit/b37d55021659c6781f516641f5fc88eda77aaf39)) -* **esl-select:** return min-width ([c07ceba](https://github.com/exadel-inc/esl/commit/c07ceba75b320e4bc7eaa0c4333d7cfb51ee6d43)) - - -### Features -* **gh-pages** new demo site released -* **esl-utils** add ability to scrollIntoView to detect when scrolling stops ([d1a4845](https://github.com/exadel-inc/esl/commit/d1a48452f1fcdfd7347f86bf6d09eeeb2dc1d80a)) -* **esl-alert:** ability to control initial params ([1cda5ea](https://github.com/exadel-inc/esl/commit/1cda5ea2d4d121cb73b50f2dbf7518151081db85)) - - -## [3.4.1](https://github.com/exadel-inc/esl/compare/v3.4.0...v3.4.1) (2021-11-08) - - -### Bug Fixes - -* **esl-utils:** scrollIntoViewAsync() method signature ([6817b31](https://github.com/exadel-inc/esl/commit/6817b31dea274bf57e271d34dcfb7625d1e9b57f)) -* **esl-utils:** update dispatch parameter type ([0834a97](https://github.com/exadel-inc/esl/commit/0834a974babf59aaef1bacb753057586a433a056)) - -# [3.4.0](https://github.com/exadel-inc/esl/compare/v3.3.0...v3.4.0) (2021-10-21) - - -### Bug Fixes - -* **esl-trigger:** remove debug information about incorrect target ([1b4bea9](https://github.com/exadel-inc/esl/commit/1b4bea973bd236c30d2b3654dd6979578faabf00)) - - -### Features - -* **esl-forms:** add TSX shapes for ESLSelect and ESLSelectList ([ab1c550](https://github.com/exadel-inc/esl/commit/ab1c550292f8a19bdb4deb1458e2f0b9b7a58ca3)) -* **esl-scrollbar:** default inactive state for arrows in the boundary stages ([9a72663](https://github.com/exadel-inc/esl/commit/9a7266374cb3c795a7b5fd01cbff02c71b111cb5)) -* **esl-utils:** add `repeatSequence` utility to call async function in chain n-th count of times ([03eff4c](https://github.com/exadel-inc/esl/commit/03eff4c08064024025a16186c57eab6d9d403028)) -* **esl-utils:** add a capitalize method to `esl-utils/misc/format.ts` ([#554](https://github.com/exadel-inc/esl/issues/554)) ([a2c19fc](https://github.com/exadel-inc/esl/commit/a2c19fcfbc0bbdfbac6b28ceb01100990fed219a)) - -# [3.3.0](https://github.com/exadel-inc/esl/compare/v3.2.0...v3.3.0) (2021-10-08) - - -### Features - -* **esl-scrollbar:** add at-end / at-start markers ([ce0a6fe](https://github.com/exadel-inc/esl/commit/ce0a6fecebdb7332674aa3369674c80c5937bab8)) -* **esl-scrollbar:** dispatch position event ([ad7e7db](https://github.com/exadel-inc/esl/commit/ad7e7db105d75f08be2f47225b02eb1311b2ab00)) -* **esl-utils:** add new groupBy utility to the array utils ([5d65b82](https://github.com/exadel-inc/esl/commit/5d65b82979113ae3020a948a56a816dbacf88a43)), closes [#503](https://github.com/exadel-inc/esl/issues/503) - -# [3.2.0](https://github.com/exadel-inc/esl/compare/v3.1.0...v3.2.0) (2021-09-22) - - -### Bug Fixes - -* **esl-trigger:** can be of the type null ([58f0644](https://github.com/exadel-inc/esl/commit/58f0644dee92dcb37c76b86df2e5da8bb4ccdbc2)) -* **esl-trigger:** error handling if the target is not an instance of togglable ([85cb6c1](https://github.com/exadel-inc/esl/commit/85cb6c17c9299c5b6e5dca0ecaff9d6586da0351)) -* **esl-utils:** fix `Debounced` and `Throttled` function return types ([3d2c598](https://github.com/exadel-inc/esl/commit/3d2c59811de982156e672e874cc38a711b40b3e8)) - - -### Features - -* add ability to prevent scroll on focus ([#490](https://github.com/exadel-inc/esl/issues/490)) ([a9a8a02](https://github.com/exadel-inc/esl/commit/a9a8a02706a11327eceb52f0c5d97bef40858015)) -* **esl-trigger:** add `esl:change:active` event details & fix event emmit condition ([a0237b2](https://github.com/exadel-inc/esl/commit/a0237b267fbe0a0f9fa0eaa546bac92d90d3a76a)), closes [#480](https://github.com/exadel-inc/esl/issues/480) -* **esl-utils:** add optional `throttle` and `debounce` context argument ([eb948ce](https://github.com/exadel-inc/esl/commit/eb948cead3bd3afa7138e5fb96c58e8dde389116)) - -# [3.1.0](https://github.com/exadel-inc/esl/compare/v3.0.3...v3.1.0) (2021-09-16) - -New Exadel Smart Library version comes with extended and out-of-the-box support for TSX. -TSX Shapes updated and complete, `JSX.Element` merging no longer required, everything available OOTB. -**Default ESL tags definition no longer needed, get rid of the `IntrinsicElements` interface expansion, ESL now define everything that's required.** - -### Bug Fixes - -* tsx single tags allowed child definition ([10e465a](https://github.com/exadel-inc/esl/commit/10e465a268059ffe5f1e96aecd6f123f5af6cc04)) - - -### Features - -* add `ESLBaseElement` complete and independent TSX shape definition ([7517bf4](https://github.com/exadel-inc/esl/commit/7517bf40b6c53e7593e198ba4520ee467d2755b7)) -* add TSX shapes for `ESLAlert` ([b2ff733](https://github.com/exadel-inc/esl/commit/b2ff733028e3fb5ac27831388bc67b73e72e9eed)) -* add TSX shapes for `ESLPopup` ([180f411](https://github.com/exadel-inc/esl/commit/180f411ceef38d3b558de4c5b4c902dc1cb8a1eb)) -* ootb TSX types for components & updates complete TSX shapes ([2bd409c](https://github.com/exadel-inc/esl/commit/2bd409c3f5be79df76c7745ffdcaf574f614b35a)), closes [#476](https://github.com/exadel-inc/esl/issues/476) -* add new set utilities with the following methods: - - `intersection` - to create a unique array intersection - - `union` - to create a union of the unique values - - `complement` - to create a complement of one array to another - - `fullIntersection` - check if the arrays have a full intersection - - -## [3.0.3](https://github.com/exadel-inc/esl/compare/v3.0.2...v3.0.3) (2021-09-07) - - -### Bug Fixes - -* fix allowed children for new JSX Shapes ([aa3182b](https://github.com/exadel-inc/esl/commit/aa3182bcce565ad23802286663d54ed96b694f5e)) -* fix default value for trigger ([b7c600a](https://github.com/exadel-inc/esl/commit/b7c600a24e562b15204c4223ee6a03ba592f04f7)) - -## [3.0.2](https://github.com/exadel-inc/esl/compare/v3.0.1...v3.0.2) (2021-09-06) - - -### Bug Fixes - -* **esl-panel:** fix animation reflow for esl-panel ([3603609](https://github.com/exadel-inc/esl/commit/36036098be10b265324f0b3f8ecfa3464715f234)) -* **esl-toggleable:** final fix for outside action handling flow ([9b3056c](https://github.com/exadel-inc/esl/commit/9b3056c85c12bfdf41f2b44a4415fb0dea6695f7)) -* fix unsubscribe for outside actions ([27e9d32](https://github.com/exadel-inc/esl/commit/27e9d3242e9d2efce4b94c0ef2bd08ecaa228635)) - -## [3.0.1](https://github.com/exadel-inc/esl/compare/v3.0.0...v3.0.1) (2021-09-03) - - -### Bug Fixes - -* **esl-toggleable:** fix outside action binding ([eccc2d7](https://github.com/exadel-inc/esl/commit/eccc2d75453f8d4b84167fdc10d2bcb0e1d86c3d)) - -# [3.0.0](https://github.com/exadel-inc/esl/compare/v2.9.1...v3.0.0) (2021-09-01) - - -### Bug Fixes - -* **esl-footnotes:** fix broken click on back-to-note ([e66ae96](https://github.com/exadel-inc/esl/commit/e66ae967681fc2a59e71fb5c7f990d4e16dbc6c2)) -* **esl-footnotes:** fix character for return to note due to its absence at fonts on some platforms ([d74788f](https://github.com/exadel-inc/esl/commit/d74788fe1efde9aed4b8a3ffdb201c5aea138e34)) -* **esl-footnotes:** fix footnotes soting and reindex ([f13ba79](https://github.com/exadel-inc/esl/commit/f13ba79d72383584bf62ced35cda9d587697a677)) -* **esl-footnotes:** fix IE11 issue with Map.iterator absent ([3bad82b](https://github.com/exadel-inc/esl/commit/3bad82b383a0e9fcd41d3d3bb5d6452a9673e491)) -* **esl-media:** fix toggle method and process keydown event otb ([b3ad030](https://github.com/exadel-inc/esl/commit/b3ad030b42ed0e28946b73bfe5c661bd9d899d74)) -* **esl-note:** fix broken connection between esl-note and esl-footnotes ([646ebbc](https://github.com/exadel-inc/esl/commit/646ebbc46d92e50e6070c5aa34b98d9623f417a4)) -* **esl-note:** fix the issue with lost tooltip text after cloning of element ([882e0b0](https://github.com/exadel-inc/esl/commit/882e0b0398d16bff04e022ce994484bbdc917489)) -* **esl-panel:** add missing observedAttributes method ([2bae85f](https://github.com/exadel-inc/esl/commit/2bae85f46cb81ba83d4eee08b4536d40cd1fbb58)) -* **esl-panel:** fix twitchy panel animation on multiple requests ([fee25af](https://github.com/exadel-inc/esl/commit/fee25aff21b328fcf9eb61dee7a87bb80eef2a64)) -* **esl-popup:** fix IE11 errors in popup behaviour ([6c7c50d](https://github.com/exadel-inc/esl/commit/6c7c50d0f88d659c399f4e38cb7b6fdbf651070d)) -* **esl-popup:** fix wrong popup arrow positioning ([d127a67](https://github.com/exadel-inc/esl/commit/d127a67588d2e32230304edcf69079a0a8e58223)) -* **esl-popup:** fix wrong popup positioning ([907ce47](https://github.com/exadel-inc/esl/commit/907ce4750e4b4729d5ae1634ca9e0346161408c8)) -* **esl-popup:** remove position attr from popup arrow and add placed-at attr to popup element ([32d9d93](https://github.com/exadel-inc/esl/commit/32d9d937fc28209904c8f9fd7c14e0783a0c60d5)) -* **esl-popup:** wrong popup position when the popup is shown at the first time ([c5195ab](https://github.com/exadel-inc/esl/commit/c5195ab7415ba4c7309879e93be8db049b61bb3e)) -* **esl-popup:** wrong popup position when the popup is shown at the first time ([7533683](https://github.com/exadel-inc/esl/commit/753368395f238fe9870a92436adbb749828a325d)) -* **esl-select-list:** fix IE11 scroll ([0c4bebb](https://github.com/exadel-inc/esl/commit/0c4bebb15536a2eeaaf84723928b634682f1573d)) -* **esl-toggleable:** allow to register toggleable as independent component ([ac98970](https://github.com/exadel-inc/esl/commit/ac98970987dda5e2103f6e1104568d60642c0f2a)) -* **esl-toggleable:** fix trackHover hideDelay inheritance from the original activator ([e67acb3](https://github.com/exadel-inc/esl/commit/e67acb38530105629cb82560246a22af795d0c39)) -* **esl-toggleable:** fix trackHover precondition ([751eb76](https://github.com/exadel-inc/esl/commit/751eb7636797cb1b79f6df1b6bcf3ff5b8350fb9)) -* **esl-trigger:** fix incorrect tap handling on mobile devices ([a297ff6](https://github.com/exadel-inc/esl/commit/a297ff6688c1044f62679db2136b9f442bc7bc68)), closes [#436](https://github.com/exadel-inc/esl/issues/436) -* **esl-utils:** delayed-task now accept numeric string delay representation ([d1122f4](https://github.com/exadel-inc/esl/commit/d1122f45365e3599f3a3a35fc3f8528b10d5c659)) -* activator is not defined in hide handler ([6e2473e](https://github.com/exadel-inc/esl/commit/6e2473eae4a0742c0737b4d743415d4de5e207cf)) -* add cleanup step for the build and start ([31dd317](https://github.com/exadel-inc/esl/commit/31dd3176c7fc4b03c06c9804046ae79f710bf4f6)) -* fix twitchy scrollbar when scroll-behavior set to smooth for target ([4b9848c](https://github.com/exadel-inc/esl/commit/4b9848c9881cce9de4a4e283b61b3ffa78c9f73e)), closes [#430](https://github.com/exadel-inc/esl/issues/430) -* **esl-select:** fix height empty space appeared with little amount of list items ([9dfadc4](https://github.com/exadel-inc/esl/commit/9dfadc410cb5f5fcbaafc3debfe64386ca0013c7)) -* **esl-select:** specify max-height for standalone list in pixels & for list in dropdown in vh ([70ed2f0](https://github.com/exadel-inc/esl/commit/70ed2f0cba83dcf2801ee6f9729fac4ce53bb114)) -* **esl-utils:** deep merge: fix array case and refactor ([4191b85](https://github.com/exadel-inc/esl/commit/4191b851cb84f59ef31cf8bbb0dd29c5594fea86)) -* **esl-utils:** device detector touch detection improved ([7a5956e](https://github.com/exadel-inc/esl/commit/7a5956ebf55d00bde38707c92bc921ac48c1c5ef)) -* **esl-utils:** fix IE issue 'ShadowRoot is undefined' ([4a8cffc](https://github.com/exadel-inc/esl/commit/4a8cffc025441016b75a723365fec4ad7ca2d288)) -* **esl-utils:** fix IE11 issue with x and y absent in DOMRect ([b64a654](https://github.com/exadel-inc/esl/commit/b64a6545048164022cfa4a180da9ae8a922a8241)) -* declare global interface HTMLElementTagNameMap ([b5c96de](https://github.com/exadel-inc/esl/commit/b5c96de0e88e96b63796c7a1921774c71693cbfd)) -* fix namespace types and typing placement ([c2e2ab0](https://github.com/exadel-inc/esl/commit/c2e2ab00901dc599a5c994ae16036d1ea92b3a11)) -* pseudo scroll locker styles fix ([8d2cfeb](https://github.com/exadel-inc/esl/commit/8d2cfeb04525fb968a2372d86fd1cbd3f6a866b2)) -* remove drafts collection from sitemap ([3dc726a](https://github.com/exadel-inc/esl/commit/3dc726a8a617bf622fedb640e41f7b1087f12d58)) -* **esl-utils:** fix IE issue 'ShadowRoot is undefined' ([c354ab9](https://github.com/exadel-inc/esl/commit/c354ab9971ed82c45168b29354f1f943f3a3b4ae)) -* merge changes ([ec09584](https://github.com/exadel-inc/esl/commit/ec095848cbb2efd195bc5963c8c76cb385172632)) -* **esl-utils:** add hasHover device detection ([2f46dc5](https://github.com/exadel-inc/esl/commit/2f46dc593f21822cb00a883acdcead608f6ee3b7)) -* **esl-utils:** fix IE pseudo scroll lock artifacts ([90961e0](https://github.com/exadel-inc/esl/commit/90961e07e8af28091245cdaac5bf7b93f8c34edc)) -* **esl-utils:** fix media query empty rule payload type (null -> undefined) ([423506e](https://github.com/exadel-inc/esl/commit/423506e83ae9793518ce3e19351a56600d0d5f5d)) -* **esl-utils:** fix pseudo scroll RTL support ([db23758](https://github.com/exadel-inc/esl/commit/db23758a408c1f0309c71391fc68bd30f1933f6a)) -* **esl-utils:** strict types for deep merge ([04bbad4](https://github.com/exadel-inc/esl/commit/04bbad4ea68b18caf01420c6aeae05c83f23ead1)) -* activator should be available after hide ([817181a](https://github.com/exadel-inc/esl/commit/817181aad59499abb15d0f2ad9a82f56e63f98cd)) -* editing styles for correct display on mobile ([58a35b1](https://github.com/exadel-inc/esl/commit/58a35b104dfa96783f9bd25d43b5b3d3663bf378)) -* fix esl-popup arrow position ([b0490df](https://github.com/exadel-inc/esl/commit/b0490dff03cd42dad6dfdd885ff1dbb6bb749076)) -* **esl-image:** svg loading check update ([6f72a70](https://github.com/exadel-inc/esl/commit/6f72a708cf0594ff1ef5a7f2eabbc03f4164fa87)) -* **esl-utils:** isRtl check updated to use computed styles instead of attribute ([89ae48d](https://github.com/exadel-inc/esl/commit/89ae48d5da35eab386d2f3cb53cdb20273e29423)) -* **esl-utils:** update export list ([5b9df8b](https://github.com/exadel-inc/esl/commit/5b9df8b2733efa8fbf3999c47150b4e7e2464ad5)) -* **esl-utils:** utility DeviceDetector updated to recognize iOS13 ([dc2bda2](https://github.com/exadel-inc/esl/commit/dc2bda2be9b30f89953bc5c7b79c03ae6a3fc8ea)) - - -### Code Refactoring - -* **esl-utils:** remove deprecations of version v2.0.0 ([cbd38b6](https://github.com/exadel-inc/esl/commit/cbd38b6011b790b89a243fb4b0d419b7c80907a8)) - - -### Features - -* **esl-a11y-group:** add jsx tag shape ([c469f20](https://github.com/exadel-inc/esl/commit/c469f2018989fa03b44ca300e9593a04b16ab79f)) -* **esl-footnotes:** add a grouping of footnotes with non-unique text ([9890124](https://github.com/exadel-inc/esl/commit/9890124c6a65750a52e543a863c2def739504937)) -* **esl-footnotes:** add a grouping of footnotes with non-unique text ([05344a0](https://github.com/exadel-inc/esl/commit/05344a0e881b15a1ff6cba67557e15fa950518bc)) -* **esl-media-query:** media query v2 update ([#232](https://github.com/exadel-inc/esl/issues/232)) ([0c122e9](https://github.com/exadel-inc/esl/commit/0c122e91514355b376043f8e67dbae244dac1c81)) -* **esl-note:** add highlighting for notes ([2864205](https://github.com/exadel-inc/esl/commit/2864205e2118e0aa8869913df2c3bb0daac63974)) -* **esl-panel:** add jsx tag shape ([ba00085](https://github.com/exadel-inc/esl/commit/ba00085e44e8c45c9e4ae6182251e7e420857df3)) -* **esl-panel-group:** allows any number of open panels for accordion mode ([3476e90](https://github.com/exadel-inc/esl/commit/3476e90f9b5b89fb8c16a92540fb799cd12ffdff)) -* **esl-popup:** add bottom, left, right position and update position when parents scroll ([9242fca](https://github.com/exadel-inc/esl/commit/9242fcabded6a5f349b40ef1cc46cedda86b058a)) -* **esl-popup:** add popup flipping and hiding by detection intersection side ([a213262](https://github.com/exadel-inc/esl/commit/a213262813c1ddc79d51510bbb4001cae2aeca4c)) -* **esl-popup:** remake popup positioning ([2ffe381](https://github.com/exadel-inc/esl/commit/2ffe3817d990e6ed98117ece5196c286ad3f71d4)) -* **esl-popup:** update esl-popup demo page ([bb0e396](https://github.com/exadel-inc/esl/commit/bb0e396a69819590db923578ddcbe1d411aa2b0e)) -* **esl-popup:** update imports, move separate window helpers, remove unnecessary code ([f198295](https://github.com/exadel-inc/esl/commit/f19829520f195f787288eb21a800af23bb9c4eba)) -* **esl-scrollbar:** add rtl support for horizontal scrollbar ([fa27e5d](https://github.com/exadel-inc/esl/commit/fa27e5d49f7e2f864ae8fd65816cf00bdb5035da)) -* **esl-tabs:** add jsx tag shape ([4688984](https://github.com/exadel-inc/esl/commit/4688984cb00a0fabdc7322d1e4cc8d68b12dac28)) -* **esl-toggleable:** add jsx tag shape ([d583f24](https://github.com/exadel-inc/esl/commit/d583f243fdb68ef02c7b711ade7c7ad360a69d10)) -* **esl-tooltip:** add new action param to set up tooltip extra classes ([1b1587f](https://github.com/exadel-inc/esl/commit/1b1587fed6581997b758d5464505bdc68540123b)) -* **esl-trigger:** add jsx tag shape ([2b36fae](https://github.com/exadel-inc/esl/commit/2b36fae8e1d08f11eb9311098a4763e2d432788b)) -* **esl-utils:** add ability check if the memoized property create a cache ([81f2e02](https://github.com/exadel-inc/esl/commit/81f2e02fcabd20e2c6b5f59c15e3718c7e177b1d)) -* **esl-utils:** add butch manipulations support for `CSSClassUtils` ([#395](https://github.com/exadel-inc/esl/issues/395)) ([3635e39](https://github.com/exadel-inc/esl/commit/3635e39507fd9227052580d07f1490f8dc8ac863)) -* **esl-utils:** add new syntax options support for format utility ([#393](https://github.com/exadel-inc/esl/issues/393)) ([e44aca0](https://github.com/exadel-inc/esl/commit/e44aca01b054430fe724fc896bfb9d55ea30f959)) -* **esl-utils:** range array utility ([fbeae90](https://github.com/exadel-inc/esl/commit/fbeae90ba0a2746dd7086b4d6afaf1915cd9171d)) -* 'throttle' API changes ([8db7bfb](https://github.com/exadel-inc/esl/commit/8db7bfb4adbb74d595b5fe041a930edfaaa65986)) -* add deepMerge utility ([11331d8](https://github.com/exadel-inc/esl/commit/11331d885c236a882e192311dc2e2848e145b4b3)) -* add helpers (isScrollParent, getScrollParent and getListScrollParent) for working with scroll parents ([a4d25f9](https://github.com/exadel-inc/esl/commit/a4d25f9b4f2f381cd831192f0289bfd0d9caefe9)) -* add priority tag ([43904be](https://github.com/exadel-inc/esl/commit/43904be29875f15dd563ac286ebd7797faa15f55)) -* add sitemap generator ([78651ce](https://github.com/exadel-inc/esl/commit/78651ce4b9d79fc57fc908d91e8aab0e8feaeb15)) -* add some tests ([25e4e01](https://github.com/exadel-inc/esl/commit/25e4e0108103ea6e172a1e34e2d73fae6e71d14f)) -* create dom helpers class Rect to manage size and position of rectangles ([3343bfd](https://github.com/exadel-inc/esl/commit/3343bfd04884adb5a3cd0afb1e4fb3b7d088cce5)) -* create esl-popup demo page ([b4eec2c](https://github.com/exadel-inc/esl/commit/b4eec2c911027d0d4e860b2d26c326cb956f486f)) -* create helpers for working with the window as part esl-util DOM helpers ([49a58b2](https://github.com/exadel-inc/esl/commit/49a58b288c5c4f323d12c994b117467c3b01132a)) -* debounced method API changes ([#402](https://github.com/exadel-inc/esl/issues/402)) ([420f8bc](https://github.com/exadel-inc/esl/commit/420f8bc8a800f4e2362b47fdf9c84c912af16ba6)) -* **gh-pages:** the ability to include markdown into demo pages ([#368](https://github.com/exadel-inc/esl/issues/368)) ([7fa42fc](https://github.com/exadel-inc/esl/commit/7fa42fc9fe4fbc2ccb4c320811b922a2bcb3eec1)) -* add `isPrototype` check predicate to 'misc/object' utils ([ad30d37](https://github.com/exadel-inc/esl/commit/ad30d3756ad38fe67bf2502f8eb38804fe2a314b)) -* add meta tag viewport ([2994954](https://github.com/exadel-inc/esl/commit/2994954f7aa2837fc7ace328700a2ae6f6e6c73b)) -* create helpers for working with the element as part esl-util DOM helpers ([2d72af1](https://github.com/exadel-inc/esl/commit/2d72af1d72542666d4d96f32a4f7db7971f31cba)) -* **esl-toggleable:** add track hover params property ([50f8d77](https://github.com/exadel-inc/esl/commit/50f8d77c7bdd7470bd8ae996cda33f11a67bee43)) -* **esl-toggleable:** set track hover activator to initial ([c48d182](https://github.com/exadel-inc/esl/commit/c48d182277411524024b03741dd3b4dbbdf65b2b)) -* **esl-trigger:** show/hide delay override for hover on trigger ([7962eba](https://github.com/exadel-inc/esl/commit/7962eba74f01177f97f30aab68a2a9b4d4d2dc9f)) -* **esl-utils:** add copy & omit utilities ([d31b957](https://github.com/exadel-inc/esl/commit/d31b9573d271708943b0abb717952fb7d7c01ef5)) -* **esl-utils:** add EventUtil stopPropagation and preventDefault stubs ([2e835f4](https://github.com/exadel-inc/esl/commit/2e835f47e310599067823f1fef8ba69035695344)) -* **gh-pages:** migration of the demo-site to 11ty ([#287](https://github.com/exadel-inc/esl/issues/287)) ([61e42de](https://github.com/exadel-inc/esl/commit/61e42de87b188f4a8b7e61d89a368bfaf1313d84)) -* add prefix support for random uid ([6d7e180](https://github.com/exadel-inc/esl/commit/6d7e1806390e5e1d02431e78fa9bcb98879c0f27)) -* add trigger esl-tooltip to esl-note ([ff13d74](https://github.com/exadel-inc/esl/commit/ff13d7472328afd8f0fd9ccf262aa487a6a92612)) -* add updating activator state to esl-tooltip ([238c744](https://github.com/exadel-inc/esl/commit/238c744c765bcd32752b6963be35c062adab1204)) -* create localdev page for esl-note and esl-footnotes ([c22b192](https://github.com/exadel-inc/esl/commit/c22b192bccb8966ed64d378980ec42d3802bf436)) -* esl-note replace note text with note html ([5882e71](https://github.com/exadel-inc/esl/commit/5882e71326ad3262ad62fb7f76bedbfbc5f08779)) -* **esl-utils:** add parseNumber utility ([5e5fff1](https://github.com/exadel-inc/esl/commit/5e5fff12af6f16da2888f6770423e718ce9853aa)) -* add resize listener to esl-popup for updating position ([c5017d5](https://github.com/exadel-inc/esl/commit/c5017d56ef5fcbda0359f35cc8d581d9ebab60ed)) -* create back-to-note button at esl-footntes ([a619d73](https://github.com/exadel-inc/esl/commit/a619d73195511403c7efcd1378e537bbaa5624ab)) -* extend UID utilities ([f90a1c1](https://github.com/exadel-inc/esl/commit/f90a1c178b11364d4e1424d0e0673e77cbbaf553)) -* improve interconnection between esl-notes and esl-footnotes ([2e79fd0](https://github.com/exadel-inc/esl/commit/2e79fd0e224c0c04db7b5f78aede727c16e545c4)) -* improved interconnection between esl-notes and esl-footnotes ([5e422d7](https://github.com/exadel-inc/esl/commit/5e422d7134df4a76b7f750b387141bbb71375c38)) -* initial implementation of esl-footnotes ([042c4e7](https://github.com/exadel-inc/esl/commit/042c4e7d60916cc0eecf7a4eaaaa810d70d42498)) -* initial implementation of esl-note ([d158c5a](https://github.com/exadel-inc/esl/commit/d158c5a0d9cd76926ad403948d5f53625d627f04)) -* initial implementation of esl-tooltip ([4a0620b](https://github.com/exadel-inc/esl/commit/4a0620b87377a39ec8c0aaeadac51037b753878b)) -* rework esl-note ([c709022](https://github.com/exadel-inc/esl/commit/c7090224b2d104f93b986e2c6dfbfdbd605cbeb9)) -* rework esl-popup ([5723b38](https://github.com/exadel-inc/esl/commit/5723b38c91098088cdca6ec267dec42810bf9b70)) -* share sequences between bundles ([307fe53](https://github.com/exadel-inc/esl/commit/307fe53b8ff3bb7219b1095ea50aa23126391f71)) -* support mode="open" to make all panels active ([2619fe5](https://github.com/exadel-inc/esl/commit/2619fe55e63b78af237af09a30b55ec442172774)) -* update esl-note after esl-trigger reimplementation ([134c020](https://github.com/exadel-inc/esl/commit/134c02010ecb1ee9649ff8ce2751316fd0f9f310)) -* update esl-popup styles ([167ef0a](https://github.com/exadel-inc/esl/commit/167ef0ae54da9f593d6474b3823ca8df37e3cd8b)) -* update memoization for object getter accessor with a lightweight version ([ae5614b](https://github.com/exadel-inc/esl/commit/ae5614b1e3b23876326a1656110eee42f4c26be6)) -* **esl-toggleable:** automatic initial a11y ([49e30c4](https://github.com/exadel-inc/esl/commit/49e30c458e6860955718440451fe91ee7545fdc1)) -* **esl-toggleable:** esl-toggleable reimplementation ([94bf814](https://github.com/exadel-inc/esl/commit/94bf8142c82fc91e91dae86440202a0450906bb0)) -* **esl-toggleable:** toggleable API updated, show/hide flow refactored ([2e77654](https://github.com/exadel-inc/esl/commit/2e776541da85d1c5760cc1c622843f50577f7799)) -* **esl-utils:** aggregate decorator function introduced ([0915fd6](https://github.com/exadel-inc/esl/commit/0915fd6dfad7f09405ebb71877f82fd1a0ed1a92)) -* **esl-utils:** focus order utility ([bd61f99](https://github.com/exadel-inc/esl/commit/bd61f996c5138254bade5a19c40561ed075d340b)) - - -### BREAKING CHANGES - -* **esl-panel:** ESLPanelGroup is now distributed as a separate module -* decorated `debouncedMethod = debounce(fn)` call no longer returns Promise use 'debouncedMethod.promise' instead - -Co-authored-by: ala'n (Alexey Stsefanovich) -* **esl-media-query:** - `ESLMediaQuery` no longer constructible use `ESLMediaQuery.for` and `ESLMediaQuery.from` instead -- `ESLMediaRule` - DPR and device marker no longer available -- `ESLMediaBreakpoints.addCustomBreakpoint` replaced with `ESLScreenBreakpoints.add` -- `ESLMediaBreakpoints.getBreakpoint` replaced with `ESLScreenBreakpoints.get` -- `ESLMediaQuery.ignoreBotsDpr` replaced with `ESLMediaDPRShortcut.ignoreBotsDpr` -- `ObserverCallback` removed use strict type instead -* **esl-toggleable:** * `event` property no longer available. -Alternative `track-click`/`track-hover` options provided -* `touchShowDelay` and `touchShowDelay` removed. -Use `showDelay` / `hideDelay` with ESLMediaQuery support -* Inner API changes: `showEvent`, `hideEvent` removed -* Inner API changes: `_onClick`, `_onMouseEnter`, `_onMouseLeave` handlers -* `generateUId` renamed to `randUID` -* **esl-toggleable:** onShow/onHide no longer contains inner state changes. -* **esl-utils:** `CSSUtil` from 'esl-utils/dom/styles' is removed; -`ScrollUtility` alias is no longer available use `ScrollUtils` instead; -`@override` and `@readonly` deprecated decorators are removed use `@prop` decorator instead; - -# [3.0.0-beta.20](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.19...v3.0.0-beta.20) (2021-08-30) - - -### Bug Fixes - -* **esl-panel:** add missing observedAttributes method ([2bae85f](https://github.com/exadel-inc/esl/commit/2bae85f46cb81ba83d4eee08b4536d40cd1fbb58)) -* **esl-panel:** fix twitchy panel animation on multiple requests ([fee25af](https://github.com/exadel-inc/esl/commit/fee25aff21b328fcf9eb61dee7a87bb80eef2a64)) -* **esl-toggleable:** fix trackHover hideDelay inheritance from the original activator ([e67acb3](https://github.com/exadel-inc/esl/commit/e67acb38530105629cb82560246a22af795d0c39)) -* **esl-utils:** deep merge: fix array case and refactor ([4191b85](https://github.com/exadel-inc/esl/commit/4191b851cb84f59ef31cf8bbb0dd29c5594fea86)) -* **esl-utils:** delayed-task now accept numeric string delay representation ([d1122f4](https://github.com/exadel-inc/esl/commit/d1122f45365e3599f3a3a35fc3f8528b10d5c659)) -* add cleanup step for the build and start ([31dd317](https://github.com/exadel-inc/esl/commit/31dd3176c7fc4b03c06c9804046ae79f710bf4f6)) -* fix twitchy scrollbar when scroll-behavior set to smooth for target ([4b9848c](https://github.com/exadel-inc/esl/commit/4b9848c9881cce9de4a4e283b61b3ffa78c9f73e)), closes [#430](https://github.com/exadel-inc/esl/issues/430) -* **esl-utils:** strict types for deep merge ([04bbad4](https://github.com/exadel-inc/esl/commit/04bbad4ea68b18caf01420c6aeae05c83f23ead1)) - - -### Features - -* **esl-utils:** add ability check if the memoized property create a cache ([81f2e02](https://github.com/exadel-inc/esl/commit/81f2e02fcabd20e2c6b5f59c15e3718c7e177b1d)) -* 'throttle' API changes ([8db7bfb](https://github.com/exadel-inc/esl/commit/8db7bfb4adbb74d595b5fe041a930edfaaa65986)) -* debounced method API changes ([#402](https://github.com/exadel-inc/esl/issues/402)) ([420f8bc](https://github.com/exadel-inc/esl/commit/420f8bc8a800f4e2362b47fdf9c84c912af16ba6)) - - -### BREAKING CHANGES - -* **esl-panel:** ESLPanelGroup is now distributed as a separate module -* decorated `debouncedMethod = debounce(fn)` call no longer returns Promise use 'debouncedMethod.promise' instead - -Co-authored-by: ala'n (Alexey Stsefanovich) - -## [2.9.1](https://github.com/exadel-inc/esl/compare/v2.9.0...v2.9.1) (2021-08-25) - - -# [3.0.0-beta.19](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.18...v3.0.0-beta.19) (2021-08-19) - - -### Bug Fixes - -* **esl-footnotes:** fix broken click on back-to-note ([e66ae96](https://github.com/exadel-inc/esl/commit/e66ae967681fc2a59e71fb5c7f990d4e16dbc6c2)) - -# [3.0.0-beta.18](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.17...v3.0.0-beta.18) (2021-08-18) - - -### Bug Fixes - -* **esl-footnotes:** fix footnotes soting and reindex ([f13ba79](https://github.com/exadel-inc/esl/commit/f13ba79d72383584bf62ced35cda9d587697a677)) -* **esl-footnotes:** fix IE11 issue with Map.iterator absent ([3bad82b](https://github.com/exadel-inc/esl/commit/3bad82b383a0e9fcd41d3d3bb5d6452a9673e491)) -* **esl-media:** fix toggle method and process keydown event otb ([b3ad030](https://github.com/exadel-inc/esl/commit/b3ad030b42ed0e28946b73bfe5c661bd9d899d74)) -* **esl-note:** fix the issue with lost tooltip text after cloning of element ([882e0b0](https://github.com/exadel-inc/esl/commit/882e0b0398d16bff04e022ce994484bbdc917489)) - - -### Features - -* **esl-a11y-group:** add jsx tag shape ([c469f20](https://github.com/exadel-inc/esl/commit/c469f2018989fa03b44ca300e9593a04b16ab79f)) -* **esl-panel:** add jsx tag shape ([ba00085](https://github.com/exadel-inc/esl/commit/ba00085e44e8c45c9e4ae6182251e7e420857df3)) -* **esl-tabs:** add jsx tag shape ([4688984](https://github.com/exadel-inc/esl/commit/4688984cb00a0fabdc7322d1e4cc8d68b12dac28)) -* **esl-toggleable:** add jsx tag shape ([d583f24](https://github.com/exadel-inc/esl/commit/d583f243fdb68ef02c7b711ade7c7ad360a69d10)) -* **esl-trigger:** add jsx tag shape ([2b36fae](https://github.com/exadel-inc/esl/commit/2b36fae8e1d08f11eb9311098a4763e2d432788b)) -* **esl-utils:** add butch manipulations support for `CSSClassUtils` ([#395](https://github.com/exadel-inc/esl/issues/395)) ([3635e39](https://github.com/exadel-inc/esl/commit/3635e39507fd9227052580d07f1490f8dc8ac863)) -* **esl-utils:** add new syntax options support for format utility ([#393](https://github.com/exadel-inc/esl/issues/393)) ([e44aca0](https://github.com/exadel-inc/esl/commit/e44aca01b054430fe724fc896bfb9d55ea30f959)) - -# [3.0.0-beta.17](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.16...v3.0.0-beta.17) (2021-08-13) - - -### Features - -* **esl-footnotes:** add a grouping of footnotes with non-unique text ([9890124](https://github.com/exadel-inc/esl/commit/9890124c6a65750a52e543a863c2def739504937)) -* **esl-footnotes:** add a grouping of footnotes with non-unique text ([05344a0](https://github.com/exadel-inc/esl/commit/05344a0e881b15a1ff6cba67557e15fa950518bc)) -* **esl-note:** add highlighting for notes ([2864205](https://github.com/exadel-inc/esl/commit/2864205e2118e0aa8869913df2c3bb0daac63974)) - -# [3.0.0-beta.16](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.15...v3.0.0-beta.16) (2021-08-09) - - -### Bug Fixes - -* **esl-popup:** wrong popup position when the popup is shown at the first time ([c5195ab](https://github.com/exadel-inc/esl/commit/c5195ab7415ba4c7309879e93be8db049b61bb3e)) -* **esl-popup:** wrong popup position when the popup is shown at the first time ([7533683](https://github.com/exadel-inc/esl/commit/753368395f238fe9870a92436adbb749828a325d)) -* **esl-utils:** fix IE issue 'ShadowRoot is undefined' ([4a8cffc](https://github.com/exadel-inc/esl/commit/4a8cffc025441016b75a723365fec4ad7ca2d288)) -* **esl-utils:** fix IE11 issue with x and y absent in DOMRect ([b64a654](https://github.com/exadel-inc/esl/commit/b64a6545048164022cfa4a180da9ae8a922a8241)) -* merge changes ([ec09584](https://github.com/exadel-inc/esl/commit/ec095848cbb2efd195bc5963c8c76cb385172632)) -* remove drafts collection from sitemap ([3dc726a](https://github.com/exadel-inc/esl/commit/3dc726a8a617bf622fedb640e41f7b1087f12d58)) - - -### Features - -* **esl-tooltip:** add new action param to set up tooltip extra classes ([1b1587f](https://github.com/exadel-inc/esl/commit/1b1587fed6581997b758d5464505bdc68540123b)) -* **esl-utils:** promise functional declarations ([19b1e2b](https://github.com/exadel-inc/esl/commit/19b1e2b7e5b0fe2cf4431b35a06b07122108ddfb)) -* add priority tag ([43904be](https://github.com/exadel-inc/esl/commit/43904be29875f15dd563ac286ebd7797faa15f55)) -* add sitemap generator ([78651ce](https://github.com/exadel-inc/esl/commit/78651ce4b9d79fc57fc908d91e8aab0e8feaeb15)) - -# [2.9.0](https://github.com/exadel-inc/esl/compare/v2.8.2...v2.9.0) (2021-08-08) - - -### Features - -* **esl-utils:** promise functional declarations ([19b1e2b](https://github.com/exadel-inc/esl/commit/19b1e2b7e5b0fe2cf4431b35a06b07122108ddfb)) - -# [3.0.0-beta.15](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.14...v3.0.0-beta.15) (2021-08-05) - - -### Bug Fixes - -* fix namespace types and typing placement ([c2e2ab0](https://github.com/exadel-inc/esl/commit/c2e2ab00901dc599a5c994ae16036d1ea92b3a11)) -* **esl-popup:** remove position attr from popup arrow and add placed-at attr to popup element ([32d9d93](https://github.com/exadel-inc/esl/commit/32d9d937fc28209904c8f9fd7c14e0783a0c60d5)) -* **esl-utils:** fix IE issue 'ShadowRoot is undefined' ([c354ab9](https://github.com/exadel-inc/esl/commit/c354ab9971ed82c45168b29354f1f943f3a3b4ae)) -* declare global interface HTMLElementTagNameMap ([b5c96de](https://github.com/exadel-inc/esl/commit/b5c96de0e88e96b63796c7a1921774c71693cbfd)) - - -### Features - -* **gh-pages:** the ability to include markdown into demo pages ([#368](https://github.com/exadel-inc/esl/issues/368)) ([7fa42fc](https://github.com/exadel-inc/esl/commit/7fa42fc9fe4fbc2ccb4c320811b922a2bcb3eec1)) - -## [2.8.2](https://github.com/exadel-inc/esl/compare/v2.8.1...v2.8.2) (2021-08-04) - -# [3.0.0-beta.14](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.13...v3.0.0-beta.14) (2021-08-02) - - -### Bug Fixes - -* **esl-footnotes:** fix character for return to note due to its absence at fonts on some platforms ([d74788f](https://github.com/exadel-inc/esl/commit/d74788fe1efde9aed4b8a3ffdb201c5aea138e34)) -* **esl-note:** fix broken connection between esl-note and esl-footnotes ([646ebbc](https://github.com/exadel-inc/esl/commit/646ebbc46d92e50e6070c5aa34b98d9623f417a4)) -* **esl-popup:** fix wrong popup arrow positioning ([d127a67](https://github.com/exadel-inc/esl/commit/d127a67588d2e32230304edcf69079a0a8e58223)) -* **esl-popup:** fix wrong popup positioning ([907ce47](https://github.com/exadel-inc/esl/commit/907ce4750e4b4729d5ae1634ca9e0346161408c8)) -* editing styles for correct display on mobile ([58a35b1](https://github.com/exadel-inc/esl/commit/58a35b104dfa96783f9bd25d43b5b3d3663bf378)) -* fix esl-popup arrow position ([b0490df](https://github.com/exadel-inc/esl/commit/b0490dff03cd42dad6dfdd885ff1dbb6bb749076)) - - -### Features - -* **esl-media-query:** media query v2 update ([#232](https://github.com/exadel-inc/esl/issues/232)) ([0c122e9](https://github.com/exadel-inc/esl/commit/0c122e91514355b376043f8e67dbae244dac1c81)) -* **esl-scrollbar:** add rtl support for horizontal scrollbar ([fa27e5d](https://github.com/exadel-inc/esl/commit/fa27e5d49f7e2f864ae8fd65816cf00bdb5035da)) -* add `isPrototype` check predicate to 'misc/object' utils ([ad30d37](https://github.com/exadel-inc/esl/commit/ad30d3756ad38fe67bf2502f8eb38804fe2a314b)) -* add deepMerge utility ([11331d8](https://github.com/exadel-inc/esl/commit/11331d885c236a882e192311dc2e2848e145b4b3)) -* add meta tag viewport ([2994954](https://github.com/exadel-inc/esl/commit/2994954f7aa2837fc7ace328700a2ae6f6e6c73b)) -* add some tests ([25e4e01](https://github.com/exadel-inc/esl/commit/25e4e0108103ea6e172a1e34e2d73fae6e71d14f)) -* create dom helpers class Rect to manage size and position of rectangles ([3343bfd](https://github.com/exadel-inc/esl/commit/3343bfd04884adb5a3cd0afb1e4fb3b7d088cce5)) -* **esl-popup:** update imports, move separate window helpers, remove unnecessary code ([f198295](https://github.com/exadel-inc/esl/commit/f19829520f195f787288eb21a800af23bb9c4eba)) -* add helpers (isScrollParent, getScrollParent and getListScrollParent) for working with scroll parents ([a4d25f9](https://github.com/exadel-inc/esl/commit/a4d25f9b4f2f381cd831192f0289bfd0d9caefe9)) -* create helpers for working with the element as part esl-util DOM helpers ([2d72af1](https://github.com/exadel-inc/esl/commit/2d72af1d72542666d4d96f32a4f7db7971f31cba)) -* create helpers for working with the window as part esl-util DOM helpers ([49a58b2](https://github.com/exadel-inc/esl/commit/49a58b288c5c4f323d12c994b117467c3b01132a)) -* **esl-popup:** add bottom, left, right position and update position when parents scroll ([9242fca](https://github.com/exadel-inc/esl/commit/9242fcabded6a5f349b40ef1cc46cedda86b058a)) -* **esl-popup:** add popup flipping and hiding by detection intersection side ([a213262](https://github.com/exadel-inc/esl/commit/a213262813c1ddc79d51510bbb4001cae2aeca4c)) -* **esl-popup:** remake popup positioning ([2ffe381](https://github.com/exadel-inc/esl/commit/2ffe3817d990e6ed98117ece5196c286ad3f71d4)) -* **esl-popup:** update esl-popup demo page ([bb0e396](https://github.com/exadel-inc/esl/commit/bb0e396a69819590db923578ddcbe1d411aa2b0e)) -* create esl-popup demo page ([b4eec2c](https://github.com/exadel-inc/esl/commit/b4eec2c911027d0d4e860b2d26c326cb956f486f)) -* update memoization for object getter accessor with a lightweight version ([ae5614b](https://github.com/exadel-inc/esl/commit/ae5614b1e3b23876326a1656110eee42f4c26be6)) - - -### BREAKING CHANGES - -* **esl-media-query:** - `ESLMediaQuery` no longer constructible use `ESLMediaQuery.for` and `ESLMediaQuery.from` instead -- `ESLMediaRule` - DPR and device marker no longer available -- `ESLMediaBreakpoints.addCustomBreakpoint` replaced with `ESLScreenBreakpoints.add` -- `ESLMediaBreakpoints.getBreakpoint` replaced with `ESLScreenBreakpoints.get` -- `ESLMediaQuery.ignoreBotsDpr` replaced with `ESLMediaDPRShortcut.ignoreBotsDpr` -- `ObserverCallback` removed use strict type instead - -# [2.8.1](https://github.com/exadel-inc/esl/compare/v2.8.0...v2.8.1) (2021-07-20) - -# [3.0.0-beta.13](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.12...v3.0.0-beta.13) (2021-07-06) - -# [2.8.0](https://github.com/exadel-inc/esl/compare/v2.7.3...v2.8.0) (2021-07-06) - -### Bug Fixes - -* **esl-utils:** fixed extra space ([bf0aea7](https://github.com/exadel-inc/esl/commit/bf0aea776fb05c7d3770aa0bcab7b1bfa9ee67d3)) - - -### Features - -* **esl-utils:** added delete, backspace to the keys.ts ([234d433](https://github.com/exadel-inc/esl/commit/234d433c58455e2f83612ade8b49866ebd5e40d2)) - -# [2.8.0](https://github.com/exadel-inc/esl/compare/v2.7.3...v2.8.0) (2021-07-06) - -### Features - -* **esl-utils:** added delete, backspace to the keys.ts ([234d433](https://github.com/exadel-inc/esl/commit/234d433c58455e2f83612ade8b49866ebd5e40d2)) - -# [3.0.0-beta.12](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.11...v3.0.0-beta.12) (2021-07-01) - - -### Bug Fixes - -* **esl-utils:** isRtl check updated to use computed styles instead of attribute ([89ae48d](https://github.com/exadel-inc/esl/commit/89ae48d5da35eab386d2f3cb53cdb20273e29423)) - - -### Features - -* **esl-toggleable:** set track hover activator to initial ([c48d182](https://github.com/exadel-inc/esl/commit/c48d182277411524024b03741dd3b4dbbdf65b2b)) -* **esl-utils:** add EventUtil stopPropagation and preventDefault stubs ([2e835f4](https://github.com/exadel-inc/esl/commit/2e835f47e310599067823f1fef8ba69035695344)) -* **gh-pages:** migration of the demo-site to 11ty ([#287](https://github.com/exadel-inc/esl/issues/287)) ([61e42de](https://github.com/exadel-inc/esl/commit/61e42de87b188f4a8b7e61d89a368bfaf1313d84)) - -## [2.7.3](https://github.com/exadel-inc/esl/compare/v2.7.2...v2.7.3) (2021-06-30) -Dependencies versions update - -# [3.0.0-beta.11](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.10...v3.0.0-beta.11) (2021-06-22) - - -### Bug Fixes - -* **esl-toggleable:** allow to register toggleable as independent component ([ac98970](https://github.com/exadel-inc/esl/commit/ac98970987dda5e2103f6e1104568d60642c0f2a)) - - -### Features -* **esl-footnotes:** new component released in beta -* **esl-tooltip:** new component released in beta -* **esl-popup** component reworked to v2.0.0 - -#### Detailed log: -* add resize listener to esl-popup for updating position ([c5017d5](https://github.com/exadel-inc/esl/commit/c5017d56ef5fcbda0359f35cc8d581d9ebab60ed)) -* add trigger esl-tooltip to esl-note ([ff13d74](https://github.com/exadel-inc/esl/commit/ff13d7472328afd8f0fd9ccf262aa487a6a92612)) -* add updating activator state to esl-tooltip ([238c744](https://github.com/exadel-inc/esl/commit/238c744c765bcd32752b6963be35c062adab1204)) -* create back-to-note button at esl-footntes ([a619d73](https://github.com/exadel-inc/esl/commit/a619d73195511403c7efcd1378e537bbaa5624ab)) -* create localdev page for esl-note and esl-footnotes ([c22b192](https://github.com/exadel-inc/esl/commit/c22b192bccb8966ed64d378980ec42d3802bf436)) -* esl-note replace note text with note html ([5882e71](https://github.com/exadel-inc/esl/commit/5882e71326ad3262ad62fb7f76bedbfbc5f08779)) -* improve interconnection between esl-notes and esl-footnotes ([2e79fd0](https://github.com/exadel-inc/esl/commit/2e79fd0e224c0c04db7b5f78aede727c16e545c4)) -* improved interconnection between esl-notes and esl-footnotes ([5e422d7](https://github.com/exadel-inc/esl/commit/5e422d7134df4a76b7f750b387141bbb71375c38)) -* initial implementation of esl-footnotes ([042c4e7](https://github.com/exadel-inc/esl/commit/042c4e7d60916cc0eecf7a4eaaaa810d70d42498)) -* initial implementation of esl-note ([d158c5a](https://github.com/exadel-inc/esl/commit/d158c5a0d9cd76926ad403948d5f53625d627f04)) -* initial implementation of esl-tooltip ([4a0620b](https://github.com/exadel-inc/esl/commit/4a0620b87377a39ec8c0aaeadac51037b753878b)) -* rework esl-note ([c709022](https://github.com/exadel-inc/esl/commit/c7090224b2d104f93b986e2c6dfbfdbd605cbeb9)) -* rework esl-popup ([5723b38](https://github.com/exadel-inc/esl/commit/5723b38c91098088cdca6ec267dec42810bf9b70)) -* update esl-note after esl-trigger reimplementation ([134c020](https://github.com/exadel-inc/esl/commit/134c02010ecb1ee9649ff8ce2751316fd0f9f310)) -* update esl-popup styles ([167ef0a](https://github.com/exadel-inc/esl/commit/167ef0ae54da9f593d6474b3823ca8df37e3cd8b)) - -## [2.7.2](https://github.com/exadel-inc/esl/compare/v2.7.1...v2.7.2) (2021-06-18) -Dependencies versions update - -# [3.0.0-beta.10](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.9...v3.0.0-beta.10) (2021-06-17) - - -### Bug Fixes - -* **esl-utils:** fix IE pseudo scroll lock artifacts ([90961e0](https://github.com/exadel-inc/esl/commit/90961e07e8af28091245cdaac5bf7b93f8c34edc)) -* **esl-utils:** fix pseudo scroll RTL support ([db23758](https://github.com/exadel-inc/esl/commit/db23758a408c1f0309c71391fc68bd30f1933f6a)) - - -### Features - -* **esl-toggleable:** add track hover params property ([50f8d77](https://github.com/exadel-inc/esl/commit/50f8d77c7bdd7470bd8ae996cda33f11a67bee43)) -* **esl-utils:** add parseNumber utility ([5e5fff1](https://github.com/exadel-inc/esl/commit/5e5fff12af6f16da2888f6770423e718ce9853aa)) -* add prefix support for random uid ([6d7e180](https://github.com/exadel-inc/esl/commit/6d7e1806390e5e1d02431e78fa9bcb98879c0f27)) -* share sequences between bundles ([307fe53](https://github.com/exadel-inc/esl/commit/307fe53b8ff3bb7219b1095ea50aa23126391f71)) - -# [3.0.0-beta.9](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.8...v3.0.0-beta.9) (2021-06-16) - - -### Features - -* **esl-trigger:** show/hide delay override for hover on trigger ([7962eba](https://github.com/exadel-inc/esl/commit/7962eba74f01177f97f30aab68a2a9b4d4d2dc9f)) - -# [3.0.0-beta.8](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.7...v3.0.0-beta.8) (2021-06-13) - - -### Bug Fixes - -* pseudo scroll locker styles fix ([8d2cfeb](https://github.com/exadel-inc/esl/commit/8d2cfeb04525fb968a2372d86fd1cbd3f6a866b2)) -* **esl-toggleable:** fix trackHover precondition ([751eb76](https://github.com/exadel-inc/esl/commit/751eb7636797cb1b79f6df1b6bcf3ff5b8350fb9)) -* **esl-utils:** add hasHover device detection ([2f46dc5](https://github.com/exadel-inc/esl/commit/2f46dc593f21822cb00a883acdcead608f6ee3b7)) -* **esl-utils:** fix media query empty rule payload type (null -> undefined) ([423506e](https://github.com/exadel-inc/esl/commit/423506e83ae9793518ce3e19351a56600d0d5f5d)) - - -### Features - -* **esl-toggleable:** automatic initial a11y ([49e30c4](https://github.com/exadel-inc/esl/commit/49e30c458e6860955718440451fe91ee7545fdc1)) -* **esl-toggleable:** esl-toggleable reimplementation ([94bf814](https://github.com/exadel-inc/esl/commit/94bf8142c82fc91e91dae86440202a0450906bb0)) - - -### BREAKING CHANGES - -* **esl-toggleable:** - * `event` property no longer available. -Alternative `track-click`/`track-hover` options provided - * `touchShowDelay` and `touchShowDelay` removed. -Use `showDelay` / `hideDelay` with ESLMediaQuery support - * Inner API changes: `showEvent`, `hideEvent` removed - * Inner API changes: `_onClick`, `_onMouseEnter`, `_onMouseLeave` handlers - -## [2.7.1](https://github.com/exadel-inc/esl/compare/v2.7.0...v2.7.1) (2021-06-13) -Dependencies versions update - - -# [3.0.0-beta.7](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.6...v3.0.0-beta.7) (2021-06-08) - - -### BREACKING CHANGES: -* **esl-image**: make original mode rule meta independent -* **esl-media-query**: get rid of DPR meta -* **esl-media-query**: mobile device marker removed - -# [3.0.0-beta.6](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.5...v3.0.0-beta.6) (2021-06-07) - - -### Bug Fixes - -* **esl-utils:** device detector touch detection improved ([7a5956e](https://github.com/exadel-inc/esl/commit/7a5956ebf55d00bde38707c92bc921ac48c1c5ef)) - - -### Features - -* **esl-utils:** add copy & omit utilities ([d31b957](https://github.com/exadel-inc/esl/commit/d31b9573d271708943b0abb717952fb7d7c01ef5)) - -# [3.0.0-beta.5](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.4...v3.0.0-beta.5) (2021-06-03) - - -### Bug Fixes - -* activator should be available after hide ([817181a](https://github.com/exadel-inc/esl/commit/817181aad59499abb15d0f2ad9a82f56e63f98cd)) - -# [3.0.0-beta.4](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.3...v3.0.0-beta.4) (2021-06-02) - - -### Bug Fixes - -* activator is not defined in hide handler ([6e2473e](https://github.com/exadel-inc/esl/commit/6e2473eae4a0742c0737b4d743415d4de5e207cf)) - - -### Features - -* extend UID utilities ([f90a1c1](https://github.com/exadel-inc/esl/commit/f90a1c178b11364d4e1424d0e0673e77cbbaf553)) - - -### BREAKING CHANGES - -* `generateUId` renamed to `randUID` - -# [3.0.0-beta.3](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.2...v3.0.0-beta.3) (2021-05-31) - - -### Bug Fixes - -* **esl-select:** fix height empty space appeared with little amount of list items ([9dfadc4](https://github.com/exadel-inc/esl/commit/9dfadc410cb5f5fcbaafc3debfe64386ca0013c7)) -* **esl-select:** specify max-height for standalone list in pixels & for list in dropdown in vh ([70ed2f0](https://github.com/exadel-inc/esl/commit/70ed2f0cba83dcf2801ee6f9729fac4ce53bb114)) -* jest defaults for new version ([9ba56b4](https://github.com/exadel-inc/esl/commit/9ba56b4794944f808c18f6e3e6e5002cf561d6ef)) - - -### Features - -* **esl-utils:** added alt, shift and control to the keys.ts (within hpe keycode removing) ([73580ec](https://github.com/exadel-inc/esl/commit/73580ecf60dd2abd7aebe72d7958a3539286f1b3)) - -# [3.0.0-beta.2](https://github.com/exadel-inc/esl/compare/v3.0.0-beta.1...v3.0.0-beta.2) (2021-05-26) - - -### Bug Fixes - -* **esl-utils:** utility DeviceDetector updated to recognize iOS13 ([dc2bda2](https://github.com/exadel-inc/esl/commit/dc2bda2be9b30f89953bc5c7b79c03ae6a3fc8ea)) - -# [3.0.0-beta.1](https://github.com/exadel-inc/esl/compare/v2.7.0-beta.2...v3.0.0-beta.1) (2021-05-24) - - -### Bug Fixes - -* **esl-image:** svg loading check update ([6f72a70](https://github.com/exadel-inc/esl/commit/6f72a708cf0594ff1ef5a7f2eabbc03f4164fa87)) - - -### Features - -* **esl-toggleable:** toggleable API updated, show/hide flow refactored ([2e77654](https://github.com/exadel-inc/esl/commit/2e776541da85d1c5760cc1c622843f50577f7799)) - - -### BREAKING CHANGES - -* **esl-toggleable:** onShow/onHide no longer contains inner state changes. - -# [2.7.0-beta.2](https://github.com/exadel-inc/esl/compare/v2.7.0-beta.1...v2.7.0-beta.2) (2021-05-20) - - -### Bug Fixes - -* **esl-utils:** update export list ([5b9df8b](https://github.com/exadel-inc/esl/commit/5b9df8b2733efa8fbf3999c47150b4e7e2464ad5)) - - -### Code Refactoring - -* **esl-utils:** remove deprecations of version v2.0.0 ([cbd38b6](https://github.com/exadel-inc/esl/commit/cbd38b6011b790b89a243fb4b0d419b7c80907a8)) - - -### Features - -* **esl-utils:** aggregate decorator function introduced ([0915fd6](https://github.com/exadel-inc/esl/commit/0915fd6dfad7f09405ebb71877f82fd1a0ed1a92)) -* **esl-utils:** focus order utility ([bd61f99](https://github.com/exadel-inc/esl/commit/bd61f996c5138254bade5a19c40561ed075d340b)) - - -### BREAKING CHANGES - -* **esl-utils:** `CSSUtil` from 'esl-utils/dom/styles' is removed; -`ScrollUtility` alias is no longer available use `ScrollUtils` instead; -`@override` and `@readonly` deprecated decorators are removed use `@prop` decorator instead; - -# [2.7.0-beta.1](https://github.com/exadel-inc/esl/compare/v2.6.4...v2.7.0-beta.1) (2021-05-17) - - -### Features - -* support mode="open" to make all panels active ([2619fe5](https://github.com/exadel-inc/esl/commit/2619fe55e63b78af237af09a30b55ec442172774)) - -# [2.7.0](https://github.com/exadel-inc/esl/compare/v2.6.4...v2.7.0) (2021-05-31) - - -### Bug Fixes - -* jest defaults for new version ([9ba56b4](https://github.com/exadel-inc/esl/commit/9ba56b4794944f808c18f6e3e6e5002cf561d6ef)) - - -### Features - -* **esl-utils:** added alt, shift and control to the keys.ts (within hpe keycode removing) ([73580ec](https://github.com/exadel-inc/esl/commit/73580ecf60dd2abd7aebe72d7958a3539286f1b3)) - -## [2.6.4](https://github.com/exadel-inc/esl/compare/v2.6.3...v2.6.4) (2021-05-15) - - -### Bug Fixes - -* 'Stack out of bounds' exception for memoized non static member in IE ([4493f90](https://github.com/exadel-inc/esl/commit/4493f9076f7f590fb72d7f24ee6c9bd735120c9c)) - -## [2.6.3](https://github.com/exadel-inc/esl/compare/v2.6.2...v2.6.3) (2021-04-29) - -## [2.6.2](https://github.com/exadel-inc/esl/compare/v2.6.1...v2.6.2) (2021-04-26) - - -### Bug Fixes - -* fix fallback animation call for esl-panel and esl-panel-group ([712f53d](https://github.com/exadel-inc/esl/commit/712f53d44198f8bbc32ed890c10a763667a61cf7)) - -## [2.6.1](https://github.com/exadel-inc/esl/compare/v2.6.0...v2.6.1) (2021-04-23) - -# [2.6.0](https://github.com/exadel-inc/esl/compare/v2.5.2...v2.6.0) (2021-04-22) - - -### Bug Fixes - -* remove undefined prop keys from toggleable properties merging ([3bb5d30](https://github.com/exadel-inc/esl/commit/3bb5d301e34a98d7afb5a32838d63cdbe21a2403)) -* toggleable attribute change detection and extend action params with more information ([1627056](https://github.com/exadel-inc/esl/commit/16270569b3b54e55ff80f27c6f10d4c1fe13fdfc)) - - -### Features - -* copyDefinedKeys utility created ([11306c4](https://github.com/exadel-inc/esl/commit/11306c402104e3355031ee100af523664d3a2124)) -* disabled options support for esl-select-item and fix list mutation detection ([53dfe01](https://github.com/exadel-inc/esl/commit/53dfe01622e07ffa196f46448b85818dd4d79f94)) -* extend ToggleableDispatcher params with more information ([e8febf3](https://github.com/exadel-inc/esl/commit/e8febf394578bcb380481aff14cdc1faf78856e2)) - -## [2.5.2](https://github.com/exadel-inc/esl/compare/v2.5.1...v2.5.2) (2021-04-21) - +## [5.0.0-beta.33](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.32...v5.0.0-beta.33) (2024-08-22) ### Bug Fixes -* provider type dynamic registration fix ([128b22f](https://github.com/exadel-inc/esl/commit/128b22f6d0b113608c533cc12a3164f37dca4d45)) - -## [2.5.1](https://github.com/exadel-inc/esl/compare/v2.5.0...v2.5.1) (2021-04-19) - -# [2.5.0](https://github.com/exadel-inc/esl/compare/v2.4.1...v2.5.0) (2021-04-19) +* **esl-carousel:** fix slide mixin initialization order ([ad92042](https://github.com/exadel-inc/esl/commit/ad92042f1c11f6f798b490a4e270ce42ba58e3fc)) +## [5.0.0-beta.32](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.31...v5.0.0-beta.32) (2024-08-22) ### Features -* adjust scrollable attr ([b80a211](https://github.com/exadel-inc/esl/commit/b80a21175495927924bf4d923eb2b0dc45e4dfc0)) -* body class manger feature rejection ([07ba596](https://github.com/exadel-inc/esl/commit/07ba596eec58e81108c02179f0a873a6931d7b21)) -* change body class behaviour of the toggleable to support locks ([5379c65](https://github.com/exadel-inc/esl/commit/5379c65aeae9e2ec824cc366638770a63ffe00a4)) -* class utils extended ([c3e7f66](https://github.com/exadel-inc/esl/commit/c3e7f660330d310a0181b59927e163acb7380bf5)) - -## [2.4.1](https://github.com/exadel-inc/esl/compare/v2.4.0...v2.4.1) (2021-04-15) - +* **esl-anchornav:** add active-class to set on active item ([e452e71](https://github.com/exadel-inc/esl/commit/e452e71c516ead3df82c6c533c88148660b643b5)) +* **esl-carousel:** add step animation duration customization ([4bc8c90](https://github.com/exadel-inc/esl/commit/4bc8c908dc85a7bdaf520178cd713b7833ec84b1)) ### Bug Fixes -* add TraversingQuery to ESL ns ([d1b2af2](https://github.com/exadel-inc/esl/commit/d1b2af2dedc17ccde818d5910029feda6deee2dc)) -* disable scroll native mode fix ([2f5bb86](https://github.com/exadel-inc/esl/commit/2f5bb868647ae12af5312a4af8fd9995cb896432)) -* outsideAction tracker conflicts with outside esl-triggers / activators ([b544e07](https://github.com/exadel-inc/esl/commit/b544e07f37bbb61a6b8d57166ebe5077f5585d7d)) - -# [2.4.0](https://github.com/exadel-inc/esl/compare/v2.3.2...v2.4.0) (2021-04-13) - +* **esl-anchornav:** fix ESLAnchornavRender signature ([3d43ba1](https://github.com/exadel-inc/esl/commit/3d43ba1ceece1b56903d26672ac82f7e95a5feaf)) +* **esl-carousel:** fix esl-carousel DOM manipulation and slides livecycle ([9ab2b6b](https://github.com/exadel-inc/esl/commit/9ab2b6b52a027c709f9c24c95581cdc52f7d534f)) +* **esl-carousel:** fix initial index normalization and long animation speed ([45c7560](https://github.com/exadel-inc/esl/commit/45c7560b031c1256fa113fe9f1d5477f1e6279e0)) +* **esl-carousel:** fix navigation group indexes restriction for non-loop carousels ([d5a84bf](https://github.com/exadel-inc/esl/commit/d5a84bf6ace398b59c278c2f3027080fba0b7ca2)) +* **esl-carousel:** incomplete carousel should be normalized with non loop constraints ([2157e6a](https://github.com/exadel-inc/esl/commit/2157e6abfcfe0714fe522932985def1e7d202fe4)) +* **esl-image-utils:** de-scope (img-cover, img-contain) classes ([028b94f](https://github.com/exadel-inc/esl/commit/028b94fbf48da85f42751f481217e10bb620bb16)) +* **esl-image-utils:** remove extra overflow style ([b1c5238](https://github.com/exadel-inc/esl/commit/b1c5238e218698f383a15fc3cb29f4c1bec5b83d)) +* **lint:** fix package missing `kleur` dependency ([b6581b9](https://github.com/exadel-inc/esl/commit/b6581b9094e222ce218e1dd9b3f7295de838d2cf)) +* **site:** share preview cards ([58194ca](https://github.com/exadel-inc/esl/commit/58194ca867d035b07980d9f3faddd23a2d03ee17)) -### Bug Fixes +## [5.0.0-beta.31](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.30...v5.0.0-beta.31) (2024-08-13) -* add ability to pass custom user data trough toggleable params ([9e7af26](https://github.com/exadel-inc/esl/commit/9e7af2640be7868749184cff0fb9d489229b1dbb)) +### ⚠ BREAKING CHANGES +* **esl-image-utils:** legacy implementation of `esl-image` no longer distributes aspect-ratio styles ### Features -* extend Scrollable Tabs to support center position ([b3bb7d8](https://github.com/exadel-inc/esl/commit/b3bb7d8f3602a81da4f5ce7bfab6e48db73df4ac)) -* override and readonly decorators deprecate and replaced with a `prop` decorator ([eb4040e](https://github.com/exadel-inc/esl/commit/eb4040e08ce7522e330faabb6696fbc1f0d25afa)) - -## [2.3.2](https://github.com/exadel-inc/esl/compare/v2.3.1...v2.3.2) (2021-04-08) - +* **esl-anchornav:** create esl-anchor mixin ([db5fb32](https://github.com/exadel-inc/esl/commit/db5fb3261fa99cff87f5d93e16cdc50f3371ce17)) +* **esl-anchornav:** create esl-anchornav component to provide anchor navigation ([cf79db8](https://github.com/exadel-inc/esl/commit/cf79db850f7cab27b2fa886f4a4469860028e3a0)) +* **esl-anchornav:** create esl-anchornav-sticked mixin to provide sticked behaviour ([d28d430](https://github.com/exadel-inc/esl/commit/d28d4305a8ea0b9728992268b1d5405917a90697)) +* **esl-carousel:** rework default renderer animation approach (now uses js animation) ([04b730d](https://github.com/exadel-inc/esl/commit/04b730d95cfa5907e4d3b2106c0a63a210b0fc1d)) +* **esl-image-utils:** create esl-img-container mixin to provide img container functionality ([5b4761a](https://github.com/exadel-inc/esl/commit/5b4761aefbbc1880b7b2d414d44df571fd80b1ef)) +* **esl-image-utils:** helper container classes for native img / picture containers ([16fc5cb](https://github.com/exadel-inc/esl/commit/16fc5cbcc5bc97c3499cb5d2eb94189e4ff3e283)) +* **esl-utils:** add `parseTime` alternative, less restrictive to passed format ([05e5963](https://github.com/exadel-inc/esl/commit/05e5963d6baf874193dcf4476d821e9109b3e905)) +* **esl-utils:** create utility to get element that is viewport for specified element ([63d869b](https://github.com/exadel-inc/esl/commit/63d869b14074da74b8bdaf342116428098816532)) ### Bug Fixes -* fix for the less files build ([#41](https://github.com/exadel-inc/esl/issues/41)dd93a) ([d079851](https://github.com/exadel-inc/esl/commit/d0798516a536e7a76f1a282c3ed944d1455f2286)), closes [#41dd93](https://github.com/exadel-inc/esl/issues/41dd93) +* **esl-carousel:** direction related issues, cleanup internal nav API ([30cef21](https://github.com/exadel-inc/esl/commit/30cef2170b95c78a44f62377e2e84cab28b13db9)) -## [2.3.1](https://github.com/exadel-inc/esl/compare/v2.3.0...v2.3.1) (2021-04-08) +### Code Refactoring + +* **esl-image-utils:** update implementation to use json attr and new compact representation ([602afc7](https://github.com/exadel-inc/esl/commit/602afc7eb4e208c11d89cfe9bce8198d4c0b664e)) +## [5.0.0-beta.30](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.29...v5.0.0-beta.30) (2024-07-31) ### Bug Fixes -* temporary npm build vix ([41dd93a](https://github.com/exadel-inc/esl/commit/41dd93a96c4e3313d55bca4d0dbbf470605c05a7)) +* **esl-carousel:** fix carousel empty state ([8f88589](https://github.com/exadel-inc/esl/commit/8f885890e317ad28adf4da7810c515d238b2298f)) +* **esl-carousel:** fix incomplete centered carousel rendering ([0d7adce](https://github.com/exadel-inc/esl/commit/0d7adce75833b6fc9794f4230667494d0b59a837)) -# [2.3.0](https://github.com/exadel-inc/esl/compare/v2.2.1...v2.3.0) (2021-04-08) +## [5.0.0-beta.29](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.28...v5.0.0-beta.29) (2024-07-30) ### Features -* override and readonly implementation ([641da83](https://github.com/exadel-inc/esl/commit/641da83f7b43ea10711e8d64d2047582d2376ac1)) - -## [2.2.1](https://github.com/exadel-inc/esl/compare/v2.2.0...v2.2.1) (2021-04-02) - +* **esl-carousel:** change carousel move API ([085f977](https://github.com/exadel-inc/esl/commit/085f97741c96b4e717a8c5218b30f33c91e5711b)) ### Bug Fixes -* remove allow-same-version ([0016ada](https://github.com/exadel-inc/esl/commit/0016ada0a694bbc75cbaba23deb61037f9d1737e)) - -# [2.2.0](https://github.com/exadel-inc/esl/compare/v2.1.0...v2.2.0) (2021-04-02) +* **esl-carousel:** carousel now uses average of the real slide sizes during move action routines ([2472723](https://github.com/exadel-inc/esl/commit/2472723d3fa11d46c8dc26f22e06496cacc1c7a9)) +* **esl-carousel:** touch behaviour fix - incorrect touch-action target is used ([18b1ba1](https://github.com/exadel-inc/esl/commit/18b1ba1c2a5a8b30753dc5220704cdf78f2aa822)) +## [5.0.0-beta.28](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.27...v5.0.0-beta.28) (2024-07-29) ### Bug Fixes -* allow-same-version temporary set to true ([75eb9a0](https://github.com/exadel-inc/esl/commit/75eb9a052749ff394c275e8e091fff54a28158b9)) -* npm members ([0b9fbae](https://github.com/exadel-inc/esl/commit/0b9fbae649c5a8cee8434db08031763bf278575f)) - - -### Features - -* npm release-ready version ([30c8624](https://github.com/exadel-inc/esl/commit/30c8624fdfc37a14fd35eafd8678633844813846)) - -# [2.2.0](https://github.com/exadel-inc/esl/compare/v2.1.0...v2.2.0) (2021-04-02) +* **esl-carousel:** fix count of slides to be rendered before the first slide ([cd68ea3](https://github.com/exadel-inc/esl/commit/cd68ea3c0b9076b2c6d237f9fa547af73b4fedd0)) +## [5.0.0-beta.27](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.26...v5.0.0-beta.27) (2024-07-23) ### Features -* npm release-ready version ([30c8624](https://github.com/exadel-inc/esl/commit/30c8624fdfc37a14fd35eafd8678633844813846)) - -# [2.1.0](https://github.com/exadel-inc/esl/compare/v2.0.0...v2.1.0) (2021-04-02) +* **esl-carousel:** `esl-carousel-nav` default classes and attributes reworked ([fd50c71](https://github.com/exadel-inc/esl/commit/fd50c719bf08f184b89bc531a4bf46e443eff6fd)) +## [5.0.0-beta.26](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.25...v5.0.0-beta.26) (2024-07-22) ### Bug Fixes -* debounce fit to viewport ([0413596](https://github.com/exadel-inc/esl/commit/04135969988fcc5e0ff560c45f253a40279eb2cc)) -* dependencies vulnerability cleanup ([7823287](https://github.com/exadel-inc/esl/commit/782328704aee31b31163f35f443ae3a8696eb21c)) -* dependencies vulnerability cleanup 2 ([d335aaa](https://github.com/exadel-inc/esl/commit/d335aaac3525c0004347df21440c2add5a035753)) +* **esl-carousel:** `esl-carousel-dots` does not re-renders after target re-definition ([6252474](https://github.com/exadel-inc/esl/commit/6252474495c63ceef57aaae65031a7e92e55e7f9)) +* **esl-carousel:** a11ty targets for arrow controls ([8240921](https://github.com/exadel-inc/esl/commit/82409211823673074c6fe44ac5fa0ade6e8ccabe)) +* **esl-carousel:** remove specificity hack for carousel clipping ([0fa0ac7](https://github.com/exadel-inc/esl/commit/0fa0ac7d32a77458b8c90d8b5904c420357f2705)) +## [5.0.0-beta.25](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.24...v5.0.0-beta.25) (2024-07-22) ### Features -* ability to refresh esl-media via esl:refresh ([2419237](https://github.com/exadel-inc/esl/commit/2419237dd3ea4dfd62b9ad08fd86218aa53c92df)) - -# [2.0.0](https://github.com/exadel-inc/esl/compare/v1.1.0...v2.0.0) (2021-03-29) - +* **esl-carousel:** add centered renderer ([dd26e7e](https://github.com/exadel-inc/esl/commit/dd26e7edde7d0a62b4dcae1af50df1681a6c18cc)) +* **esl-carousel:** complete rework ESLCarousel container feature ([ca7d308](https://github.com/exadel-inc/esl/commit/ca7d308b63dd92bdcc335b8b4cc14bf81a639de4)) +* **esl-carousel:** extend ESLCarousel API with new markers, fix carousel change events ([2a41d67](https://github.com/exadel-inc/esl/commit/2a41d675e45294d123e84dbccad03239d8ac75e5)) +* **esl-carousel:** improve ESLCarouselNav mixin API and internal livecycle ([156656a](https://github.com/exadel-inc/esl/commit/156656aecfad6fbe2d1adbc238af55a915791379)) +* **esl-carousel:** rework carousel plugins API to use json attr + smart media query ([0166b8d](https://github.com/exadel-inc/esl/commit/0166b8d22b7fbffb5cd9750276bcff1766ba7a41)) +* **esl-media-query:** ingore tuple values if query syntax passed ([1899484](https://github.com/exadel-inc/esl/commit/1899484ff238d9dc213f3e6b4f1999fb7375d8e8)) ### Bug Fixes -* a11y ([8d1085b](https://github.com/exadel-inc/esl/commit/8d1085ba0d9e8e05e2633e8e943a50539972e279)) -* accordion styles animation fixes ([d59a44b](https://github.com/exadel-inc/esl/commit/d59a44bebfbe639846f4e86a0f430e4b820be8e9)) -* add full ts export for scroll ([1e40678](https://github.com/exadel-inc/esl/commit/1e406783222a74d7d22a7a9ea5b26566377c4d83)) -* add multiple active panels control ([c662999](https://github.com/exadel-inc/esl/commit/c6629992476a78f9469bed49faf876f261f91e13)) -* adjust group control ([86286b1](https://github.com/exadel-inc/esl/commit/86286b1df18e04e9a8114be44ecf05dc2be3db67)) -* allow super.register call for esl-base-element instances ([19e8e05](https://github.com/exadel-inc/esl/commit/19e8e051d413c28e1ecd74b2b636e1a3281d2d08)) -* animation of single panel (w/o panel group) ([01aa5e9](https://github.com/exadel-inc/esl/commit/01aa5e92e9a5027c1fd2f2a6c42381f1e1e561f7)) -* bind method hotfix ([b7d3b1c](https://github.com/exadel-inc/esl/commit/b7d3b1ca711044c3de29c872173e98bc9bb2a3bc)) -* bouncing up when crossing between tabs ([ea7053b](https://github.com/exadel-inc/esl/commit/ea7053b64b97865f3768ba298d906a82da0a0e5e)) -* change iframe provide scrolling to no ([b8672e3](https://github.com/exadel-inc/esl/commit/b8672e335a177c5d34768f7f145ad78c58352c1f)) -* cover mode calculation for non blink browsers ([5cd6bc2](https://github.com/exadel-inc/esl/commit/5cd6bc29498b46634a74ce4885ae45c89511b47b)) -* deepCompare null check fix ([8211738](https://github.com/exadel-inc/esl/commit/82117384c58911632cb3565d037bd0aedec61982)) -* default export value replaced with singleton accessor ([ca323aa](https://github.com/exadel-inc/esl/commit/ca323aafb66dfe21e8fe2bee54e91ee080e9d377)) -* empty alert on initiating in the animation hide time ([0b1ed7a](https://github.com/exadel-inc/esl/commit/0b1ed7a45295a59a2fd6e6a5de09d99b8759d2ce)) -* esl-alert a11y and post animate cleanup ([7646ffb](https://github.com/exadel-inc/esl/commit/7646ffb70eb46bc786a5f5153b8352b18907deaa)) -* esl-alert target attribute change observation fixed ([5226c96](https://github.com/exadel-inc/esl/commit/5226c9653e69547819ebe407e6a75dba9dba012c)) -* fallback timer reset for panel animation ([c61c9f1](https://github.com/exadel-inc/esl/commit/c61c9f11e7bc7ee1169acb9aa32708c19506a257)) -* fallback timer reset for panel-group animation ([0bb9b02](https://github.com/exadel-inc/esl/commit/0bb9b0236c56c791b181c09dd46899b302f01099)) -* fix ESLMedia events prefix ([76035fe](https://github.com/exadel-inc/esl/commit/76035fea0216157ee4f68ec9a7e14d20f3a4dc1a)) -* fix focus and position calculation ([815b8ad](https://github.com/exadel-inc/esl/commit/815b8ad5bd58e0814a569dd3337884417f55f790)) -* fix package.json and IE compatibility problems ([68f1bb6](https://github.com/exadel-inc/esl/commit/68f1bb669d7b50acf68253cfeb795dac5b486ae1)) -* fix tracking click event for Popup ([2c3bff0](https://github.com/exadel-inc/esl/commit/2c3bff00a7f129e4382eca7fac37b7e6b28f2ead)) -* fix tracking click event for Popup (rename the method and arguments) ([8abd6e5](https://github.com/exadel-inc/esl/commit/8abd6e544ea49fc13379928d6b6f43f137e0bb76)) -* format utility support for multiple replacements ([3d8a6e7](https://github.com/exadel-inc/esl/commit/3d8a6e7ddec1a201de90262d69f4e269c810e614)) -* optimize select performance. update demo content ([9c916d6](https://github.com/exadel-inc/esl/commit/9c916d684df4a75fe5a6bcc0d75fed7ea25781f5)) -* optimize UX for close outside feature ([c058400](https://github.com/exadel-inc/esl/commit/c0584007b0597b1b6c5d308592635267986f1efb)) -* remove eventNs for image & scroll fix image ready event ([2f3382f](https://github.com/exadel-inc/esl/commit/2f3382f206255b85be143fbb802d6c0fa12d4ac6)) -* rename loaded event of ESLImage to the load event (from spec) ([23ecb84](https://github.com/exadel-inc/esl/commit/23ecb844fe41e54c1dd9ac58ac3f9fe23917ae97)) -* select a11y basic improvements ([5c1657d](https://github.com/exadel-inc/esl/commit/5c1657df7d688eb93042c15955152f8e13d9a840)) -* set position relative to smart-media root for special fill-modes ([4f5bbd7](https://github.com/exadel-inc/esl/commit/4f5bbd70522c7b279063970cdecf9e1f971e7a86)) -* small styling and imports updates ([3e10b5f](https://github.com/exadel-inc/esl/commit/3e10b5f0babe747df4f3cf478f5c42340c8eeb11)) - - -### Code Refactoring - -* cleanup for ESLBasePopupGroupManager ([5f68efd](https://github.com/exadel-inc/esl/commit/5f68efdff5848e4a98f0293328545d00371c244d)) -* get rid of default imports and fix draft select component accessor naming ([155dbf9](https://github.com/exadel-inc/esl/commit/155dbf981d54c33a2323e2ec740400ba5b563d87)) -* popup property of the trigger renamed to $target ([cdc4230](https://github.com/exadel-inc/esl/commit/cdc423072fd0ba48a311042d026e572a9457a369)) -* scrollable & alert renaming ([a61e56e](https://github.com/exadel-inc/esl/commit/a61e56ebaa348a98853a08ebb33d8ae971d0ac54)) - - -### Documentation - -* esl-select fixes ([5407ac2](https://github.com/exadel-inc/esl/commit/5407ac241afce10c3991ffee7bc5e2cb939bc4b4)) - - -### Features - -* !revert back esl prefix for events ([adef294](https://github.com/exadel-inc/esl/commit/adef294f76ef6b9c9a46cd743fd26d65b45cbfdf)) -* `[@ready](https://github.com/ready)` decorator and readyState listener ([6d1a32f](https://github.com/exadel-inc/esl/commit/6d1a32fd1d5b83dcb03902fb0cd874cc32b8f806)) -* add ability to cancel animation ([53b3235](https://github.com/exadel-inc/esl/commit/53b32352983e94bcb6e015eacdd3094ece50de51)) -* add ability to decline collapsing ([44885c7](https://github.com/exadel-inc/esl/commit/44885c77aef69ea241a43a83c5b23b222b05d3a9)) -* add empty text for select. update select events and flow ([3435ae9](https://github.com/exadel-inc/esl/commit/3435ae9460853ceb64f9c51b44bb5a4e913c0afc)) -* add more label format for esl-select; fix select dropdown focus ([8682ec0](https://github.com/exadel-inc/esl/commit/8682ec054fcc31685221be050750ce77e669b425)) -* add separate simplified ESLBaseTrigger ([3f5500a](https://github.com/exadel-inc/esl/commit/3f5500af7a7a5b2cd9020db9a80b3b8245ac64fe)) -* esl-media extended with a ready class target option ([9966b42](https://github.com/exadel-inc/esl/commit/9966b42de148c9d5fc2390e357c4ceac057416de)) -* esl-scroll moved from draft to beta components ([88e6ea6](https://github.com/exadel-inc/esl/commit/88e6ea6c12ceda66dab8441577622ed257e89842)) -* esl-select basic form element proxy and reset handler fix ([85f2f78](https://github.com/exadel-inc/esl/commit/85f2f788027c2572340a5ab1465cbf7b31c5e02e)) -* esl-select component POC ([dd2644e](https://github.com/exadel-inc/esl/commit/dd2644eb0bd4840ad1285298f51f238e11aaa414)) -* esl-select public update and support for mutations ([b297ae2](https://github.com/exadel-inc/esl/commit/b297ae2d181e6ac96536f0041a6c921467fec9d4)) -* esl-select support for simple select wrap ([b6debd8](https://github.com/exadel-inc/esl/commit/b6debd8366dcf1c438676d047b18ef0afc78eeea)) -* esl-trigger rewritten ([64c05f6](https://github.com/exadel-inc/esl/commit/64c05f6b4588b2526405c531031ac055e92f533f)) -* extended shim for ES5 ElementConstructor ([0eabf64](https://github.com/exadel-inc/esl/commit/0eabf64896bcf6e3e61f9c08df478614d9770af3)) -* filtration common pseudo-selectors ([8b4d80e](https://github.com/exadel-inc/esl/commit/8b4d80e01c7963c3e939e1cd0ae15d765406b947)) -* introduce EventUtils with a set of event related utilities ([04c5368](https://github.com/exadel-inc/esl/commit/04c536884d63dce864b2427cc2f98175b5e35e39)) -* introduce new BasePopupGroupManager based on events ([8f9a426](https://github.com/exadel-inc/esl/commit/8f9a4260dac3d9d4c604e7cbcf75b9628c426f87)) -* optional prevent default option for triggers. Merge triggers directory ([8c6cc3c](https://github.com/exadel-inc/esl/commit/8c6cc3cf54cb0141d83de15312b41789818d66c1)) -* set iframe as a default provider for valid urls ([f320d88](https://github.com/exadel-inc/esl/commit/f320d8855cb2184e3e4747aafec0e65e91fc859f)) -* **memoize:** add func cash for class instances ([f4dd895](https://github.com/exadel-inc/esl/commit/f4dd895c1dbb4dbb335ff0d75403b9cdee2b3dd2)) -* support for html content for alert ([86507d8](https://github.com/exadel-inc/esl/commit/86507d8d694af05337aa4d8cd4b30fa70dda8503)) -* support for multiple esl-alerts ([fd99dab](https://github.com/exadel-inc/esl/commit/fd99dabb3e4ae65560c368cf847d89681f464141)) -* upgrade BasePopupGroupManager ([07aa02a](https://github.com/exadel-inc/esl/commit/07aa02a65173b85bbcf6076d7861a5950fc26e63)) - - -### Styles - -* cleanup esl-tabs documentation ([fdefaa5](https://github.com/exadel-inc/esl/commit/fdefaa58a9f02e59a9f98754e60854e052f79e07)) - - -* chore!: history fixup commit ([c9efe88](https://github.com/exadel-inc/esl/commit/c9efe88ae6f3ffeefeedde3dc9486ad3b44f4d2a)) -* refactor!: cleanup for KeyboardEvent key polyfill and keys usages ([c694727](https://github.com/exadel-inc/esl/commit/c6947279ed913dd712d6df7564810068676dcb05)) -* refactor!: rename ESLBasePopup ([390f8f1](https://github.com/exadel-inc/esl/commit/390f8f16c4b40e8144a49cd37297227c933ac3d0)) -* feat!: refactor of Panel & PanelStack ([d819259](https://github.com/exadel-inc/esl/commit/d8192599333101b46bab930326b2b2ef8eef6292)) -* feat!: add last activator feature, fix outside action ([76bd08b](https://github.com/exadel-inc/esl/commit/76bd08ba4262e68a52de2ff21bc72ca8016c17ae)) -* feat!: update for tab and trigger events; fix double a11y control for tabs ([dce85b6](https://github.com/exadel-inc/esl/commit/dce85b62a4b9e3fd270e1192a75f1796275f778f)) -* feat!: eventing cleanup ([22efb73](https://github.com/exadel-inc/esl/commit/22efb7308140f40c4493716c3de1e7705ef1c0ad)) -* feat!: popups massive cleanup 1 ([7441e41](https://github.com/exadel-inc/esl/commit/7441e411c0f586e366df3057c9c81b58fbdeab5f)) - - -### BREAKING CHANGES - -* make esl-tab mode="show" by default -* replace `empty-text` with `placeholder` attribute -* Rename ESLPanelStack to ESLPanelGroup - -- Introduce new ESLA11yGroup component - -- ESLTabsContainer renamed to ESLTabs - -- ESLScrollableTabs removed functionality moved under ESLTabs scrollable feature -* esl-alert should be registered and initialized as separate steps - esl-alert now use target (paren by default) to listen events instead of window -* `keycodes.ts` constants for deprecated `keycode` removed, `key` property should be used instead -* `targetElement` renamed to `$target` -* `popup` renamed to `$target` in the trigger -* default imports no longer accepted for esl modules -* 'ESLBasePopup' comp rename to 'ESLToggleable' -'ESLPopupDispatcher' comp rename to 'ESLToggleableDispatcher' -* Panel Stack uses self group management. -Group attribute should be removed to reach collapsible behavior. -Panel Stack & Panel inner API changes. -* rename ESLBasePopupGroupManager to ESLPopupGroupDispatcher -* 'outsideclick' initiator type replaced with 'outsideaction' -* events of BasePopup now have esl prefix -('esl:hide' / 'esl:show' / 'esl:before:hide' / 'esl:before:show') - - events of Trigger now have esl prefix: 'esl:change:active' - - events of Panel now have esl prefix: 'esl:after:hide' / 'esl:after:show' -* - `transitionend` event of ESLPanel replaced with `after:show`/`after:hide` -- `statechange` event of ESLTrigger replaced with `change:active` -* - `ESLBaseElement` no longer contains eventNs and $$fireNs methods -- Whole popups based component system no longer use event namespaces -* - `ESLBasePopup` statechange events replaced with a separate `(before:)show/hide` - -# [2.0.0-beta.31](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.30...v2.0.0-beta.31) (2021-03-26) - - -### Documentation - -* esl-select fixes ([5407ac2](https://github.com/exadel-inc/esl/commit/5407ac241afce10c3991ffee7bc5e2cb939bc4b4)) - - -### Styles - -* cleanup esl-tabs documentation ([fdefaa5](https://github.com/exadel-inc/esl/commit/fdefaa58a9f02e59a9f98754e60854e052f79e07)) - - -### BREAKING CHANGES - -* make esl-tab mode="show" by default -* replace `empty-text` with `placeholder` attribute - -# [2.0.0-beta.30](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.29...v2.0.0-beta.30) (2021-03-24) +* **esl-carousel:** add more specificity to styles to limit scope of the carousel animation ([4d4db05](https://github.com/exadel-inc/esl/commit/4d4db0526f11baf3439c0f142760e75ed6bf1add)) +* **esl-carousel:** fix ESLCarouselNavDots livecycle and carousel observation ([c03c8f9](https://github.com/exadel-inc/esl/commit/c03c8f9322fc69fe7771f71b11031ba1e6e02d94)) +* **esl-carousel:** rework carousel slide change event with complete and more clear information ([0b5983f](https://github.com/exadel-inc/esl/commit/0b5983fe67922246cee2e760af3b1d0535dcf61b)) +## [5.0.0-beta.24](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.23...v5.0.0-beta.24) (2024-07-15) ### Features -* esl-trigger rewritten ([64c05f6](https://github.com/exadel-inc/esl/commit/64c05f6b4588b2526405c531031ac055e92f533f)) - -# [2.0.0-beta.29](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.28...v2.0.0-beta.29) (2021-03-24) - +* **lint:** deprecation rule for `ESlMediaRuleList.parse` ([#2509](https://github.com/exadel-inc/esl/issues/2509)) ([a1f916a](https://github.com/exadel-inc/esl/commit/a1f916ae4cf9a7d618516646e6629ae3a58f3d68)) ### Bug Fixes -* accordion styles animation fixes ([d59a44b](https://github.com/exadel-inc/esl/commit/d59a44bebfbe639846f4e86a0f430e4b820be8e9)) - - -### Features - -* esl-media extended with a ready class target option ([9966b42](https://github.com/exadel-inc/esl/commit/9966b42de148c9d5fc2390e357c4ceac057416de)) -* optional prevent default option for triggers. Merge triggers directory ([8c6cc3c](https://github.com/exadel-inc/esl/commit/8c6cc3cf54cb0141d83de15312b41789818d66c1)) - -# [2.0.0-beta.28](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.27...v2.0.0-beta.28) (2021-03-17) - - -### Features - -* add ability to cancel animation ([53b3235](https://github.com/exadel-inc/esl/commit/53b32352983e94bcb6e015eacdd3094ece50de51)) -* add ability to decline collapsing ([44885c7](https://github.com/exadel-inc/esl/commit/44885c77aef69ea241a43a83c5b23b222b05d3a9)) - -# [2.0.0-beta.27](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.26...v2.0.0-beta.27) (2021-03-15) +* **esl-carousel:** fix handling of pointercancel event by touch plugin ([fb91710](https://github.com/exadel-inc/esl/commit/fb91710af23d5302e93a16c84cf66eea50784393)) +* **esl-carousel:** make animated carousel area equal to the content without padding ([1c1f6d8](https://github.com/exadel-inc/esl/commit/1c1f6d82c572d6bec038701eaabc6352218ba50b)) +* **esl-event-listener:** fix missing signature for `$$on` method of base component ([7197e30](https://github.com/exadel-inc/esl/commit/7197e30af63b71573237eb3433a69ff91c8a011a)) +* **esl-mixin-element:** major fix for nested hierarchy mixin disconnection ([d360da0](https://github.com/exadel-inc/esl/commit/d360da0e61e90c2ef71ba219256505e741429ca3)), closes [#2505](https://github.com/exadel-inc/esl/issues/2505) +## [5.0.0-beta.23](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.22...v5.0.0-beta.23) (2024-07-01) ### Features -* extended shim for ES5 ElementConstructor ([0eabf64](https://github.com/exadel-inc/esl/commit/0eabf64896bcf6e3e61f9c08df478614d9770af3)) -* filtration common pseudo-selectors ([8b4d80e](https://github.com/exadel-inc/esl/commit/8b4d80e01c7963c3e939e1cd0ae15d765406b947)) -* set iframe as a default provider for valid urls ([f320d88](https://github.com/exadel-inc/esl/commit/f320d8855cb2184e3e4747aafec0e65e91fc859f)) - -# [2.0.0-beta.26](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.25...v2.0.0-beta.26) (2021-03-03) - +* **esl-carousel:** add ability to pass slide as a `goTo` parametr ([2313c2a](https://github.com/exadel-inc/esl/commit/2313c2aaf0be64fc6b258265c87f3aa73fd65f04)) +* **esl-carousel:** add current and related slide element accessors to carousel change event ([4064b9f](https://github.com/exadel-inc/esl/commit/4064b9f305af0a59418cf734dd6ea3499808f3df)) +* **esl-carousel:** make ESLCarouselWheelMixin respect direction & able to prevent default wheel action ([376f303](https://github.com/exadel-inc/esl/commit/376f30328f79c9533a2f1e4bb4cabee427d1de91)) +* **esl-event-listener:** add ability to ESLWheelTarget to ignore income wheel events by predicate ([af47dbb](https://github.com/exadel-inc/esl/commit/af47dbb3ac9a99ae143c417b04c382dbccf77f85)) +* **esl-event-listener:** add ability to prevent default wheel action trough ESLWheelTarget ([0e1f192](https://github.com/exadel-inc/esl/commit/0e1f192aca5f6113f11cb16e84dbaf45141ae894)) ### Bug Fixes -* adjust group control ([86286b1](https://github.com/exadel-inc/esl/commit/86286b1df18e04e9a8114be44ecf05dc2be3db67)) -* fallback timer reset for panel animation ([c61c9f1](https://github.com/exadel-inc/esl/commit/c61c9f11e7bc7ee1169acb9aa32708c19506a257)) -* fallback timer reset for panel-group animation ([0bb9b02](https://github.com/exadel-inc/esl/commit/0bb9b0236c56c791b181c09dd46899b302f01099)) - -# [2.0.0-beta.25](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.24...v2.0.0-beta.25) (2021-03-02) - - -### Bug Fixes - -* deepCompare null check fix ([8211738](https://github.com/exadel-inc/esl/commit/82117384c58911632cb3565d037bd0aedec61982)) - -# [2.0.0-beta.24](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.23...v2.0.0-beta.24) (2021-03-02) - - -### Bug Fixes - -* add multiple active panels control ([c662999](https://github.com/exadel-inc/esl/commit/c6629992476a78f9469bed49faf876f261f91e13)) -* animation of single panel (w/o panel group) ([01aa5e9](https://github.com/exadel-inc/esl/commit/01aa5e92e9a5027c1fd2f2a6c42381f1e1e561f7)) - -# [2.0.0-beta.23](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.22...v2.0.0-beta.23) (2021-02-26) +* **deps:** bump puppeteer from 22.12.0 to 22.12.1 ([56ebbfa](https://github.com/exadel-inc/esl/commit/56ebbfa67a90695aa43c867705bcd16fe5fcc5d6)) +* **esl-carousel:** add ability to ignore defined content areas by ESLCarouselWheelMixin ([766dabe](https://github.com/exadel-inc/esl/commit/766dabe92eede50066e0440175f3c4d8cc960050)) +* **esl-carousel:** de-scope `[esl-carousel-slides]` style defaults ([d3ad98a](https://github.com/exadel-inc/esl/commit/d3ad98ae33fcf7d42652eb831d28e3638790436b)) +* **esl-carousel:** fix deprecated type usage inside carousel wheel plugin ([1c9f8c4](https://github.com/exadel-inc/esl/commit/1c9f8c4eba488074a5b236ed6556f29d80d72735)) +* **esl-carousel:** improve log messaging and fix initialization exceptions ([8e45f58](https://github.com/exadel-inc/esl/commit/8e45f588a669900fdd53e54c0d1a6357e9159b09)) +## [5.0.0-beta.22](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.21...v5.0.0-beta.22) (2024-06-26) ### Bug Fixes -* empty alert on initiating in the animation hide time ([0b1ed7a](https://github.com/exadel-inc/esl/commit/0b1ed7a45295a59a2fd6e6a5de09d99b8759d2ce)) -* set position relative to smart-media root for special fill-modes ([4f5bbd7](https://github.com/exadel-inc/esl/commit/4f5bbd70522c7b279063970cdecf9e1f971e7a86)) +* **esl-carousel:** fix incorrect alignment of the grid carousel renderer if there are no enough slides ([6956729](https://github.com/exadel-inc/esl/commit/69567295a56d0017e6364f3aa558f10d79efac38)) +## [5.0.0-beta.21](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.20...v5.0.0-beta.21) (2024-06-25) ### Features -* esl-select public update and support for mutations ([b297ae2](https://github.com/exadel-inc/esl/commit/b297ae2d181e6ac96536f0041a6c921467fec9d4)) - -# [2.0.0-beta.22](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.21...v2.0.0-beta.22) (2021-02-24) - - -### Bug Fixes - -* change iframe provide scrolling to no ([b8672e3](https://github.com/exadel-inc/esl/commit/b8672e335a177c5d34768f7f145ad78c58352c1f)) - -# [2.0.0-beta.21](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.20...v2.0.0-beta.21) (2021-02-24) - +* **esl-carousel:** add `grid` renderer with capability to render multi row (column) carousel ([a54a1ab](https://github.com/exadel-inc/esl/commit/a54a1abc384aa029954f9168274d8094b3c0431e)) ### Bug Fixes -* format utility support for multiple replacements ([3d8a6e7](https://github.com/exadel-inc/esl/commit/3d8a6e7ddec1a201de90262d69f4e269c810e614)) - - -### Features - -* **memoize:** add func cash for class instances ([f4dd895](https://github.com/exadel-inc/esl/commit/f4dd895c1dbb4dbb335ff0d75403b9cdee2b3dd2)) - - -* chore!: history fixup commit ([c9efe88](https://github.com/exadel-inc/esl/commit/c9efe88ae6f3ffeefeedde3dc9486ad3b44f4d2a)) - - -### BREAKING CHANGES - -* Rename ESLPanelStack to ESLPanelGroup - -- Introduce new ESLA11yGroup component - -- ESLTabsContainer renamed to ESLTabs - -- ESLScrollableTabs removed functionality moved under ESLTabs scrollable feature - -# [2.0.0-beta.21](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.20...v2.0.0-beta.21) (2021-02-23) - -### Features -- Introduce new ESLA11yGroup component ([e354d2d](https://github.com/exadel-inc/esl/commit/e354d2daef1e7368426a2b3a794189c69c0936a7)) - -### BREAKING CHANGES -- Rename ESLPanelStack to ESLPanelGroup ([e354d2d](https://github.com/exadel-inc/esl/commit/e354d2daef1e7368426a2b3a794189c69c0936a7)) -- ESLTabsContainer renamed to ESLTabs ([e354d2d](https://github.com/exadel-inc/esl/commit/e354d2daef1e7368426a2b3a794189c69c0936a7)) -- ESLScrollableTabs removed functionality moved under ESLTabs scrollable feature ([e354d2d](https://github.com/exadel-inc/esl/commit/e354d2daef1e7368426a2b3a794189c69c0936a7)) - -# [2.0.0-beta.20](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.19...v2.0.0-beta.20) (2021-02-22) - - -### Features - -* esl-select basic form element proxy and reset handler fix ([85f2f78](https://github.com/exadel-inc/esl/commit/85f2f788027c2572340a5ab1465cbf7b31c5e02e)) - -# [2.0.0-beta.19](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.18...v2.0.0-beta.19) (2021-02-19) +* **deps:** bump puppeteer from 22.11.2 to 22.12.0 ([2a5c371](https://github.com/exadel-inc/esl/commit/2a5c3713c51b55efa37d676d89e815708431072c)) +## [5.0.0-beta.20](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.19...v5.0.0-beta.20) (2024-06-20) ### Bug Fixes -* esl-alert a11y and post animate cleanup ([7646ffb](https://github.com/exadel-inc/esl/commit/7646ffb70eb46bc786a5f5153b8352b18907deaa)) - -# [2.0.0-beta.18](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.17...v2.0.0-beta.18) (2021-02-18) - - -### Bug Fixes +* **deps:** bump @11ty/eleventy-dev-server from 2.0.0 to 2.0.1 ([9211eaf](https://github.com/exadel-inc/esl/commit/9211eaff52c013cc13a010234f013e13e162df1b)) +* **deps:** bump puppeteer from 22.10.0 to 22.11.0 ([1f3b833](https://github.com/exadel-inc/esl/commit/1f3b83321778662127f9aa1167de0c387feafdfd)) +* **deps:** bump puppeteer from 22.11.0 to 22.11.1 ([40c7f0a](https://github.com/exadel-inc/esl/commit/40c7f0a06018f756c2ec88cfdd472fc1d22a9332)) +* **deps:** bump puppeteer from 22.11.1 to 22.11.2 ([8a824cf](https://github.com/exadel-inc/esl/commit/8a824cffc9ba70a56bc877fcf6683fb5a80d9b6f)) +* **deps:** bump webpack from 5.91.0 to 5.92.0 ([ab7f579](https://github.com/exadel-inc/esl/commit/ab7f579cc46f602e4575fc9562c9d8d8baa9b7cd)) +* **deps:** bump webpack from 5.92.0 to 5.92.1 ([6909d17](https://github.com/exadel-inc/esl/commit/6909d1709e32b570af9d8cffb7c0ba509d724ae6)) +* **deps:** bump ws from 7.5.9 to 7.5.10 ([330fd97](https://github.com/exadel-inc/esl/commit/330fd97664ba5276e89ef723e4ca388a201424db)) +* **esl-carousel:** add possibility to hide controls according to closest container state ([b941748](https://github.com/exadel-inc/esl/commit/b941748a4ba7d51adf6ea9b8747570e8c774dd16)) +* **lint:** notify about version differences for `eslint-plugin-esl` ([4cc0ddc](https://github.com/exadel-inc/esl/commit/4cc0ddc515f1c2b5ed2f4e2d745001784a98ce2f)) -* esl-alert target attribute change observation fixed ([5226c96](https://github.com/exadel-inc/esl/commit/5226c9653e69547819ebe407e6a75dba9dba012c)) -* select a11y basic improvements ([5c1657d](https://github.com/exadel-inc/esl/commit/5c1657df7d688eb93042c15955152f8e13d9a840)) +## [5.0.0-beta.19](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.18...v5.0.0-beta.19) (2024-05-31) ### Features -* support for multiple esl-alerts ([fd99dab](https://github.com/exadel-inc/esl/commit/fd99dabb3e4ae65560c368cf847d89681f464141)) - - -* refactor!: cleanup for KeyboardEvent key polyfill and keys usages ([c694727](https://github.com/exadel-inc/esl/commit/c6947279ed913dd712d6df7564810068676dcb05)) - - -### BREAKING CHANGES - -* esl-alert should be registered and initialized as separate steps - esl-alert now use target (paren by default) to listen events instead of window -* `keycodes.ts` constants for deprecated `keycode` removed, `key` property should be used instead - -# [2.0.0-beta.17](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.16...v2.0.0-beta.17) (2021-02-11) +* **esl-event-listener:** add support for criteria-based subscriptions ([b571d88](https://github.com/exadel-inc/esl/commit/b571d888afdf4748b110b13f0c642d257e99af36)) +* **esl-popup:** add handler for refresh event ([5864c92](https://github.com/exadel-inc/esl/commit/5864c9293046a43d49b900818573b4fd879b6834)) +* **lint:** add deprecation warning regarding incorrect direct imports for `attr`, `prop`, `jsonAttr`, `boolAttr`, `listen` ([e592048](https://github.com/exadel-inc/esl/commit/e592048d19aa4575f89e056632e7455a50f47eac)) ### Bug Fixes -* default export value replaced with singleton accessor ([ca323aa](https://github.com/exadel-inc/esl/commit/ca323aafb66dfe21e8fe2bee54e91ee080e9d377)) -* small styling and imports updates ([3e10b5f](https://github.com/exadel-inc/esl/commit/3e10b5f0babe747df4f3cf478f5c42340c8eeb11)) - - -### Code Refactoring +* **deps:** bump pug from 3.0.2 to 3.0.3 ([8006a45](https://github.com/exadel-inc/esl/commit/8006a45a96aaf52e9a341bf13768613cc0bf17b4)) +* **esl-utils:** fix event cancellation handling ([8e45a75](https://github.com/exadel-inc/esl/commit/8e45a7560c3260f21dbe22e9beaa64c8afe19ca5)) +* **esl-utils:** fix isRelativeNode signature (can accept undefined as a node) ([4e2c7af](https://github.com/exadel-inc/esl/commit/4e2c7af179d186de521e7a55c0be66d1e3dc68fa)) -* get rid of default imports and fix draft select component accessor naming ([155dbf9](https://github.com/exadel-inc/esl/commit/155dbf981d54c33a2323e2ec740400ba5b563d87)) -* popup property of the trigger renamed to $target ([cdc4230](https://github.com/exadel-inc/esl/commit/cdc423072fd0ba48a311042d026e572a9457a369)) -* scrollable & alert renaming ([a61e56e](https://github.com/exadel-inc/esl/commit/a61e56ebaa348a98853a08ebb33d8ae971d0ac54)) +## [5.0.0-beta.18](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.17...v5.0.0-beta.18) (2024-05-24) ### Features -* esl-scroll moved from draft to beta components ([88e6ea6](https://github.com/exadel-inc/esl/commit/88e6ea6c12ceda66dab8441577622ed257e89842)) -* esl-select support for simple select wrap ([b6debd8](https://github.com/exadel-inc/esl/commit/b6debd8366dcf1c438676d047b18ef0afc78eeea)) -* support for html content for alert ([86507d8](https://github.com/exadel-inc/esl/commit/86507d8d694af05337aa4d8cd4b30fa70dda8503)) - - -* refactor!: rename ESLBasePopup ([390f8f1](https://github.com/exadel-inc/esl/commit/390f8f16c4b40e8144a49cd37297227c933ac3d0)) - - -### BREAKING CHANGES - -* `targetElement` renamed to `$target` -* `popup` renamed to `$target` in the trigger -* default imports no longer accepted for esl modules -* 'ESLBasePopup' comp rename to 'ESLToggleable' -'ESLPopupDispatcher' comp rename to 'ESLToggleableDispatcher' - -# [2.0.0-beta.16](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.15...v2.0.0-beta.16) (2021-02-08) +* **esl-carousel:** Default Renderer: the reordering algorithm improved to respect slides semantical order an available limit of slides ([b2efe6f](https://github.com/exadel-inc/esl/commit/b2efe6f2371ec97d96e943f50165f952a39893ac)) +* **esl-media:** `fill-mode` option updated to render through `aspect-ratio` and `wide` marker ([49fd5b6](https://github.com/exadel-inc/esl/commit/49fd5b6ffd29c43da4b23a25d11ec5a2481b47cd)) ### Bug Fixes -* allow super.register call for esl-base-element instances ([19e8e05](https://github.com/exadel-inc/esl/commit/19e8e051d413c28e1ecd74b2b636e1a3281d2d08)) +* **deps:** bump puppeteer from 22.9.0 to 22.10.0 ([d82fa11](https://github.com/exadel-inc/esl/commit/d82fa11e6059fe34eaaca7f0990e8d013826fca7)) +* **esl-media:** fix missing reinitialization on start-time attribute changing ([e5922ed](https://github.com/exadel-inc/esl/commit/e5922ed801b08066c96dba10edef6e8abb6655b2)) +* **esl-media:** fix TSX shape for supporting start-time attribute ([1f43a22](https://github.com/exadel-inc/esl/commit/1f43a22094db5f204f0b69df36272d60beffb638)) +* **esl-media:** play-in-viewport tolerance changed to 50% (75% before) ([06d2a13](https://github.com/exadel-inc/esl/commit/06d2a13ca0bbde6c5d4fbd93e6a68f94fe93ef4e)) +* **esl-panel:** fix the falsy state of animation in the default open panel in esl-panel-group ([64925e0](https://github.com/exadel-inc/esl/commit/64925e0b47293124430f988474df821c423cc2bd)) -# [2.0.0-beta.15](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.14...v2.0.0-beta.15) (2021-02-04) +## [5.0.0-beta.17](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.16...v5.0.0-beta.17) (2024-05-21) ### Features -* add more label format for esl-select; fix select dropdown focus ([8682ec0](https://github.com/exadel-inc/esl/commit/8682ec054fcc31685221be050750ce77e669b425)) - -# [2.0.0-beta.14](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.13...v2.0.0-beta.14) (2021-02-04) +* **esl-event-listener:** add a `group` key to process batch subscription operations ([3d1ece0](https://github.com/exadel-inc/esl/commit/3d1ece0fcf747efdb7de7fcfb125c4ad02390e50)), closes [#2381](https://github.com/exadel-inc/esl/issues/2381) +* **esl-event-listener:** rework and make warnings of event listener system with more strict and truthful detection of a problem ([f6fd40b](https://github.com/exadel-inc/esl/commit/f6fd40b8e370de1bcc61cb3d6862b2be9188018a)) +* **esl-event-listener:** update listener internal mechanics to store and collect descriptors (with ability to filter them) ([48bf06a](https://github.com/exadel-inc/esl/commit/48bf06a7b26c057a8f08953466fa339ab819ca77)) +* **esl-media:** add ability to provide video initial position (start time) ([7367bb7](https://github.com/exadel-inc/esl/commit/7367bb78c50514a96edbf4cef7b56b2bf0fe0340)) +* **esl-utils:** add ability to reject promisifyEvent by using AbortSignal ([b49da0e](https://github.com/exadel-inc/esl/commit/b49da0e533de7771ccc50465d15a51f157bde568)) ### Bug Fixes -* fix focus and position calculation ([815b8ad](https://github.com/exadel-inc/esl/commit/815b8ad5bd58e0814a569dd3337884417f55f790)) +* **esl-event-listener:** `ESLEventUtils.descriptors` api notes correction ([309c130](https://github.com/exadel-inc/esl/commit/309c130a7e62348fd02f8bf71cc546f9eab3fe21)) +* **esl-event-listener:** fix re-subscription when condition is used ([b304c52](https://github.com/exadel-inc/esl/commit/b304c52a30d86d462e2d5e03b00353b7bbf39cb7)) +* **esl-media:** add exact element resize observation reduce; extra subscriptions manipulation ([7e58bbd](https://github.com/exadel-inc/esl/commit/7e58bbdc981ec54902bb7940242e238df5780df5)) +* **esl-media:** seekTo leads to no proper behavior when YouTube video is not ready ([f5a0762](https://github.com/exadel-inc/esl/commit/f5a0762301b4e108b708ea1e75834be0b74d2827)) +* **esl-popup:** fix it is not possible to set the offset-arrow to 0 ([c6f1a9f](https://github.com/exadel-inc/esl/commit/c6f1a9f2ddfcbbc5bad2adb3da6a73bc34e50277)) +* **esl-utils:** fix parseNumber signature (undefined when default provided) ([647b736](https://github.com/exadel-inc/esl/commit/647b7364e3a8024d9d3d4cdef464dc98078a0d01)) -# [2.0.0-beta.13](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.12...v2.0.0-beta.13) (2021-02-04) +## [5.0.0-beta.16](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.15...v5.0.0-beta.16) (2024-04-30) ### Bug Fixes -* a11y ([8d1085b](https://github.com/exadel-inc/esl/commit/8d1085ba0d9e8e05e2633e8e943a50539972e279)) - - -### Features - -* add empty text for select. update select events and flow ([3435ae9](https://github.com/exadel-inc/esl/commit/3435ae9460853ceb64f9c51b44bb5a4e913c0afc)) - -# [2.0.0-beta.12](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.11...v2.0.0-beta.12) (2021-02-04) - - -### Bug Fixes +* **esl-event-listener:** fix `listen` decorator strict types are incorrect ([94c85f2](https://github.com/exadel-inc/esl/commit/94c85f2ddbea29b420c2540e025c7d510dfba5b1)) -* add full ts export for scroll ([1e40678](https://github.com/exadel-inc/esl/commit/1e406783222a74d7d22a7a9ea5b26566377c4d83)) -* optimize select performance. update demo content ([9c916d6](https://github.com/exadel-inc/esl/commit/9c916d684df4a75fe5a6bcc0d75fed7ea25781f5)) +## [5.0.0-beta.15](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.14...v5.0.0-beta.15) (2024-04-29) ### Features -* esl-select component POC ([dd2644e](https://github.com/exadel-inc/esl/commit/dd2644eb0bd4840ad1285298f51f238e11aaa414)) - -# [2.0.0-beta.11](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.10...v2.0.0-beta.11) (2021-02-03) +* **esl-carousel:** add handler for `esl-show-request` ([1b24ee0](https://github.com/exadel-inc/esl/commit/1b24ee0e32683a32ebd4b8cbf373d018c0eb91e0)) +* **esl-utils:** make DelegatedEvent equal too `DelegatedEvent`, fix types compatibility ([#2360](https://github.com/exadel-inc/esl/issues/2360)) ([458ea53](https://github.com/exadel-inc/esl/commit/458ea53900ed2554772b54e3a0a1567757bb6125)) ### Bug Fixes -* bouncing up when crossing between tabs ([ea7053b](https://github.com/exadel-inc/esl/commit/ea7053b64b97865f3768ba298d906a82da0a0e5e)) - -# [2.0.0-beta.10](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.9...v2.0.0-beta.10) (2021-02-03) - -# [2.0.0-beta.9](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.8...v2.0.0-beta.9) (2021-02-03) - -# [2.0.0-beta.8](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.7...v2.0.0-beta.8) (2021-02-02) - -# [2.0.0-beta.7](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.6...v2.0.0-beta.7) (2021-02-02) - +* **esl-animate:** fix handling of `esl-animate-mixin` attribute changes ([0bb3a44](https://github.com/exadel-inc/esl/commit/0bb3a449ff2b5e6c9c74f763fa1d98a6757a6038)) +* **esl-footnotes:** drop extra margins for `esl-carousel-slides` container ([be4e9b0](https://github.com/exadel-inc/esl/commit/be4e9b0cfb75781e0eea06704c2eecd0cfe8c66b)) +* **esl-footnotes:** fix default display block for `esl-footnote` tag ([beba690](https://github.com/exadel-inc/esl/commit/beba690ee6f1846df071970b3456fec4603db6bb)) -* feat!: refactor of Panel & PanelStack ([d819259](https://github.com/exadel-inc/esl/commit/d8192599333101b46bab930326b2b2ef8eef6292)) +## [5.0.0-beta.14](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.13...v5.0.0-beta.14) (2024-04-20) ### Features -* upgrade BasePopupGroupManager ([07aa02a](https://github.com/exadel-inc/esl/commit/07aa02a65173b85bbcf6076d7861a5950fc26e63)) - - -### BREAKING CHANGES - -* Panel Stack uses self group management. -Group attribute should be removed to reach collapsible behavior. -Panel Stack & Panel inner API changes. - -# [2.0.0-beta.6](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.5...v2.0.0-beta.6) (2021-02-01) - - -### Bug Fixes - -* rename loaded event of ESLImage to the load event (from spec) ([23ecb84](https://github.com/exadel-inc/esl/commit/23ecb844fe41e54c1dd9ac58ac3f9fe23917ae97)) - - -### Code Refactoring - -* cleanup for ESLBasePopupGroupManager ([5f68efd](https://github.com/exadel-inc/esl/commit/5f68efdff5848e4a98f0293328545d00371c244d)) - - -### BREAKING CHANGES - -* rename ESLBasePopupGroupManager to ESLPopupGroupDispatcher - -# [2.0.0-beta.5](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.4...v2.0.0-beta.5) (2021-02-01) +* **esl-carousel:** `container-class` slide implementation ([e042e4b](https://github.com/exadel-inc/esl/commit/e042e4bba2ea4a1552c7c227c3f0bf66040e7677)) +* **esl-carousel:** migrate `esl-carousel-slide` from custom tag to Mixin ([74fb670](https://github.com/exadel-inc/esl/commit/74fb670704df5546d955683f0ee47d976c625d42)) +* **esl-carousel:** updated a11ty auto markers, default ids, initial event ([d3ad7cf](https://github.com/exadel-inc/esl/commit/d3ad7cff63b0985b5c6df54240bb60b0645500b2)) +* **esl-event-listener:** separate intersection events ([370d33b](https://github.com/exadel-inc/esl/commit/370d33bf384c5fed6ca734bb680a9fd3ede86680)) +* **esl-utils:** add provider function support into `[@prop](https://github.com/prop)` decorator ([9f4bfbe](https://github.com/exadel-inc/esl/commit/9f4bfbee09e1cbd1aeac1b9d4176cc6518682bc9)) +* **esl-utils:** add the ability to use additional attributes in `loadScript` utility ([#2279](https://github.com/exadel-inc/esl/issues/2279)) ([f803226](https://github.com/exadel-inc/esl/commit/f80322656efc10dd138f6452f1d3f601229405c9)) ### Bug Fixes -* bind method hotfix ([b7d3b1c](https://github.com/exadel-inc/esl/commit/b7d3b1ca711044c3de29c872173e98bc9bb2a3bc)) +* **esl-carousel:** `dotBuilder`/`dotUpdater` does not inherit static default ([8fd173e](https://github.com/exadel-inc/esl/commit/8fd173e9bc4d0895c437a921cbbde7a0257ec031)) +* **esl-carousel:** it is impossible to use cascading of css variable properly to define dots styles on the carousel level ([d361295](https://github.com/exadel-inc/esl/commit/d361295d6bce56f57986f7c69092273cd187eb74)) +* **site:** `esl-animate` example page wrong animation ([7fd86b4](https://github.com/exadel-inc/esl/commit/7fd86b405839ebb3c15dcd22eabdcf14967e41a5)) -# [2.0.0-beta.4](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.3...v2.0.0-beta.4) (2021-01-31) +## [5.0.0-beta.13](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.12...v5.0.0-beta.13) (2024-04-16) ### Features -* add separate simplified ESLBaseTrigger ([3f5500a](https://github.com/exadel-inc/esl/commit/3f5500af7a7a5b2cd9020db9a80b3b8245ac64fe)) -* introduce EventUtils with a set of event related utilities ([04c5368](https://github.com/exadel-inc/esl/commit/04c536884d63dce864b2427cc2f98175b5e35e39)) -* introduce new BasePopupGroupManager based on events ([8f9a426](https://github.com/exadel-inc/esl/commit/8f9a4260dac3d9d4c604e7cbcf75b9628c426f87)) - - -* feat!: add last activator feature, fix outside action ([76bd08b](https://github.com/exadel-inc/esl/commit/76bd08ba4262e68a52de2ff21bc72ca8016c17ae)) +* **esl-carousel:** rework `ESLCarouselNavDots` plugin, improve a11ty ([ab40f94](https://github.com/exadel-inc/esl/commit/ab40f94324d617fb313f8aee4471d82dd82cdf6d)) +## [5.0.0-beta.12](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.11...v5.0.0-beta.12) (2024-04-12) -### Bug Fixes - -* fix package.json and IE compatibility problems ([68f1bb6](https://github.com/exadel-inc/esl/commit/68f1bb669d7b50acf68253cfeb795dac5b486ae1)) - - -### BREAKING CHANGES - -* 'outsideclick' initiator type replaced with 'outsideaction' - -# [2.0.0-beta.3](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.2...v2.0.0-beta.3) (2021-01-28) - - -### Bug Fixes - -* fix ESLMedia events prefix ([76035fe](https://github.com/exadel-inc/esl/commit/76035fea0216157ee4f68ec9a7e14d20f3a4dc1a)) -# [2.0.0-beta.2](https://github.com/exadel-inc/esl/compare/v2.0.0-beta.1...v2.0.0-beta.2) (2021-01-28) +### ⚠ BREAKING CHANGES +* **esl-utils:** `Rect` utility object now immutable from TS perspective ### Features -* !revert back esl prefix for events ([adef294](https://github.com/exadel-inc/esl/commit/adef294f76ef6b9c9a46cd743fd26d65b45cbfdf)) -* add originalWidth / originalHeight accessors to ESLImage ([365e31b](https://github.com/exadel-inc/esl/commit/365e31b78db67b4bbc335c17078b117459753aa4)) - - -### BREAKING CHANGES - -* events of BasePopup now have esl prefix -('esl:hide' / 'esl:show' / 'esl:before:hide' / 'esl:before:show') - - events of Trigger now have esl prefix: 'esl:change:active' - - events of Panel now have esl prefix: 'esl:after:hide' / 'esl:after:show' - -# [2.0.0-beta.1](https://github.com/exadel-inc/esl/compare/v1.0.1...v2.0.0-beta.1) (2021-01-26) - - -* feat!: update for tab and trigger events; fix double a11y control for tabs ([dce85b6](https://github.com/exadel-inc/esl/commit/dce85b62a4b9e3fd270e1192a75f1796275f778f)) -* feat!: eventing cleanup ([22efb73](https://github.com/exadel-inc/esl/commit/22efb7308140f40c4493716c3de1e7705ef1c0ad)) -* feat!: popups massive cleanup 1 ([7441e41](https://github.com/exadel-inc/esl/commit/7441e411c0f586e366df3057c9c81b58fbdeab5f)) +* **esl-carousel:** `ESLCarouselTouchMixin` plugin is ready for usage with both: drag and touch support ([480bac1](https://github.com/exadel-inc/esl/commit/480bac1f7a7f74d85b03c31aa15bb16a16912c49)) +* **esl-carousel:** add `esl-carousel` mouse wheel control support mixin ([748390c](https://github.com/exadel-inc/esl/commit/748390c1e8a61c394d506ab182935141500826d4)) +* **esl-carousel:** complete support of the drag (touch) for ESLCarousel ([94bc18f](https://github.com/exadel-inc/esl/commit/94bc18f7f16d2cbff8aa8132ee6ed87dd6cce556)) +* **esl-carousel:** complete support of the navigation plugins for ESLCarousel ([19bd241](https://github.com/exadel-inc/esl/commit/19bd241ef58dd96c3787324ac0157ab138fe3f0e)) +* **esl-carousel:** new `esl-carousel` component introduced according to spec [#1282](https://github.com/exadel-inc/esl/issues/1282) ([5b6fc64](https://github.com/exadel-inc/esl/commit/5b6fc646ed86e1985e6f3b4ebb5e227846566702)) +* **esl-carousel:** support for autoplay mixin plugin for ESLCarousel component ([1deea71](https://github.com/exadel-inc/esl/commit/1deea718bc89264f992ac7a05b5b4b85f796bfb2)) +* **esl-carousel:** support for relation mixin plugin for ESLCarousel component ([77cbbd9](https://github.com/exadel-inc/esl/commit/77cbbd9a93de0b149ec484d7dae35409a7897926)) +* **esl-event-listener:** add `isVertical` property to `ESLSwipeGestureEvent` ([019715c](https://github.com/exadel-inc/esl/commit/019715c7b3e520f8e7abf7025835cfdddf50f6db)) +* **esl-event-listener:** ootb ability to skip custom `longwheel` and `swipe` events in case of content scrolling ([#2098](https://github.com/exadel-inc/esl/issues/2098)) ([80c5747](https://github.com/exadel-inc/esl/commit/80c57471d9a7c0c9e126ecd53baafc978999d7f8)), closes [#2085](https://github.com/exadel-inc/esl/issues/2085) +* **esl-toggleable:** introducing alternative internal hooks `shouldShow`/`shouldHide` instead of deprecated `onBeforeShow`/`onBeforeHide`. ([3786423](https://github.com/exadel-inc/esl/commit/378642368986284e041b8cc081f342f89c51769f)) +* **esl-utils:** add ability to resize Rect instance ([1a4aa60](https://github.com/exadel-inc/esl/commit/1a4aa608b8b8f8ece404c22ea489b1c48934c2a0)) +* **esl-utils:** add provider to default value in attr ([f13cc98](https://github.com/exadel-inc/esl/commit/f13cc98d88dd171d2eb50093fca3e1dad887c9d9)) +* **esl-utils:** extend `attr` decorator with inherit option to take over the value of declared attribute ([a794886](https://github.com/exadel-inc/esl/commit/a794886979347d789e11261c5145c5cb4edc29ef)) +* **esl-utils:** introduce `promisifyTransition` utility ([9dbabfc](https://github.com/exadel-inc/esl/commit/9dbabfc982f97c8fe3ef04f9f35e66877ab04531)) +* **esl-utils:** made Rect class immutable ([923c70a](https://github.com/exadel-inc/esl/commit/923c70ab1a8cc55e121b41651cb34ea1ce0cb04c)) +* **esl-utils:** utility to postpone execution to microtask ([2a4c8c5](https://github.com/exadel-inc/esl/commit/2a4c8c59cbdc36a31c7dc370944abce1713b21b2)) ### Bug Fixes -* fix tracking click event for Popup ([2c3bff0](https://github.com/exadel-inc/esl/commit/2c3bff00a7f129e4382eca7fac37b7e6b28f2ead)) -* fix tracking click event for Popup (rename the method and arguments) ([8abd6e5](https://github.com/exadel-inc/esl/commit/8abd6e544ea49fc13379928d6b6f43f137e0bb76)) -* optimize UX for close outside feature ([c058400](https://github.com/exadel-inc/esl/commit/c0584007b0597b1b6c5d308592635267986f1efb)) -* remove eventNs for image & scroll fix image ready event ([2f3382f](https://github.com/exadel-inc/esl/commit/2f3382f206255b85be143fbb802d6c0fa12d4ac6)) - - -### Features - -* `[@ready](https://github.com/ready)` decorator and readyState listener ([6d1a32f](https://github.com/exadel-inc/esl/commit/6d1a32fd1d5b83dcb03902fb0cd874cc32b8f806)) - - -### BREAKING CHANGES - -* - `transitionend` event of ESLPanel replaced with `after:show`/`after:hide` -- `statechange` event of ESLTrigger replaced with `change:active` -* - `ESLBaseElement` no longer contains eventNs and $$fireNs methods -- Whole popups based component system no longer use event namespaces -* - `ESLBasePopup` statechange events replaced with a separate `(before:)show/hide` +* **esl-event-listener:** fix support for any object-like host ([ae4c98d](https://github.com/exadel-inc/esl/commit/ae4c98d6839d063f3260bea59d66f86611bab8d4)) +* **esl-popup:** fix esl-popup infinitely created independently of placeholder state ([63ae414](https://github.com/exadel-inc/esl/commit/63ae4146073b1374bb63f23c37a9ac469a742275)) +* **esl-share:** fix merging of `additional`(nested) params when `ESLShareConfig.update` method is called ([b9b4e5f](https://github.com/exadel-inc/esl/commit/b9b4e5fad974a60c22fbaf022cd5076ae96e6e74)) +* **esl-share:** rename copy action `alertText` param to `copyAlertMsg` ([d3e3c3a](https://github.com/exadel-inc/esl/commit/d3e3c3ae62197972fed35c08b992a2ba7f121634)) +* **esl-tab:** fix `esl-tabs` initialization delay before DOM ready ([52b0beb](https://github.com/exadel-inc/esl/commit/52b0bebe18fc19dc5a2ff528f1b6b44a7c79dce5)) +* **esl-utils:** fix argument list on next fn call ([c2e5c1d](https://github.com/exadel-inc/esl/commit/c2e5c1d89384bff3d7f27f81a79f5e568122b26f)) +* **esl-utils:** fix event cancellation handling ([dffbc53](https://github.com/exadel-inc/esl/commit/dffbc53992841731e6dbc2c73991fc740991fa33)) -# [1.1.0](https://github.com/exadel-inc/esl/compare/v1.0.1...v1.1.0) (2021-01-27) +## [5.0.0-beta.11](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.10...v5.0.0-beta.11) (2024-03-01) ### Features -* add originalWidth / originalHeight accessors to ESLImage ([365e31b](https://github.com/exadel-inc/esl/commit/365e31b78db67b4bbc335c17078b117459753aa4)) - -## [1.0.1](https://github.com/exadel-inc/esl/compare/v1.0.0...v1.0.1) (2021-01-18) +* **esl-utils:** extend `attr` decorator with inherit option to take over the value of declared attribute ([b29acde](https://github.com/exadel-inc/esl/commit/b29acde4a70fe60ff0372d119832ed1acffbbb17)) ### Bug Fixes -* fix providerName type to allow user to extend default providers ([4b6e67e](https://github.com/exadel-inc/esl/commit/4b6e67eb2895f327fec7f45abb539d4217ba7757)) - -# 1.0.0 (2021-01-18) - - -### Bug Fixes +* **esl-event-listener:** fix delegation handling for improper targets ([127297c](https://github.com/exadel-inc/esl/commit/127297cdc0552d6ab810ebb829807b8225b46977)) +* **esl-popup:** fix incorrect behavior of popup for fit-major and fit-minor modes ([f26f907](https://github.com/exadel-inc/esl/commit/f26f90703309a2ead44669b4143196951c381abf)) +* **esl-toggleable:** outside action should be handled from entire page ([aa6f5a5](https://github.com/exadel-inc/esl/commit/aa6f5a52a9c3639dc50e27d837247cfa22653aeb)) -* Add extend draggable area for esl-scrollbar ([403cf33](https://github.com/exadel-inc/esl/commit/403cf339d165917ceb65e7e1264c264a21397a09)) -* browser list term in package.json ([39426dd](https://github.com/exadel-inc/esl/commit/39426dd33c159454091f5c4e14ed26545ff7e691)) -* build process updated; NPM release file-list fix ([a13bacf](https://github.com/exadel-inc/esl/commit/a13bacf053cdc6fee583965003dfd246881c1a04)) -* ESL media query fix ([ca4a904](https://github.com/exadel-inc/esl/commit/ca4a9043615f672bff381cf1971356129866ab0d)) -* fix linting error for scrollbar a11y pseudo-element ([4974354](https://github.com/exadel-inc/esl/commit/49743548defb74ff46886f1b2410c0189ad8dd81)) -* fix strict comparison. ([5462ae3](https://github.com/exadel-inc/esl/commit/5462ae339983c98dcdb76949a938c26fd0c7ea88)) -* fix youtube url regexp, typo in error and mock formatting ([1da03bd](https://github.com/exadel-inc/esl/commit/1da03bdd285da5c21cfce9d07ca45591c001ad78)) -* ie-zindex-fix update ([5729f30](https://github.com/exadel-inc/esl/commit/5729f30d283ac67cbd12fe75bf46c32904a03d1b)) -* native 'close on body click' feature can be prevented by outside click handlers ([853106d](https://github.com/exadel-inc/esl/commit/853106db29bd0dce0fa2dbd0f8a0290c87c8cac7)) -* path for coverage test exclusions ([6c29f49](https://github.com/exadel-inc/esl/commit/6c29f490cde159ecc6fda483fc291660c02ce6d6)) -* polyfill content fix ([ecb738e](https://github.com/exadel-inc/esl/commit/ecb738e8173f1834ef2a8eb8f7ed863baf3b6a1d)) -* pr comments and bugfixes ([6783473](https://github.com/exadel-inc/esl/commit/6783473363c313948d924325027162f4a418bf72)) -* semantic release test ([2b53b37](https://github.com/exadel-inc/esl/commit/2b53b37455d0cc96ab855a91b40b9b3783aaccca)) -* Sonar code small fix. ([947c4e0](https://github.com/exadel-inc/esl/commit/947c4e097bb2858b6fe9c9064aed49c39e953184)) -* test fix. ([2e09121](https://github.com/exadel-inc/esl/commit/2e09121b335da5675e7155b2a96f0cc44f044ebb)) -* Tests and fix for BreakpointRegistry ([6c1b333](https://github.com/exadel-inc/esl/commit/6c1b333f3195a9e354322998faa67cd47aaa902e)) -* typo fixes. ([c477f5f](https://github.com/exadel-inc/esl/commit/c477f5f8fcbdb6658978f7fecbcfcd3c8cd46885)) +## [5.0.0-beta.10](https://github.com/exadel-inc/esl/compare/v5.0.0-beta.9...v5.0.0-beta.10) (2024-02-14) ### Features -* add get / set utility and simple compile method ([8283bfa](https://github.com/exadel-inc/esl/commit/8283bfa34a5068d5ddadfadb4aaa64699a6b7936)) -* commit-lint integration ([138c4c2](https://github.com/exadel-inc/esl/commit/138c4c237400f9fb8b1099296cd4762cb36e333a)) -* commit-lint use conventional-commit rules ([03dc5cd](https://github.com/exadel-inc/esl/commit/03dc5cd7c6a982fb546a98e197c951e24d424bfb)) -* ESL Scroll bar updated with unified event handling. ([5a5aa30](https://github.com/exadel-inc/esl/commit/5a5aa305e4fc214bc91b838d65c5dfe18c50fa7a)) -* esl-media-query tests and fixes ([e8f554f](https://github.com/exadel-inc/esl/commit/e8f554f1470559c4a7de1836f4be7b36b7602508)) -* JSX interface for ESL Scrollbar and ESL Media ([1a99746](https://github.com/exadel-inc/esl/commit/1a9974604c57174fa9f936e943815d1277d4388b)) -* update ESL Alert Component ([1c047ae](https://github.com/exadel-inc/esl/commit/1c047aed767d5d4d5670e84e6d0541c6d7cac10f)) - -## [1.41.2](https://github.com/exadel-inc/esl/compare/v1.41.1-alpha...v1.41.2-alpha) (2021-01-13) - - -### Bug Fixes - -* browser list term in package.json ([39426dd](https://github.com/exadel-inc/esl/commit/39426dd33c159454091f5c4e14ed26545ff7e691)) -* build process updated; NPM release file-list fix ([a13bacf](https://github.com/exadel-inc/esl/commit/a13bacf053cdc6fee583965003dfd246881c1a04)) - -## [1.41.1](https://github.com/exadel-inc/esl/compare/v1.41.0-alpha...v1.41.1-alpha) (2021-01-13) +* **esl-event-listener:** ootb ability to skip custom `longwheel` and `swipe` events in case of content scrolling ([#2098](https://github.com/exadel-inc/esl/issues/2098)) ([ecc849f](https://github.com/exadel-inc/esl/commit/ecc849f26a8444ea8b840e698afab18e79e80391)), closes [#2085](https://github.com/exadel-inc/esl/issues/2085) +* **esl-popup:** rework esl-popup styles to use CSS variables ([cd781b9](https://github.com/exadel-inc/esl/commit/cd781b9195b876a24debb574410423e853ea3e1a)) ### Bug Fixes -* semantic release test ([2b53b37](https://github.com/exadel-inc/esl/commit/2b53b37455d0cc96ab855a91b40b9b3783aaccca)) +* **microtask:** fix argument list on next fn call ([f421e88](https://github.com/exadel-inc/esl/commit/f421e882e4fb01ad691bf94209aab486c22cd50b)) +* **swipe:** fix swipe tests ([e1aefb8](https://github.com/exadel-inc/esl/commit/e1aefb8f3ac08b19e40cb138c413dd659ac3500d)) diff --git a/README.md b/README.md index 02a9d9a21..8531afd46 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,6 @@ to meet your project needs. ESL is based solely on Web API and ECMAScript 6 features, which let our web UI components library work well across all modern browsers such as Firefox, Chrome, Safari, Opera, and Edge. -ESL can also work on IE11 when the whole list of polyfills is provided (see [Browser support & Polyfills](https://github.com/exadel-inc/esl/blob/HEAD/docs/BROWSER_SUPPORT.md) for more details). ## Library Structure @@ -69,7 +68,8 @@ with excellent performance. - ##### [ESL Alert](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-alert/README.md) - ##### [ESL Animate](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-animate/README.md) - ##### [ESL Footnotes](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-footnotes/README.md) (beta) -- ##### [ESL Image](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-image/README.md) +- ##### [ESL Image Utils](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-image-utils/README.md) +- ##### [ESL Image (Legacy)](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-image/README.md) - ##### [ESL Media](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-media/README.md) - ##### [ESL Panel](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-panel/README.md) - ##### [ESL Panel Group](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-panel-group/README.md) diff --git a/docs/BROWSER_SUPPORT.md b/docs/BROWSER_SUPPORT.md index b1c998b86..06e615e40 100644 --- a/docs/BROWSER_SUPPORT.md +++ b/docs/BROWSER_SUPPORT.md @@ -6,17 +6,11 @@ Exadel Smart Library does not have dependencies but uses the following list of n - ECMAScript 6 features - [Array.from](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from) (no Iterable Objects support required) - ([ESL polyfill](../src/polyfills/list/es6.array.from.ts) provided) - [Array.prototype.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find) - ([ESL polyfill](../src/polyfills/list/es6.array.find.ts) provided) - [Array.prototype.findIndex](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex) - ([ESL polyfill](../src/polyfills/list/es6.array.find.ts) provided) - [Array.prototype.include](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) - ([ESL polyfill](../src/polyfills/list/es6.array.includes.ts) provided) - [Object.is](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is) - ([ESL polyfill](../src/polyfills/list/es6.object.is.ts) provided) - [Object.assign](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) (accurate polyfill required) - ([ESL polyfill](../src/polyfills/list/es6.object.assign.ts) provided) - [ES6 Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) - Web API - [Event](https://developer.mozilla.org/en-US/docs/Web/API/Event) constructor + `preventDefault` polyfill @@ -30,25 +24,6 @@ Exadel Smart Library does not have dependencies but uses the following list of n - [ResizeObserver](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver) - [Custom Elements](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements) -All of them are fully supported by modern browsers such as Chrome, Firefox, Safari or Edge (>43). +All of them are fully supported by modern browsers such as Chrome, Firefox, Safari (>13) or Edge (>43). -In order to make ESL work in older browsers, you can use a "light" polyfills list of IntersectionObserver, ResizeObserver and Custom Elements (for older versions of Edge and Safari). - -Or make the library work in IE11 or Edge (<14) by using the "full" polyfills list provided. - -See more details on what polyfill approach might look like in the demo pages source code. - -Also, ESL has built-in polyfills for some of DOM and ES6 features. They are available under [polyfills](../src/polyfills) directory: - - ECMA Script 5: output shim (`HTMLElement` constructor call) - [es5-target-shim.ts](../src/polyfills/es5-target-shim.ts) - - ECMA Script 5: IE11, Edge <14 support - [polyfills.es5.ts](../src/polyfills/polyfills.es5.ts) - - `Object.is`, `Object.assign` - - `Array.from`, `Array.prototype.find`, `Array.prototype.findIndex`, `Array.prototype.index` - - `Event`, `CustomEvent`, `MouseEvent`, `KeyboardEvent`, `FocusEvent` shim - - `Event.prototype.preventDefault` shim - - `Element.prototype.closest` - - `DOMTokenList.prototype.toggle` - - *Note: there is no promise polyfill embedded*, use npm:[promise-polyfill](https://www.npmjs.com/package/promise-polyfill) or similar - - ECMA Script 6: DOM - [polyfills.es6.ts](../src/polyfills/polyfills.es6.ts) - - `Node.isConnected` - - `KeyboardKey.prototype.key` - - `Element.prototype.toggleAttribute` +In order to make ESL work in older browsers, you can use polyfill (for older versions of Safari). diff --git a/e2e/.eslintignore b/e2e/.eslintignore deleted file mode 100644 index c1723a238..000000000 --- a/e2e/.eslintignore +++ /dev/null @@ -1,6 +0,0 @@ -# Common configuration -jest.config.js - -# Common directories -transformer -reporters diff --git a/e2e/jest-puppeteer.config.js b/e2e/jest-puppeteer.config.js index f4e87cf3f..c01a8b4ee 100644 --- a/e2e/jest-puppeteer.config.js +++ b/e2e/jest-puppeteer.config.js @@ -1,5 +1,3 @@ -/* eslint-disable no-undef */ - if (!process.argv.includes('--no-autorun') && !process.env.PORT) { process.env.PORT = '3007'; } diff --git a/e2e/package.json b/e2e/package.json index 68338c11f..d8aa3cc47 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@exadel/esl-snapshot-tests", - "version": "4.18.1", + "version": "5.0.0-beta.33", "description": "Integration snapshot tests for ESL", "homepage": "https://esl-ui.com/", "license": "MIT", @@ -11,14 +11,14 @@ "run:update:only": "jest -u --no-autorun", "run:tests:only": "jest --no-autorun", "run:server": "cd .. && cross-env-shell PORT=3007 npm run start:test --workspace=site", - "test": "eslint" + "test": "eslint \"**/*.ts\"" }, "dependencies": { "@types/jest-environment-puppeteer": "^5.0.6", "@types/jest-image-snapshot": "^6.4.0", "@types/puppeteer": "^7.0.4", "jest-image-snapshot": "^6.4.0", - "jest-puppeteer": "^10.0.1", + "jest-puppeteer": "^10.1.1", "puppeteer": "^22.15.0", "stucumber": "^0.19.0" } diff --git a/e2e/tests/__image_snapshots__/homepage-feature-feature-homepage-looks-fine-test-homepage-footer-on-desktop-1-snap.png b/e2e/tests/__image_snapshots__/homepage-feature-feature-homepage-looks-fine-test-homepage-footer-on-desktop-1-snap.png index 111fe4573..a969d4fc8 100644 Binary files a/e2e/tests/__image_snapshots__/homepage-feature-feature-homepage-looks-fine-test-homepage-footer-on-desktop-1-snap.png and b/e2e/tests/__image_snapshots__/homepage-feature-feature-homepage-looks-fine-test-homepage-footer-on-desktop-1-snap.png differ diff --git a/e2e/tests/__image_snapshots__/homepage-feature-feature-homepage-looks-fine-test-homepage-screen-1-snap.png b/e2e/tests/__image_snapshots__/homepage-feature-feature-homepage-looks-fine-test-homepage-screen-1-snap.png index 615530505..d48f3f5ce 100644 Binary files a/e2e/tests/__image_snapshots__/homepage-feature-feature-homepage-looks-fine-test-homepage-screen-1-snap.png and b/e2e/tests/__image_snapshots__/homepage-feature-feature-homepage-looks-fine-test-homepage-screen-1-snap.png differ diff --git a/e2e/tests/__image_snapshots__/homepage-feature-feature-homepage-looks-fine-test-homepage-screen-on-mobile-1-snap.png b/e2e/tests/__image_snapshots__/homepage-feature-feature-homepage-looks-fine-test-homepage-screen-on-mobile-1-snap.png index 904904662..e43aa2581 100644 Binary files a/e2e/tests/__image_snapshots__/homepage-feature-feature-homepage-looks-fine-test-homepage-screen-on-mobile-1-snap.png and b/e2e/tests/__image_snapshots__/homepage-feature-feature-homepage-looks-fine-test-homepage-screen-on-mobile-1-snap.png differ diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000..ebf7b8060 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,17 @@ +module.exports = [ + { + files: ["**/*.ts", "**/*.tsx"], + linterOptions: { + reportUnusedDisableDirectives: "warn" + } + }, + ...require('./linting/eslint.config.ignore'), + ...require('./linting/eslint.config.language'), + ...require('./linting/eslint.config.codestyle'), + ...require('./linting/eslint.config.coderules'), + ...require('./linting/eslint.config.sonarjs'), + ...require('./linting/eslint.config.stylistic'), + ...require('./linting/eslint.config.editorconfig'), + ...require('./linting/eslint.config.import'), + ...require('./linting/eslint.config.tsdoc') +]; diff --git a/eslint/package.json b/eslint/package.json index c44c21e7d..a421d3ba2 100644 --- a/eslint/package.json +++ b/eslint/package.json @@ -1,6 +1,6 @@ { "name": "@exadel/eslint-plugin-esl", - "version": "4.18.1", + "version": "5.0.0-beta.33", "keywords": [ "eslint", "eslint-plugin", @@ -9,9 +9,13 @@ "license": "MIT", "description": "Helper ESLint rules to find and migrate ESL (@exadel/esl) library deprecations", "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist/**/*.{js,ts,md}" + ], "scripts": { "prepare": "npm run build", - "test": "jest", + "test": "", "clean": "rimraf dist", "build": "npm run clean && tsc --project tsconfig.build.json" }, @@ -20,14 +24,10 @@ "semver": "^7.6.3" }, "devDependencies": { - "@types/eslint": "^8.0.0" + "@types/eslint": "^9.6.1" }, - "files": [ - "dist/**/*" - ], - "types": "dist/index.d.ts", "peerDependencies": { - "@exadel/esl": "^4.0.0", + "@exadel/esl": "*", "eslint": ">=8.0.0" } } diff --git a/eslint/test/deprecated-alias.invalid.test.ts b/eslint/test/deprecated-alias.invalid.test.ts index b46b86643..6a257ca43 100644 --- a/eslint/test/deprecated-alias.invalid.test.ts +++ b/eslint/test/deprecated-alias.invalid.test.ts @@ -184,6 +184,7 @@ describe('ESL Migration Rules: Deprecated Alias: invalid', () => { }); const ruleTester = new RuleTester({ + // @ts-ignore parser: require.resolve('@typescript-eslint/parser') }); diff --git a/eslint/test/deprecated-alias.valid.test.ts b/eslint/test/deprecated-alias.valid.test.ts index 3d8d3b05c..d635734c7 100644 --- a/eslint/test/deprecated-alias.valid.test.ts +++ b/eslint/test/deprecated-alias.valid.test.ts @@ -70,6 +70,7 @@ describe('ESL Migration Rules: Deprecated Alias: valid', () => { }); const ruleTester = new RuleTester({ + // @ts-ignore parser: require.resolve('@typescript-eslint/parser') }); diff --git a/eslint/test/deprecated-class-method.test.ts b/eslint/test/deprecated-class-method.test.ts index bbc4cc217..1260df8c0 100644 --- a/eslint/test/deprecated-class-method.test.ts +++ b/eslint/test/deprecated-class-method.test.ts @@ -1,8 +1,6 @@ import {RuleTester} from 'eslint'; import {buildRule} from '../src/core/deprecated-class-method'; -import deprecatedMediaRuleListParse from '../src/rules/4/deprecated.media-rule-list-parse'; - const VALID_CASES = [ { code: ` @@ -182,18 +180,9 @@ describe('ESL Migration Rules: Deprecated Static Method: valid', () => { }); const ruleTester = new RuleTester({ + // @ts-ignore parser: require.resolve('@typescript-eslint/parser') }); ruleTester.run('deprecated-static-method', rule, {valid: VALID_CASES, invalid: INVALID_CASES_TEST_CLASS}); }); - -describe('ESL Migration Rules: Deprecated Static Method: valid', () => { - const rule = deprecatedMediaRuleListParse; - - const ruleTester = new RuleTester({ - parser: require.resolve('@typescript-eslint/parser') - }); - - ruleTester.run('deprecated-static-method', rule, {valid: VALID_CASES, invalid: INVALID_CASES_RULE_LIST}); -}); diff --git a/linting/coderules.eslintrc.yml b/linting/coderules.eslintrc.yml deleted file mode 100644 index bbe29e4ba..000000000 --- a/linting/coderules.eslintrc.yml +++ /dev/null @@ -1,271 +0,0 @@ -rules: - # === Compulsory practices === - - # Verify calls of super() in constructors - 'constructor-super': warn - - # Requires === and !== usage - 'eqeqeq': warn - - # Require Guarding for-in to exclude prototype keys - 'guard-for-in': warn - - # There is no blacklisted identifiers - 'id-blacklist': off - - # Bitwise operators are not recommended - 'no-bitwise': warn - - # Disallow use of caller/callee - 'no-caller': error - - # Warn about assignment operators in conditional statements - 'no-cond-assign': warn - - # Console API is formally allowed - 'no-console': off - - # Debugger operator is not allowed - 'no-debugger': error - - # Allows case statement to fallthrough - 'no-fallthrough': off - - # Warn about using redundant primitive wrapper instances usage - 'no-new-wrappers': warn - - # Warn about redundant initializing to undefined - 'no-undef-init': warn - - # Disallow control flow statements in finally blocks - 'no-unsafe-finally': error - - # Labels are not allowed - 'no-labels': error - - # Require implicit radix parameter for parseInt - 'radix': error - - # Require calls to isNaN() when checking for NaN - 'use-isnan': error - - # Enforce comparing typeof expressions against valid strings - 'valid-typeof': error - - - # Enforces consistent usage of type imports - '@typescript-eslint/consistent-type-imports': - - error - - prefer: type-imports - - # Disallow the use of custom TypeScript modules and namespaces - '@typescript-eslint/no-namespace': error - - # Disallows using a non-null assertion after an optional chain expression - '@typescript-eslint/no-non-null-asserted-optional-chain': error - - # Disallows invocation of require() - '@typescript-eslint/no-require-imports': error - - # Disallow aliasing this - '@typescript-eslint/no-this-alias': error - - # Flags unnecessary equality comparisons against boolean literals - '@typescript-eslint/no-unnecessary-boolean-literal-compare': error - - # Disallows the use of require statements except in import statements - '@typescript-eslint/no-var-requires': error - - # Prefer usage of as const over literal type - '@typescript-eslint/prefer-as-const': error - - # Disallow iterating over an array with a for-in loop - '@typescript-eslint/no-for-in-array': error - - # Disallow extra non-null assertion - '@typescript-eslint/no-extra-non-null-assertion': error - - # Enforce default parameters to be last - 'default-param-last': off - '@typescript-eslint/default-param-last': error - - # Prefers member overloads to be consecutive - '@typescript-eslint/adjacent-overload-signatures': warn - - # Prefers using either T[] or Array for arrays - '@typescript-eslint/array-type': warn - - # Warn about awaiting of a value that is not a Thenable - '@typescript-eslint/await-thenable': warn - - # Bans @ts- comments from being used or requires descriptions after directive - '@typescript-eslint/ban-ts-comment': warn - - # Bans specific types from being used - '@typescript-eslint/ban-types': warn - - # Warn about invalid definition of new and constructor - '@typescript-eslint/no-misused-new': warn - - # Warns when a namespace qualifier is unnecessary - '@typescript-eslint/no-unnecessary-qualifier': warn - - # Prefers function types instead of interfaces with call signatures - '@typescript-eslint/prefer-function-type': warn - - # Sets preference level for triple slash directives versus ES6-style import declarations - '@typescript-eslint/triple-slash-reference': warn - - # Warns if a type assertion does not change the type of an expression - '@typescript-eslint/no-unnecessary-type-assertion': warn - - # It's recommended to pass a compareFn to the Array.sort method - '@typescript-eslint/require-array-sort-compare': warn - - # Warns if missed return type on functions or class methods - '@typescript-eslint/explicit-function-return-type': warn - - # Ignores if two overloads could be unified into one by using a union or an optional/rest parameter - # Because of the possibility to separate TSDocs between different function/method overloads - '@typescript-eslint/unified-signatures': off - - # Allows the delete operator with computed key expressions - '@typescript-eslint/no-dynamic-delete': off - - # Allows the use of parameter properties in class constructors - '@typescript-eslint/no-parameter-properties': off - - # Allows the use of type aliases - '@typescript-eslint/no-type-alias': off - - # There is no prefer of ‘for-of’ loop over a standard ‘for’ loop if the index is only used to access the array being iterated - '@typescript-eslint/prefer-for-of': off - - # There is no restriction when adding two variables, operands must both be of type number or of type string - '@typescript-eslint/restrict-plus-operands': off - - # Do not restricts the types allowed in boolean expressions - '@typescript-eslint/strict-boolean-expressions': off - - # Allows the declaration of empty interfaces - '@typescript-eslint/no-empty-interface': off - - # Allows empty functions - 'no-empty-function': off - '@typescript-eslint/no-empty-function': off - - # Allows usage of the any type - '@typescript-eslint/no-explicit-any': off - - # Allows non-null assertions using the ! postfix operator - '@typescript-eslint/no-non-null-assertion': off - - # Do not ensures that literals on classes are exposed in a consistent style - '@typescript-eslint/class-literal-property-style': off - - # Allows the use of the record type - '@typescript-eslint/consistent-indexed-object-style': off - - # There is no preferences for interfaces or types - '@typescript-eslint/consistent-type-definitions': off - - # Do not require explicit accessibility modifiers on class properties and methods - '@typescript-eslint/explicit-member-accessibility': off - - # Do not require a consistent member declaration order - # TODO: discuss for the future - 'member-ordering': off - '@typescript-eslint/member-ordering': off - - # There is no preferences of a particular method signature syntax - '@typescript-eslint/method-signature-style': off - - # Ensure .toString() is only called on objects which provide useful information when stringified - '@typescript-eslint/no-base-to-string': warn - - # Warn about non-null assertion in locations that may be confusing - '@typescript-eslint/no-confusing-non-null-assertion': warn - - # Do not requires expressions of type void to appear in statement position - '@typescript-eslint/no-confusing-void-expression': off - - # Do not forbids the use of classes as namespaces - '@typescript-eslint/no-extraneous-class': off - - # Do not require Promise-like values to be handled appropriately - # TODO: enable - '@typescript-eslint/no-floating-promises': off - - # Allows usage of the implicit any type in catch clauses - '@typescript-eslint/no-implicit-any-catch': off - - # Allows explicit type declarations for variables or parameters initialized to a number, string, or boolean - '@typescript-eslint/no-inferrable-types': off - - # Allows usage of void type outside of generic or return types - '@typescript-eslint/no-invalid-void-type': off - - # There is no requirement of using promises in places not designed to handle them - '@typescript-eslint/no-misused-promises': off - - # Check that type arguments will not be used if not required - '@typescript-eslint/no-unnecessary-type-arguments': warn - - # Warn about unnecessary constraints on generic types - '@typescript-eslint/no-unnecessary-type-constraint': warn - - # Allows calling a function with an any type value - '@typescript-eslint/no-unsafe-argument': off - - # Allows assigning any to variables and properties - '@typescript-eslint/no-unsafe-assignment': off - - # Prefers a non-null assertion over explicit type cast when possible - '@typescript-eslint/non-nullable-type-assertion-style': warn - - # Prefer initializing each enums member value - '@typescript-eslint/prefer-enum-initializers': error - - # Require that all enum members be literal values to prevent unintended enum member name shadow issues - '@typescript-eslint/prefer-literal-enum-member': error - - # There is no enforce of the usage of the nullish coalescing operator instead of logical chaining - '@typescript-eslint/prefer-nullish-coalescing': off - - # There is no prefer of using concise optional chain expressions instead of chained logical ands - '@typescript-eslint/prefer-optional-chain': off - - # Do not requires any function or method that returns a Promise to be marked async - '@typescript-eslint/promise-function-async': off - - # Allows unbound methods to be called outside their expected scope - '@typescript-eslint/unbound-method': off - - # Do not require explicit return and argument types on exported functions' and classes' public class methods - '@typescript-eslint/explicit-module-boundary-types': off - - # Disable check of conditionals where the type is always truthy or always falsy - '@typescript-eslint/no-unnecessary-condition': off - - # Allows generic Array constructors - 'no-array-constructor': off - '@typescript-eslint/no-array-constructor': off - - # Allows the use of variables before they are defined - 'no-use-before-define': off - '@typescript-eslint/no-use-before-define': off - -# Specific lint overrides -overrides: - # Allow the use of custom TypeScript modules and namespaces for JSX shapes - - files: - - '*.shape.ts' - rules: - '@typescript-eslint/no-namespace': off - # Temporary of as false positive - '@typescript-eslint/no-unnecessary-type-arguments': off - - - files: - - '**/polyfills/**/*.ts' - rules: - 'no-new-wrappers': off diff --git a/linting/codestyle.eslintrc.yml b/linting/codestyle.eslintrc.yml deleted file mode 100644 index a6fb47850..000000000 --- a/linting/codestyle.eslintrc.yml +++ /dev/null @@ -1,258 +0,0 @@ -rules: - # ==== Naming Convention ==== - # Enforces naming conventions for everything across a codebase - # TODO: configure - # '@typescript-eslint/naming-convention': - # - warn - # - selector: variable - # format: [ camelCase, PascalCase, UPPER_CASE ] - # leadingUnderscore: allow - - # ==== Spacing | Code style ==== - - # Warn about multiple empty lines - 'no-multiple-empty-lines': - - warn - - max: 2 - maxEOF: 1 - maxBOF: 1 - - # Warn about spaces inside of parentheses - 'space-in-parens': - - warn - - never - - # Warn about missing space before blocks - 'space-before-blocks': - - warn - - always - - # Limit Cyclomatic Complexity - 'complexity': warn - - # Require following curly brace conventions - 'curly': - - warn - - multi-line - - 'arrow-parens': - - warn - - always - - # Max 3 classes per file (ideally 1 per file) - 'max-classes-per-file': - - warn - - 3 - - # Warn about a maximum line length to be 160 - 'max-len': - - warn - - code: 160 - - # Require parentheses when invoking a constructor with no arguments - 'new-parens': error - - # Warn about empty block statements - 'no-empty': warn - - # Disallow mixed spaces and tabs for indentation - 'no-mixed-spaces-and-tabs': error - - # Warn about trailing whitespace at the end of lines - 'no-trailing-spaces': warn - - # Underscores allowed due to 'private-member' notation - 'no-underscore-dangle': off - - # 'var' declaration operator is not allowed - 'no-var': error - - # Warn to prefer shorthand object keys - 'object-shorthand': warn - - # Disallow multiple declaration per one line or declaration operator - 'one-var': - - error - - never - - # Using of arrow functions is optional - 'prefer-arrow-callback': off - - # Prefer const declaration operator - 'prefer-const': error - - # Enforce location of semicolons - 'semi-style': - - error - - last - - # Requires a whitespace at the beginning of a comment - 'spaced-comment': warn - - # Limit max lines count per file to 400 - 'max-lines': - - warn - # TODO: make smaller - - 450 - - # Prefer consistent brace style for blocks - 'brace-style': off - '@typescript-eslint/brace-style': warn - - # Prefer consistent spacing before and after commas - 'comma-dangle': off - '@typescript-eslint/comma-spacing': warn - - # Allows trailing comma - 'comma-spacing': off - '@typescript-eslint/comma-dangle': off - - # Do not enforce dot notation whenever possible - 'dot-notation': off - '@typescript-eslint/dot-notation': off - - # Require consistent spacing around type annotations - '@typescript-eslint/type-annotation-spacing': warn - - # Prefers consistent usage of type assertions - '@typescript-eslint/consistent-type-assertions': warn - - # Require a semicolon member delimiter style for interfaces and type literals - '@typescript-eslint/member-delimiter-style': - - warn - - multiline: - delimiter: 'semi' - requireLast: true - singleline: - delimiter: 'comma' - requireLast: false - - # Require the use of the namespace keyword instead of the module keyword to declare custom TypeScript modules - '@typescript-eslint/prefer-namespace-keyword': warn - - # Require spacing between function identifiers and their invocations - 'func-call-spacing': off - '@typescript-eslint/func-call-spacing': - - warn - - never - - # Warn for consistent indentations - 'indent': off - '@typescript-eslint/indent': - - warn - - 2 - - ignoredNodes: [FunctionExpression, FunctionDeclaration] - SwitchCase: 1 - ObjectExpression: 1 - ImportDeclaration: 1 - flatTernaryExpressions: false - - # Allows initialization in variable declarations - 'init-declarations': off - '@typescript-eslint/init-declarations': off - - # Require consistent spacing before and after keywords - 'keyword-spacing': off - '@typescript-eslint/keyword-spacing': - - warn - - after: true - before: true - - # Allows an empty line between class members - 'lines-between-class-members': off - '@typescript-eslint/lines-between-class-members': off - - # Warn about duplicate class members - 'no-dupe-class-members': off - '@typescript-eslint/no-dupe-class-members': warn - - # Allow unnecessary parentheses - 'no-extra-parens': off - '@typescript-eslint/no-extra-parens': off - - # Warn about unnecessary semicolons - 'no-extra-semi': off - '@typescript-eslint/no-extra-semi': warn - - # The use of eval()-like methods is not recommended - 'no-eval': off - 'no-implied-eval': off - '@typescript-eslint/no-implied-eval': warn - - # Allows this keywords outside of classes or class-like objects - 'no-invalid-this': off - '@typescript-eslint/no-invalid-this': off - - # Warn about function declarations that contain unsafe references inside loop statements - 'no-loop-func': off - '@typescript-eslint/no-loop-func': warn - - # Warn about literal numbers that lose precision - 'no-loss-of-precision': off - '@typescript-eslint/no-loss-of-precision': warn - - # Disallow variable redeclaration - 'no-redeclare': off - '@typescript-eslint/no-redeclare': error - - # Warn about variable declarations that are shadowing variables declared in the outer scope - 'no-shadow': off - '@typescript-eslint/no-shadow': warn - - # Warn about throwing literals as exceptions - 'no-throw-literal': off - '@typescript-eslint/no-throw-literal': warn - - # Allows unused expressions - 'no-unused-expressions': off - '@typescript-eslint/no-unused-expressions': off - - # Warn about unused variables - 'no-unused-vars': off - '@typescript-eslint/no-unused-vars': - - warn - - vars: all - args: none - - # Warn about unnecessary constructors - 'no-useless-constructor': off - '@typescript-eslint/no-useless-constructor': warn - - # Enforce the consistent use of single quotes - 'quotes': off - '@typescript-eslint/quotes': - - error - - single - - # Do not warn if an async function has no await expression - 'require-await': off - '@typescript-eslint/require-await': off - - # Prefers consistent returning of awaited values - 'return-await': off - '@typescript-eslint/return-await': warn - - # Require semicolons instead of ASI - 'semi': off - '@typescript-eslint/semi': error - - # Prefer consistent spacing before function parenthesis - 'space-before-function-paren': off - '@typescript-eslint/space-before-function-paren': - - warn - - anonymous: always - named: never - asyncArrow: always - - # This rule is aimed at ensuring there are spaces around infix operators. - 'space-infix-ops': off - '@typescript-eslint/space-infix-ops': warn - - # Prefer consistent spacing inside braces - 'object-curly-spacing': off - '@typescript-eslint/object-curly-spacing': - - warn - - never - - # no spread preferences in bounds of the library - 'prefer-spread': off diff --git a/linting/eslint.config.coderules.js b/linting/eslint.config.coderules.js new file mode 100644 index 000000000..72fb5917d --- /dev/null +++ b/linting/eslint.config.coderules.js @@ -0,0 +1,295 @@ +module.exports = [ + { + rules: { + // Verify calls of super() in constructors + 'constructor-super': 'warn', + + // Requires === and !== usage + 'eqeqeq': 'warn', + + // Require Guarding for-in to exclude prototype keys + 'guard-for-in': 'warn', + + // There is no blacklisted identifiers + 'id-blacklist': 'off', + + // Bitwise operators are not recommended + 'no-bitwise': 'warn', + + // Disallow use of caller/callee + 'no-caller': 'error', + + // Warn about assignment operators in conditional statements + 'no-cond-assign': 'warn', + + // Console API is formally allowed + 'no-console': 'off', + + // Debugger operator is not allowed + 'no-debugger': 'error', + + // Allows case statement to fallthrough + 'no-fallthrough': 'off', + + // Warn about using redundant primitive wrapper instances usage + 'no-new-wrappers': 'warn', + + // Warn about redundant initializing to undefined + 'no-undef-init': 'warn', + + // Disallow control flow statements in finally blocks + 'no-unsafe-finally': 'error', + + // Labels are not allowed + 'no-labels': 'error', + + // Require implicit radix parameter for parseInt + 'radix': 'error', + + // Require calls to isNaN() when checking for NaN + 'use-isnan': 'error', + + // Enforce comparing typeof expressions against valid strings + 'valid-typeof': 'error', + + // Enforces consistent usage of type imports + '@typescript-eslint/consistent-type-imports': [ + 'error', { + prefer: 'type-imports' + } + ], + + // Disallow the use of custom TypeScript modules and namespaces + '@typescript-eslint/no-namespace': 'error', + + // Disallows using a non-null assertion after an optional chain expression + '@typescript-eslint/no-non-null-asserted-optional-chain': 'error', + + // Disallows invocation of require() + '@typescript-eslint/no-require-imports': 'error', + + // Disallow aliasing this + '@typescript-eslint/no-this-alias': 'error', + + // Flags unnecessary equality comparisons against boolean literals + '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'error', + + // Disallows the use of require statements except in import statements + '@typescript-eslint/no-var-requires': 'error', + + // Prefer usage of as const over literal type + '@typescript-eslint/prefer-as-const': 'error', + + // Disallow iterating over an array with a for-in loop + '@typescript-eslint/no-for-in-array': 'error', + + // Disallow extra non-null assertion + '@typescript-eslint/no-extra-non-null-assertion': 'error', + + // Enforce default parameters to be last + 'default-param-last': 'off', + '@typescript-eslint/default-param-last': 'error', + + // Prefers member overloads to be consecutive + '@typescript-eslint/adjacent-overload-signatures': 'warn', + + // Prefers using either T[] or Array for arrays + '@typescript-eslint/array-type': 'warn', + + // Warn about awaiting of a value that is not a Thenable + '@typescript-eslint/await-thenable': 'warn', + + // Bans @ts- comments from being used or requires descriptions after directive + '@typescript-eslint/ban-ts-comment': 'warn', + + // Bans Function types from being used + '@typescript-eslint/no-unsafe-function-type': 'warn', + + // Bans usage of the {} type + '@typescript-eslint/no-empty-object-type': [ + 'warn', { + allowInterfaces: 'always' + } + ], + + // Warn about invalid definition of new and constructor + '@typescript-eslint/no-misused-new': 'warn', + + // Warns when a namespace qualifier is unnecessary + '@typescript-eslint/no-unnecessary-qualifier': 'warn', + + // Prefers function types instead of interfaces with call signatures + '@typescript-eslint/prefer-function-type': 'warn', + + // Sets preference level for triple slash directives versus ES6-style import declarations + '@typescript-eslint/triple-slash-reference': 'warn', + + // Warns if a type assertion does not change the type of an expression + '@typescript-eslint/no-unnecessary-type-assertion': 'warn', + + // It's recommended to pass a compareFn to the Array.sort method + '@typescript-eslint/require-array-sort-compare': 'warn', + + // Warns if missed return type on functions or class methods + '@typescript-eslint/explicit-function-return-type': 'warn', + + /** Ignores if two overloads could be unified into one by using a union or an optional/rest parameter + * Because of the possibility to separate TSDocs between different function/method overloads + */ + '@typescript-eslint/unified-signatures': 'off', + + // Allows the delete operator with computed key expressions + '@typescript-eslint/no-dynamic-delete': 'off', + + // Allows the use of parameter properties in class constructors + '@typescript-eslint/no-parameter-properties': 'off', + + // Allows the use of type aliases + '@typescript-eslint/no-type-alias': 'off', + + // There is no prefer of ‘for-of’ loop over a standard ‘for’ loop if the index is only used to access the array being iterated + '@typescript-eslint/prefer-for-of': 'off', + + // There is no restriction when adding two variables, operands must both be of type number or of type string + '@typescript-eslint/restrict-plus-operands': 'off', + + // Do not restricts the types allowed in boolean expressions + '@typescript-eslint/strict-boolean-expressions': 'off', + + // Allows the declaration of empty interfaces + '@typescript-eslint/no-empty-interface': 'off', + + // Allows empty functions + 'no-empty-function': 'off', + '@typescript-eslint/no-empty-function': 'off', + + // Allows usage of the any type + '@typescript-eslint/no-explicit-any': 'off', + + // Allows non-null assertions using the ! postfix operator + '@typescript-eslint/no-non-null-assertion': 'off', + + // Do not ensures that literals on classes are exposed in a consistent style + '@typescript-eslint/class-literal-property-style': 'off', + + // Allows the use of the record type + '@typescript-eslint/consistent-indexed-object-style': 'off', + + // There is no preferences for interfaces or types + '@typescript-eslint/consistent-type-definitions': 'off', + + // Do not require explicit accessibility modifiers on class properties and methods + '@typescript-eslint/explicit-member-accessibility': 'off', + + /** Do not require a consistent member declaration order + * TODO: discuss for the future + */ + 'member-ordering': 'off', + '@typescript-eslint/member-ordering': 'off', + + // There is no preferences of a particular method signature syntax + '@typescript-eslint/method-signature-style': 'off', + + // Ensure .toString() is only called on objects which provide useful information when stringified + '@typescript-eslint/no-base-to-string': 'warn', + + // Warn about non-null assertion in locations that may be confusing + '@typescript-eslint/no-confusing-non-null-assertion': 'warn', + + // Do not requires expressions of type void to appear in statement position + '@typescript-eslint/no-confusing-void-expression': 'off', + + // Do not forbids the use of classes as namespaces + '@typescript-eslint/no-extraneous-class': 'off', + + /** Do not require Promise-like values to be handled appropriately + * TODO: enable + */ + '@typescript-eslint/no-floating-promises': 'off', + + // Allows usage of the implicit any type in catch clauses + '@typescript-eslint/no-implicit-any-catch': 'off', + + // Allows explicit type declarations for variables or parameters initialized to a number, string, or boolean + '@typescript-eslint/no-inferrable-types': 'off', + + // Allows usage of void type outside of generic or return types + '@typescript-eslint/no-invalid-void-type': 'off', + + // There is no requirement of using promises in places not designed to handle them + '@typescript-eslint/no-misused-promises': 'off', + + // Check that type arguments will not be used if not required + '@typescript-eslint/no-unnecessary-type-arguments': 'warn', + + // Warn about unnecessary constraints on generic types + '@typescript-eslint/no-unnecessary-type-constraint': 'warn', + + // Allows calling a function with an any type value + '@typescript-eslint/no-unsafe-argument': 'off', + + // Allows assigning any to variables and properties + '@typescript-eslint/no-unsafe-assignment': 'off', + + // Prefers a non-null assertion over explicit type cast when possible + '@typescript-eslint/non-nullable-type-assertion-style': 'warn', + + // Prefer initializing each enums member value + '@typescript-eslint/prefer-enum-initializers': 'error', + + // Require that all enum members be literal values to prevent unintended enum member name shadow issues + '@typescript-eslint/prefer-literal-enum-member': 'error', + + // There is no enforce of the usage of the nullish coalescing operator instead of logical chaining + '@typescript-eslint/prefer-nullish-coalescing': 'off', + + // There is no prefer of using concise optional chain expressions instead of chained logical ands + '@typescript-eslint/prefer-optional-chain': 'off', + + // Do not requires any function or method that returns a Promise to be marked async + '@typescript-eslint/promise-function-async': 'off', + + // Allows unbound methods to be called outside their expected scope + '@typescript-eslint/unbound-method': 'off', + + // Do not require explicit return and argument types on exported functions' and classes' public class methods + '@typescript-eslint/explicit-module-boundary-types': 'off', + + // Disable check of conditionals where the type is always truthy or always falsy + '@typescript-eslint/no-unnecessary-condition': 'off', + + // Allows generic Array constructors + 'no-array-constructor': 'off', + '@typescript-eslint/no-array-constructor': 'off', + + // Allows the use of variables before they are defined + 'no-use-before-define': 'off', + '@typescript-eslint/no-use-before-define': 'off' + } + }, + { + files: ["**/*.shape.ts"], + rules: { + '@typescript-eslint/no-namespace': "off", + // Temporary of as false positive + '@typescript-eslint/no-unnecessary-type-arguments': "off" + } + }, + { + files: ["**/polyfills/**/*.ts"], + rules: { + 'no-new-wrappers': "off" + } + }, + { + files: ["**/*.test.ts", "**/*.spec.ts"], + rules: { + // ts-ignore is off to test clean es cases + '@typescript-eslint/ban-ts-comment': "off", + // there is no need to evaluate tests strictly + '@typescript-eslint/non-nullable-type-assertion-style': "off", + // return type on functions or class methods is not required in tests + '@typescript-eslint/explicit-function-return-type': "off" + } + } +] diff --git a/linting/eslint.config.codestyle.js b/linting/eslint.config.codestyle.js new file mode 100644 index 000000000..f42088ea9 --- /dev/null +++ b/linting/eslint.config.codestyle.js @@ -0,0 +1,139 @@ +const eslint = require('@eslint/js'); +const tseslint = require('typescript-eslint'); + +module.exports = [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + { + plugins: { + eslint, + '@typescript-eslint': tseslint.plugin, + }, + rules: { + // Enforces naming conventions for everything across a codebase + // TODO: configure + // '@typescript-eslint/naming-convention': [ + // warn, { + // selector: variable, + // format: [ camelCase, PascalCase, UPPER_CASE ], + // leadingUnderscore: allow + // } + // ] + + // Limit Cyclomatic Complexity + 'complexity': 'warn', + + // Require following curly brace conventions + 'curly': ['warn', 'multi-line'], + + // Max 3 classes per file (ideally 1 per file) + 'max-classes-per-file': ['warn', 3], + + // Warn about empty block statements + 'no-empty': 'warn', + + // Underscores allowed due to 'private-member' notation + 'no-underscore-dangle': 'off', + + // 'var' declaration operator is not allowed + 'no-var': 'error', + + // Warn to prefer shorthand object keys + 'object-shorthand': 'warn', + + // Disallow multiple declaration per one line or declaration operator + 'one-var': ['error', 'never'], + + // Using of arrow functions is optional + 'prefer-arrow-callback': 'off', + + // Prefer const declaration operator + 'prefer-const': 'error', + + // Limit max lines count per file to 400 + 'max-lines': ['warn', 450], + + // Do not enforce dot notation whenever possible + 'dot-notation': 'off', + '@typescript-eslint/dot-notation': 'off', + + // Prefers consistent usage of type assertions + '@typescript-eslint/consistent-type-assertions': 'warn', + + // Require the use of the namespace keyword instead of the module keyword to declare custom TypeScript modules + '@typescript-eslint/prefer-namespace-keyword': 'warn', + + // Allows initialization in variable declarations + 'init-declarations': 'off', + '@typescript-eslint/init-declarations': 'off', + + // Warn about duplicate class members + 'no-dupe-class-members': 'off', + '@typescript-eslint/no-dupe-class-members': 'warn', + + // The use of eval()-like methods is not recommended + 'no-eval': 'off', + 'no-implied-eval': 'off', + '@typescript-eslint/no-implied-eval': 'warn', + + // Allows this keywords outside of classes or class-like objects + 'no-invalid-this': 'off', + '@typescript-eslint/no-invalid-this': 'off', + + // Warn about function declarations that contain unsafe references inside loop statements + 'no-loop-func': 'off', + '@typescript-eslint/no-loop-func': 'warn', + + // Warn about literal numbers that lose precision + 'no-loss-of-precision': 'off', + '@typescript-eslint/no-loss-of-precision': 'warn', + + // Disallow variable redeclaration + 'no-redeclare': 'off', + '@typescript-eslint/no-redeclare': 'error', + + // Warn about variable declarations that are shadowing variables declared in the outer scope + 'no-shadow': 'off', + '@typescript-eslint/no-shadow': 'warn', + + // Warn about throwing literals as exceptions + 'only-throw-error': 'off', + '@typescript-eslint/only-throw-error': 'warn', + + // Allows unused expressions + 'no-unused-expressions': 'off', + '@typescript-eslint/no-unused-expressions': 'off', + + // Warn about unused variables + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': [ + 'warn', + { + vars: 'all', caughtErrors: 'none', args: 'none' + } + ], + + // Warn about unnecessary constructors + 'no-useless-constructor': 'off', + '@typescript-eslint/no-useless-constructor': 'warn', + + // Do not warn if an async function has no await expression + 'require-await': 'off', + '@typescript-eslint/require-await': 'off', + + // Prefers consistent returning of awaited values + 'return-await': 'off', + '@typescript-eslint/return-await': 'warn', + + // No spread preferences in bounds of the library + 'prefer-spread': 'off' + } + }, + { + files: ["**/*.test.ts", "**/*.spec.ts"], + rules: { + // no class count limit for tests + 'max-classes-per-file': "off" + } + } +] diff --git a/linting/eslint.config.editorconfig.js b/linting/eslint.config.editorconfig.js new file mode 100644 index 000000000..f1cb017a4 --- /dev/null +++ b/linting/eslint.config.editorconfig.js @@ -0,0 +1,17 @@ +const editorconfig = require('eslint-plugin-editorconfig'); + +module.exports = [ + { + plugins: { + editorconfig + }, + rules: { + // Enforce charset check + 'editorconfig/charset': "warn", + // Enforce EOL for all files + 'editorconfig/eol-last': "warn", + // Require no trailing spaces + 'editorconfig/no-trailing-spaces': "warn" + } + } +]; diff --git a/linting/eslint.config.ignore.js b/linting/eslint.config.ignore.js new file mode 100644 index 000000000..410c4af8d --- /dev/null +++ b/linting/eslint.config.ignore.js @@ -0,0 +1,25 @@ +module.exports = [ + { + ignores: [ + // Common configuration + '**/jest.config.js', + '**/jest*.config.js', + 'eslint.config.js', + 'site/webpack.config.js', + // Lint configuration + 'linting/eslint.config.*.js', + // Common directories + 'build/**', + 'node_modules/**', + // Generated sources + '/modules/**', + '/polyfills/**', + // Submodule output + '/site/dist/**', + '/eslint/dist/**', + // E2E tests commons + 'e2e/reporters/**', + 'e2e/transformer/**', + ] + } +] diff --git a/linting/eslint.config.import.js b/linting/eslint.config.import.js new file mode 100644 index 000000000..7fd21b4df --- /dev/null +++ b/linting/eslint.config.import.js @@ -0,0 +1,48 @@ +const importPlugin = require('eslint-plugin-import-x'); + +module.exports = [ + { + plugins: { + 'import': importPlugin + }, + files: ["eslint/src/**/*.ts"], + rules: { + // Enforce a convention in module import order + 'import/order': [ + 'warn', { + 'groups': ['builtin', 'external', 'parent', 'sibling', 'index', 'object', 'type'] + } + ], + + // Reports funny business with exports, like repeated exports of names or defaults. + 'import/export': 'warn', + + // Warn about duplicate imports + 'no-duplicate-imports': 'off', + 'import/no-duplicates': 'warn', + + // Verifies that all named imports are part of the set of named exports in the referenced module. + 'import/named': 'error', + + // Prohibit default exports + 'import/no-default-export': 'warn', + + // Forbid a module from importing itself + 'import/no-self-import': 'error', + + // Deprecate cyclic dependencies + 'import/no-cycle': 'error' + } + }, + { + files: ["site/**/*.ts"], + rules: { + 'no-restricted-imports': ["error", { + "patterns": [{ + "group": ["../../**/modules/**", "../../**/polyfills/**"], + 'message': "Do not import from src/modules directly. Use the `@exadel/esl` package resolved by NPM workspaces instead." + }] + }] + } + } +] diff --git a/linting/eslint.config.language.js b/linting/eslint.config.language.js new file mode 100644 index 000000000..1f5554447 --- /dev/null +++ b/linting/eslint.config.language.js @@ -0,0 +1,13 @@ +const tseslint = require('typescript-eslint'); +module.exports = [ + { + languageOptions: { + ecmaVersion: 2017, + sourceType: "module", + parser: tseslint.parser, + parserOptions: { + projectService: true + } + } + } +] diff --git a/linting/eslint.config.sonarjs.js b/linting/eslint.config.sonarjs.js new file mode 100644 index 000000000..1bb48d677 --- /dev/null +++ b/linting/eslint.config.sonarjs.js @@ -0,0 +1,72 @@ +const sonarjs = require('eslint-plugin-sonarjs'); + +module.exports = [ + { + plugins: { + sonarjs + }, + rules: { + /** Cognitive Complexity is a measure of how hard the control flow of a function is to understand. + * Functions with high Cognitive Complexity will be difficult to maintain. + */ + 'sonarjs/cognitive-complexity': 'error', + + // Limits maximum of switch cases before suggest a map + 'sonarjs/max-switch-cases': ['error', 6], + + // Merging collapsible if statements increases the code's readability. + 'sonarjs/no-collapsible-if': 'error', + + // Having all branches in a switch or if chain with the same implementation is an error. + 'sonarjs/no-duplicated-branches': 'error', + + /** If a boolean expression doesn’t change the evaluation of the condition, + * then it is entirely unnecessary, and can be removed. + */ + 'sonarjs/no-gratuitous-expressions': 'warn', + + // Disallows identical functions + 'sonarjs/no-identical-functions': 'warn', + + /** It is needlessly complex to invert the result of a boolean comparison. + * The opposite comparison should be made instead. + */ + 'sonarjs/no-inverted-boolean-check': 'warn', + + // Disallows nested switch structures as they are difficult to understand + 'sonarjs/no-nested-switch': 'error', + + // Redundant Boolean literals should be removed from expressions to improve readability. + 'sonarjs/no-redundant-boolean': 'error', + + // Disallows redundant jump statements, such as return, break and continue + 'sonarjs/no-redundant-jump': 'error', + + // Code is clearest when each statement has its own line. + 'sonarjs/no-same-line-conditional': 'error', + + // For just one or two cases however, the code will be more readable with if statements. + 'sonarjs/no-small-switch': 'warn', + + // This rule raises an issue when no methods are called on a collection other than those that add or remove values. + 'sonarjs/no-unused-collection': 'error', + + // Disallows empty catch statements + 'sonarjs/no-useless-catch': 'error', + + // Return of boolean literal statements wrapped into if-then-else ones should be simplified. + 'sonarjs/prefer-single-boolean-return': 'error', + + /** When only the condition expression is defined in a for loop, and the initialization and + * increment expressions are missing, a while loop should be used instead to increase readability. + */ + 'sonarjs/prefer-while': 'error', + + // Prefer creating a literal instead of fill the object "key by key" + 'sonarjs/prefer-object-literal': 'warn', + + // Declaring a variable only to immediately return or throw it is a bad practice. + 'sonarjs/prefer-immediate-return': 'warn' + } + } +] diff --git a/linting/eslint.config.stylistic.js b/linting/eslint.config.stylistic.js new file mode 100644 index 000000000..4f46f9d73 --- /dev/null +++ b/linting/eslint.config.stylistic.js @@ -0,0 +1,135 @@ +const stylistic = require('@stylistic/eslint-plugin'); + +module.exports = [ + { + plugins: { + '@stylistic': stylistic + }, + rules: { + '@stylistic/arrow-parens': ['warn', 'always'], + + // Prefer consistent brace style for blocks + '@stylistic/brace-style': 'warn', + + // Prefer consistent spacing before and after commas + '@stylistic/comma-spacing': 'warn', + + // Allows trailing comma + '@stylistic/comma-dangle': 'off', + + // Require spacing between function identifiers and their invocations + '@stylistic/function-call-spacing': ['warn', 'never'], + + // Warn for consistent indentations + '@stylistic/indent': [ + 'warn', + 2, { + ignoredNodes: ['FunctionExpression', 'FunctionDeclaration'], + SwitchCase: 1, + ObjectExpression: 1, + ImportDeclaration: 1, + flatTernaryExpressions: false + } + ], + + // Require consistent spacing before and after keywords + '@stylistic/keyword-spacing': [ + 'warn', { + after: true, + before: true + } + ], + + // Allows an empty line between class members + '@stylistic/lines-between-class-members': 'off', + + // Warn about a maximum line length to be 160 + '@stylistic/max-len': [ + 'warn', { + code: 160 + } + ], + + // Require a semicolon member delimiter style for interfaces and type literals + '@stylistic/member-delimiter-style': [ + 'warn', { + multiline: { + delimiter: 'semi', + requireLast: true + }, + singleline: { + delimiter: 'comma', + requireLast: false + } + } + ], + + // Require parentheses when invoking a constructor with no arguments + '@stylistic/new-parens': 'error', + + // Allow unnecessary parentheses + '@stylistic/no-extra-parens': 'off', + + // Warn about unnecessary semicolons + '@stylistic/no-extra-semi': 'warn', + + // Disallow mixed spaces and tabs for indentation + '@stylistic/no-mixed-spaces-and-tabs': 'error', + + // Warn about multiple empty lines + '@stylistic/no-multiple-empty-lines': [ + 'warn', { + max: 2, + maxEOF: 1, + maxBOF: 1 + } + ], + + // Warn about trailing whitespace at the end of lines + '@stylistic/no-trailing-spaces': 'warn', + + // Prefer consistent spacing inside braces + '@stylistic/object-curly-spacing': ['warn', 'never'], + + // Enforce the consistent use of single quotes + '@stylistic/quotes': ['error', 'single'], + + // Require semicolons instead of ASI + '@stylistic/semi': 'error', + + // Enforce location of semicolons + '@stylistic/semi-style': ['error', 'last'], + + // Warn about missing space before blocks + '@stylistic/space-before-blocks': ['warn', 'always'], + + // Prefer consistent spacing before function parenthesis + '@stylistic/space-before-function-paren': [ + 'warn', { + anonymous: 'always', + named: 'never', + asyncArrow: 'always' + } + ], + + // Warn about spaces inside of parentheses + '@stylistic/space-in-parens': ['warn', 'never'], + + // This rule is aimed at ensuring there are spaces around infix operators. + '@stylistic/space-infix-ops': 'warn', + + // Requires a whitespace at the beginning of a comment + '@stylistic/spaced-comment': 'warn', + + // Require consistent spacing around type annotations + '@stylistic/type-annotation-spacing': 'warn', + } + }, + { + files: ["**/*.test.ts", "**/*.spec.ts"], + rules: { + // It's ok to write braces single line in tests + '@stylistic/brace-style': "off", + } + }, +] diff --git a/linting/eslint.config.tsdoc.js b/linting/eslint.config.tsdoc.js new file mode 100644 index 000000000..731b8d929 --- /dev/null +++ b/linting/eslint.config.tsdoc.js @@ -0,0 +1,13 @@ +const tsdoc = require('eslint-plugin-tsdoc'); + +module.exports = [ + { + plugins: { + tsdoc + }, + rules: { + // Enable TS Doc syntax check + 'tsdoc/syntax': "warn" + } + } +]; diff --git a/linting/eslint.eslintrc.yml b/linting/eslint.eslintrc.yml deleted file mode 100644 index c9c62deca..000000000 --- a/linting/eslint.eslintrc.yml +++ /dev/null @@ -1,6 +0,0 @@ -# Specific lint overrides -overrides: - - files: - - 'eslint/src/**/*.ts' - rules: - 'import/no-default-export': off diff --git a/linting/import.eslintrc.yml b/linting/import.eslintrc.yml deleted file mode 100644 index 7e674885c..000000000 --- a/linting/import.eslintrc.yml +++ /dev/null @@ -1,31 +0,0 @@ -rules: - # Enforce a convention in module import order - 'import/order': - - warn - - groups: - - builtin - - external - - parent - - sibling - - index - - object - - type - - # Reports funny business with exports, like repeated exports of names or defaults. - 'import/export': warn - - # Warn about duplicate imports - 'no-duplicate-imports': off - 'import/no-duplicates': warn - - # Verifies that all named imports are part of the set of named exports in the referenced module. - 'import/named': error - - # Prohibit default exports - 'import/no-default-export': warn - - # Forbid a module from importing itself - 'import/no-self-import': error - - # Deprecate cyclic dependencies - 'import/no-cycle': error diff --git a/linting/site.eslintrc.yml b/linting/site.eslintrc.yml deleted file mode 100644 index bf333bb37..000000000 --- a/linting/site.eslintrc.yml +++ /dev/null @@ -1,13 +0,0 @@ -# Specific lint overrides -overrides: - # Allow the use of custom TypeScript modules and namespaces for JSX shapes - - files: - - './site/**/*.ts' - rules: - no-restricted-imports: - - error - - patterns: - - group: - - ../../**/modules/** - - ../../**/polyfills/** - message: "Do not import from src/modules directly. Use the `@exadel/esl` package resolved by NPM workspaces instead." diff --git a/linting/sonarjs.eslintrc.yml b/linting/sonarjs.eslintrc.yml deleted file mode 100644 index e45516819..000000000 --- a/linting/sonarjs.eslintrc.yml +++ /dev/null @@ -1,60 +0,0 @@ -rules: - # Cognitive Complexity is a measure of how hard the control flow of a function is to understand. - # Functions with high Cognitive Complexity will be difficult to maintain. - 'sonarjs/cognitive-complexity': error - - # Limits maximum of switch cases before suggest a map - 'sonarjs/max-switch-cases': - - error - - 6 - - # Merging collapsible if statements increases the code's readability. - 'sonarjs/no-collapsible-if': error - - # Having all branches in a switch or if chain with the same implementation is an error. - 'sonarjs/no-duplicated-branches': error - - # If a boolean expression doesn’t change the evaluation of the condition, - # then it is entirely unnecessary, and can be removed. - 'sonarjs/no-gratuitous-expressions': warn - - # Disallows identical functions - 'sonarjs/no-identical-functions': warn - - # It is needlessly complex to invert the result of a boolean comparison. - # The opposite comparison should be made instead. - 'sonarjs/no-inverted-boolean-check': warn - - # Disallows nested switch structures as they are difficult to understand - 'sonarjs/no-nested-switch': error - - # Redundant Boolean literals should be removed from expressions to improve readability. - 'sonarjs/no-redundant-boolean': error - - # Disallows redundant jump statements, such as return, break and continue - 'sonarjs/no-redundant-jump': error - - # Code is clearest when each statement has its own line. - 'sonarjs/no-same-line-conditional': error - - # For just one or two cases however, the code will be more readable with if statements. - 'sonarjs/no-small-switch': warn - - # This rule raises an issue when no methods are called on a collection other than those that add or remove values. - 'sonarjs/no-unused-collection': error - - # Disallows empty catch statements - 'sonarjs/no-useless-catch': error - - # Return of boolean literal statements wrapped into if-then-else ones should be simplified. - 'sonarjs/prefer-single-boolean-return': error - - # When only the condition expression is defined in a for loop, and the initialization and - # increment expressions are missing, a while loop should be used instead to increase readability. - 'sonarjs/prefer-while': error - - # Prefer creating a literal instead of fill the object "key by key" - 'sonarjs/prefer-object-literal': warn - - # Declaring a variable only to immediately return or throw it is a bad practice. - 'sonarjs/prefer-immediate-return': warn diff --git a/linting/tests.eslintrc.yml b/linting/tests.eslintrc.yml deleted file mode 100644 index 612208273..000000000 --- a/linting/tests.eslintrc.yml +++ /dev/null @@ -1,17 +0,0 @@ -# Specific lint overrides -overrides: - # Allow the use of custom TypeScript modules and namespaces for JSX shapes - - files: - - '**/*.test.ts' - - '**/*.spec.ts' - rules: - # no class count limit for tests - 'max-classes-per-file': off - # it's ok to write braces single line in tests - '@typescript-eslint/brace-style': off - # ts-ignore is off to test clean es cases - '@typescript-eslint/ban-ts-comment': off - # there is no need to evaluate tests strictly - '@typescript-eslint/non-nullable-type-assertion-style': off - # return type on functions or class methods is not required in tests - '@typescript-eslint/explicit-function-return-type': off diff --git a/package-lock.json b/package-lock.json index 0388d9df6..baebb3980 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@exadel/esl", - "version": "4.18.1", + "version": "5.0.0-beta.33", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@exadel/esl", - "version": "4.18.1", + "version": "5.0.0-beta.33", "license": "MIT", "workspaces": [ "e2e", @@ -18,73 +18,74 @@ "@types/youtube": "0.1.0" }, "devDependencies": { - "@commitlint/cli": "^19.4.1", - "@commitlint/config-conventional": "^19.4.1", + "@commitlint/cli": "^19.5.0", + "@commitlint/config-conventional": "^19.5.0", + "@eslint/js": "^9.9.1", "@exadel/eslint-plugin-esl": "file:eslint", "@semantic-release/changelog": "^6.0.3", "@semantic-release/commit-analyzer": "^13.0.0", "@semantic-release/git": "^10.0.1", - "@semantic-release/github": "^10.1.7", + "@semantic-release/github": "^10.3.3", "@semantic-release/npm": "^12.0.1", "@semantic-release/release-notes-generator": "^14.0.1", + "@stylistic/eslint-plugin": "^2.8.0", "@types/jest": "^29.5.12", - "@typescript-eslint/eslint-plugin": "^7.18.0", - "@typescript-eslint/parser": "^7.18.0", "chokidar-cli": "^3.0.0", - "concurrently": "^8.2.2", + "concurrently": "^9.0.1", "copyfiles": "^2.4.1", "cross-env": "^7.0.3", - "eslint": "^8.57.0", + "eslint": "^9.10.0", "eslint-plugin-editorconfig": "^4.0.3", - "eslint-plugin-import": "^2.29.1", + "eslint-plugin-import-x": "^4.2.1", "eslint-plugin-sonarjs": "^1.0.4", "eslint-plugin-tsdoc": "^0.3.0", "foreach-cli": "^1.8.1", - "husky": "^9.1.5", + "husky": "^9.1.6", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "kleur": "^4.1.5", "less": "^4.2.0", - "lint-staged": "^15.2.9", - "postcss": "^8.4.41", + "lint-staged": "^15.2.10", + "postcss": "^8.4.45", "postcss-less": "^6.0.0", "prettier": "^3.3.3", "rimraf": "^6.0.1", - "semantic-release": "^24.1.0", + "semantic-release": "^24.1.1", "smoothscroll-polyfill": "^0.4.4", "stylelint": "^16.9.0", "stylelint-prettier": "^5.0.2", "ts-jest": "^29.2.5", - "typescript": "5.5.4" + "typescript": "5.6.2", + "typescript-eslint": "^8.5.0" } }, "e2e": { "name": "@exadel/esl-snapshot-tests", - "version": "4.18.1", + "version": "5.0.0-beta.33", "license": "MIT", "dependencies": { "@types/jest-environment-puppeteer": "^5.0.6", "@types/jest-image-snapshot": "^6.4.0", "@types/puppeteer": "^7.0.4", "jest-image-snapshot": "^6.4.0", - "jest-puppeteer": "^10.0.1", + "jest-puppeteer": "^10.1.1", "puppeteer": "^22.15.0", "stucumber": "^0.19.0" } }, "eslint": { "name": "@exadel/eslint-plugin-esl", - "version": "4.18.1", + "version": "5.0.0-beta.33", "license": "MIT", "dependencies": { "kleur": "^4.1.5", "semver": "^7.6.3" }, "devDependencies": { - "@types/eslint": "^8.0.0" + "@types/eslint": "^9.6.1" }, "peerDependencies": { - "@exadel/esl": "^4.0.0", + "@exadel/esl": "*", "eslint": ">=8.0.0" } }, @@ -149,23 +150,23 @@ } }, "node_modules/@11ty/eleventy-dev-server": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.2.tgz", - "integrity": "sha512-OupvJ36G+iY+AKmO3veUR7MEZUL2p9tQmodSPf05en0p8LnJltHqK11S+XQ0iGUA96qcyeTLcKQpD+/ctekgmw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.4.tgz", + "integrity": "sha512-d0CuufX6yPtVz+RW0oJZg1pVoxo1jOrPmpXYacoiKLJm0MMC9MkPQOCXlimguHVaceHejFo5+aZB9/aGB2RR0A==", "dependencies": { - "@11ty/eleventy-utils": "^1.0.2", + "@11ty/eleventy-utils": "^1.0.3", "chokidar": "^3.6.0", - "debug": "^4.3.5", + "debug": "^4.3.7", "dev-ip": "^1.0.1", - "finalhandler": "^1.2.0", + "finalhandler": "^1.3.0", "mime": "^3.0.0", "minimist": "^1.2.8", - "morphdom": "^2.7.2", + "morphdom": "^2.7.4", "please-upgrade-node": "^3.2.0", - "send": "^0.18.0", - "ssri": "^10.0.6", + "send": "^0.19.0", + "ssri": "^11.0.0", "urlpattern-polyfill": "^10.0.0", - "ws": "^8.17.0" + "ws": "^8.18.0" }, "bin": { "eleventy-dev-server": "cmd.js" @@ -190,9 +191,9 @@ } }, "node_modules/@11ty/eleventy-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.2.tgz", - "integrity": "sha512-Zy2leMK1DQR6Q6ZPSagv7QpJaAz9uVbb+RmVetYFp3foMeQtOSZx7w2u5daRFmP+PeNq9vO9H4xtBToYFWZwHA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.3.tgz", + "integrity": "sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==", "dependencies": { "normalize-path": "^3.0.0" }, @@ -785,18 +786,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/runtime": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", - "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/template": { "version": "7.24.0", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", @@ -871,17 +860,17 @@ } }, "node_modules/@commitlint/cli": { - "version": "19.4.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.4.1.tgz", - "integrity": "sha512-EerFVII3ZcnhXsDT9VePyIdCJoh3jEzygN1L37MjQXgPfGS6fJTWL/KHClVMod1d8w94lFC3l4Vh/y5ysVAz2A==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.5.0.tgz", + "integrity": "sha512-gaGqSliGwB86MDmAAKAtV9SV1SHdmN8pnGq4EJU4+hLisQ7IFfx4jvU4s+pk6tl0+9bv6yT+CaZkufOinkSJIQ==", "dev": true, "dependencies": { - "@commitlint/format": "^19.3.0", - "@commitlint/lint": "^19.4.1", - "@commitlint/load": "^19.4.0", - "@commitlint/read": "^19.4.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1", + "@commitlint/format": "^19.5.0", + "@commitlint/lint": "^19.5.0", + "@commitlint/load": "^19.5.0", + "@commitlint/read": "^19.5.0", + "@commitlint/types": "^19.5.0", + "tinyexec": "^0.3.0", "yargs": "^17.0.0" }, "bin": { @@ -892,12 +881,12 @@ } }, "node_modules/@commitlint/config-conventional": { - "version": "19.4.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.4.1.tgz", - "integrity": "sha512-D5S5T7ilI5roybWGc8X35OBlRXLAwuTseH1ro0XgqkOWrhZU8yOwBOslrNmSDlTXhXLq8cnfhQyC42qaUCzlXA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.5.0.tgz", + "integrity": "sha512-OBhdtJyHNPryZKg0fFpZNOBM1ZDbntMvqMuSmpfyP86XSfwzGw4CaoYRG4RutUPg0BTK07VMRIkNJT6wi2zthg==", "dev": true, "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "conventional-changelog-conventionalcommits": "^7.0.2" }, "engines": { @@ -905,12 +894,12 @@ } }, "node_modules/@commitlint/config-validator": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.0.3.tgz", - "integrity": "sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.5.0.tgz", + "integrity": "sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==", "dev": true, "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "ajv": "^8.11.0" }, "engines": { @@ -918,12 +907,12 @@ } }, "node_modules/@commitlint/ensure": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.0.3.tgz", - "integrity": "sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.5.0.tgz", + "integrity": "sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==", "dev": true, "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "lodash.camelcase": "^4.3.0", "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", @@ -935,21 +924,21 @@ } }, "node_modules/@commitlint/execute-rule": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.0.0.tgz", - "integrity": "sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz", + "integrity": "sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==", "dev": true, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/format": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.3.0.tgz", - "integrity": "sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.5.0.tgz", + "integrity": "sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==", "dev": true, "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "chalk": "^5.3.0" }, "engines": { @@ -957,12 +946,12 @@ } }, "node_modules/@commitlint/is-ignored": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.2.2.tgz", - "integrity": "sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.5.0.tgz", + "integrity": "sha512-0XQ7Llsf9iL/ANtwyZ6G0NGp5Y3EQ8eDQSxv/SRcfJ0awlBY4tHFAvwWbw66FVUaWICH7iE5en+FD9TQsokZ5w==", "dev": true, "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "semver": "^7.6.0" }, "engines": { @@ -970,30 +959,30 @@ } }, "node_modules/@commitlint/lint": { - "version": "19.4.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.4.1.tgz", - "integrity": "sha512-Ws4YVAZ0jACTv6VThumITC1I5AG0UyXMGua3qcf55JmXIXm/ejfaVKykrqx7RyZOACKVAs8uDRIsEsi87JZ3+Q==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.5.0.tgz", + "integrity": "sha512-cAAQwJcRtiBxQWO0eprrAbOurtJz8U6MgYqLz+p9kLElirzSCc0vGMcyCaA1O7AqBuxo11l1XsY3FhOFowLAAg==", "dev": true, "dependencies": { - "@commitlint/is-ignored": "^19.2.2", - "@commitlint/parse": "^19.0.3", - "@commitlint/rules": "^19.4.1", - "@commitlint/types": "^19.0.3" + "@commitlint/is-ignored": "^19.5.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/rules": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/load": { - "version": "19.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.4.0.tgz", - "integrity": "sha512-I4lCWaEZYQJ1y+Y+gdvbGAx9pYPavqZAZ3/7/8BpWh+QjscAn8AjsUpLV2PycBsEx7gupq5gM4BViV9xwTIJuw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.5.0.tgz", + "integrity": "sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^19.0.3", - "@commitlint/execute-rule": "^19.0.0", - "@commitlint/resolve-extends": "^19.1.0", - "@commitlint/types": "^19.0.3", + "@commitlint/config-validator": "^19.5.0", + "@commitlint/execute-rule": "^19.5.0", + "@commitlint/resolve-extends": "^19.5.0", + "@commitlint/types": "^19.5.0", "chalk": "^5.3.0", "cosmiconfig": "^9.0.0", "cosmiconfig-typescript-loader": "^5.0.0", @@ -1006,21 +995,21 @@ } }, "node_modules/@commitlint/message": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.0.0.tgz", - "integrity": "sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.5.0.tgz", + "integrity": "sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==", "dev": true, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/parse": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.0.3.tgz", - "integrity": "sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.5.0.tgz", + "integrity": "sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==", "dev": true, "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "conventional-changelog-angular": "^7.0.0", "conventional-commits-parser": "^5.0.0" }, @@ -1029,29 +1018,29 @@ } }, "node_modules/@commitlint/read": { - "version": "19.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.4.0.tgz", - "integrity": "sha512-r95jLOEZzKDakXtnQub+zR3xjdnrl2XzerPwm7ch1/cc5JGq04tyaNpa6ty0CRCWdVrk4CZHhqHozb8yZwy2+g==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.5.0.tgz", + "integrity": "sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==", "dev": true, "dependencies": { - "@commitlint/top-level": "^19.0.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1", + "@commitlint/top-level": "^19.5.0", + "@commitlint/types": "^19.5.0", "git-raw-commits": "^4.0.0", - "minimist": "^1.2.8" + "minimist": "^1.2.8", + "tinyexec": "^0.3.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/resolve-extends": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.1.0.tgz", - "integrity": "sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz", + "integrity": "sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^19.0.3", - "@commitlint/types": "^19.0.3", + "@commitlint/config-validator": "^19.5.0", + "@commitlint/types": "^19.5.0", "global-directory": "^4.0.1", "import-meta-resolve": "^4.0.0", "lodash.mergewith": "^4.6.2", @@ -1062,34 +1051,33 @@ } }, "node_modules/@commitlint/rules": { - "version": "19.4.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.4.1.tgz", - "integrity": "sha512-AgctfzAONoVxmxOXRyxXIq7xEPrd7lK/60h2egp9bgGUMZK9v0+YqLOA+TH+KqCa63ZoCr8owP2YxoSSu7IgnQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.5.0.tgz", + "integrity": "sha512-hDW5TPyf/h1/EufSHEKSp6Hs+YVsDMHazfJ2azIk9tHPXS6UqSz1dIRs1gpqS3eMXgtkT7JH6TW4IShdqOwhAw==", "dev": true, "dependencies": { - "@commitlint/ensure": "^19.0.3", - "@commitlint/message": "^19.0.0", - "@commitlint/to-lines": "^19.0.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1" + "@commitlint/ensure": "^19.5.0", + "@commitlint/message": "^19.5.0", + "@commitlint/to-lines": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/to-lines": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.0.0.tgz", - "integrity": "sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.5.0.tgz", + "integrity": "sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==", "dev": true, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/top-level": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.0.0.tgz", - "integrity": "sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.5.0.tgz", + "integrity": "sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==", "dev": true, "dependencies": { "find-up": "^7.0.0" @@ -1099,9 +1087,9 @@ } }, "node_modules/@commitlint/types": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.0.3.tgz", - "integrity": "sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.5.0.tgz", + "integrity": "sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==", "dev": true, "dependencies": { "@types/conventional-commits-parser": "^5.0.0", @@ -1346,22 +1334,60 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -1369,7 +1395,7 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1379,6 +1405,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1394,6 +1421,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1402,12 +1430,14 @@ "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1416,11 +1446,31 @@ } }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "9.10.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz", + "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.1.0.tgz", + "integrity": "sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@exadel/esl": { @@ -1472,6 +1522,9 @@ "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", @@ -1485,6 +1538,8 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1494,6 +1549,8 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1516,7 +1573,23 @@ "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==" + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@iarna/toml": { "version": "2.2.5", @@ -2928,9 +3001,9 @@ } }, "node_modules/@semantic-release/github": { - "version": "10.1.7", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.1.7.tgz", - "integrity": "sha512-QnhP4k1eqzYLz6a4kpWrUQeKJYXqHggveMykvUFbSquq07GF85BXvr/QLhpOD7bpDcmEfL8VnphRA7KT5i9lzQ==", + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.3.3.tgz", + "integrity": "sha512-zrEdwRZ7ZTEM2JYhF4E+ZgApIfv6iHfQBnnAP1g2LqYZtj56+qWEUo/xW36cbZRDOweejxU40PGZckx6TZzFmg==", "dev": true, "dependencies": { "@octokit/core": "^6.0.0", @@ -3387,6 +3460,51 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@stylistic/eslint-plugin": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.8.0.tgz", + "integrity": "sha512-Ufvk7hP+bf+pD35R/QfunF793XlSRIC7USr3/EdgduK9j13i2JjmsM0LUz3/foS+jDYp2fzyWZA9N44CPur0Ow==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^8.4.0", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "estraverse": "^5.3.0", + "picomatch": "^4.0.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": ">=8.40.0" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -3452,9 +3570,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.56.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", - "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, "dependencies": { "@types/estree": "*", @@ -3774,12 +3892,6 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -3873,34 +3985,35 @@ "node_modules/@types/youtube": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@types/youtube/-/youtube-0.1.0.tgz", - "integrity": "sha512-Pg33m3X2mFgdmhtvzOlAfUfgOa3341N3/2JCrVY/mXVxb4hagcqqEG6w4vGCfB64StQNWHSj/T8Eotb1Rko/FQ==" + "integrity": "sha512-Pg33m3X2mFgdmhtvzOlAfUfgOa3341N3/2JCrVY/mXVxb4hagcqqEG6w4vGCfB64StQNWHSj/T8Eotb1Rko/FQ==", + "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.5.0.tgz", + "integrity": "sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.5.0", + "@typescript-eslint/type-utils": "8.5.0", + "@typescript-eslint/utils": "8.5.0", + "@typescript-eslint/visitor-keys": "8.5.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3909,26 +4022,26 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.5.0.tgz", + "integrity": "sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.5.0", + "@typescript-eslint/types": "8.5.0", + "@typescript-eslint/typescript-estree": "8.5.0", + "@typescript-eslint/visitor-keys": "8.5.0", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3937,16 +4050,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.5.0.tgz", + "integrity": "sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" + "@typescript-eslint/types": "8.5.0", + "@typescript-eslint/visitor-keys": "8.5.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3954,26 +4067,23 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.5.0.tgz", + "integrity": "sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/typescript-estree": "8.5.0", + "@typescript-eslint/utils": "8.5.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependencies": { - "eslint": "^8.56.0" - }, "peerDependenciesMeta": { "typescript": { "optional": true @@ -3981,12 +4091,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.5.0.tgz", + "integrity": "sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==", "dev": true, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3994,22 +4104,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.5.0.tgz", + "integrity": "sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/types": "8.5.0", + "@typescript-eslint/visitor-keys": "8.5.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -4021,68 +4131,39 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.5.0.tgz", + "integrity": "sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" + "@typescript-eslint/scope-manager": "8.5.0", + "@typescript-eslint/types": "8.5.0", + "@typescript-eslint/typescript-estree": "8.5.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.5.0.tgz", + "integrity": "sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/types": "8.5.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -4092,7 +4173,9 @@ "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", @@ -4225,11 +4308,6 @@ "@xtuc/long": "4.2.2" } }, - "node_modules/@webcomponents/custom-elements": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@webcomponents/custom-elements/-/custom-elements-1.6.0.tgz", - "integrity": "sha512-CqTpxOlUCPWRNUPZDxT5v2NnHXA4oox612iUGnmTUGQFhZ1Gkj8kirtl/2wcF6MqX7+PqqicZzOCBKKfIn0dww==" - }, "node_modules/@webpack-cli/configtest": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", @@ -4294,9 +4372,10 @@ "dev": true }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -4326,6 +4405,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -4481,26 +4561,6 @@ "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", "dev": true }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -4517,62 +4577,6 @@ "node": ">=0.10.0" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", @@ -4657,9 +4661,9 @@ } }, "node_modules/axios": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", - "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -6008,17 +6012,15 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/concurrently": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", - "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.0.1.tgz", + "integrity": "sha512-wYKvCd/f54sTXJMSfV6Ln/B8UrfLBKOYa+lzc6CHay3Qek+LorVSBdMVfyewFhRbH0Rbabsk4D+3PL/VjQ5gzg==", "dev": true, "dependencies": { "chalk": "^4.1.2", - "date-fns": "^2.30.0", "lodash": "^4.17.21", "rxjs": "^7.8.1", "shell-quote": "^1.8.1", - "spawn-command": "0.0.2", "supports-color": "^8.1.1", "tree-kill": "^1.2.2", "yargs": "^17.7.2" @@ -6028,7 +6030,7 @@ "concurrently": "dist/bin/concurrently.js" }, "engines": { - "node": "^14.13.0 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" @@ -6744,33 +6746,17 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" }, "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -6959,6 +6945,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -7374,15 +7362,6 @@ "node": ">= 0.4" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - } - }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -7453,42 +7432,38 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "9.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.10.0.tgz", + "integrity": "sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.10.0", + "@eslint/plugin-kit": "^0.1.0", "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", @@ -7500,10 +7475,18 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-import-resolver-node": { @@ -7526,32 +7509,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/eslint-plugin-editorconfig": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-plugin-editorconfig/-/eslint-plugin-editorconfig-4.0.3.tgz", @@ -7567,87 +7524,400 @@ "npm": ">=8" } }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "node_modules/eslint-plugin-editorconfig/node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "node_modules/eslint-plugin-editorconfig/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/eslint-plugin-editorconfig/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/eslint-plugin-editorconfig/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-plugin-editorconfig/node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-plugin-editorconfig/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/eslint-plugin-editorconfig/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/eslint-plugin-import-x": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.2.1.tgz", + "integrity": "sha512-WWi2GedccIJa0zXxx3WDnTgouGQTtdYK1nhXMwywbqqAgB0Ov+p1pYBsWh3VaB0bvBOwLse6OfVII7jZD9xo5Q==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "@typescript-eslint/utils": "^8.1.0", + "debug": "^4.3.4", + "doctrine": "^3.0.0", + "eslint-import-resolver-node": "^0.3.9", + "get-tsconfig": "^4.7.3", + "is-glob": "^4.0.3", + "minimatch": "^9.0.3", + "semver": "^7.6.3", + "stable-hash": "^0.0.4", + "tslib": "^2.6.3" }, "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" } }, "node_modules/eslint-plugin-sonarjs": { @@ -7673,15 +7943,16 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -7767,6 +8038,18 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -7857,16 +8140,29 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -8024,9 +8320,9 @@ } }, "node_modules/expect-puppeteer": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-10.0.0.tgz", - "integrity": "sha512-E7sE6nVdEbrnpDOBMmcLgyqLJKt876AlBg1A+gsu5R8cWx+SLafreOgJAgzXg5Qko7Tk0cW5oZdRbHQLU738dg==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-10.1.1.tgz", + "integrity": "sha512-tbK/lItqbLn5ZmM/eXP5OYGmR/yYiJVCc8VYZdhRztyaeiTb+M9+j3pU9TauX7kFbJtpX0dgEgrSSUlqaOqU5g==", "engines": { "node": ">=16" } @@ -8172,14 +8468,15 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/filelist": { @@ -8213,9 +8510,9 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.0.tgz", + "integrity": "sha512-bmwQPHFq/qiWp9CbNbCQU73klT+i5qwP/0tah3MGHp26vUt2YV4WkdtXRqOZo+H+4m38k8epFHOvO4BRuAuohw==", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -8396,30 +8693,16 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=16" } }, "node_modules/flatted": { @@ -8428,9 +8711,9 @@ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", @@ -8734,19 +9017,6 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -8884,6 +9154,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-tsconfig": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.0.tgz", + "integrity": "sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/get-uri": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", @@ -9053,14 +9336,12 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dependencies": { - "type-fest": "^0.20.2" - }, + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9082,9 +9363,9 @@ } }, "node_modules/globby": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", - "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", @@ -9143,7 +9424,8 @@ "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true }, "node_modules/gray-matter": { "version": "4.0.3", @@ -9509,9 +9791,9 @@ } }, "node_modules/husky": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.5.tgz", - "integrity": "sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==", + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz", + "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==", "dev": true, "bin": { "husky": "bin.js" @@ -9712,11 +9994,6 @@ "node": ">=10.13.0" } }, - "node_modules/intersection-observer": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.12.2.tgz", - "integrity": "sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==" - }, "node_modules/into-stream": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-7.0.0.tgz", @@ -10910,15 +11187,15 @@ } }, "node_modules/jest-dev-server": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-10.0.0.tgz", - "integrity": "sha512-FtyBBDxrAIfTX3hyKSOwj5KU6Z7fFLew5pQYOFpwyf+qpPpULL8aYxtsFkbkAwcs+Mb7qhcNbVLeiWsLOd7CKw==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-10.1.1.tgz", + "integrity": "sha512-Yk9gmW/io2udONlhdrsC69ZGYM2CISvGItyYk9zD5QK3tGq8ZAJP27NDHma4hI6ey/zcaiqbrDkIf7dmpHq86w==", "dependencies": { "chalk": "^4.1.2", "cwd": "^0.10.0", "find-process": "^1.4.7", "prompts": "^2.4.2", - "spawnd": "^10.0.0", + "spawnd": "^10.1.1", "tree-kill": "^1.2.2", "wait-on": "^7.2.0" }, @@ -11185,14 +11462,14 @@ } }, "node_modules/jest-environment-puppeteer": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/jest-environment-puppeteer/-/jest-environment-puppeteer-10.0.1.tgz", - "integrity": "sha512-FxMzVRyqieQqSy5CPWiwdK5t9dkRHid5eoRTVa8RtYeXLlpW6lU0dAmxEfPkdnDVCiPUhC2APeKOXq0J72bgag==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/jest-environment-puppeteer/-/jest-environment-puppeteer-10.1.1.tgz", + "integrity": "sha512-xg+94eL4LeJ3rFLtF9TCIvs3xbx0IJ3W4HEEpaZdkszZt1PbOosqOwbkLEtCeBXePwPproag7nLQz3/vfmp1Qw==", "dependencies": { "chalk": "^4.1.2", "cosmiconfig": "^8.3.6", "deepmerge": "^4.3.1", - "jest-dev-server": "^10.0.0", + "jest-dev-server": "^10.1.1", "jest-environment-node": "^29.7.0" }, "engines": { @@ -11603,12 +11880,12 @@ } }, "node_modules/jest-puppeteer": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/jest-puppeteer/-/jest-puppeteer-10.0.1.tgz", - "integrity": "sha512-FzC35XbqeuQEt1smXh1EOqhJaRkWqJkyWDMfGkcZ8C59QHXeJ7F/iOmiNqYi6l/OsycUuOPCk+IkjfGfS9YbrQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/jest-puppeteer/-/jest-puppeteer-10.1.1.tgz", + "integrity": "sha512-iXY/ZqSOkeF6ntKU2pvQw+Zj6WNPkJVNOGNy+DeVaWPQJLbBeRo89BtDWtYXzGoN8ilvYUChQlvaEdGVbEYX4g==", "dependencies": { - "expect-puppeteer": "^10.0.0", - "jest-environment-puppeteer": "^10.0.1" + "expect-puppeteer": "^10.1.1", + "jest-environment-puppeteer": "^10.1.1" }, "engines": { "node": ">=16" @@ -12278,7 +12555,7 @@ "version": "1.21.6", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "dev": true, + "devOptional": true, "bin": { "jiti": "bin/jiti.js" } @@ -12290,9 +12567,9 @@ "dev": true }, "node_modules/joi": { - "version": "17.13.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz", - "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==", + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", "dependencies": { "@hapi/hoek": "^9.3.0", "@hapi/topo": "^5.1.0", @@ -12704,9 +12981,9 @@ } }, "node_modules/lint-staged": { - "version": "15.2.9", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.9.tgz", - "integrity": "sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ==", + "version": "15.2.10", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.10.tgz", + "integrity": "sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==", "dev": true, "dependencies": { "chalk": "~5.3.0", @@ -12715,7 +12992,7 @@ "execa": "~8.0.1", "lilconfig": "~3.1.2", "listr2": "~8.2.4", - "micromatch": "~4.0.7", + "micromatch": "~4.0.8", "pidtree": "~0.6.0", "string-argv": "~0.3.2", "yaml": "~2.5.0" @@ -13595,10 +13872,11 @@ } }, "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -13648,9 +13926,9 @@ "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" }, "node_modules/morphdom": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.2.tgz", - "integrity": "sha512-Dqb/lHFyTi7SZpY0a5R4I/0Edo+iPMbaUexsHHsLAByyixCDiLHPHyVoKVmrpL0THcT7V9Cgev9y21TQYq6wQg==" + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.4.tgz", + "integrity": "sha512-ATTbWMgGa+FaMU3FhnFYB6WgulCqwf6opOll4CBzmVDTLvPMmUPrEv8CudmLPK0MESa64+6B89fWOxP3+YIlxQ==" }, "node_modules/mrmime": { "version": "2.0.0", @@ -13661,9 +13939,9 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/multimatch": { "version": "5.0.0", @@ -16619,55 +16897,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -17411,9 +17640,9 @@ } }, "node_modules/postcss": { - "version": "8.4.41", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "version": "8.4.45", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz", + "integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==", "dev": true, "funding": [ { @@ -17650,11 +17879,6 @@ "any-promise": "^0.1.0" } }, - "node_modules/promise-polyfill": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.3.0.tgz", - "integrity": "sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==" - }, "node_modules/promise.prototype.finally": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz", @@ -18168,12 +18392,6 @@ "node": ">=0.10.0" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", @@ -18341,6 +18559,16 @@ "node": ">=8" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -18600,9 +18828,9 @@ } }, "node_modules/semantic-release": { - "version": "24.1.0", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.1.0.tgz", - "integrity": "sha512-FwaE2hKDHQn9G6GA7xmqsc9WnsjaFD/ppLM5PUg56Do9oKSCf+vH6cPeb3hEBV/m06n8Sh9vbVqPjHu/1onzQw==", + "version": "24.1.1", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.1.1.tgz", + "integrity": "sha512-4Ax2GxD411jUe9IdhOjMLuN+6wAj+aKjvOGngByrpD/iKL+UKN/2puQglhyI4gxNyy9XzEBMzBwbqpnEwbXGEg==", "dev": true, "dependencies": { "@semantic-release/commit-analyzer": "^13.0.0-beta.1", @@ -18620,7 +18848,7 @@ "get-stream": "^6.0.0", "git-log-parser": "^1.2.0", "hook-std": "^3.0.0", - "hosted-git-info": "^7.0.0", + "hosted-git-info": "^8.0.0", "import-from-esm": "^1.3.1", "lodash-es": "^4.17.21", "marked": "^12.0.0", @@ -18775,6 +19003,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/semantic-release/node_modules/hosted-git-info": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.0.tgz", + "integrity": "sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/semantic-release/node_modules/human-signals": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-7.0.0.tgz", @@ -18808,6 +19048,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/semantic-release/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, "node_modules/semantic-release/node_modules/p-reduce": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", @@ -18876,9 +19122,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -18922,11 +19168,6 @@ "node": ">=4" } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -19261,12 +19502,6 @@ "node": ">=0.10.0" } }, - "node_modules/spawn-command": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", - "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", - "dev": true - }, "node_modules/spawn-error-forwarder": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", @@ -19274,9 +19509,9 @@ "dev": true }, "node_modules/spawnd": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-10.0.0.tgz", - "integrity": "sha512-6GKcakMTryb5b1SWCvdubCDHEsR2k+5VZUD5G19umZRarkvj1RyCGyizcqhjewI7cqZo8fTVD8HpnDZbVOLMtg==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-10.1.1.tgz", + "integrity": "sha512-kTim9sz8KuKX7ZcO8imlvEvbaJmFtFhT5tKS0WP5FRlmWLH5Pd9qj9u29nbMrvDcJPj8ltwOG+QAiZq928GKCw==", "dependencies": { "signal-exit": "^4.1.0", "tree-kill": "^1.2.2" @@ -19337,16 +19572,23 @@ "integrity": "sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g==" }, "node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-11.0.0.tgz", + "integrity": "sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw==", "dependencies": { "minipass": "^7.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/stable-hash": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.4.tgz", + "integrity": "sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==", + "dev": true, + "license": "MIT" + }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -20310,6 +20552,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tinyexec": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.0.tgz", + "integrity": "sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==", + "dev": true + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -20422,6 +20670,7 @@ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -20434,6 +20683,7 @@ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", "dev": true, + "license": "MIT", "dependencies": { "bs-logger": "^0.2.6", "ejs": "^3.1.10", @@ -20560,43 +20810,11 @@ "node": ">=8" } }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", @@ -20621,6 +20839,8 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -20718,9 +20938,9 @@ } }, "node_modules/typescript": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", - "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -20729,6 +20949,29 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.5.0.tgz", + "integrity": "sha512-uD+XxEoSIvqtm4KE97etm32Tn5MfaZWgWfMMREStLxR6JzvHkc2Tkj7zhTEK5XmtpTmKHNnG8Sot6qDfhHtR1Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.5.0", + "@typescript-eslint/parser": "8.5.0", + "@typescript-eslint/utils": "8.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -21660,25 +21903,22 @@ }, "site": { "name": "@exadel/esl-website", - "version": "4.18.1", + "version": "5.0.0-beta.33", "license": "MIT", "dependencies": { "@11ty/eleventy": "^2.0.1", - "@11ty/eleventy-dev-server": "^2.0.2", + "@11ty/eleventy-dev-server": "^2.0.4", "@exadel/esl": "../", "@exadel/ui-playground": "2.1.0-beta.7", "@juggle/resize-observer": "^3.4.0", "@types/prismjs": "^1.26.4", "@types/smoothscroll-polyfill": "^0.3.4", - "@webcomponents/custom-elements": "1.6.0", "clean-css-cli": "^5.6.3", "html-minifier-terser": "^7.2.0", "image-size": "^1.1.1", - "intersection-observer": "^0.12.2", "js-yaml": "^4.1.0", "out-url": "^1.2.2", "prismjs": "^1.29.0", - "promise-polyfill": "^8.3.0", "smoothscroll-polyfill": "^0.4.4", "ts-loader": "^9.5.1", "webpack": "^5.94.0", diff --git a/package.json b/package.json index a8976e900..5a6e71946 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@exadel/esl", - "version": "4.18.1", + "version": "5.0.0-beta.33", "private": false, "description": "Exadel Smart Library (ESL) is the lightweight custom elements library that provide a set of super-flexible components", "license": "MIT", @@ -45,10 +45,14 @@ "modules/esl-media/providers/**/*.js", "modules/esl-share/actions/**/*.js", "modules/esl-share/buttons/**/*.js", + "modules/esl-carousel/core.js", + "modules/esl-carousel/renderers/**/*.js", + "src/modules/lib.ts", "src/modules/esl-media/providers/**/*.ts", "src/modules/esl-share/actions/**/*.ts", "src/modules/esl-share/buttons/**/*.ts", - "src/modules/lib.ts", + "src/modules/esl-carousel/core.ts", + "src/modules/esl-carousel/renderers/**/*.ts", "polyfills/**/*.js", "src/polyfills/**/*.ts" ], @@ -90,44 +94,45 @@ "@types/youtube": "0.1.0" }, "devDependencies": { - "@commitlint/cli": "^19.4.1", - "@commitlint/config-conventional": "^19.4.1", + "@commitlint/cli": "^19.5.0", + "@commitlint/config-conventional": "^19.5.0", + "@eslint/js": "^9.9.1", "@exadel/eslint-plugin-esl": "file:eslint", "@semantic-release/changelog": "^6.0.3", "@semantic-release/commit-analyzer": "^13.0.0", "@semantic-release/git": "^10.0.1", - "@semantic-release/github": "^10.1.7", + "@semantic-release/github": "^10.3.3", "@semantic-release/npm": "^12.0.1", "@semantic-release/release-notes-generator": "^14.0.1", + "@stylistic/eslint-plugin": "^2.8.0", "@types/jest": "^29.5.12", - "@typescript-eslint/eslint-plugin": "^7.18.0", - "@typescript-eslint/parser": "^7.18.0", "chokidar-cli": "^3.0.0", - "concurrently": "^8.2.2", + "concurrently": "^9.0.1", "copyfiles": "^2.4.1", "cross-env": "^7.0.3", - "eslint": "^8.57.0", + "eslint": "^9.10.0", "eslint-plugin-editorconfig": "^4.0.3", - "eslint-plugin-import": "^2.29.1", + "eslint-plugin-import-x": "^4.2.1", "eslint-plugin-sonarjs": "^1.0.4", "eslint-plugin-tsdoc": "^0.3.0", "foreach-cli": "^1.8.1", - "husky": "^9.1.5", + "husky": "^9.1.6", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "kleur": "^4.1.5", "less": "^4.2.0", - "lint-staged": "^15.2.9", - "postcss": "^8.4.41", + "lint-staged": "^15.2.10", + "postcss": "^8.4.45", "postcss-less": "^6.0.0", "prettier": "^3.3.3", "rimraf": "^6.0.1", - "semantic-release": "^24.1.0", + "semantic-release": "^24.1.1", "smoothscroll-polyfill": "^0.4.4", "stylelint": "^16.9.0", "stylelint-prettier": "^5.0.2", "ts-jest": "^29.2.5", - "typescript": "5.5.4" + "typescript": "5.6.2", + "typescript-eslint": "^8.5.0" }, "browserslist": [ "last 3 versions", diff --git a/site/11ty/htmlmin.transform.js b/site/11ty/htmlmin.transform.js index ac25b42be..466a544c6 100644 --- a/site/11ty/htmlmin.transform.js +++ b/site/11ty/htmlmin.transform.js @@ -12,7 +12,7 @@ const MINIFICATION_CFG = { ignoreCustomFragments: [ /<%[\s\S]*?%>/, /<\?[\s\S]*?\?>/, - //i + /]*type="text\/(?:html|plain)"[^>]*>[\s\S]*?<\/script>/i ] }; diff --git a/site/11ty/markdown.img.lib.js b/site/11ty/markdown.img.lib.js index dea9398a0..b563f5f77 100644 --- a/site/11ty/markdown.img.lib.js +++ b/site/11ty/markdown.img.lib.js @@ -14,8 +14,8 @@ const extractAttrs = (token) => { const renderImage = (attrs) => { const {src, alt, width, height} = attrs; const style = width * height ? `aspect-ratio: ${width} / ${height};` : ''; - return `
- + return `
+ ${alt}
`; }; diff --git a/site/11ty/sort.filter.js b/site/11ty/sort.filter.js index 58a32a721..9950f35bd 100644 --- a/site/11ty/sort.filter.js +++ b/site/11ty/sort.filter.js @@ -1,31 +1,52 @@ module.exports = (config) => { - /** Generic sort njk filter */ - const createSortFilter = (comparer) => (values) => { - if (!Array.isArray(values)) { - console.error(`Unexpected values for sort filter: ${values}`); - return values; - } - return [...values].sort(comparer); - }; - - // Utils + /** Resolve date from item */ const resolveDate = (item) => new Date(item.date).getTime(); + /** Resolve date from item without fileUpdateDate fallback */ const resolveMetaDate = (item) => item.data.date ? new Date(item.date).getTime() : Number.POSITIVE_INFINITY; - /** Comparer composer */ - const compose = (...cmps) => (a, b) => cmps.reduce((res, cmp) => res || cmp(a, b), 0); - - /** Name metadata comparer */ - const nameComparer = (a, b) => a.data.name.localeCompare(b.data.name); - /** Order metadata comparer */ - const orderComparer = (a, b) => (a.data.order || 0) - (b.data.order || 0); /** Date metadata comparer */ const dateComparer = (a, b) => resolveDate(a) - resolveDate(b); /** Date metadata comparer (will not use file creation date) */ - const dateComparerStrict = (a, b) => resolveMetaDate(a) - resolveMetaDate(b); + const metaDateComparer = (a, b) => resolveMetaDate(a) - resolveMetaDate(b); + + /** Order metadata comparer */ + const orderComparer = (a, b) => (a.data.order ?? 0) - (b.data.order ?? 0); + + /** Page path comparer */ + const pathComparer = (a, b) => (a.inputPath || '').localeCompare(b.inputPath || ''); - config.addFilter('sortByName', createSortFilter(nameComparer)); - config.addFilter('sortByNameAndOrder', createSortFilter(compose(orderComparer, nameComparer))); - config.addFilter('sortByDate', createSortFilter(dateComparer)); - config.addFilter('sortByDateStrict', createSortFilter(dateComparerStrict)); + /** Abstract string comparer */ + const stringComparer = (field) => (a, b) => { + const aField = a.data[field] || ''; + const bField = b.data[field] || ''; + return aField.localeCompare(bField, 'en'); + }; + + /** Build comparer for field */ + const buildComparer = (field) => { + switch (field) { + case 'date': + return dateComparer; + case 'meta-date': + return metaDateComparer; + case 'order': + return orderComparer; + case 'path': + return pathComparer; + default: + return stringComparer(field); + } + }; + + /** Comparer composer */ + const compose = (...comparers) => (a, b) => comparers.reduce((res, cmp) => res || cmp(a, b), 0); + + config.addFilter('sortBy', (values, ...fields) => { + if (!Array.isArray(values)) { + console.error(`Unexpected values for sort filter: ${values}`); + return values; + } + const comparers = fields.map(buildComparer); + return [...values].sort(compose(...comparers)); + }); }; diff --git a/site/11ty/tree.filter.js b/site/11ty/tree.filter.js new file mode 100644 index 000000000..b1ce9bc07 --- /dev/null +++ b/site/11ty/tree.filter.js @@ -0,0 +1,26 @@ +const findParent = (list, parent) => { + if (!parent) return null; + return list.find((item) => item.fileSlug === parent || item.data.id === parent || item.data.title === parent); +}; + +/** Group items into a tree structure using given property */ +function treeBuilder(items) { + const root = []; + items.forEach((item, index) => { + item.children = []; + item.data.index = index; + }); + items.forEach((item) => { + const parent = findParent(items, item.data.parent); + if (parent) { + parent.children.push(item); + } else { + root.push(item); + } + }); + return root; +} + +module.exports = (config) => { + config.addFilter('tree', treeBuilder); +}; diff --git a/site/package.json b/site/package.json index 738a2f514..ff6411428 100644 --- a/site/package.json +++ b/site/package.json @@ -1,6 +1,6 @@ { "name": "@exadel/esl-website", - "version": "4.18.1", + "version": "5.0.0-beta.33", "private": true, "description": "ESL Website source", "homepage": "https://esl-ui.com/", @@ -10,42 +10,36 @@ }, "scripts": { "start": "npm run clean && concurrently --kill-others \"npm run watch:lib\" \"npm run watch:ts\" \"npm run watch:less\" \"npm run watch:eleventy\"", - "start:test": "npm run clean && npm run build:ts && npm run build:less:site && npm run build:less:lib && npm run build:less:e2e && npm run run:eleventy:e2e", + "start:test": "npm run clean && npm run build:ts && npm run build:less && npm run run:eleventy:e2e", "test": "", "clean": "rimraf \"dist\"", "watch:lib": "cd .. && npm run watch", "watch:ts": "webpack --watch", "watch:less": "chokidar --initial \"../node_modules/@exadel/esl/modules/**/*.less\" \"src/**/*.less\" -c \"npm run build:less\"", "watch:eleventy": "eleventy --serve --incremental -- --env=development", - "minify:css": "cleancss -o \"dist/bundles/localdev.css\" \"dist/bundles/localdev.css\"", + "minify:css": "cleancss --batch --batch-suffix \"\" \"dist/bundles/*.css\" --source-map", "run:eleventy": "eleventy --serve -- --env=production", "run:eleventy:e2e": "eleventy --serve -- --env=e2e", "build": "npm run clean && concurrently \"npm run build:ts\" \"npm run build:less && npm run minify:css\" && npm run build:eleventy", "build:ts": "webpack --mode=production", - "build:less": "concurrently npm:build:less:*", - "build:less:e2e": "lessc \"src/e2e.less\" \"dist/bundles/e2e.css\" --source-map=dist/bundles/e2e.css.map", - "build:less:site": "lessc \"src/localdev.less\" \"dist/bundles/localdev.css\" --source-map=dist/bundles/localdev.css.map", - "build:less:lib": "lessc \"src/playground/export/lib.less\" \"dist/bundles/lib.css\" --source-map=dist/bundles/lib.css.map", + "build:less": "foreach -x \"lessc #{path} dist/bundles/#{name}.css --source-map=dist/bundles/#{name}.css.map\" -g \"src/*.less\"", "build:eleventy": "eleventy -- --env=production", "build:analyzer": "webpack --mode=production --profile --json ../.report/stats.json && webpack-bundle-analyzer ../.report/stats.json dist/bundles -s gzip -m static -r ../.report/stats.html" }, "dependencies": { "@11ty/eleventy": "^2.0.1", - "@11ty/eleventy-dev-server": "^2.0.2", + "@11ty/eleventy-dev-server": "^2.0.4", "@exadel/esl": "../", "@exadel/ui-playground": "2.1.0-beta.7", "@juggle/resize-observer": "^3.4.0", "@types/prismjs": "^1.26.4", "@types/smoothscroll-polyfill": "^0.3.4", - "@webcomponents/custom-elements": "1.6.0", "clean-css-cli": "^5.6.3", "html-minifier-terser": "^7.2.0", "image-size": "^1.1.1", - "intersection-observer": "^0.12.2", "js-yaml": "^4.1.0", "out-url": "^1.2.2", "prismjs": "^1.29.0", - "promise-polyfill": "^8.3.0", "smoothscroll-polyfill": "^0.4.4", "ts-loader": "^9.5.1", "webpack": "^5.94.0", diff --git a/site/site.yml b/site/site.yml index 7a0da619a..437dbf146 100644 --- a/site/site.yml +++ b/site/site.yml @@ -22,7 +22,14 @@ rewriteRules: "docs/INSTALLATION_GUIDE.md": "/introduction" "docs/BROWSER_SUPPORT.md": "/introduction/browser-support" "src/modules/esl-base-element/README.md": "/core/esl-base-element" + "src/modules/esl-mixin-element/README.md": "/core/esl-mixin-element" "src/modules/esl-media-query/README.md": "/core/esl-media-query" "src/modules/esl-traversing-query/README.md": "/core/esl-traversing-query" "src/modules/esl-trigger/README.md": "/components/esl-trigger" "src/modules/esl-toggleable/README.md": "/components/esl-toggleable" + "src/modules/esl-tab/README.md": "/components/esl-tab" + "src/modules/esl-panel/README.md": "/components/esl-panel" + "src/modules/esl-panel-group/README.md": "/components/esl-panel-group" + "src/modules/esl-image/README.md": "/components/esl-image" + "src/modules/esl-image-utils/README.md": "/components/esl-image-utils" + "src/modules/esl-carousel/README.md": "/components/esl-carousel" diff --git a/site/src/banner/banner.less b/site/src/banner/banner.less index ed4b985bb..cd3415c7a 100644 --- a/site/src/banner/banner.less +++ b/site/src/banner/banner.less @@ -1,88 +1,46 @@ @import (reference) '../common/variables.less'; -.banner { - position: relative; - border: 2px solid @primary-green; - border-radius: 1rem; - box-shadow: 0 0 6px @primary-green; - background-color: #fff; - - text-align: center; - font-weight: 500; - color: mix(@primary-green-dark, #fff, 75%); - - padding: 1rem; - @media @sm-xl { - padding: 2rem; - } - - .banner-title { - font-weight: 600; - color: @primary-green-dark; - } - - p:last-child { - margin-bottom: 0; - } - - a[href] { - text-decoration-color: @primary-green-dark; - } - - .close { - position: absolute; - top: 0.75rem; - right: 1.1rem; - color: inherit; - } - - &:focus, - &:focus-within { - outline: none; - box-shadow: 0 0 10px @primary-green; - } -} - esl-d-banner { - display: none; -} -.esl-d-banner { - display: block; - position: fixed; - z-index: 1000; + @animationTime: 0.5s; - right: 1.5rem; - bottom: 1.5rem; - width: 40rem; - max-width: calc(100% - 3rem); + display: flex; + flex-direction: column; + justify-content: flex-end; - @media @sm-xl { - right: 2.5rem; - bottom: 2.5rem; - max-width: calc(100% - 5rem); - } + margin-top: 2rem; + margin-bottom: 1.5rem; visibility: hidden; - transition: - visibility 1s, - transform 1s, - opacity 1s; opacity: 0; - transform: translate3d(4rem, 0, 0); - pointer-events: none; - - &:not(.open) .banner { - display: none; - } + transition: + visibility 1s linear, + opacity 0.5s linear; - &.open { + &[open] { visibility: visible; opacity: 1; - transform: translate3d(0, 0, 0); transition: - visibility 0s, - transform 1s, - opacity 1s; - pointer-events: all; + visibility 0s linear, + opacity 0.5s linear; + } + + .alert { + position: relative; + transition: opacity 0.2s linear; + + &:not(:focus-within):not(:hover) { + opacity: 0.6; + } + + a::after { + content: ''; + position: absolute; + inset: 0; + } + } + + .close-button { + position: relative; + z-index: 1; } } diff --git a/site/src/banner/banner.ts b/site/src/banner/banner.ts index 9f13fe32c..9e60884eb 100644 --- a/site/src/banner/banner.ts +++ b/site/src/banner/banner.ts @@ -1,7 +1,8 @@ +import {attr, prop, listen} from '@exadel/esl/modules/esl-utils/decorators'; +import {ESLIntersectionTarget} from '@exadel/esl/modules/esl-event-listener/core'; import {ESLToggleable} from '@exadel/esl/modules/esl-toggleable/core'; -import {attr, memoize, prop} from '@exadel/esl/modules/esl-utils/decorators'; - -import type {ESLToggleableActionParams} from '@exadel/esl/modules/esl-toggleable/core/esl-toggleable'; +import type {ESLIntersectionEvent} from '@exadel/esl/modules/esl-event-listener/core'; +import type {ESLToggleableActionParams} from '@exadel/esl/modules/esl-toggleable/core'; export class ESLDemoBanner extends ESLToggleable { public static override is = 'esl-d-banner'; @@ -11,46 +12,45 @@ export class ESLDemoBanner extends ESLToggleable { @attr({defaultValue: 14, parser: parseInt}) public cookieTime: number; - @prop({initiator: 'initial', showDelay: 8000}) - public override initialParams: ESLToggleableActionParams; @prop(true) public override closeOnEsc: boolean; + @prop('.close-button') public override closeTrigger: string; - protected _$focusBefore: HTMLElement | null = null; + public get $alert(): HTMLElement | null { + return this.querySelector('.alert')!; + } - /** Check if the coolie {@link cookieName} is active */ + /** Check if the coolie is active */ public get hasCookie(): boolean { const {cookieName} = this; return !!cookieName && document.cookie.indexOf(`${cookieName}=true`) !== -1; } - @memoize() - public get $focusable(): HTMLElement | undefined { - return this.querySelector('.banner') as HTMLElement | undefined; - } - /** Store cookie {@link cookieName} for {@link cookieTime} period */ public registerCookie(expireDays: number = this.cookieTime): void { const {cookieName} = this; - if (cookieName) { - const expires = new Date(Date.now() + expireDays * 864e5).toUTCString(); - document.cookie = `${cookieName}=true; path=/; expires=${expires};`; - } - } - - protected override setInitialState(): void { - this.toggle(!this.hasCookie, this.initialParams); + if (!cookieName) return; + const expires = new Date(Date.now() + expireDays * 864e5).toUTCString(); + document.cookie = `${cookieName}=true; path=/; expires=${expires};`; } protected override onShow(params: ESLToggleableActionParams): void { super.onShow(params); - this._$focusBefore = document.activeElement as HTMLElement; - this.$focusable && this.$focusable.focus(); - if (params.initiator !== 'initial') this.registerCookie(-1); + this.$alert?.classList.add('in'); + this.$$off(this._onIntersect); + } + + protected override onHide(param: ESLToggleableActionParams): void { + super.onHide(param); + if (param.initiator === 'close') this.registerCookie(); } - protected override onHide(params: ESLToggleableActionParams): void { - super.onHide(params); - this._$focusBefore && this._$focusBefore.focus(); - if (params.initiator !== 'initial') this.registerCookie(); + + @listen({ + event: 'intersects', + target: ($this: ESLDemoBanner) => ESLIntersectionTarget.for($this, {threshold: 0.99}), + condition: ($this: ESLDemoBanner) => !$this.hasCookie + }) + protected _onIntersect(e: ESLIntersectionEvent): void { + this.toggle(e.isIntersecting, {showDelay: 750}); } } diff --git a/site/src/collection-grid/collection-grid.less b/site/src/collection-grid/collection-grid.less index 1d110542c..846938457 100644 --- a/site/src/collection-grid/collection-grid.less +++ b/site/src/collection-grid/collection-grid.less @@ -18,6 +18,7 @@ color 0.25s ease-in-out, border-color 0.25s ease-in-out; + color: inherit; &:hover { text-decoration: none; } @@ -38,10 +39,13 @@ min-height: 60px; font-size: 1.2rem; font-weight: 600; - color: black; + color: inherit; padding: 5px 15px; transition: color 0.25s ease-in-out; } + &-compact &-title { + min-height: 50px; + } &-item.draft &-box { opacity: 0.3; @@ -70,6 +74,12 @@ max-height: 160px; } } + &-compact &-svg { + min-height: 180px; + svg { + max-height: 140px; + } + } &-alt { text-align: center; @@ -91,11 +101,16 @@ } &-column { - grid-template-columns: 1fr 1fr; + grid-template-columns: repeat(2, 1fr); + } + @media @md-xl { + &-column&-compact { + grid-template-columns: repeat(4, 1fr); + } } &-column &-item { - background-color: white; + background-color: transparent; border-radius: 0.75rem; border: 1px solid #c8d6f0; max-width: 100%; @@ -142,4 +157,9 @@ .arrows-icon.right { transform: rotate(-45deg); } + + &-bg-white &-item { + color: black; + background-color: white; + } } diff --git a/site/src/common/badge.less b/site/src/common/badge.less index 3c397bf85..562435d42 100644 --- a/site/src/common/badge.less +++ b/site/src/common/badge.less @@ -69,16 +69,26 @@ &-img { width: 20px; height: 20px; - } - &-playground { &::after { position: absolute; - content: ''; inset: 0; + background-size: contain; + background-repeat: no-repeat; background-position: center; + } + } + + &-playground { + &::after { + content: ''; background-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26.1 11.7' fill='white' xml:space='preserve'%3E%3Cpath d='M2.8 5.9 6.7 2a1 1 0 0 0 0-1.6C6.2-.1 5.5-.1 5 .4L.7 4.6l-.2.3-.2.2a1 1 0 0 0 0 1.6L5 11.4c.5.4 1.2.4 1.6 0a1 1 0 0 0 0-1.6L2.8 5.9zM14.4 1.3l2 1.2L12 9.9l-2-1.1zM11.9 10.2 9.9 9l-.2 2.6zM14.8.6c.3-.5 1-.7 1.6-.4.6.3.7 1 .4 1.6l-.3.5-2-1.1.3-.6zM25.7 6.7l-.2.2-.2.3-4.3 4.2c-.5.4-1.2.4-1.6 0a1 1 0 0 1 0-1.6L23.3 6l-3.9-4a1 1 0 0 1 0-1.6c.5-.4 1.2-.4 1.6 0l4.7 4.7c.5.4.5 1.1 0 1.6z'/%3E%3C/svg%3E"); - background-repeat: no-repeat; + } + } + &-deprecated { + &::after { + content: ''; + background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3e%3ccircle cx='50' cy='50' r='45' fill='none' stroke='%236c757d' stroke-width='6'/%3e%3cpath fill='%236c757d' d='M20 45h60v10H20z'/%3e%3c/svg%3e"); } } diff --git a/site/src/common/card.less b/site/src/common/card.less new file mode 100644 index 000000000..247a1cc90 --- /dev/null +++ b/site/src/common/card.less @@ -0,0 +1,20 @@ +.card { + position: relative; + display: flex; + width: 100%; + height: 100%; + min-height: 100px; + flex-direction: column; + background: #fff; + box-shadow: 1px 1px 4px 2px rgba(0, 0, 0, 0.3); + + img { + pointer-events: none; + } + &-image { + flex: 0 0 auto; + } + &-content { + flex: 1 1 auto; + } +} diff --git a/site/src/common/close.less b/site/src/common/close.less index 8b234922c..95869c47f 100644 --- a/site/src/common/close.less +++ b/site/src/common/close.less @@ -1,14 +1,16 @@ .close { + --icon-color: #000; + float: right; font-size: 1.5rem; font-weight: 700; line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; + color: var(--icon-color); + text-shadow: 0 1px 0 invert(var(--icon-color)); opacity: 0.5; &:hover { - color: #000; + color: var(--icon-color); text-decoration: none; } @@ -16,6 +18,24 @@ &:not(:disabled):focus { opacity: 0.75; } + + &.inverse { + --icon-color: #fff; + } + &-remove:hover { + --icon-color: #fb2020; + } + + &-icon::before { + content: '×'; + } + + .img-container & { + position: absolute; + top: 0.25rem; + right: 0.5rem; + z-index: 10; + } } button.close { diff --git a/site/src/common/colors.less b/site/src/common/colors.less index 6fff5dc93..7b856d154 100644 --- a/site/src/common/colors.less +++ b/site/src/common/colors.less @@ -64,6 +64,9 @@ &-white { color: #fff !important; } + &-info { + color: @primary-green-dark !important; + } } // Borders diff --git a/site/src/common/flex.less b/site/src/common/flex.less index e8fa4ddbf..1fb52722e 100644 --- a/site/src/common/flex.less +++ b/site/src/common/flex.less @@ -34,6 +34,9 @@ &-around { justify-content: space-around !important; } + &-center { + justify-content: center !important; + } } .align-items { diff --git a/site/src/common/helpers.less b/site/src/common/helpers.less index b7e7d5d00..57def6e51 100644 --- a/site/src/common/helpers.less +++ b/site/src/common/helpers.less @@ -22,6 +22,16 @@ display: none !important; } } + @media @xs-sm { + &-mobile { + display: none !important; + } + } + @media @md-xl { + &-desktop { + display: none !important; + } + } } .show { @media @sm-xl { @@ -100,6 +110,10 @@ margin-left: 2rem !important; margin-right: 2rem !important; } + &-6 { + margin-left: 2.5rem !important; + margin-right: 2.5rem !important; + } &-auto { margin-right: auto !important; margin-left: auto !important; @@ -140,8 +154,16 @@ } // Text -.text-center { - text-align: center !important; +.text { + &-left { + text-align: left !important; + } + &-center { + text-align: center !important; + } + &-right { + text-align: right !important; + } } // A11ty helpers @@ -156,3 +178,21 @@ white-space: nowrap; border: 0; } + +.list-spaced { + > li { + margin-block-end: 0.5rem; + } +} + +.icon-inline { + display: inline-flex; + + min-width: 1em; + height: 1em; + + &.large { + min-width: 2em; + height: 2em; + } +} diff --git a/site/src/common/markdown.less b/site/src/common/markdown.less index 2f89be10e..19a31d5fb 100644 --- a/site/src/common/markdown.less +++ b/site/src/common/markdown.less @@ -35,4 +35,11 @@ font-weight: 500; letter-spacing: 1px; } + + &.no-margin, + .alert & { + p:last-child { + margin-block-end: 0; + } + } } diff --git a/site/src/common/reboot.less b/site/src/common/reboot.less index 85d602b2d..4535e8c4d 100644 --- a/site/src/common/reboot.less +++ b/site/src/common/reboot.less @@ -14,10 +14,6 @@ * { margin: 0; padding: 0; - - &:focus-visible { - outline: 2px dashed @focus-color; - } } body { @@ -147,3 +143,12 @@ audio { border: 1px solid rgba(0, 0, 0, 0.6); } } + +// Focus state +*, +a, +button { + &:focus-visible { + outline: 2px dashed @focus-color; + } +} diff --git a/site/src/common/typography.large.less b/site/src/common/typography.large.less new file mode 100644 index 000000000..b92dfeac2 --- /dev/null +++ b/site/src/common/typography.large.less @@ -0,0 +1,52 @@ +@import (reference) './variables.less'; +@import (reference) './typography.less'; + +.typo-large { + // Base font size + font-size: 1.35rem; + + h1.large, + .h1.large { + font-size: 4rem; + @media @sm-xl { + font-size: 5rem; + } + } + + h1, + .h1, + h2.large, + .h2.large { + font-size: 3.5rem; + @media @sm-xl { + font-size: 4rem; + } + } + + h2, + .h2, + h3.large, + .h3.large { + font-size: 2.5rem; + margin-bottom: 2rem; + } + + h3, + .h3, + h4.large, + .h4.large { + font-size: 2rem; + margin-bottom: 1rem; + } + + h4, + .h4 { + font-size: 1.75rem; + margin-bottom: 0.75rem; + } + + h5, + .h5 { + font-size: 1.5rem; + } +} diff --git a/site/src/common/typography.less b/site/src/common/typography.less index af50073fe..042f4486c 100644 --- a/site/src/common/typography.less +++ b/site/src/common/typography.less @@ -99,22 +99,3 @@ a { time { opacity: 0.75; } - -.landing-layout { - font-size: 1.175rem; - h1 { - font-size: 3.5rem; - @media @sm-xl { - font-size: 4rem; - } - } - h2, - .h2 { - font-size: 2.5rem; - margin-bottom: 2rem; - } - h3, - .h3 { - font-size: 2rem; - } -} diff --git a/site/src/esl-anchornav/esl-anchornav.less b/site/src/esl-anchornav/esl-anchornav.less new file mode 100644 index 000000000..7a12a0dc7 --- /dev/null +++ b/site/src/esl-anchornav/esl-anchornav.less @@ -0,0 +1,57 @@ +@BG_COLOR: #f7f7f7; +@SHADOW: 1px 2px 3px rgba(0, 0, 0, 0.2); + +esl-anchornav { + [esl-anchornav-items] { + display: flex; + gap: 10px; + flex-wrap: wrap; + } + + .esl-anchornav-item.active { + font-weight: bold; + text-decoration: underline; + } +} + +[esl-anchor].highlighted { + border-top: 1px dotted #f00; +} + +.esl-anchornav-pseudo-fixed { + position: sticky; + top: 0; + right: 0; + padding: 10px 0 10px 10px; + + esl-anchornav { + min-width: 160px; + background: @BG_COLOR; + box-shadow: @SHADOW; + } + + [esl-anchornav-items] { + display: flex; + justify-content: center; + } +} + +[esl-anchornav-sticked] { + background-color: @BG_COLOR; + padding-block: 5px; + + &[sticked] { + box-shadow: @SHADOW; + } + + esl-anchornav { + display: flex; + gap: 10px; + } + + .uip-preview-inner & { + top: -10px; + margin-inline: -10px; + padding-inline: 10px; + } +} diff --git a/site/src/esl-anchornav/esl-anchornav.ts b/site/src/esl-anchornav/esl-anchornav.ts new file mode 100644 index 000000000..9315333fc --- /dev/null +++ b/site/src/esl-anchornav/esl-anchornav.ts @@ -0,0 +1,17 @@ +import {ESLAnchor, ESLAnchornav, ESLAnchornavSticked} from '@exadel/esl/modules/esl-anchornav/core'; + +import type {ESLAnchornavRender, ESLAnchorData} from '@exadel/esl/modules/esl-anchornav/core'; + +const demoRenderer: ESLAnchornavRender = (data: ESLAnchorData, index: number): Element => { + const a = document.createElement('a'); + a.href = `#${data.id}`; + a.className = 'esl-anchornav-item'; + a.dataset.index = `${index + 1}`; + a.textContent = data.title; + return a; +}; + +ESLAnchor.register(); +ESLAnchornav.setRenderer(demoRenderer); +ESLAnchornav.register(); +ESLAnchornavSticked.register(); diff --git a/site/src/esl-popup/esl-d-popup-game.less b/site/src/esl-popup/esl-d-popup-game.less new file mode 100644 index 000000000..cbbdeb059 --- /dev/null +++ b/site/src/esl-popup/esl-d-popup-game.less @@ -0,0 +1,36 @@ +esl-d-popup-game { + position: relative; + display: inline-block; + + border: 1px solid #000; + + min-height: 300px; + height: 95%; + width: 100%; + + &::before, + &::after { + position: absolute; + font-size: calc(min(100vh, 300px) / 3); + display: inline-block; + opacity: 0.3; + } + + &::before { + content: '🌒'; + } + + &::after { + content: '🪐'; + bottom: 0; + right: 0; + } +} + +.game-popup-trigger { + position: absolute; + padding: 2px 6px; + border-radius: 50%; + background-color: #bce0ff45; + font-size: 2rem; +} diff --git a/site/src/esl-popup/esl-d-popup-game.ts b/site/src/esl-popup/esl-d-popup-game.ts new file mode 100644 index 000000000..2f3b225c2 --- /dev/null +++ b/site/src/esl-popup/esl-d-popup-game.ts @@ -0,0 +1,86 @@ +import {ESLBaseElement} from '@exadel/esl/modules/esl-base-element/core'; +import {ESLPopup} from '@exadel/esl/modules/esl-popup/core'; +import {attr, boolAttr, listen, memoize} from '@exadel/esl/modules/esl-utils/decorators'; +import {ESLResizeObserverTarget} from '@exadel/esl/modules/esl-utils/dom'; +import {ESLTraversingQuery} from '@exadel/esl/modules/esl-traversing-query/core'; + +import type {Point} from '@exadel/esl/modules/esl-utils/dom'; + +/** Fun component like a game for checking popup positioning on edge cases */ +export class ESLDemoPopupGame extends ESLBaseElement { + static override is = 'esl-d-popup-game'; + + protected currentCoords: Point; + + /** Trigger selector */ + @attr() public trigger: string; + /** Marker shows that element is in dragging mode */ + @boolAttr() public dragging = false; + + @memoize() + get $trigger(): HTMLElement | undefined { + if (this.trigger) return ESLTraversingQuery.first(this.trigger, this) as HTMLElement | undefined; + } + + protected override connectedCallback(): void { + this.setTriggerDefaultPosition(); + super.connectedCallback(); + } + + protected setTriggerDefaultPosition(): void { + const center = this.calculateCenter(); + this.updateTriggerPosition(center.x, center.y); + } + + protected calculateCenter(): Point { + return {x: this.clientWidth / 2, y: this.clientHeight / 2}; + } + + @listen({event: 'mousedown', target: ($this: any) => $this.$trigger}) + protected _onDragStart(event: MouseEvent): void { + this.dragging = true; + this.$$on(this._onDragging); + this.$$on(this._onDragStop); + event.preventDefault(); + this.currentCoords = {x: event.clientX, y: event.clientY}; + } + + @listen({auto: false, event: 'mousemove', target: window}) + protected _onDragging(event: MouseEvent): void { + if (!this.dragging || !this.$trigger) return; + const {clientX, clientY} = event; + const dX = clientX - this.currentCoords.x; + const dY = clientY - this.currentCoords.y; + this.currentCoords = {x: clientX, y: clientY}; + this.updateTriggerPosition(dX, dY); + + event.preventDefault(); + } + + protected updateTriggerPosition(dX: number, dY: number): void { + if (!this.$trigger) return; + this.$$fire(ESLPopup.prototype.REFRESH_EVENT); + const limitX = this.clientWidth - this.$trigger.clientWidth; + const limitY = this.clientHeight - this.$trigger.clientHeight; + + let x = (parseInt(this.$trigger.style.left, 10) || 0) + dX; + let y = (parseInt(this.$trigger.style.top, 10) || 0) + dY; + x = Math.max(0, Math.min(x, limitX)); + y = Math.max(0, Math.min(y, limitY)); + + this.$trigger.style.left = `${x}px`; + this.$trigger.style.top = `${y}px`; + } + + @listen({auto: false, event: 'mouseup', target: window}) + protected _onDragStop(): void { + this.dragging = false; + this.$$off(this._onDragging); + this.$$off(this._onDragStop); + } + + @listen({event: 'resize', target: ESLResizeObserverTarget.for}) + protected _onResize(): void { + this.updateTriggerPosition(0, 0); + } +} diff --git a/site/src/landing/marquee/marquee.ts b/site/src/landing/marquee/marquee.ts index 3c705082f..2cd4ef640 100644 --- a/site/src/landing/marquee/marquee.ts +++ b/site/src/landing/marquee/marquee.ts @@ -1,7 +1,6 @@ import {ESLBaseElement} from '@exadel/esl/modules/esl-base-element/core'; import {bind, ready, memoize, attr} from '@exadel/esl/modules/esl-utils/decorators'; import {range} from '@exadel/esl/modules/esl-utils/misc/array'; -import {isIE} from '@exadel/esl/modules/esl-utils/environment/device-detector'; export class ESLDemoMarquee extends ESLBaseElement { static override is = 'esl-d-marquee'; @@ -16,7 +15,6 @@ export class ESLDemoMarquee extends ESLBaseElement { @ready protected override connectedCallback(): void { super.connectedCallback(); - if (isIE) return; this.startAnimation(); } protected override disconnectedCallback(): void { diff --git a/site/src/landing/overview/overview.less b/site/src/landing/overview/overview.less index e0cba6e8d..105bf81c0 100644 --- a/site/src/landing/overview/overview.less +++ b/site/src/landing/overview/overview.less @@ -9,7 +9,7 @@ position: relative; padding: 20px 40px; - &-scene[data-slides-area] { + &-scene[esl-carousel-slides] { width: 100%; } diff --git a/site/src/lib.less b/site/src/lib.less new file mode 100644 index 000000000..286e49887 --- /dev/null +++ b/site/src/lib.less @@ -0,0 +1,23 @@ +@import './common/reboot.less'; +@import './common/typography.less'; +@import './common/colors.less'; + +@import '@exadel/esl/modules/all.less'; + +@import './common/accent-lines.less'; +@import './common/accordion.less'; +@import './common/alert.less'; +@import './common/badge.less'; +@import './common/buttons.less'; +@import './common/code.less'; +@import './common/links.less'; +@import './common/close.less'; +@import './common/containers.less'; +@import './common/simple-grid.less'; +@import './common/forms.less'; +@import './common/flex.less'; +@import './common/helpers.less'; +@import './common/marquee.less'; +@import './common/scrollbar.less'; +@import './common/tabs.less'; +@import './common/dropdown-menu.less'; diff --git a/site/src/lib.ts b/site/src/lib.ts new file mode 100644 index 000000000..a0f5b29a3 --- /dev/null +++ b/site/src/lib.ts @@ -0,0 +1,2 @@ +import '@exadel/esl/modules/lib'; +export * from '@exadel/esl'; diff --git a/site/src/navigation/header/logo.less b/site/src/logo/logo.animation.less similarity index 53% rename from site/src/navigation/header/logo.less rename to site/src/logo/logo.animation.less index 6f1644c1d..44a660ed6 100644 --- a/site/src/navigation/header/logo.less +++ b/site/src/logo/logo.animation.less @@ -1,58 +1,66 @@ .logo-animated { - @duration: 5s; + @logo-animation: 5s ease-in-out; .shield { - animation: logo-enlarge-shield @duration ease-in-out infinite; + animation: logo-enlarge-shield @logo-animation infinite; transform-origin: center; } .wrenches { - animation: logo-rotate-180 @duration ease-in-out infinite; + animation: logo-rotate-180 @logo-animation infinite; transform-origin: center; .w-l { - animation: logo-move-wrench-l @duration ease-in-out infinite; + animation: logo-move-wrench-l @logo-animation infinite; } .w-r { - animation: logo-move-wrench-r @duration ease-in-out infinite; + animation: logo-move-wrench-r @logo-animation infinite; + } + } + &.animation-delay { + .shield, + .wrenches, + .wrenches .w-l, + .wrenches .w-r { + animation-delay: 5s; } } } @keyframes logo-enlarge-shield { - 93%, - 97% { + 23%, + 27% { transform: scale(1); } - 95% { + 25% { transform: scale(1.15); } } @keyframes logo-rotate-180 { 0%, - 80% { + 10%, + 20.00005% { transform: rotate(0deg); } - 90%, - 100% { + 20% { transform: rotate(180deg); } } @keyframes logo-move-wrench-l { - 70%, - 100% { + 10%, + 30% { transform: translate(0px, 0px); } - 80%, - 90% { + 10%, + 20% { transform: translate(15px, -2px); } } @keyframes logo-move-wrench-r { - 70%, - 100% { + 0%, + 30% { transform: translate(0px, 0px); } - 80%, - 90% { + 10%, + 20% { transform: translate(-15px, 2px); } } diff --git a/site/src/navigation/footer/footer-compact.less b/site/src/navigation/footer/footer-compact.less index 67a0f2d7f..65d0406db 100644 --- a/site/src/navigation/footer/footer-compact.less +++ b/site/src/navigation/footer/footer-compact.less @@ -1,7 +1,3 @@ .footer-compact { padding: 15px 0; - - &-divider { - margin-top: 0; - } } diff --git a/site/src/navigation/footer/footer.less b/site/src/navigation/footer/footer.less index d538807a5..abaef370c 100644 --- a/site/src/navigation/footer/footer.less +++ b/site/src/navigation/footer/footer.less @@ -35,11 +35,11 @@ } } - &-title { + & &-title { display: none; color: @primary-blue; font-weight: 500; - font-size: 1rem; + font-size: 1.2rem; margin-left: 15px; @media @md-xl { @@ -47,7 +47,7 @@ } } - &-link { + & &-link { display: inline-block; color: white; padding: 10px 0; @@ -94,13 +94,13 @@ display: flex; flex-direction: column; flex-wrap: wrap; - height: 330px; // 8 lines max (+2px) + max-height: 410px; // 10 lines max list-style-type: none; } } } - &-accordion-trigger { + & &-accordion-trigger { display: block; position: relative; color: white; @@ -183,10 +183,10 @@ } } - &-common-links { + & &-common-links { font-size: 0.9rem; } - &-common-links &-link { + & &-common-links &-link { padding: 0; font-size: inherit; > svg { @@ -195,7 +195,7 @@ } } - &-copyright &-link { + & &-copyright &-link { font-size: inherit; padding: 0; outline-offset: 0; diff --git a/site/src/navigation/header/header.less b/site/src/navigation/header/header.less index b1b02b4b8..ca30489e3 100644 --- a/site/src/navigation/header/header.less +++ b/site/src/navigation/header/header.less @@ -1,6 +1,7 @@ @import (reference) '../../common/variables.less'; .header { + position: relative; z-index: 10; // force to move to the separate layer @@ -9,10 +10,9 @@ color: @landing-fg-color; background-color: @landing-bg-color; - height: @header-height-mobile; - + height: var(--_header-height, @header-height-mobile); @media @md-xl { - height: @header-height-desktop; + height: var(--_header-height, @header-height-desktop); } &-container { @@ -85,11 +85,8 @@ } &-share-popup.esl-popup { - &, - & > .esl-popup-arrow { - background: @landing-bg-color; - border-color: gray; - } + --esl-popup-background-color: @landing-bg-color; + --esl-popup-border-color: gray; .esl-share-list { margin: 0.75rem; gap: 0.25rem; @@ -97,18 +94,16 @@ } &-utility { + flex: 1 0 0; + margin: 0 0 0 auto; + justify-self: flex-end; + display: flex; align-items: center; justify-content: flex-end; - - flex: 1 0 auto; - margin-left: auto; - justify-self: flex-end; } &-logo { - flex: 1 0 auto; - display: flex; align-items: center; white-space: nowrap; @@ -123,8 +118,21 @@ margin: -5px; width: 48px; height: 48px; + } + } + + &-left { + flex: 1 0 0; + } + + &-central { + flex: 0 0 auto; + margin-inline: auto; + } - @media @md-xl { + @media @md-xl { + &-logo-large { + svg { width: 66px; height: 66px; } @@ -141,9 +149,6 @@ &-hamburger { display: block; - @media @md-xl { - display: none; - } position: relative; width: 30px; @@ -204,6 +209,6 @@ &-long-name { font-size: 1.125rem; font-weight: 500; - margin-left: 11px; + margin-left: 1rem; } } diff --git a/site/src/navigation/navigation.less b/site/src/navigation/navigation.less index f6d23a9da..a887c7d62 100644 --- a/site/src/navigation/navigation.less +++ b/site/src/navigation/navigation.less @@ -1,6 +1,5 @@ @import './header/header.less'; @import './header/header-search.less'; -@import './header/logo.less'; @import './sidebar/sidebar.less'; @import './related/related-links.less'; diff --git a/site/src/playground/export/lib.less b/site/src/playground/export/lib.less deleted file mode 100644 index da37e23c7..000000000 --- a/site/src/playground/export/lib.less +++ /dev/null @@ -1,23 +0,0 @@ -@import '../../common/reboot.less'; -@import '../../common/typography.less'; -@import '../../common/colors.less'; - -@import '@exadel/esl/modules/all.less'; - -@import '../../common/accent-lines.less'; -@import '../../common/accordion.less'; -@import '../../common/alert.less'; -@import '../../common/badge.less'; -@import '../../common/buttons.less'; -@import '../../common/code.less'; -@import '../../common/links.less'; -@import '../../common/close.less'; -@import '../../common/containers.less'; -@import '../../common/simple-grid.less'; -@import '../../common/forms.less'; -@import '../../common/flex.less'; -@import '../../common/helpers.less'; -@import '../../common/marquee.less'; -@import '../../common/scrollbar.less'; -@import '../../common/tabs.less'; -@import '../../common/dropdown-menu.less'; diff --git a/site/src/playground/export/lib.ts b/site/src/playground/export/lib.ts deleted file mode 100644 index 76edf6080..000000000 --- a/site/src/playground/export/lib.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '@exadel/esl'; diff --git a/site/src/playground/ui-playground.less b/site/src/playground/ui-playground.less index fc7135810..b8d51236a 100644 --- a/site/src/playground/ui-playground.less +++ b/site/src/playground/ui-playground.less @@ -54,4 +54,13 @@ html { .uip-preview-h-scroll[inactive] { display: none; } + + // TODO: probably needs to be in UIP + .uip-preview[resizable='horizontal'] .uip-preview-container { + resize: horizontal; + } + + .uip-preview[align='center'] .uip-preview-container { + margin-inline: auto; + } } diff --git a/site/src/playground/ui-playground.ts b/site/src/playground/ui-playground.ts index 8ae64c2ef..819d1f04d 100644 --- a/site/src/playground/ui-playground.ts +++ b/site/src/playground/ui-playground.ts @@ -7,7 +7,9 @@ UIPJSRenderingPreprocessors.addRegexReplacer( '"/bundles/lib.js"' ); -// Add template +// Store default template as empty +UIPRenderingTemplatesService.add('empty', UIPRenderingTemplatesService.get('default')!); +// Inject ESL context to default template UIPRenderingTemplatesService.add('default', ` diff --git a/site/src/polyfill-full.ts b/site/src/polyfill-full.ts deleted file mode 100644 index 91d4245c2..000000000 --- a/site/src/polyfill-full.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Target: IE11, Edge\<14 - */ -import 'promise-polyfill/dist/polyfill'; - -import '@exadel/esl/polyfills/polyfills.es5'; - -import './polyfill-medium'; diff --git a/site/src/polyfill-medium.ts b/site/src/polyfill-medium.ts deleted file mode 100644 index a75b910c6..000000000 --- a/site/src/polyfill-medium.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Target: iOS, Safari 13.0.0 - */ -// IE, Edge < 18 -import '@webcomponents/custom-elements/custom-elements.min'; - -// IE, Safari <12, Edge < 14 -import 'intersection-observer/intersection-observer'; - -import './polyfill-light'; diff --git a/site/src/polyfill-light.ts b/site/src/polyfill.ts similarity index 67% rename from site/src/polyfill-light.ts rename to site/src/polyfill.ts index 22f4bb69d..82102a39e 100644 --- a/site/src/polyfill-light.ts +++ b/site/src/polyfill.ts @@ -1,9 +1,4 @@ -/** - * Target: Edge, Safari 9 - */ -import '@exadel/esl/polyfills/polyfills.es6'; - -// IE, Safari <13.3 +/** Target: `Safari <13.3` */ import {ResizeObserver} from '@juggle/resize-observer'; window.ResizeObserver = window.ResizeObserver || ResizeObserver; diff --git a/site/src/presentation/carousel.less b/site/src/presentation/carousel.less new file mode 100644 index 000000000..9d8740d95 --- /dev/null +++ b/site/src/presentation/carousel.less @@ -0,0 +1,37 @@ +.presentation-carousel { + margin: 0; + padding: 0; + width: 100%; + + .presentation-content { + width: auto; + margin: auto; + } + + .presentation-carousel, + .presentation-carousel-inner { + width: 100%; + height: 100%; + } + + // Fallback + &:not(.esl-carousel) .presentation-carousel-inner { + flex-direction: column; + opacity: 0; + animation: fallback-fade-in 0.5s linear forwards; + animation-delay: 0.5s; + } + &:not(.esl-carousel) .presentation-slide { + min-height: 50svh; + border-bottom: 1px solid #e5e5e5; + } +} + +@keyframes fallback-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} diff --git a/site/src/presentation/footer.less b/site/src/presentation/footer.less new file mode 100644 index 000000000..d5a350c0b --- /dev/null +++ b/site/src/presentation/footer.less @@ -0,0 +1,39 @@ +@import (reference) '../common/variables.less'; + +.presentation-footer { + position: fixed; + z-index: 10; + left: 0; + right: 0; + bottom: 0; + + pointer-events: none; + + display: flex; + justify-content: center; + + @media print { + display: none; + } + + &-container { + display: flex; + align-items: center; + gap: 1.5rem; + pointer-events: all; + + padding: 0.75rem; + opacity: 0.2; + transition: opacity 0.5s ease-in-out; + + &:hover { + opacity: 1; + } + } + + &-item { + text-shadow: + #000 0 0 10px, + @nav-dark-bg 0 0 2px; + } +} diff --git a/site/src/presentation/layout.less b/site/src/presentation/layout.less new file mode 100644 index 000000000..b40a7ec4d --- /dev/null +++ b/site/src/presentation/layout.less @@ -0,0 +1,74 @@ +@import (reference) '../common/variables.less'; + +.presentation-layout { + --_header-height: 60px; + + color: @landing-fg-color; + height: 100dvh; + + @media screen { + main { + display: flex; + justify-content: center; + width: 100%; + height: calc(100dvh - var(--_header-height)); + + &:not(:has(.esl-carousel)) { + overflow: auto; + } + } + } + + @media print { + height: fit-content; + + pre { + overflow: hidden; + } + + .print-hidden, + .esl-scrollbar { + display: none !important; + } + } + + background: @landing-bg-color url('/assets/common/stars.webp') repeat; + background-size: 1000px 500px; + animation: p-slow-move-bg 90s infinite linear; + + &::before { + content: ''; + position: absolute; + inset: 0; + + opacity: 0.25; + background: url('/assets/common/fog.webp') repeat; + background-size: 100% 100%; + + @media print { + display: none; + } + } + + @keyframes p-slow-move-bg { + 0% { + background-position: 1000px 500px; + } + 100% { + background-position: 0 0; + } + } + + @media @md-xl { + .header { + background-color: transparent; + } + } +} + +@media print { + @page { + margin: 0; + size: A4 landscape; + } +} diff --git a/site/src/presentation/sidebar.less b/site/src/presentation/sidebar.less new file mode 100644 index 000000000..05fdfeb31 --- /dev/null +++ b/site/src/presentation/sidebar.less @@ -0,0 +1,133 @@ +@import (reference) '../common/variables.less'; + +.presentation-sidebar { + &, + &.esl-toggleable { + display: flex; + + @media print { + display: none; + } + } + + flex-direction: column; + position: fixed; + top: 0; + left: 0; + height: 100%; + max-height: 100svh; + z-index: 9; + + padding-top: var(--_header-height); + + color: @nav-dark-fg; + background: linear-gradient( + to right, + fadeout(@nav-dark-bg, 20%) 0%, + fadeout(@nav-dark-bg, 100%) 100% + ); + + width: 100%; + overflow: hidden; + opacity: 0; + visibility: hidden; + transition: + opacity 0.5s linear, + visibility 0.5s linear; + + &.open { + opacity: 1; + visibility: visible; + + transition: + opacity 0.5s linear, + visibility 0s linear; + } + + &-container { + width: auto; + flex: 1 1 auto; + transition: transform 0.5s ease-in-out; + padding: 2rem 0 2rem 20px; + @media @sm { + padding-left: 30px; + } + @media @md { + padding-left: 45px; + } + @media @lg-xl { + padding-left: 60px; + } + @media @sm-xl { + width: 30rem; + } + } + + &:not(.open) &-container { + transform: translateX(-100%); + } + + &-menu { + display: flex; + flex-direction: column; + padding: 0; + } + &-item { + list-style-type: none; + margin: 0.5rem 0; + } + &-item &-link { + color: @nav-dark-fg; + text-decoration: none; + font-size: 1rem; + padding: 1rem 0; + + &:hover { + color: @nav-dark-hover; + text-decoration: none; + } + } + + &-overlay { + position: absolute; + inset: 0; + z-index: -1; + background: fadeout(@nav-dark-bg, 25%); + + &::before { + content: ''; + position: absolute; + inset: 0; + background: url('/assets/common/fog.webp') repeat; + background-size: 2500px 1500px; + transition: all linear 1s; + } + } + + &.open &-overlay { + &::before { + background-position: 10vw 0; + } + } + + &-scroll.esl-scrollbar { + top: var(--_header-height); + @media (hover: hover) { + opacity: 0.4; + transition: opacity 0.3s linear; + } + + .scrollbar-track { + background: rgba(255, 255, 255, 0.3); + } + + .scrollbar-thumb { + background: rgba(0, 0, 0, 0.4); + } + + &[dragging] .scrollbar-thumb { + background: rgba(0, 0, 0, 0.6); + box-shadow: inset 0 0 4px 0 rgba(255, 255, 255, 0.2); + } + } +} diff --git a/site/src/presentation/slide.less b/site/src/presentation/slide.less new file mode 100644 index 000000000..861ba5273 --- /dev/null +++ b/site/src/presentation/slide.less @@ -0,0 +1,38 @@ +.presentation-slide { + display: flex; + position: relative; + max-height: 100%; + + @media print { + // TODO: A4 landscape height to enlarge short slides + page-break-after: always; + } + + .presentation-content { + padding-block: 2rem; + max-width: calc(1400px + 4rem); + max-height: 100%; + touch-action: pan-y; + } + + .presentation-scrollbar { + opacity: 0.6; + } + + &.light { + background-image: linear-gradient( + to bottom, + rgb(255 255 255 / 0%), + rgb(255 255 255) 2.5%, + rgb(255 255 255) 97.5%, + rgb(255 255 255 / 0%) 100% + ); + background-size: 100% 100%; + color: #000; + } + + &.full-width .presentation-content { + width: 100%; + max-width: 1600px; + } +} diff --git a/site/src/localdev.less b/site/src/site.less similarity index 86% rename from site/src/localdev.less rename to site/src/site.less index 58f6fabd9..125f86088 100644 --- a/site/src/localdev.less +++ b/site/src/site.less @@ -2,6 +2,7 @@ @import './common/reboot.less'; @import './common/typography.less'; +@import './common/typography.large.less'; @import './common/colors.less'; @import './common/markdown.less'; @@ -12,6 +13,7 @@ @import './common/badge.less'; @import './common/buttons.less'; @import './common/code.less'; +@import './common/card.less'; @import './common/links.less'; @import './common/close.less'; @import './common/containers.less'; @@ -31,6 +33,7 @@ @import './search/search.less'; @import './navigation/navigation.less'; +@import './logo/logo.animation.less'; @import './landing/landing.less'; @import './banner/banner.less'; @@ -38,6 +41,8 @@ @import './collection-grid/collection-grid.less'; @import './esl-share/esl-share.less'; @import './esl-events-demo/esl-events-demo.less'; +@import './esl-popup/esl-d-popup-game.less'; +@import './esl-anchornav/esl-anchornav.less'; @import './back-link/back-link'; diff --git a/site/src/site.presentation.less b/site/src/site.presentation.less new file mode 100644 index 000000000..093319e42 --- /dev/null +++ b/site/src/site.presentation.less @@ -0,0 +1,5 @@ +@import './presentation/layout.less'; +@import './presentation/carousel.less'; +@import './presentation/slide.less'; +@import './presentation/sidebar.less'; +@import './presentation/footer.less'; diff --git a/site/src/localdev.ts b/site/src/site.ts similarity index 80% rename from site/src/localdev.ts rename to site/src/site.ts index cca5fda9c..a196de508 100644 --- a/site/src/localdev.ts +++ b/site/src/site.ts @@ -1,7 +1,5 @@ // Support for ES5 bundle target import '@exadel/esl/polyfills/es5-target-shim'; -// Builtin polyfills -import '@exadel/esl/polyfills/polyfills.es6'; // Validate environment import '@exadel/esl/polyfills/polyfills.validate'; @@ -12,7 +10,7 @@ import './common/breakpoints'; import { ESLVSizeCSSProxy, - ESLImage, + ESLImageContainerMixin, ESLMedia, ESLToggleable, ESLPopup, @@ -35,7 +33,16 @@ import { ESLAnimate, ESLAnimateMixin, ESLRelatedTarget, - ESLOpenState + ESLOpenState, + + ESLCarousel, + ESLCarouselNavDots, + ESLCarouselNavMixin, + ESLCarouselTouchMixin, + ESLCarouselWheelMixin, + ESLCarouselKeyboardMixin, + ESLCarouselRelateToMixin, + ESLCarouselAutoplayMixin } from '@exadel/esl/modules/all'; import {ESLRandomText} from '@exadel/esl/modules/esl-random-text/core'; @@ -55,6 +62,7 @@ import {ESLDemoSidebar} from './navigation/navigation'; import {ESLDemoAnchorLink} from './anchor/anchor-link'; import {ESLDemoBanner} from './banner/banner'; import {ESLDemoSwipeArea, ESLDemoWheelArea} from './esl-events-demo/esl-events-demo'; +import {ESLDemoPopupGame} from './esl-popup/esl-d-popup-game'; if (!CSS.supports('(height: 100dvh) or (width: 100dvw)')) ESLVSizeCSSProxy.observe(); @@ -70,12 +78,13 @@ ESLDemoBackLink.register(); ESLDemoBanner.register(); ESLDemoSwipeArea.register(); ESLDemoWheelArea.register(); +ESLDemoPopupGame.register(); // Test Content ESLRandomText.register('lorem-ipsum'); // Register ESL Components -ESLImage.register(); +ESLImageContainerMixin.register(); ESLMedia.register(); ESLToggleableDispatcher.init(); @@ -107,6 +116,15 @@ ESLNote.register(); ESLNoteIgnore.register(); ESLTooltip.register(); +ESLCarousel.register(); +ESLCarouselNavDots.register(); +ESLCarouselNavMixin.register(); +ESLCarouselTouchMixin.register(); +ESLCarouselKeyboardMixin.register(); +ESLCarouselRelateToMixin.register(); +ESLCarouselAutoplayMixin.register(); +ESLCarouselWheelMixin.register(); + ESLAnimate.register(); ESLAnimateMixin.register(); @@ -117,6 +135,9 @@ ESLOpenState.register(); // Share component loading import (/* webpackChunkName: 'common/esl-share' */'./esl-share/esl-share'); +// Anchornav component loading +import (/* webpackChunkName: 'common/esl-anchornav' */'./esl-anchornav/esl-anchornav'); + if (document.querySelector('uip-root')) { // Init UI Playground import (/* webpackChunkName: "common/playground" */'./playground/ui-playground'); diff --git a/site/static/assets/common/open-source.svg b/site/static/assets/common/open-source.svg new file mode 100644 index 000000000..3b73a7dcb --- /dev/null +++ b/site/static/assets/common/open-source.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/static/assets/common/print.svg b/site/static/assets/common/print.svg new file mode 100644 index 000000000..0a915899c --- /dev/null +++ b/site/static/assets/common/print.svg @@ -0,0 +1,5 @@ + diff --git a/site/static/assets/common/puzzle-pieces.svg b/site/static/assets/common/puzzle-pieces.svg new file mode 100644 index 000000000..d7b0ec60d --- /dev/null +++ b/site/static/assets/common/puzzle-pieces.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/static/assets/examples/anchornav.svg b/site/static/assets/examples/anchornav.svg new file mode 100644 index 000000000..0b0b3f03d --- /dev/null +++ b/site/static/assets/examples/anchornav.svg @@ -0,0 +1 @@ + diff --git a/site/static/assets/examples/animate.svg b/site/static/assets/examples/animate.svg index 5d11df6fd..196663ec0 100644 --- a/site/static/assets/examples/animate.svg +++ b/site/static/assets/examples/animate.svg @@ -1,4 +1,4 @@ - + diff --git a/site/static/assets/logo-pretty.svg b/site/static/assets/logo-pretty.svg index 1a726725a..38240a4c5 100644 --- a/site/static/assets/logo-pretty.svg +++ b/site/static/assets/logo-pretty.svg @@ -1,102 +1,102 @@ diff --git a/site/static/assets/logo-white.svg b/site/static/assets/logo-white.svg new file mode 100644 index 000000000..d677ddd6b --- /dev/null +++ b/site/static/assets/logo-white.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/site/static/assets/presentation/angular.svg b/site/static/assets/presentation/angular.svg new file mode 100644 index 000000000..e29cb4052 --- /dev/null +++ b/site/static/assets/presentation/angular.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/site/static/assets/presentation/react.svg b/site/static/assets/presentation/react.svg new file mode 100644 index 000000000..2c21bcbc0 --- /dev/null +++ b/site/static/assets/presentation/react.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/site/static/assets/presentation/vue.svg b/site/static/assets/presentation/vue.svg new file mode 100644 index 000000000..8d5f9d453 --- /dev/null +++ b/site/static/assets/presentation/vue.svg @@ -0,0 +1,4 @@ + + + + diff --git a/site/views/_data/banner.yml b/site/views/_data/banner.yml index e7aa8f22d..1af1c0345 100644 --- a/site/views/_data/banner.yml +++ b/site/views/_data/banner.yml @@ -1,5 +1,5 @@ title: "Contribute to ESL documentation" cookie: contrib-doc-hide content: | - Found a typo? Have an interesting usage example to share? Want to help improve our documentation? + ⓘ Found a typo? Have an interesting usage example to share? Want to help improve our documentation? You are very welcome to contribute to ESL. Check out our [documentation contribution guide](/introduction/contribute/#contributing-to-esl-documentation). diff --git a/site/views/_includes/landing/marquee.njk b/site/views/_includes/landing/marquee.njk index f34a7f20e..8d2f5d357 100644 --- a/site/views/_includes/landing/marquee.njk +++ b/site/views/_includes/landing/marquee.njk @@ -15,7 +15,7 @@