Skip to content

Latest commit

 

History

History
2101 lines (1095 loc) · 108 KB

CHANGES.md

File metadata and controls

2101 lines (1095 loc) · 108 KB

Changelog

See the history for older changelog entries.

9.9.16 (2024-08-21)

Maintenance

  • Update dependencies with newer patch-level versions. (118f031)

9.9.15 (2024-08-20)

Bug Fixes

  • pat-tiptap: Upgrade pat-tiptap to 4.9.4 to fix a problem with adding colums to tables. (5a0281e)

9.9.14 (2024-08-19)

Bug Fixes

  • core dom: Avoid circular imports. (962d5f2)

    Remove BBB export "add_event_listener" and "remove_event_listener" to avoid circular imports. This fixes a test-run problem in pat-tiptap and was long overdue anyways.

9.9.13 (2024-08-19)

Bug Fixes

  • Build: Apply "npm pkg fix" to correct the repository URL. (cfec736)

  • Fix reference to 3rd party styles in stylesheets. (d00253d)

    Since latest scss build tools which became available in @patternslib/dev version 3.6 references to node_modules need to be left out. The build tool searches in node_modules anyways. This is now fixed.

  • pat-carousel: Fix SASS compilation warnings. (e4e2dae)

    Upgrade to a version of slick.js where the compilation warnings are fixed.

  • pat-inject: Fix failing test. (1472b06)

    Recent Jest/jsDOM stopped working with uppercase tag selectors. This is now fixed without making compromises to production code, as the new result is more readable.

Maintenance

  • pat-inject: Fix some test method names. (e9a5257)

  • pat-inject: Rework _rebaseHTML to non-JQuery code as preparation to fix a failing test with recent @patternslib/dev. (df710a2)

  • Update GitHub Actions workflow. (a413e26)

  • Upgrade devDependencies. (bda3cf1)

9.9.12 (2024-07-23)

  • Include fix for pat-tiptap table handling

9.9.11 (2024-07-23)

  • empty release

9.9.10 (2023-11-27)

9.9.10-alpha.4 (2023-11-23)

Features

Bug Fixes

  • Upgrade node version for GitHub Actions. (1cf4d6a)

9.9.10-alpha.3 (2023-11-17)

Bug Fixes

  • core dom find_form, pat autosubmit: Add support for pat-subform. (bd19154)

    Subform was recently lost when introducing dom.find_form. Now subform support is back in pat-autosubmit.

  • pat subform: Correctly unregister the submit event on Pattern destroy. (8252014)

Maintenance

  • pat subform: Modernize code. (dc7c0ff)

9.9.10-alpha.2 (2023-11-10)

Maintenance

  • pat autosubmit: Improve the code to find the related form for an input. (445fe69)

9.9.10-alpha.1 (2023-11-09)

Features

  • core dom: find_form - find a related form element. (01b348d)

    Add a function to find a related form element. If called on any element it would first try to get a input element and get it's associated form - which can be different and as a last resort to find the element's enclosing form. Otherwise return undefined.

Bug Fixes

  • pat autosubmit: Re-add support for autosubmit on non form elements. (a2530f3)

    Fix a problem introduces in Patternslib 9.9.7 where pat-autosubmit did not work when not defined on a form or input element.

As a side effect, the submit event is now always invoked on the related or nearest form of the element where pat-autosubmit was defined on. If that element is not a form element a related (input.form) or the nearest parent form is searched and the submit event invoked upon.

Maintenance

  • pat autosubmit: Improve debug messages. (8c01058)

  • pat inject: Add more debug messages. (fddb3b6)

9.9.10-alpha.0 (2023-11-08)

Features

  • core events: Support the submitter property on submit_event events. (2e6b7e5)

Bug Fixes

  • pat autosubmit: Fix a typo where pat-autosubmit wasn't working for subforms anymore. (3be0170)

  • pat autosubmit: Trigger the submit event with the correct submitter property. (36c0c36)

    This resp. the previous commit in event.js fixes a problem where the submitter was the added to the browser automatically and could lead to incorrect form submission data in combination with pat-ajax. E.g. we had a case where for a file upload the delete button's value was submitted, where it shouldn't have.

9.9.9 (2023-11-06)

Features

  • pat inject: Support submit buttons with child elements. (3821ca8)

    Send the value of a submit button even if a child element of the submit button was clicked and not the submit button itself.

Bug Fixes

  • pat inject: Fix issue with submit buttons which are added later. (edf9f5e)

    Fix an issue with submit buttons which were added after initialization of pat-inject which did not send their value (e.g. via a pat-inject call).

Ref: scrum-1670

Maintenance

  • pat inject: Restructure pat-inject 9.2 tests. (981d71f)

  • Upgrade caniuse-lite db. (8ccdc6d)

9.9.8 (2023-10-23)

Bug Fixes

  • pat-push: Fix form submits not working with pat-inject. (09822c5)

  • pat-subform: Fix subform submits not working with pat-inject. (79436cb)

Maintenance

  • pat-ajax: Use bare JavaScript submit for tests. (98e4235)

  • pat-inject: Use bare JavaScript submit for tests. (bec5184)

  • pat-sortable: Use bare JavaScript submit for tests. (59bbe4d)

9.9.7 (2023-10-22)

Features

  • core events: Add a event factory for a generic bubbling and cancelable event. (ed6777e)

Bug Fixes

  • pat-inject: Fix problem with pat-autosubmit together with pat-sortable and/or pat-clone. (2e3d9a2)

  • pat-inject: Fix problem with pat-autosubmit. (8ab6029)

    Fix a problem since Patternslib 9.9.6 where pat-inject didn't work together with pat-autosubmit.

Maintenance

  • pat-autosubmit: Add a test for delayed autosubmit. (e487ff5)

  • pat-autosubmit: Make use of add_event_listener. (035bd76)

    This has advantages regarding preventing double registrations and allowing wildcard removal.

  • pat-autosubmit: Number the individual test cases. (9d20ea1)

  • pat-autosubmit: Simplify the sortable+clone demo example a bit. (a8b316b)

  • pat-inject: Log a warning if inject isn't initialized when pushState isn't available. (2b897ca)

9.9.6 (2023-10-20)

9.9.6-alpha.3 (2023-10-16)

Features

  • core events: remove_event_listener - support removal by id and all at once. (2e78439)

    Previously registered events can now be removed by a matching id with no element given, like: remove_event_listener(undefined, "my-event-id"); When called with no parameters like "remove_event_listener()" all registered events are removed.

  • core events: remove_event_listener - support wildcard ids. (b2d0651)

    The id parameter can be a wildcard string, e.g. test-*-event, which would match any event which starts with "test-" and ends with "-event". The wildcard "*" can be anywhere in the string and also be used multiple times. If no wildcard is present the search string is used for an exact match.

  • core utils: regexp_from_wildcard - Create regular expressions from wildcard strings. (4cf724a)

    This utility can be used for search strings with wildcards like "test-*-xyz". The wildcard can be at the beginning, somewhere in the middle or at the end and multiple wildcards can be used. This method was factored out from removeWildcardClass for broader usage.

