# Changelog of version 2


## 2.2 - unreleased

-   pat-masonry:
    -   Re-Layout on `load` events emitted on `img` nodes within the masonry scope.
    -   Do not depend on `imagesloaded`.
    -   Update masonry to version 4.2.0.
    -   Align options with new version:
        -   Add options `is-horizontal-order`, `is-percent-position` and `is-resize`.
        -   Remove options `visible-style` and `hidden-style`.
        -   Add Aliases from v4 (no `is-*`) to v3 names (with `is-` for booleans), while keeping the v3 names. The patternslib parser does boolean casting for `is-*` options.
-   pat-datetime-picker: Add new pattern for setting the date and time.
-   pat-date-picker: Remove the dependency on `moment-timezone-data` - it's not used and there is no use in a date picker anyways.


## 2.1.2 - Aug. 29, 2017

-   pat-modal: Followup fix for the issue where chrome is so quick that a modal is closed before the actual injection call can be sent. Now modals can be closed again. (pilz)


## 2.1.1 - Aug. 28, 2017


### Fixes

-   pat-modal: Only add a panel-header to the first panel-content element within pat-modal, not everyone. Otherwise this may collide with pat-collapsible which also creates a panel-content class further down the DOM (pilz)
-   pat-modal: Fix an issue where chrome is so quick that a modal is closed before the actual injection call can be sent.


## 2.1.1 - Aug. 28, 2017

-   pat-modal: Only add a panel-header to the first panel-content element within pat-modal, not everyone. Otherwise this may collide with pat-collapsible which also creates a panel-content class further down the DOM (pilz)
-   pat-modal: Fix an issue where chrome is so quick that a modal is closed before the actual injection call can be sent.


## 2.1.0 - Jun. 26, 2017

-   pat-gallery: Also include the node with the `pat-gallery` class trigger for initializing the gallery.
    Now `pat-gallery` can be used on anchor tags wrapping images directly, making it possible to let images be opened individually in in the overlay without adding them to a gallery with navigation controls to the next image.
-   fix input-change-events for <input type="number" />
-   pat-autosubmit: allow nested autosubmitting subforms with different delays.
-   pat-masonry: Initialize masonry just before layouting gets startet, which is after first image has been loaded or at loading has finished. This avoids overlapping images while they are still being loaded.
-   pat-masonry: fix layout of nested .pat-masonry elements
-   pat-gallery: UX improvements - do not close on scroll or pinch.
-   pat-gallery: UX improvements - remove scrollbars when gallery is opened.
-   pat-gallery: add option `item-selector` for gallery items, which are added to the gallery.
    Defaults to `a`.
    Fixes situations, when gallery items and normal links are mixed within the same container and normal links would open within the gallery lightbox.
-   Update to jQuery 1.11.3.
-   While images are loading, already do masonry layouting.
-   Remove the `clear-imagesloaded-cache` trigger, as cache functionality was removed from imagesloaded from version 3.2.0.
    See: https://github.com/desandro/imagesloaded/issues/103#issuecomment-152152568
-   Change `imagesloaded` from usage of jQuery plugin to vanilla JavaScript to avoid timing errors, where the `imagesloaded` plugin wasn't available.
-   Update `masonry` and `imagesloaded` plugins.
-   Fix `pat-gallery` to work with `requirejs-text` instead `requirejs-tpl-jcbrand`.
    Fixes an obscure "window undefined" error.
    Backwards incompatible change: The `photoswipe-template` RequireJS configuration variable is removed and a the `pat-gallery-url` variable is defined instead.
-   always recalculate masonry also at the very end, even if there are no images to be loaded
-   Fix a bug in pat-scroll that would only properly leave nav items alone if their urls end in a slash
-   An href can also contain a url left of the hashmark. pat-scroll should only care for the part right of the hashmark
-   Issue a delayed redraw of the calendar to prevent rendering race conditions
-   make list of calendar categories unique to speed up js processing on sites with many calendars.


## 2.0.14 - Aug. 15, 2016

-   A fix for pat-scroll to scroll up to current scroll container instead of body.
-   A fix for pat-scroll to await loading of all images before determining the amount to scroll up.
-   A fix for IE10/11 where the modal wouldn't close anymore due to activeElement being undefined
-   Allow to configure different data-pat-inject per formaction, so that different targets can be configured per formaction


## 2.0.13 - Apr. 27, 2016

-   New property for sortable pattern, `drag-class`, the CSS class to apply to item being dragged. Is `"dragged"` by default.
-   New property for sortable pattern, `drop`, a Javascript callback function to be called when an item is dropped.
-   Form with pat-autosubmit doesn't get notified when injected inputs change.
-   Inject pattern with `autoload-visible` injected erroneously based upon old autoload element no longer in DOM.
-   Add the class `modal-active` to the `body` element whenever a modal is in the DOM.
-   New pattern: `pat-tabs`. See the relevant documentation.
-   Bugfix: `pat-validation` still validates removed clones from `pat-clone`.
-   Let the next-href option of pat-inject work as advertised.
-   Parser fix: don't treat `&amp;` as a separator
-   #436 Remove `pat-bumper` restriction that scroll container must be the direct parent.
-   pat-masonry fix: the `containerStyle` value must be an object.


## 2.0.12 - Oct. 9, 2015