Bug Fixes

  • core events: Fix references in add_event_listener and remove_event_listener. (7dd9aff)

    add_event_listener and remove_event_listener did incorrectly use an object instead of a map to store element references. This is now fixed.

  • core events: Fixes for remove_event_listener. (c2caf48)

    • Fix removing all events on a given element.
  • Clean up the event registry after removing events.
  • pat checklist: Fix incorrect usage of the dispatch method. (0e6eb01)

    This fixes a performance problem with pat-checklist.

  • pat-inject: Don't submit forms with invalid data. (a0fa4d2)

    Fix a problem with pat-inject and pat-validation where forms with invalid data could be submitted and the submit button wasn't inactive. The problem was fixed in two ways:

  • pat-inject now has a check for browser-native form validation. Invalid forms would not be submitted.

  • pat-inject now waits a tick before it get's initialized. Modern BasePattern based patterns including pat-validation are all deferred for 1 tick by design. pat-inject, being and older Pattern isn't deferred and thus initialized before pat-inject. It's initialized before pat-validation even though we have some Pattern initialization reorganization code in place - pat-inject not being deferred will have it's event handlers always run before any others. But now, with the 1-tick defer in place, pat-inject's event handlers are run in the correct order - after pat-validation form validation which in case of an invalid form would also deactivate the submit button.

Maintenance

  • core utils: Dispatch - document postpone parameter. (cd7822c)

    Better document the postpone parameter of the dispatch method.

  • pat checklist: Infinite scrolling example. (18ac157)

    Add infinite scrolling example to demonstrate a performance problem which is solved by in this release.

  • pat checklist: Use Patternslib event factory. (e12aaac)

    Use Patternslib core event factory for the change event.

  • pat checklist: Use Patternslib event listeners. (69831f3)

    Change to Patternslib core event listeners to avoid double registration and allow better unregistration.

This fixes a performance problem with pat-checklist.

9.9.6-alpha.2 (2023-08-30)

Maintenance

  • Upgrade pat-tiptap with new tiptap version. (f0c2602)

9.9.6-alpha.1 (2023-08-30)

Breaking Changes

  • pat-scroll: Remove implicit and unpreventable scroll support for pat-stacks. (92e1e6b)

    With a pat-scroll as parent of a pat-stacks enabled navigation anchors, the page would scroll to the target configured for pat-scroll. This behavior could not be prevented and led to unwanted effects when using pat-stacks inside pat-collapsible which itself uses pat-scroll when configured properly.

This commit removes the scrolling support for pat-stacks within pat-scroll in favor of an explicit and configurable scrolling behavior in pat-stacks itself.

Features

  • core dom: Add dom.element_uuid to get/set an uuid to a DOM node. (a7e5de1)

  • pat stacks: Add a destroy method to unregister event handlers. (8479cfa)

  • pat-stacks: Add configurable scroll support. (a8aae63)

    Add "scroll-selector" and "scroll-offset" arguments to pat-stacks, likewise as in pat-collapsible. "scroll-selector" accepts a CSS selector string or the special values "self" to scroll to the element itself and "none" to block any scrolling behavior from parent pat-stacks configuration options.

With these configuration options you can control the scrolling behavior for pat-stacks on a fine-grained level.

Maintenance

  • pat-stacks: Adapt code to Patternslib standards. (2f95379)

  • Upgrade dependencies. (9bd50b8)

9.9.6-alpha.0 (2023-08-11)

Bug Fixes

  • pat-ajax: Support anchors without a href attribute and forms without an action attribute. (099da3c)

    The URL can still be set via the data-pat-ajax attribute. This fixes a problem where pat-inject enabled forms without an action attribute but a submit button with a formaction attribute would break.

  • pat-inject: For submit buttons with a formaction, do not call ajax.onClickSubmit twice. (22d814f)

  • pat-inject: Support submit buttons without a type attribute. (6882f45)

Maintenance

  • core parser: Adapt code to Patternslib standards. (9079a47)

  • pat-ajax: Improve the default function from the url argument to not use jQuery. (bb8ce9d)

9.9.5 (2023-07-28)

Bug Fixes

  • pat-close-panel: Do not prevent closing for formnovalidate buttons. (1272ac5)

    Do not prevent closing of panels when a form with invalid data is submitted when a button with the formnovalidate attribute is pressed. This is useful for cases where a "cancel" button actually needs to submit to roll back any changes which were already made.

  • pat-collapsible: Allow to explicitly clear the scroll selector. (9c99a2e)

    In case of nested pat-collapsible elements, child elements inherit the options from parent elements, including the scroll-selector. If the child element should do no scrolling, it needs to explicitly be reset. This can be done by adding th following options to the collapsible data attribute: data-pat-collapsible="scroll-selector: none"

Maintenance

  • Dependencies: Upgrade dependencies. (a46de2e)

  • pat-validation: Improve documentation - based on HTML standards, CSS‌ pseudo classes, formnovalidate buttons. (daab725)

9.9.4 (2023-05-29)

Maintenance

  • Upgrade to @patternslib/dev 3.3.5 which fixes an incorrect release-it hook config. (e909e34)

9.9.3 (2023-05-29)

Maintenance

  • Upgrade to @patternslib/dev 3.3.4 (61b3c56)

    This fixes the wrong version number comment in the package-included build files.

9.9.2 (2023-05-29)

Maintenance

  • Upgrade to @patternslib/dev 3.3.3 (35c63df)

    This fixes a missing build in npm releases. Now you can again use jsdelivr and unpkg.

9.9.1 (2023-05-23)

9.9.1-alpha.0 (2023-05-23)

Bug Fixes

  • pat inject: Second attempt to fix the scrolling behavior, where the scrolling target could not be found. (829a6a6)

    The original problem fixed in commit 911b8b8660197d44291c7d5a9537bbb496df1a38 for 9.9.0-beta.1 addressed a problem where the scroll target was not a direct child of the injected content but some levels deeper. But this fix broke the situation where the scroll target is a direct child of the injected content. The fix applied here handles both situations.

9.9.0 (2023-05-23)

9.9.0-beta.3 (2023-05-17)

Features

  • core dom: Add get_position, scroll_to_element, scroll_to_top and scroll_to_bottom functions. (0368c48)

    To help with scrolling tasks and to unify them these methods were introduced:

  • get_relative_position: Get the position of an element relative to another.
  • scroll_to_element: Scroll the given scroll_container to a given element.
  • scroll_to_top: Scroll the container to the top.
  • scroll_to_bottom: Scroll the container to the bottom.

Maintenance

  • pat inject: Use the new scrolling helpers from core.dom. (89d3ef3)

  • pat scroll: Use the new scrolling helpers from core.dom. (f37bc99)

    This fixes also the scrolling position from the previous release which would have been wrong for many cases where the scrolling target is within a positioned element.

9.9.0-beta.2 (2023-05-17)

Bug Fixes

  • pat scroll: Fix scroll to position. (a6d72f3)

    The scrolling offset was incorrectly calculated since Patternslib 9.9.0-alpha.5. Fix the calculation for the scrolling position by using offsetTop and offsetLeft instead getBoundingClientRect.

9.9.0-beta.1 (2023-05-17)

Bug Fixes

  • pat display time: Default to locale-formatted output. (c77d01a)

    Default to formatted output according to the current locale. This fixes a regression since 4.1.0 which came with the date picker's styled behavior but let display time output an ISO date instead of a formatted date when not output format was set.

  • pat inject: Allow to use a scroll container other than the injection target. (efde472)

    This fixes a problem when the content should scroll to an element which is within a scroll container below the injection target. Until now the scroll container could only be a parent of the injection target. Now it can be a parent of the scroll-target.

  • pat inject: Fix scrolling behavior, where the scrolling target could not be found. (911b8b8)

  • pat validation: Do not disable input elements with formnovalidate. (f30af14)

    Do not disable input elements with the formnovalidate attribute set when form validation fails. E.g. a cancel button: <button formnovalidate>Cancel</button>.

    Fixes #1132. closes #1132

Maintenance

  • pat inject: Give tests a individual number to allow easier selectively testing individual tests. (e819b84)

9.9.0-beta.0 (2023-05-11)

Bug Fixes

  • pat calendar: Do not set a Content-Type header when no body is submitted (89d34c1)

    Closes #1156 closes #1156

  • pat navigation: Fix current marker anchors with child elements. (8578b1b)

    The links within a pat-navigation structure might have child elements, e.g. a span within an anchor. In that case the click target is the span and not the anchor. Apply a fix where a closest anchor of the click target is searched, which might be the click target itself.

Maintenance

9.9.0-alpha.5 (2023-04-21)

Bug Fixes

  • pat collapsible: Adapt to changed pat-scroll. (7211616)

Breaking Changes

  • pat scroll: Simplify pattern and remove obsolete functionality. (b62e6e0)

    Since pat-navigation now supports marking navigation and content items with CSS classes based on their scroll position this functionality is removed from pat-scroll. You can still use pat-scroll in combination with pat-scroll-marker to achieve the same functionality like before.

Also the jQuery based scroll animation is removed as smooth scrolling is supported by CSS since long.

Maintenance

  • core utils: Deprecate elementInViewport in favor of isElementInViewport. (a9b5035)

  • pat scroll: Update documentation. (fdb44bf)

  • Upgrade dependencies. (75acb81)

9.9.0-alpha.4 (2023-04-19)

Bug Fixes

  • pat navigation: Change default scroll-trigger-selector to "a[href^='#'].scroll-trigger". (efc5826)

    In the alpha.3 release it was "a[href^='#'].scroll-marker" where it should have been "a[href^='#'].scroll-trigger". This is fixed now.

9.9.0-alpha.3 (2023-04-19)

Features

  • core utils: Add is_option_truthy to check Pattern options for a truthy value. (6a6e9fa)

    A values "undefined", "null", "false", "none" or "" are considered falsy and can be used to disable some functionality. Other values including "0" are considered to be true.

  • core utils: parseLength: handle unitless lengths as pixels. (15090e3)

  • pat navigation: Implement scroll-trigger-selector option. (818c68d)

    Define the CSS selector which is used to find navigation links with hash URLs. The default is "a[href^='#'].scroll-marker" which would find all anchor elements which href starts with a "#" sign and have the class scroll-marker. The restriction on scroll-marker allows for other hash-urls in the same navigation - e.g. a pat-tooltip which references a local content. If you set it to "none" the scroll marker functionality is not activated.

  • pat scroll-marker: Implement selector option. (678aee5)

    Define the CSS selector which is used to find navigation links with hash URLs. The default is "a[href^='#']" which would find all anchor elements which href starts with a "#" sign.

Bug Fixes

  • pat navigation: Allow "none" to be a valid option for scroll-item-visibility. (456e05a)

  • pat navigation: Rename scroll-marker- options to scroll-item. (a40fc0f)

    Implement review comments.

This is not listed as "breaking" change because this change on the scroll-marker feature happens within the alpha phase.

  • pat scroll-marker: Allow "none" to be a valid option for visibility. (e506ed2)

9.9.0-alpha.2 (2023-04-18)

Features

  • core dom: Add escape_css_id method. (5aa7a52)

    Get an escaped CSS selector for a given id string.

id selectors should - but don't have to - start with a letter. If the id starts with a number or a dash, it should be escaped. This method does that for you.

Bug Fixes

  • pat navigation: Do escaping for hash id selectors, so they are allowed to start with a number. (75d8283)

  • pat scroll-marker: Do escaping for hash id selectors, so they are allowed to start with a number. (d733cb7)

  • pat scroll-marker: The init method does not need to be async. (c308b66)

9.9.0-alpha.1 (2023-04-17)

Bug Fixes

  • pat scroll-marker: Do not break if no scroll-marker observables have been found. (be6723f)

  • pat scroll-marker: Use the correct scroll container. (ccc3ddc)

    The scroll container was potentially wrong and is a parent of the hash-link target contents and not a parent of the navigation where pat-scroll-container (or pat-navigation) are defined upon.

Maintenance

9.9.0-alpha.0 (2023-04-17)

Features

  • core basepattern: Allow to specify parser options on the pattern. (eb66159)

  • core basepattern: Throw pre-init.PATTERNNAME.patterns event. (cacb743)

    Throw a bubbling pre-init.PATTERNNAME.patterns event before initializing the event for new class-based patterns.

  • core base: Throw pre-init.PATTERNNAME.patterns event. (e9a8f2f)

    Throw a bubbling pre-init.PATTERNNAME.patterns event before initializing the event for old prototype based patterns.

  • core dom: Add get_scroll_x and get_scroll_y helper methods to get the horizontal/vertical scrolling position. (a3ecf93)

  • core dom: Implement get_visible_ratio to calculate the visible ratio between an element and a container. (622d5e2)

  • core utils: add parseLength method for parsing px and % lengths. (95c16b8)

  • core utils: Add threshold_list helper for intersection observers. (52d9ecf)

  • core utils: debouncer - Add postpone option for callback to be run after all debounce calls or in between. (12c980b)

    If "postpone" is set to "true" (the default and previous behavior) the callback will only be called after no more debouncer calls are done for the given timeout. If "postpone" is set to "false" the callback will be run after the timeout has passed and calls to "debouncer" in between are ignored.

  • pat navigation: Add scroll-marker functionality. (fb8eb82)

    The pattern now sets current and in-view classes on the navigation and the content when scrolling to hash-link targets.

  • pat scroll-marker: Add pattern to set navigation classes based on the scroll position. (6483649)

    The new scroll-marker pattern allows you to set classes on the navigation and content elements for hash-links. If a content section with a hash id and a corresponding navigation link with the same hash-url is visible, the navigation and content section are marked with CSS classes.

Maintenance

  • pat inject: Use dom.find_scroll_container instead jQuery :scrollable selector. (14af661)

  • pat navigation: Don't do option grouping. There will some options be added where grouping get's in the way. (3c55864)

  • pat navigation: Switch to class based pattern. (5b0fc43)

  • pat scroll-box: Cleanup code. (148f79a)

  • pat scroll-box: Use dom.scroll_y instead of own implementation. (e5a4b24)

  • pat scroll: Code cleanup. (a66a9f8)

  • pat-inject: Remove obsolete hooks option. (411653d)

    The hooks option allowed to throw custom events after successful injection. It was a multi-value argument but only allowed "raptor" as value. Raptor was a WYSIWYG editor which has not been further developed since 10 years and which we're not supporting anymore since quite some time. Thus this option could be safely removed and this change is not a breaking change.

If you need to react on events, see the documented event list in pat-inject's documentation.

  • pat-inject: Remove obsolete raptor-ui trigger. (ae01e20)

    Remove the ".raptor-ui .ui-button.pat-inject" trigger selector which was for raptor WYSIWYG HTML editor support. This editor isn't actively developed since almost 9 years and not supported anymore. This is not a breaking change.

  • Upgrade dependencies. (15b6adb)

  • Upgrade luxon to 3.3.0. (b19f1e5)

    The Module federation warning "Unable to find required version" is fixed since webpack v5.78.0 for modules which do package.json self-referencing.

Ref:

9.8.3 (2023-04-17)

Maintenance

  • Docs: Remove section about IE polyfills from README. (b9c3697)The IE polyfills were removed in Patternslib 9.8.0-alpha.2.

  • pat inject: Document events thrown by the pattern. (d3a7a0e)

  • pat inject: Document the scroll argument. (1b9604e)

9.8.3-alpha.2 (2023-03-09)

Maintenance

  • Upgrade pat-tiptap to 4.8.1. (eda16d7)

9.8.3-alpha.1 (2023-03-09)