-   New property for the inject pattern: `loading-class`.
    Specifies a class to appear on the injection target while the injected content is still loading.
    Previously this was hardcoded to `injecting`, this is still set to the default value.
-   New propertys for the inject pattern: `confirm` and `confirm-message`.
    Allows you to specify whether a confirmation message should be shown before
    injecting, as well as the text of that message.
-   New property for tooltip pattern: `mark-inactive`.
    A boolean value, used to specify whether the class 'inactive' should be added
    to the tooltip trigger. Previously this behavior was hardcoded, now it's
    optional with a default of `true`.
-   Fix: tooltips with `closing` set to `sticky` or `auto` couldn't be closed on mobile.
-   Parser fix. Remove duplicate configurations.
-   Bugfix: TypeError: Cannot read property 'msie' of undefined.


## 2.0.11 - Sept. 30, 2015

-   Bugfix. Specifying combined pattern properties (with &&) not working on IE10.
-   Add an alternative parser, from the Mockup project.
-   Updated documentation.
-   Clone pattern has a new argument: remove-behaviour.


## 2.0.10 - Sept. 18, 2015

-   Add new argument "hooks" to pat-inject.
-   Add new parser method addAlias for adding aliases of parser arguments.
-   Add the addJSONArgument method to the argument parser, which provides support for JSON as argument values.
-   Added Sass files for all patterns.
-   Bugfix in pat-masonry. Wait until images are loaded.
-   Bugfixes and improvements to pat-clone.
-   Fixed a bug where the page reloads when the image viewer from pat-gallery is closed.
-   In pat-autosuggest, new option allow-new-words, for explicitly allowing or denying custom tags.
-   Make pat-bumper also bump against the bottom edge.
-   New layout. All files relevant to individual patterns (except for tests) are now in ./src/pat
-   pat-gallery now uses Photoswipe 4.1.0 and is based on pat-base.
-   New pattern pat-validation which replaces pat-validate.


## 2.0.9 - Mar 30, 2015

-   Fixed IE bug in pat-equalizer
-   #389 Add support in pat-inject for the HTML5 formaction attribute
-   New pattern: pat-clone.
-   Upgrade to jQuery 1.11.1


## 2.0.8 - Feb. 5, 2015

-   #395 add body class after patterns loaded from registry


## 2.0.7 - Feb. 4, 2015

-   #381 Checked class not set on checklist
-   Add stub module i18n.js. Provides compatibility with Mockup patterns.
-   Add support for Mockup patterns.
-   Add support for parsing JSON as pattern configuration
-   Add support for using pat-subform together with pat-modal.
-   Give pattern plugins the change to modify arguments before returning them.
-   New arg for pat-autosuggest: words-json
-   New pattern: pat-masonry


## 2.0.6 - Dec. 10, 2014

-   New core module pluggable.js which allows the creation of Pluggable patterns.


## 2.0.5 - Dec. 4, 2014

-   #383 pat-equaliser sets the height to early


## 2.0.4 - Oct. 7, 2014

-   spectrum lib for colour picker now defaults to hsv values. Keep hex as default for backward compatibility (SLC ref 9849)
-   pat-inject autoload did not properly remove event handlers, so that they were called over and over. (SLC ref 10695)


## 2.0.3 - Sept. 22, 2014

-   when another tooltip trigger is clicked, only close the previous tooltip if
    it does not contain the trigger. slc ref #9801
-   moved utils.debounce() call to fix removal of event handler
    slc ref #10695


## 2.0.2 - Sept. 8, 2014

-   #377 Local inject doesn't work for IE10 and 11
-   #378 pat-switch detecting click on container of link prevent default on anchor
-   #379 pat-checklist selectAll/deselectAll only works inside .pat-checklist element


## 2.0.1 - Sept. 2, 2014

-   Bugfix in pat-toggle. Check that the previous state is not null before
    attempting to restore it.


## 2.0.0 - August 11, 2014

-   New patterns:

    -   Colour picker pattern. This can be used as a polyfill for browsers which do
        not support colour inputs.
    -   Notifications pattern for self-healing messages.

-   Autofocus pattern: never give an input element the focus if it was hidden
    by the depends pattern.

-   Autosuggest pattern:

    -   Add AJAX-support to load available options from a backend server.

    -   Clear the selected value from a reset button for the form is pressed.

    -   Do not open the auto-suggest dropdown on enter.

    -   Fix width-related layout problems.

    -   Add option to restrict the max amount of selected items.

-   Bumper pattern: support bumping inside scrolling containers.

-   Checked flag pattern: fix initialisation of radio buttons. Pre-checked
    radio buttons would not marked as such if there were unchecked radio
    buttons later in the DOM.

-   Checklist pattern: correctly initialise the state on initial page view.

-   Inject pattern: do not try to rebase `mailto:` URLs.

-   Modal pattern:

    -   Add a new `closing` option. This allows configuring how a modal can be
        closed.
    -   Various positioning improvements.

-   Sortable pattern: add a new `selector` option to specify which elements
    to sort. This makes it possible to use the pattern outside lists.

-   Switch pattern: prevent default action when a link is clicked.

-   Tooltip pattern:

    -   Correctly handle a button with `close-panel` class in AJAX-loaded tooltip
        content. This fixes fixes [ticket
        356](https://github.com/Patternslib/Patterns/issues/356).

    -   Add new `target` option to specify where to insert a tooltip in the DOM.

    -   Update the tooltip position of a parent is scrolled.