Bug Fixes

  • core events: await_pattern_init - check for event coming from correct element. (a532ebf)Check if the init/not-init events were thrown from the Pattern's own element. When a child element did an unsuccessful Pattern init (rejected because already initialized) and at the same time the parent element also tried to initialized the same Pattern await_pattern_init could fail. The not-init event bubbled up which was incorrectly catched by await_pattern_init on the parent element.

Maintenance

  • core events test: Remove unused test. (ca16b1d)

  • core utils debounce tests: await for number of debounce calls to correctly test the debounce method. (0c3dea7)

  • Upgrade dependencies. (bfaf95c)

9.8.3-alpha.0 (2023-03-06)

Bug Fixes

  • pat auto submit: Fix cloned elements not submitted when their input changes. (f36c69b)

9.8.2 (2023-02-24)

9.8.2-alpha.0 (2023-02-14)

Maintenance

9.8.1 (2023-02-02)

Features

  • build: Update patternslib.com with each non-pre release. (143031d)

Bug Fixes

  • Build: Fix luxon (again) to 2.4.0 to avoid webpack MF error due to non standard package.json setup. (9661ae7)

  • pat checklist: Also set the "checked" and "unchecked" classes on the toggle checkbox. (8154775)

9.8.1-alpha.0 (2023-01-25)

Features

  • pat checklist: Toggle checkbox to toggle checked boxes true/false. (2a435fa)

Maintenance

  • Build: Upgrade dependencies. (7e7cc20)

  • pat-checklist: Document the available options. (625f7e5)

9.8.0 (2022-12-23)

Maintenance

  • Build: Upgrade dependencies. (befb845)

9.8.0-beta.6 (2022-12-22)

Bug Fixes

  • pat-sortable: Initialize already existing sortable handles. (b3f5077)

    Also allow the sortable itself to be the handle.

9.8.0-beta.5 (2022-12-22)

Features

  • pat-sortable: Support initialization after injection. (afaf388)

9.8.0-beta.4 (2022-12-22)

Bug Fixes

  • pat-sortable: Show dragable item image while dragging. (1c9eb80)

  • pat-sortable: sortable-handle needs to be injected at last element of the sortable item. (db02541)

9.8.0-beta.3 (2022-12-22)

Features

  • core events: Add dragstart and dragend event factories. (73d7fc7)

Bug Fixes

  • Build: Load modernizr early and non-asynchronously. (8bc9b66)

    Include the modernizr bundle by injecting a script tag. This ensures modernizr is loaded synchronously and executing early and sets it's feature detection classes before the layout is done by the browser.

    This reverts the breaking change from the previous Patternslib 9.8.0-beta.2 release. The separate modernizr.min.js build file is still kept, but modernizr is included by the main Patternslib bundle. There is no need to add another script tag to include modernizr.

    You can disable loading of modernizr by setting the following before the Patternslib bundle.min.js is included:

    <script>window.__patternslib_disable_modernizr = true;</script>

    Also, the "js" class is set on the HTML root tag when a "no-js" class was present regardless of the "__patternslib_disable_modernizr" setting.

    Since Patternslib 9.0.0-alpha.0 where we introduced webpack module federation for our bundles, Modernizr is loaded asynchronously and applying it's CSS classes a tick too late. For example, the change from the "no-js" to the "js" class was done while the tiles have already been drawn and visible on the screen, resulting in screen flickering. There are a number of projects which depend on Modernizr being applied early.

  • pat-sortable: Initialize sorting on cloned elements. (d7abbc0)

    Fix sorting behavior on cloned elements, which broke on Patternslib 9.8.0-alpha.0.

Maintenance

  • Build: Do not include the example minimalpattern in the build. (9712019)

  • Build: Remove now unused globals module. (8e05515)

    jQuery is now imported and set earlier.

  • Docs: Update some documentation. (4ccf1bd)

  • pat-sortable: Modernize tests. (bf25dc4)

9.8.0-beta.2 (2022-12-19)

Bug Fixes

  • Build: Also include necessary _sass directory in the npm package. (70da6b1)

  • Build: Also include the webpack configs in the npm package. (f6bf2bf)

    Previous packages depending on @patternslib/patternslib also extended Patternslib' webpack configs. Include these configs for backwards compatibility.

  • pat-bumper: Remove style import from the patterns SCSS file. (094010b)

Breaking Changes

  • Build: Separate modernizr into a own bundle. (875b041)

    Since Patternslib 9.0.0-alpha.0 where we introduced webpack module federation for our bundles, Modernizr is loaded asynchronously and applying it's CSS classes a tick too late. For example, the change from the no-js to the js class was done while the tiles have already been drawn and visible on the screen, resulting in screen flickering. There are a number of projects which depend on Modernizr being applied early.

    This change now fixes the problem by separating the Modernizr build from the Patternslib bundle.

    If you depend on Modernzir, please include the new modernizr.min.js bundle in a script tag, preferably before the Patternslib bundle bundle.min.js.

    The global switch "window.__patternslib_disable_modernizr" is also removed, as it got useless.

Maintenance

  • Add modernizr.min.js bundle to main index.js demo file for demonstration. (96a7ed2)

  • Build: Directly build the modernizr bundle. (ee2acdc)

    Do not use an webpack entry to build the modernizr bundle with an webpack runtime overhead. Instead, build it directly but abusing the webpack CopyPlugin transform mechanism. We could also build the modernizr bundle from the Makefile but that wouldn't provide the file when watching or when running webpack-dev-server.

  • Build: Optimize modernizr configuration. (e1fd8de)

    Remove unnecessary tests in .modernizrrc.js and slim down the build size.

  • Upgrade dependencies. Also Upgrade to jQuery 3.6.2. (071e084)

9.8.0-beta.1 (2022-12-11)

Features

  • core basepattern: Add a destroy method. (f9ca65a)

    The destroy method removes the pattern instance from the element. This is necessary to re-initialize the same pattern on the same element.

  • core events: Support await_pattern_init with pattern double registration attempt. (e8640a9)

    When a pattern is tried to be initialized on the same element twice, throw an event and use that event in await_pattern_init to reject the promise. When using await_pattern_init you might want to try/catch the block to handle any possible double-registration errors.

  • core events: Support once-events in add_event_listener. (fc0e333)

    Add support for once-events in add_event_listener and unregister them when called from the event_listener_map.

Bug Fixes

  • pat-tooltip: Cleanup tooltip after it's destroyed. (ac27e20)

    When the tooltip is destroyed, also call the tooltip's BasePattern destroy method to clean up and release the tooltip from the element. After that it can be instantiated on the same element again. This change was necessary after the recent BasePattern change.

  • pat-validation: Make sure to cancel submit events on invalid forms. (e218af2)

    Make sure that submit events are canceled on invalid forms by using a capturing event handler which is invoked before non-capturing events.

    The previous commit exposed a problem with the submit event handling, where the then non-capturing submit event handler was registered later than the one from pat-inject because pat-validation's async init method where pat-inject's init method is yet non-async. That happened even the pat-validation's pattern initialization is enforced to run first due to registration reordering in the Pattern registry. Now with the capturing event handler this problem is fixed.

Maintenance

  • core basepattern: Use identity instead equality comaprison instead in tests for stricter testing. (ce962d2)

  • Exclude more files from npm packages. (c312b96)

  • Only include dist/ and src/ directories in the npm package. (babc4b6)

  • pat-validation: Change to class based pattern. (11543ea)

    This is needed for better customization in deriving projects.

  • Upgrade dependencies. (399105f)

  • Use browserslist defaults. (8867fd8)

9.8.0-beta.0 (2022-12-07)

Bug Fixes

  • Build: Fix tiptap error. (6e67655)

    Fix tiptap "Unhandled Promise Rejection" error due to multiple versions of a tiptap dependency installed. Removing yarn.lock in re-installing solves this.

9.8.0-alpha.3 (2022-12-07)

Bug Fixes

  • pat-clone-code: Fix a Content-Security-Policy problem. (e38f987)

    Do not use dom.template for the wrapper template to not get caught by the browser's Content-Security-Policy. If set, a unsafe-eval error would be thrown and the pattern refuse to run.

Breaking Changes

  • pat-validation: Remove error-template option. (78c544b)

    This is a breaking change.

    Due to a Content-Security-Policy problem with dom.template when unsafe-eval is not set - which you wouldn't set if possible - we had to remove the error-template parameter. Instead the template is now defined in a error_template method on the Patten class and can be customized by subclassing and extending the pat-validation pattern or by patching it via Pattern.prototype.

Maintenance

  • Build: Upgrade dependencies. (fed2716)

  • core dom template: Warn about using dom.template due to a CSR probmel. (989fa9f)

    Warn about a problem of dom.template with a Content-Security-Policy set. If a CSR rule is set then dom.template would break the code unless 'unsafe-eval' is allowed (which you wouldn't normally allow when using a CSR). Therefore it is not recommended to use this template function.

  • pat-clone-code: Better example, correct documentation. (028ba07)

  • Remove IE related code paths. (9de0d95)

9.8.0-alpha.2 (2022-12-07)

Features

  • Build: Include the build in the npm package. (544b589)

    The compiled build is now included in npm packages by including the dist directory in .npmignore. To not increase the package size too much the JavaScript map files are not included. Now you can include Patternslib by using unpkg or jsDelivr like so:

https://unpkg.com/@patternslib/[email protected]/dist/bundle.min.js or https://cdn.jsdelivr.net/npm/@patternslib/[email protected]/dist/bundle.min.js

  • core dom: Add is_input method. (554e32e)

    Add is_input to test if a element is of input type. This is basically the same as $(":input") from Sizzle/jQuery.

  • pat-markdown: Soft-depend on pat-syntax-highlight. (cf0f6e3)

    Only highlight code blocks when the pattern is available.

    Not hard-depending and importing pat-syntax-highlight fixes a problem where only including pat-markup also included pat-syntax-highlight and it's big highlight.js library.

    This can reduce the generated bundle size significantly.

  • pat-tooltip: Soft-depend on pat-markdown. (1f81238)

    Only register the markdown data type handler when the pattern is available.

    Not hard-depending and importing pat-markdown fixes a problem where only including pat-tooltip also included pat-markdown and pat-syntax-highlight with it's big highlight.js library.

    This can reduce the generated bundle size significantly.

Bug Fixes

  • pat-bumper: Fix runtime error due to reference to wrong container. (893d392)

  • pat-collapsible: Class-based patterns cannot be jQuery plugins. (eedcc47)

  • pat-syntax-highlight: Do not load all languages. (c34d4a0)

    Change the import so that no language is included by default. Instead import the languages dynamically.

    This reduces the download size when pat-syntaax-highlight is used significantly.

  • pat-syntax-highlight: Fix language registration. (19bbb53)

    Fix a typo where all languages were registered as "javascript".

Maintenance

  • Add deprecation note for public_path. (f6d8124)

  • Build: Remove the IE11 polyfills-loader. (6eaddec)

    Clear out the polyfills-loader script but keep the module for backwards compatibility. No IE11 compatibility polyfills are included anymore as support for IE11 has recently really and finally dropped. The polyfills-loader.js file is still shipped but empty for compatibility with projects including the polyfills loader.

  • Build: Remove unused prismljs and google-code-prettify modules. (ed808e5)

  • Build: Update browserslist setting. (a29b9e8)

    Explicitly remove ie11 from browserslist. It wasn't used due to the "not dead" setting anyways.

  • Build: Upgrade @patternslib/dev. (ed8d13a)

  • Build: Upgrade pat-tiptap to 4.7.0. (ad0be10)

  • core basepattern: Avoid code linting problem. (d2836bd)

    Avoid code linting problem and make clear the init method is/can be asynchronous.

  • pat-markdown: Improve registering the markdown handler for pat-inject. (3f17e99)

    Wait a tick before registering the markdown type handler for pat-inject.

    With that there is no need for pat-inject to be imported before pat-markdown, as long as it is imported side by side with pat-markdown.

  • pat-markdown: Switch to class based pattern. (c6dc8b0)

  • pat-stacks: The trigger should be a static property. (4f0bb0f)

  • pat-syntax-highlight: The trigger should be a static property. (e341681)

  • pat-tooltip: Switch to class based pattern. (4fdb12a)

9.8.0-alpha.1 (2022-12-06)

Bug Fixes

  • pat-bumper: Do not calculate padding/margin on viewport. (baae37c)

    On the viewport as scrolling container paddings and margins are not influencing the sticky element's position. This is contrary to other scrolling containers within the document. The position calculation is easier and only consists of the clientWidth/Height to respect scrollbar widths.

  • pat-bumper: Fix position calculation for sticky elements. (4da8d70)

    Following the sticky position specification only top, right, bottom and left values are used to compute the position relative to the scrolling container.

  • pat-bumper: Support dynamic position values. (b70fad2)

    The container and element positions need to be calculated every time, as they are likely to be changed by dynamically assigned classes. This can be the case for different position values based on the scrolling direction classes set by pat-scroll-box.

Maintenance

  • Build: Upgrade dependencies. (5e5b54d)

  • pat-autofocus: Fix sporadic autofocus test failures. (9c13c56)

9.8.0-alpha.0 (2022-12-05)

Features

  • core basepattern: Provide the parser as static attribute. (49db677)

    This change is backwards compatible Change the parser attribute to a static attribute and provide it also on the object. This change was necessary because pat-inject was using the parser on a registered Pattern class to rebase URL configurations in the rebaseHTML method. There was no access to the parser attribute on non-instatiated objects before, now it is.

  • pat-autosuggest: Add a configurable separator for multiple values. (21cbe8f)

Bug Fixes

  • pat-auto-suggest: Adapt to changes from pat-depends where the event is called on the pat-depends element itself. (926de33)

  • pat-autofocus: Refocus on DOM updates by other Patterns. (4dc2963), closes #1092

    Set the focus if appropriate when the DOM has changed and a pat-update event has thrown. Please note, this does not use an IntersectionObserver but relies on other Patterns using the pat-update event. This behavior got lost in Patternslib 6.1 and is now restored.Fixes: #1092

  • pat-bumper: Correctly set the bumpuing classes. (e66b987), closes #1083

    The bumping classes are now set correctly on any bumping direction.

    The logic is adapted to work with any top, right, bottom, left, margin, border and padding setting on a wrapping container, two different containers for x and y scrolling and on the window viewport as container.Fixes: #1083

  • pat-scroll-box: Fix failing tests due to timing inconsitencies. (7a03ef8)

Maintenance

  • core utils: utils.hideOrShow: add updated dom to pat-update event data. (0b5f92f)

  • pat stacks: Modernize code. (7928880)

  • pat-autofocus: Switch to class based patterns. (4302d6c)

  • pat-bumper: Correct documentation. (fa0254c)

  • pat-bumper: No IE11 support anymore. (bae3f55)

  • pat-bumper: Switch to class based patterns. (2b04cbc)

  • pat-clone-code: Make parser attribute a static attribute. (eb70b84)

  • pat-clone: Add updated dom to pat-update event data. (18375fe), closes #1092

    Related: #1092

  • pat-clone: Modernize code. (f0d8d5b)

  • pat-collapsible: Add updated dom to pat-update event data. (fde478c), closes #1092

    Related: #1092

  • pat-collapsible: Modernize code. (870f6dc)

  • pat-collapsible: Switch to class based pattern. (417b0d6)

  • pat-depends: Always throw update event and add changed dom structure. (6152afd), closes #1092

    Trigger pat-update on pat-depends itself and add updated dom structure to pat-update event data. This allows other patterns to also listen to changes in pat-depends. Goes together with the previous change on pat-autofocus.

    Related: #1092

  • pat-equaliser: Add updated dom to pat-update event data. (c66a431)

  • pat-scroll: Add updated dom to pat-update event data. (fc23966)

  • pat-scroll: Code cleanup. (4f27b99)

  • pat-scroll: Fix test markup. (9b788a0)

  • pat-sortable: Add updated dom to pat-update event data. (18711eb)

  • pat-stacks: Add updated dom to pat-update event data. (41f8bb3)

  • pat-stacks: Switch to class based pattern. (6065eae)

  • pat-switch: Add updated dom to pat-update event data. (7434236)

  • pat-toggle: Add updated dom to pat-update event data. (56a0073)

9.7.0 (2022-11-15)

Maintenance

  • Build: Upgrade dependencies. (9258dff)

9.7.0-alpha.5 (2022-10-26)

Bug Fixes

  • pat markdown: Restore old behavior where the trigger element was replaced with the rendered content wrapped in a div. (ecb0330)

9.7.0-alpha.4 (2022-10-24)

Features

  • core dom: Add "delete_data" to remove a previously set variable on a DOM element. (6b128bf)

Bug Fixes

  • pat inject: Fix closing of panels after successful inject. (3ff3b60)Fix case where close-panel event was suppressed while injection is in progress but suppressing was never released. This prevented any other close-panel events from being handled properly.

9.7.0-alpha.3 (2022-10-17)

Features

  • core basepattern: Add one-time event listener registration method. (7df79e7)This implements the one-time listener from the Base pattern. The "one" listener helper is used in "core.events.await_pattern_init" to wait for the pattern initialization to be finished.

Bug Fixes

  • core base: Do not fail if initialized with an empty jQuery object. (34b14b4)

9.7.0-alpha.2 (2022-10-15)

Features

Maintenance

  • Build: Move webpack Module Federation config from here to @patternslib/dev but keep backwards compatible exports in here. (a0f7c07)

  • Build: Upgrade dependencies. (d6c34ac)

  • Docs: Document core.dom.is_visible. (e4f7bfe)

  • Tests: Remove unnecessary console.log from pat-validation tests. (fdaea14)

  • Tests: Remove unnecessary console.log statements from pat-clone-code tests. (19843ad)

  • Tests: Update is_visible mock to latest code changes - hidden is not set anymore due to form validation incompatibilities with Chrome. (41e56e0)

  • Tests: Use real path for @patternslib/patternslib module mapping. When extending this config elsewhere the path would not be right. (37520b7)

9.7.0-alpha.1 (2022-10-11)

Features

  • Build: Add global switch window.__patternslib_disable_modernizr to optionally disable modernizr. (2a0ec96)While this is convenient to quickly disable modernizr and also splits modernizr out from the main bundle entry file it was necessary for the clone-code pattern to get a clean code example for the whole html tree.

  • core registry: Move clone-code Pattern to the beginning. (9f7f5ef)We want clone-code to clone the markup before any other patterns are modifying it.

  • pat-date-picker: Add placeholder support for styled behavior. (752036f)/cc @cornae This fixes the following two issues:

Fixes: #837 Fixes: https://github.com/quaive/ploneintranet.prototype/issues/1289

  • pat-markdown: Initialize syntax highlight when parsing markup. (8fd88c0)

  • pat-markdown: Switch to marked as markdown library to support better syntax highlight libraries. (3739935)

  • pat-sortable: Add the sortable-item class to each sortable element. (0513102)The current situation requires the integrator to add the sortable-item class on all sortables manually. If that is not done there can be styling problems like a missing insert marker which makes it hard to use the pattern. As the pattern already defines what should be a sortable it we also let the pattern assign the class "sortable-item".

  • pat-sortable: Optionally import the sortable styles. (fe90c73)Import the sortable styles when the global variable __patternslib_import_styles is set to true (the default is false). This allows to show the sortable marker without having to separately load all the styles.

  • pat-sortable: Support dynamic sortable lists. (5f3076c)When new items were added to a sortable list e.g. via pat-clone or pat-inject, those items could not be sorted. We are now re-initializing the sortable pattern after a pat-update event and make new elements sortable.

  • pat-syntax-highlight: Switch to highlight.js. (85212ba)highlight.js allows to dyamically load languages in a webpack environment (almost, see next commit). Prism.js is mainly a Node.js library and currently not suited to load languages dynamically.

  • pat-validation: Validate also newly added form elements. (8838da0)When form elements were added via user interaction - e.g. by using pat-clone or pat-inject - those elements were not validated. Now the form validation is re-initialized after a pat-update event and this problem is fixed.

Bug Fixes

  • core registry: Do not scan TextNode content for patterns. (76a83c5)TextNode cannot hold markup, so there is also no needto scan those elements for patterns.

  • pat-date-picker: Do not throw a blur event after selecting a date. (a20a883)When a date was selected with the date picker a blur and changed event was thrown. Now we only throw a changed event if da date was selected. If no date was selected we throw a blur event allow pat-validation do validate required date input fields when no value was given.

  • pat-syntax-highlight: Depend on highlight.js <11. (0f00d8c)highlight.js version 11 does not allow dynamic imports of languages and styles with webpack due to an exports field in package.json.

See: highlightjs/highlight.js#3634

  • pat-validation: Fallback error messages for not-before and not-after. (831ee60)If no error messages were provided for the not-before and not-after constraints on date fields no error messages were shown even when those inputs had form validation errors. Now we are always providing a fallback error message based on the label or input name.

  • pat-validation: Fix problem with multiple form validation runs. (a8b7981)Due to some event listers calling each other multiple times, the form was validated up to 5 times in one validation run. This commit fixes multiple validation runs when a form element was disabled, e.g. when the submit button was disabled after validation errors.

Maintenance

  • core utils: Improve escape/unescape for safer version which makes use use of browser features. (97ca0b1)

  • core utils: safeClone - document which versions of IE are affected. (8bec57a)

  • pat-markdown: Modernize code. (81c4e14)

  • pat-syntax-highlight: Switch to class based pattern. (8fb23e1)

  • pat-toggle: Add alias attribute for attr to toggle an attribute. (fcfdb84)

  • pat-validation: Rename log to logger for better naming. (9ed77c8)

  • pat-validation: Use more debug messages. (c8c656a)

9.7.0-alpha.0 (2022-09-28)

Features

  • Add class based base pattern. (5933a35)This is a new way to define Patterns by extending the BasePattern class and instantiating it on an element. This is additionally to the old Base pattern approach or even the very old approach of just defining a Pattern following the specs. The BasePattern class in core/basepattern uses JavaScript classes with all the object oriented benefits. Yes, that might be syntactic sugar, but then again not.

For usage see: src/core/basepattern.md

Maintenance

  • core registry: Support class based pattern initialization. (2c9e9dd)

9.6.1 (2022-09-28)

Bug Fixes

  • core dom: show/hide - do not set the hidden attribute. (af24138)In Chrome and Safari hidden but required input fields (e.g. hidden automatically by pat-autosuggest or pat-date-picker) cannot be submitted if they fail the browser's native validation. The browser tries to set a validation message but fails because the element is not focusable. See: https://stackoverflow.com/a/28340579/1337474

9.6.0 (2022-09-28)

Features

  • core events: Add blur and focus event factories. (c5942d2)

  • pat auto suggest: Improve pat-validation integration. (11e9a0b)Allow pat-validate to check for validity when select2 was interacted with but no value selected.

  • pat date picker: Improve pat-validation integration. (57c974b)Allow pat-validate to check for validity when date picker was interacted with but no value selected.

  • pat validation: Validate whole form on submit or single error. (bc27e41)Validate the whole form when a single error happens and some elements were disabled or when a form submit is done. This gives the user a better feedback about any data problems in the form and allows the user to see any other errors at all since the submit elements could have been disabled and form validation would eventually not be triggered.

Maintenance

  • Build: Upgrade dependencies. (b3f4f0a)

  • core dom: Fix signature of removeAttribute in show method. (58ddc8e)

  • pat date picker: Use logging framework instead of console.log. (e35932f)

  • Update close-panel documentation. (4a4cd49)

9.5.0 (2022-09-27)

Features

  • pat close panel: Better close-panel support. (fbc20a8)- Do not close panels when the form is invalid and submitted.
  • Simplify the close panel logic by switching to event based triggering.
  • Allow to postpone close panel events by pat-inject until successful injection.
  • Simplify pat-modal's close-panel logic.
  • pat validation: Add submit buttons to disable selector per default. (e6f8ba3)

Bug Fixes

  • core registry: Always put pat-validation first in the pattern execution chain. (27fb575)

  • pat validation: Fix problem with submitting invalid forms with pat-inject. (b01819a)Stop submit event propagation if the form is invalid. This fixes a problem where a invalid form could be submitted via pat-inject.

Maintenance

  • pat navigation: Remove console.log debug message from tests. (4529761)

  • pat validation: Add modal use case to demo. (aa99e2e)

9.4.0 (2022-09-23)

Features

  • pat forward: Do not steal the click event. (7755aa8)When a pat-forward element is clicked, allow to propagate the click event so that other handlers can also react. Fixes: #1063

  • pat tooltip: Keep the title attribute for source ajax and content. (fa6bff7)The tooltip element's title attribute is only stripped if the source is set to title (the default) and kept otherwise. Fixes: #945

Bug Fixes

  • pat inject: Update the URL earlier (a02488d)Update the history/URL after the injection has been done and before post processing - e.g. scanning for new patterns - is happening. Other patterns like pat-navigation are depending on an updated URL state.

  • pat navigation: Fix selector for checking existing current classes. (3091a29)

9.3.1 (2022-09-21)

Maintenance

  • Build: Upgrade pat-upload to 3.1.1 to fix the previous pat-upload brown bag release. (030b801)pat-upload 3.1.0 did not include the advertised changes and was basically the same as 3.0.0.

9.3.0 (2022-09-20)

Features

  • pat navigation: Mark the navigation items after injection. (ec2a795)After a pat-inject has updated the navigation, re-mark all navigation items. This is an alternative and approach to the previous mutation observer based one.

Maintenance

  • Build: Upgrade dependencies. (60b4e2e)

9.3.0-beta.0 (2022-09-16)

Maintenance

  • core base: Remove console.log statement from tests. (09d533e)

Breaking Changes

  • pat navigation: Improve performance by removing the unnecessary mutation observer. (7c28913)Since we're almost always using pat-inject for replacing or adding DOM nodes and we already have support for pat-inject here, the mutation observer is not necessary. Removing it improves the performance in situations where the navigation structure is updated - for example off-canvas navigation updates with pat-tabs would invoke many mutation observer callback hits. The previous performance improvement solved the performance penalty by deferring the callback for 10ms, but this is taking that further by avoiding it at all.

9.2.1 (2022-09-16)

Bug Fixes

  • pat navigation: Do not break when no item wrapper is found. (6c84a41)

  • pat navigation: Improve the performance when the navigation elements change. (a6ec32b)Debounce the mutation observer callback which initialized the markings for 100ms for better performance.

  • pat navigation: Initialize the click handler on the element directly. (0b099cc)This way it needs to be initialized only once, even if the subtree changes. Remove the init_listeners from the mutation observer for better performance.

  • pat navigation: Only search within the current element. (417085e)

  • pat navigation: Remove mockup-related checking of input fields. (1e5afe7)

9.2.0 (2022-09-15)

Features

  • pat close panel: Support for closing dialog panels. (7593048)

  • pat navigation: Add URL-based navigation markers. (9a0f7a3)That feature was also present in the old implementation but is now improved.

  • pat navigation: Always set in-path classes. (16bc8a2)When doing URL based checkings do always set the in-path classes for an active submenu item, even if it does not match the URL path hierachy.

  • pat navigation: Support click-only markings. (904e54f)Mark the navigation items also on clicks on anchors without pat-inject.

  • pat navigation: When a navigation wrapper is in-path, also mark the corresponding anchor as in-path. (e9da003)

Bug Fixes

  • Build: Register jQuery globally. (e72f41a)Since the module federation support jQuery was registered globally too late for some scripts. Now jQuery is registered as soon as the index.js is loaded. This allows for following scripts to use jQuery.

  • core base: Do not break when initialized with no element. (cd16107)

Breaking Changes

  • pat navigation: Set explicit pattern trigger. (968edca)Do only trigger the pattern on the .pat-navigation class and remove the trigger for .navigation classes and <nav> elements.

Maintenance

  • core dom: Code optimization for dom.find_parents. (de1fb71)

  • core dom: Update documentation. (4ac25cc)

  • HTMLDialogElement support not in @patternslib/dev 2.7.0. (d2c279f)

  • Modernize header markup in demo files. (2f366e9)

  • pat inject: Move core.utils.rebaseURL to inject patterns. (144240d)core.utils.rebaseURL was only used by the inject pattern and is in this form not useful for broader use. If you need to rebase an relative or absolute URL against a base url, use: new URL(url, base_url)

  • pat inject: Specify allowed values for the history parameter. (e36c58c)

  • pat navigation: Modernize code. (f5269de)

  • pat navigation: Refactor implementation for more stability. (458e76b)

  • Upgrade dependencies. (806fc24)

9.1.1 (2022-09-08)

Bug Fixes

  • pat display time: Fix relative time for timezone corner cases. (3c62c65)For date-only from-now, just use Intl.RelativeTimeFormat to avoid any timezone calculation mistakes. This prevents a case where in days in the future or past were shown as 9 days due to timezone differences in some circumstances.

Maintenance

  • pat display time: Extend the demo. (2bd1ff6)

  • pat inject: Correct docs that the history parameter does not have record set as default. (7f06eda)

  • pat inject: Re-organize the demos. (3d3e8c3)- Create dedicated demo folder and move demo files in there.

  • Remove inject-history folder and move demo into inject.

9.1.0 (2022-09-06)

Bug Fixes

  • pat sortable: Fix sorting functionality when sort item has any other class than .sortable. (75815a6)

Maintenance

  • pat display time: Fix tests and demo which failed due to timezone offsets around midnight. (a5d0695)

9.1.0-beta.4 (2022-09-05)

Bug Fixes

  • Build: Resolve to jquery 3.6.1 to not include mutliple jquery versions. (e1c7d01)

9.1.0-beta.3 (2022-09-05)

Features

  • pat sortable: Trigger pat-update after sorting changes. (3bb5513)Other patterns can react on that for example submitting the form with pat-auto-submit.

Bug Fixes

  • pat auto submit: Support pat-clone and pat-sortable. (4ec72ef)When pat-clone adds an element, initialize that element to listen for changes. When pat-clone removes an element or pat-sortable changes the order, submit the form.

Maintenance

  • Build: Upgrade dependencies. (e5e2c7b)

9.1.0-beta.2 (2022-08-23)

Maintenance

  • Upgrade pat-tiptap to 4.5.0. (423dfc7)

9.1.0-beta.1 (2022-08-19)

Features

  • core base: Add pattern property autoregister to allow patterns which are not automatically registered in the patternslib registry. (ef4d234)

  • pat inject: Dispatch a patterns-injected-delayed event 10ms after the injection has been done and pass the injected content with it. This allows to re-scan the injected content in cases where a pattern wasn't registered at injection time. (00b66fe)

Bug Fixes

  • pat inject: Fix code error with not scanning and triggering for comment nodes. (c281ae4)

  • pat validation: Do not trigger a pat-update after validation. (b4603c9)

Maintenance

  • Build: Unlink all eventually linked @patternslib dependencies before building bundles. (debeeea)

  • Build: Upgrade dependencies. (515bf42)

  • pat inject: Minor test restructuring. (e740a88)

  • pat validation: Add input with type URL example to demo. (b3e98e0)

9.1.0-beta.0 (2022-08-11)

Features

  • core utils: Add date_diff to calculate the difference in days between two dates, respecting DST‌ offsets. (dd5cc7b)

  • core utils: Add is_iso_date check for testing for iso dates only. (a90afd6)

  • pat display time: Improve the output for date-only dates in relative mode. (e3909a4)When output is from-now (relative date) and the date is a date-only date without a time component, do not include the time in the output.

Maintenance

  • Build: Include bundle name and version in generated files (Feature of @patternslib/dev 2.4.0.) (392998e)

  • pat display time: Improve the documentation. (ef13602)

  • Upgrade dependencies. (070b262)

9.0.1 (2022-07-20)

Bug Fixes

  • Build: Fix luxon to 2.4.0 to avoid webpack MF error due to non standard package.json setup. (784f036)

  • pat tooltip: Avoid repositioning of the tooltip arrow. (880ebdb)- Setting the tooltip-container class before async calls.

  • Avoid unnecessary repaints by grouping dom manipulations together.
  • Merge onMount and onShow into onShow method.

9.0.0 (2022-07-17)

Features

  • Webpack Module Federation: Dispatch the event patternslib_mf--loaded when all remotes have been initialized. (9c86483)

Bug Fixes

  • pat modal: Trigger pat-modal-ready event only once. (ddb7c5d)For pat-modal instances on anchor elements where pat-inject is involved the event pat-modal-ready was triggered twice. This is now fixed and the event is only triggered after the modal was inserted.

  • pat tooltip: Fix problem with misaligned tooltip arrow with remote content. (4656100)

  • pat tooltip: Initialize Patterns directly after getting content. (e601fd8)This fixes a problem where onMount was initializing Patterns before get_content returned and inserted the content.

Maintenance

  • Bundle: Upgrade pat-tiptap to 4.3.0. (24bfa4b)

  • core base: Document prevention of pattern double initialization in asynchronous cases. (1d9bb38)

  • pat modal: Document how pat-modal works. (2015e89)

9.0.0-beta.1 (2022-07-08)

Bug Fixes

  • pat depends: Allow input names with colons in the parser, as used in Plone. (48298c2)

Maintenance

  • Build: Upgrade Moment to 2.29.4. (a0bf6fd)

  • Build: Upgrade to @patternslib/dev 2.3.0. (a02619e)

  • pat checkbox: Do not include styles and make the demo better usable. (7cd1dc3)

  • pat depends: Change Makefile to generate the parser optimized for size and output it as ES module. (3bfd39f)

  • pat depends: Depend on latest pegjs for generating the depends parser. (5339822)

  • pat depends demo: Add demo with optional date fields. (bfd5dbe)

  • pat depends demo: Demo colons in input names. (e882f4f)

  • pat depends demo: Demo multiselection. (85a824a)

  • pat depends demo: Set to import styles in JavaScript so that auto-suggest is styled. (e8b2ea2)

  • Add .eslintignore and ignore generated depends_parse.js file. (f9bc55f)

  • Do not define __patternslib_import_styles, so that it can be defined by another script without being overwritten. (7101d23)

9.0.0-beta.0 (2022-06-29)

Bug Fixes

  • Configure module alias for @patternslib/patternslib so that extended jest config from dev does not fail. (ce89f24)

  • pat scroll box: Fix issue where elastic scrolling on Safari would remove the scroll-position-top class for a moment when overscrolling on top. (596fd06)

Maintenance

  • Build: Adapt to latest module federation changes in @patternslib/dev 2.2.0. (c2f4d37)

  • Build: Add a watch Makefile target and package.json script. (c48ff3e)

  • Build: Update @patternslib/dev to 2.2.0. (a1550ca)

  • Build: Upgrade all pat-* dependency packages to it's latest version. (4628120)

  • Build: Upgrade dependencies. (eaeed1a)

  • pat scroll box: Document that scroll-down and scroll-up classes are not cleared after scrolling has stopped. (52f4343)

  • pat scroll box: Improve demo styles. (61fa3d8)

9.0.0-alpha.1 (2022-06-15)

Features

  • Build: Allow Patternslib add-ons to be built within the Patternslib package as part of a Patternslib bundle distribution by defining an alias for @patternslib/patternslib. (d4ae08b)

  • Bundle: Create a universal bundle. (9215532)Add more external patterns in order to create a universal drop-in bundle for Patternslib. Patterns added:

    • pat-content-mirror
    • pat-doclock
    • pat-shopping-cart
    • pat-sortable-table
    • pat-tiptap
    • pat-upload

Breaking Changes

  • Depend on @patternslib/dev and extend config from there. (aea3681)

  • Extend babel config from @patternslib/dev. (83cef90)

  • Extend commitlint config from @patternslib/dev. (9216ed7)

  • Extend eslint config from @patternslib/dev. (2cfeadc)

  • Extend jest config from @patternslib/dev. (125a4f7)

  • Extend Makefile from @patternslib/dev. (923efe3)

  • Extend prettier config from @patternslib/dev. (0bbbdca)

  • Extend release-it config from @patternslib/dev. (b692ce0)

  • Extend webpack config from @patternslib/dev. (208726f)

Maintenance

  • Do not eslint the generated depends_parse file. (dbfd33f)

  • Move webpack.dist.js back to webpack.config.js. (20f1d68)

  • Remove unused variables from Makefile. (141ade4)

9.0.0-alpha.0 (2022-06-14)

Features

  • Build: Create Module Federation enabled bundles within Patternslib. (ef28e21)

  • Build: Externalize Patternslib core webpack config to allow customizing Patternslib bundles without affecting add-on packages which depend on webpack.config.js. (3e9dd6c)

Bug Fixes

  • Build: Do not re-initialize already initialized bundles. (8c0499f)

Maintenance

  • Build: Extend jest.config.js in a way that it is extendable by add-on packages. (f16b3a5)

  • Build: Extend test setup code. (00f1a34)Add more setup code to mock Web API features for tests from other Patternslib add-on packages.

  • Build: Remove dependency @babel/plugin-proposal-optional-chaining which is included in Babel since 7.8. (cfd5cd4)

  • Build: Remove dependency regenerator-runtime except from test setup. The async/await runtime handling is already built-in in current Babel. (f8a9889)

  • Build: Remove unused @testing-library/jest-dom. (6aeefc5)

  • Build: Remove unused inspectpack. (a586a5d)

  • Build: Upgrade dependencies. (d0739d6)

  • docs: Move upgrade 2 to 3 guide to history section. (5449491)

  • docs: Remove outdated roadmap and version files. (8f9e0cb)