UNPKG

metro4

Version:

The front-end framework for Build responsive, mobile-first projects on the web with the first front-end component library in Metro Style

728 lines (691 loc) 86.3 kB
### 4.5.1 + [x] Donut: fixed method `setColor({...})` + [x] Checkbox Three State: added new component with role `checkbox-three-state` + [x] Media: added sizes `xxxl: 1600px`, `xxxxl: 1800px`, `xxxxxl: 2000px` + [x] Grid: added cells `cell-xxxl-*`, `cell-xxxxl-*`, `cell-xxxxxl-*`, `cell-*-fifth` (20%), `cell-*-one-fifth` (20%), `cell-*-two-fifth` (40%), `cell-*-three-fifth` (60%), `cell-*-four-fifth` (80%) + [x] Table: fixed creating head from html + [x] Table: added placeholder for search input with `table-search-placeholder` attribute + [x] Countdown: fixed method `reset()` + [x] Countdown: added method `resetWith(str|obj)` + [x] Tabs: added events `onTabOpen`, `onTabClose` + [x] Tabs: to events `onTab`, `onTabOpen`, `onTabClose` added second argument `target`. Value for it child `a.href` value + [x] Tabs: added attribute `data-update-uri="true|false"` (default `false`). If true url hash will update with tab target value + [x] Tabs: added method `openByTarget("#...")` ### 4.5.0 + [x] Tabs Material: fixed jump to the anchors, issue #1794 + [x] Table: fixed create `Instpector` when table data loaded with method `loadData()`, issue #1796 + [x] Tabs Material: added mouse wheel support for scrolling tabs, issue #1795 + [x] Select: added event `data-on-clear`, fixed firing event `data-on-change` when user click on the `clear` button, issue #1802 + [x] Switch: fixed method `toggleState()`, issue #1799 + [x] Select: fixed API method `data()` for selecting option when defined, issue #1755 + [x] Select: added API methods `addOptions(values = [] || {})`, `removeOptions(values = [])` + [x] Select: added API methods `addOption(val, title, selected)`, `removeOption(val)` + [x] Select: fixed clear button work, issue #1716 + [x] Master: fixed for quick switching panes, issue #1787 + [x] Important: IE is dead and no more supported! + [x] M4Q: version updated to 1.1.0 + [x] M4Q: removed polyfills for Promise, CustomEvent (IE is dead) + [x] Datetime: version `1.0.1`, new **global type** `Datetime`, and **factory** `datetime()` + [x] Cake: version `1.0.0`, new **global type** `Cake`, and **factory** `cake()` + [x] Ajax: switched from `$.ajax` (`$.json`, `$.post`, ...) to `fetch` (IE is dead) + [x] Tag input: switched from `$.ajax` to `fetch` + [x] Input: switched from `$.ajax` to `fetch` + [x] Html container: switched from `$.ajax` to `fetch` + [x] Cookie disclaimer: switched from `$.ajax` to `fetch` + [x] Table: `_create()`, `_build()`, `_saveTableView()`, `loadData()` now use `fetch`, and send data to server as `json` + [x] Streamer: now use `fetch` for loading data + [x] List: now use `fetch` for loading data + [x] Calendar: fixed showing week numbers + [x] Calendar: rewritten with Datetime + [x] Calendar picker: rewritten with Datetime + [x] Countdown: updated for using with Datetime + [x] Chat: updated for using with Datetime + [x] Chat: changed messages style + [x] Validator: updated method `date` for using with Datetime + [x] Table: updated for using with Datetime (change `toDate()` to `Datetime.from()`) + [x] List: updated for using with Datetime (change `toDate()` to `Datetime.from()`) + [x] Datepicker: updated for using with Datetime + [x] Utils: updated for using with Datetime + [x] Extensions: removed extension for `Date`, use `Datetime` + [x] Extensions: removed extension for `Object` - `Object.create()`, `Object.values()` (IE is dead) + [x] Extensions: removed methods from extension for `String`, `Array` + [x] Any: added using `Cake.lpad` where need + [x] Utils: removed functions `lpad`, `rpad`. If you need these functions, use `Cake.pad`, `Cake.lpad`, `Cake.rpad` + [x] Select: added attributes `data-drop-full-size=true|false` (default: false), `data-drop-width=int_value` to set drop container width + [x] Hint: added attribute `hintDeferred` if value of this > 0, a hint will display with delay. + [x] ActionButton: fixed `vertical-align` for `multi-action` class + [x] Activity: change default style to `color` + [x] Keylock: added new component + [x] Calendar: fixed bug issue #1732 + [x] Window: fixed event `onMaxClick`, issue #1735 + [x] DoubleSelectBox: added new component, request from Patreon patron + [x] M4Q: fixed setting css number props `order`, `zoom` with method `css()` + [x] CalendarPicker: added API method `clear()` + [x] CalendarPicker: fixed API method `val()`, if you set argument as empty string `val("")`, you clear calendar picker value + [x] M4Q Ajax: fixed method `$.get` for url with `?`, issue #1745 + [x] List: updated for using with different tags. For example: now you can use list with `div.grid role=list > div.row > div.cell` structure + [x] List: added attribute `data-cls-template-tag` to set class(es) for item children + [x] List: added attribute `data-default-template-tag` to set wrapper element for item children, when template is not defined + [x] List: improved work with an attribute `data-cls-template-tag`. Now you can set many classes separated with comma to applying to elements with linked index + [x] Grid: fixed `no-gap` class, now `padding` cancels for `.grid.no-gap .row > .cell*` and `.row.no-gap > .cell*` + [x] Utils: fixed function `Utils.isObject()`, issue #1755 + [x] Switch: To show on-off label you must set attribute `data-show-on-off='true'` and use attributes: `data-on`, `data-text-on`, `data-off`, `data-text-off` or `i18n` configs with attribute `data-locale` + [x] Switch: added `i18n` support with props `locale.switch.on`, `locale.switch.off` + [x] Switch: added changing on-off text in runtime with API method `i18n(locale_name)`, issue #1761 + [x] M4Q: added property `$.dark` + [x] Accordion: added API method `open(index)` + [x] Accordion: added attributes `data-cls-accordion`, `data-cls-frame`, `data-cls-heading`, `data-cls-content`, `data-cls-active-frame`, `data-cls-active-frame-heading`, `data-cls-active-frame-content` + [x] Table: added attribute `data-use-current-slice`. If this attribute has a value **true**, click on select-all checkbox will only apply to the current (visible) data slice, issue #1778 + [x] Sidebar: added attribute `data-close-outside="true|false"` to close sidebar by a click outside the sidebar, issue #1777 + [x] Marquee: added method `setItems([...])` ### 4.4.3 #### M4Q + [x] Attributes: fixed method `attr` when user defining one argument + [x] Animation: added methods `stopAll()`, `pause(id)`, `pauseAll()`, `resume(id)`, `resumeAll()` #### Metro 4 + [x] Color selector: added new component + [x] Color picker: added new a component + [x] Marquee: added new component + [x] NavView: fixed `navview-pane` item `height` and hover state, issue #1661 + [x] Metro: improved function `makePlugin(...)`, now you can use it for set of elements. + [x] Slider: fixed work vertical slider for touchable devices + [x] Colors: improve work with hsl, hsv + [x] Spinner: fixed input not a number value, value more or less than defined in options. + [x] Keypad: fixed internal value type mismatch. + [x] InfoBox: added attribute `data-overlay-click-close=true|false`, default `false`, issue #1668 + [x] Table: added localization from i18n files, issue #1671 + [x] Dropdown: fixed closing others when open current + [x] Timepicker: fixed error when `step` is not equals to `0`, issue #1676 + [x] Select: fixed clear button icon position in `input-small` mode, issue #1675 + [x] Select: added attribute `data-cls-group-name` + [x] Select: for option added attribute `data-display`, issue #1677 + [x] Input: added support for getting autocomplete list items with ajax, issue #1682 + [x] Locales: added `Croatian` locale, thanks to [dugi007](https://github.com/dugi007) + [x] Calendar: added showing events count in days, issue #1621 + [x] Tag Input: added autocomplete feature, issue #1500 + [x] Table: added showing inspector button with attributes `data-show-inspector-button=true|false`, `data-inspector-button-icon`. + [x] Table: set default value for `data-cell-wrapper` to **true** + [x] Table: improve table styles for `table-contaner` + [x] Table: fixed working with attribute `data-horizontal-scroll-stop` + [x] Metro: added method `pluginExists(name)` to check if specified plugin registered in registry + [x] Colors: fixed primitives `RGBA`, `HSLA` to create with specified **alpha** + [x] Utils: added `lpad()`, `rpad()` functions + [x] Calendar: improve visibility, fixed for using `Utils.lpad()` + [x] Calendar picker: fixed for using `Utils.lpad()` + [x] Metro: added method `Component._fireEvents(...)` + [x] Security alert: fixed from issue #1687 + [x] Date extension: fixed method `getWeek()`, used in calendar for showing week numbers. + [x] Tag input: added closing autocomplete list on user click outside. + [x] Window: fixed holds zIndex when draggable, issue #1689 + [x] i18n: fixed a chinese locales name, issue #1691 + [x] Countdown: changed prop name `data-animate-func` to `data-ease` + [x] Additional colors: for opacity added `op-*-hi`, `op-*-low` classes + [x] Additional colors: default opacity changed to `0.5` + [x] Keypad: added attributes `data-except-keys`, `data-key-separator`, `data-key-delimiter`, `data-trim-separator`. + [x] Table: fixed using attribute `data-sortable` for `th`. ### 4.4.2 #### Metro 4 + [x] Button: fixed content position, issue #1648. + [x] Split-button: improved the layout, added subclass `no-gap` for `split-button`. + [x] Select: fixed minor bug for showing group name, when value sets with method `val(...)`, issue #1652 + [x] GradientBox: refactoring. + [x] ImageBox: fixed work of attribute `data-repeat`. + [x] Window: improve work with window content, now no require `content` wrapping into the `block` when defining `content` property. + [x] ImagePlaceholder: new component to create image placeholders. + [x] Button: added a button with loading state. + [x] Color: improved method `parse()`. + [x] Validator: improved validating function `color`, now you can use any color string format: rgb, hex, ... + [x] Default icons: optimized styles. + [x] Media players: optimized default icons. + [x] Activity: added two new activity `bars`, `atom`. + [x] Tabs material: fixed tabs position. + [x] Utils: removed functions: `hex2rgba()`, `getTransformMatrix()`, `computedRgbToHex()`, `computedRgbToRgba()`, `computedRgbToArray()`, `hexColorToArray()`, `hexColorToRgbA()` + [x] i18n: added `tr-TR` turkish locale. + [x] Third party plugins: removed support for `select2`, `datatables` + [x] AppBar: added event `onBeforeMenuOpen`, `onBeforeMenuClose`, fixed firing events `onMenuOpen`, `onMenuClose`. + [x] Timepicker: added attributes `data-cls-button`, `data-cls-ok-button`, `data-cls-cancel-button` to modify picker buttons style, issue #1659. + [x] Datepicker: added attributes `data-cls-button`, `data-cls-ok-button`, `data-cls-cancel-button` to modify picker buttons style, issue #1659. + [x] TreeView: fixed `ul` default position to initial, issue #1660 + [x] Dropdown: added classes `.drop-down-left`, `.drop-down-right`, `.drop-up-left`, `.drop-up-right`. + [x] Position: split position into `position`, `position-ext`, `z-index`. + [x] Utilities: removed function `isColor(...)`, if need, use `Metro.colors.isColor()`. + [x] Utilities: removed function `embedObject(...)`, if need, use `$(...).wrap()`. + [x] Utilities: removed function `randomColor(...)`, if need, use `Metro.colors.random()`. + [x] Utilities: updated function `isVideoUrl(...)`, added `twitch`. ### 4.4.1 #### M4Q + [x] M4Q: updated to 1.0.9 + [x] M4Q Core: added function `$.isLocalhost([hostname])`, **true** if host is localhost. + [x] M4Q Core: added property `$.localhost`, **true** if current location is localhost. + [x] M4Q Core: added property `$.touchable`, **true** if device detected as touchable. + [x] M4Q Manipulation: added methods `appendText(...any_text...)`, `prependText(...any_text...)`. #### Metro 4 + [x] Licensing: return MIT unified licensing model + [x] Tile: fixed double firing click event. Component internal event `onClick` renamed to `onTileClick` (attribute `data-on-click` => `data-on-tile-click`), issue #1636 + [x] Export: added method `arrayToCSV(array, filename, options)`. + [x] Utils: removed function `isLocalhost`, if you need, use `$.localhost` or `$.isLocalhost([host])`. + [x] Utils: removed function `isArray`. + [x] Utils: removed function `isTouchDevice`. if you need, use `$.touchable`. + [x] Tag input: improve method `val()`. Now you can use for new value(s) `array` or `simple value`. + [x] Tag input: added method `append(val)`. For append tag(s) to existing value. + [x] Select: fixed using attribute `data-cls-option-group`, issue #1640 + [x] Carousel: fixed usage attribute `data-width`, now this attribute applied to `max-width` css property, issue #1647 + [x] ImageBox: added new component for issue #1647 + [x] GradientBox: added new component for issue #1645 + [x] ViewportCheck: added new component for check if element in viewport + [x] Shadows: added class `shadowed`, class defined in `shadow.less`, issue #1643 + [x] Select: added attributes `data-show-group-name="true|false"` (default - **false**), `data-short-tag="true|false"` (default - **true**), issue #1642 ### 4.4.0 #### M4Q + [x] M4Q: updated to 1.0.8 + [x] M4Q Constructor: added short-tag for selecting by `data-role` with `$('@rolename')` + [x] M4Q Visibility: fixed method `hide` for detecting initial `display` value + [x] M4Q Init: improve init method + [x] M4Q: added property `$.device`, **true** for mobile a device. #### Metro 4 + [x] Components: switch to `Component._fireEvent(...)` method for firing component events `data-on-*` + [x] Calendar: added firing event `onMonthChange` when user clicks on outside day, issue #1589 + [x] Window: added API methods `pos(top, left)`, `top(v)`, `left(v)`, `width(v)`, `height(v)`, issue #1590 + [x] Metro.window: added methods `pos(top, left)`, `top(v)`, `left(v)`, `width(v)`, `height(v)` + [x] Switch: added `data-on`, `data-off` attributes to show switch text state + [x] Checkbox: added API method `toggle(state)`. The `state` must be `-1` (indeterminate), `0` (unchecked), `1` (checked) or `undefined` (toggle between checked and unchecked), issue #1586 + [x] Switch: added API method `toggle(state)`. The `state` must be `0` (unchecked), `1` (checked) or `undefined` (toggle between checked and unchecked), issue #1586 + [x] Double slider: fixed right-hand button moves when grabbing the left-hand hint, issue #1591 + [x] Window: added property `attr` to custom button definition. This attribute must be a `object` with pairs `key: value` where `key` - attribute name, `value` - attribute value, issue #1592 + [x] Input: added property `attr` to custom button definition + [x] Panel: added property `attr` to custom button definition + [x] Lightbox: new component to create a modal image gallery + [x] ImageGrid: new component to create a simple beautiful image grid + [x] Draggable: added attribute `data-boundary-restriction="true|false"`, issue #1595 + [x] Tokenizer: new component to create tokenized text + [x] Carousel: fixed active slide `z-index`, issue #1605 + [x] Dropdown: added attributes `data-drop-up=true|false` (default `false`), `data-check-drop-up=true|false` (default: `false`), issue #1604 + [x] Select: added attributes `data-drop-up=true|false` (default `false`), `data-check-drop-up=true|false` (default: `true`), issue #1604 + [x] Table: fixed using template, issue #1606 + [x] Select: fixed clear button work, issue #1610 + [x] Input: remove metro style from input without role `input`. To added metro style to input without role `input`, use class `metro-input`. + [x] Textarea: remove metro style from input without role `input`. To added metro style to input without role `input`, use class `metro-input`. + [x] Utils Css: remove classes `.neb`, `.neb2`, `.h-center`, `.v-center` + [x] Input: added event `onAutocompleteSelect`. You can define this event with an attribute `data-on-autocomplete-select`. The event receives a one argument - selected value. issue #1615. + [x] Validator: fixed validating radio buttons with a name as indexed array, issue #1620 + [x] Textarea: added attribute `data-max-height=0..n`, now you can set max height for textarea component. + [x] Components: now, you can use components without common styles from `metro-common.css`, `metro-reset.css`, issue #1609 + [x] Window: disable a window maximized/minimized action when attribute `data-btn-max=false` and user use double-click on then window caption, issue #1625 + [x] Input: added style prop `min-width=0`, issue #1626 + [x] Component: fixed method `_runtime()` for updating attribute `data-role`. + [x] Input: added attribute `data-label`. If this attribute defined, `label` element for input will be created automatically. + [x] Calendar picker: added attribute `data-label`. If this attribute defined, `label` element for input will be created automatically. + [x] Time picker: added attribute `data-label`. If this attribute defined, `label` element for input will be created automatically. + [x] Date picker: added attribute `data-label`. If this attribute defined, `label` element for input will be created automatically. + [x] Input mask: added new component. Currently, only for desktop browsers. + [x] Icons: new icons `external`, `new-tab` + [x] Countdown: fixed draw function, issue #1632 + [x] Color: added `ColorPrimitive` with color primitive objects + [x] Color: fixed color type constructor for creating colors from string + [x] Color: added method `mix(...)`: `ColorType.mix(color)` and `Colors.mix(color1, color2)`. This method allows you to mix colors. + [x] Color: added methods `channel(channelName, val)`, `channels(obj)`. This method change specified color channel. Color must be a required format. + [x] Date picker: added methods `enable()`, `disable())`, `toggleState()`, added observing for prop `disabled`, issue #1633 + [x] Time picker: added methods `enable()`, `disable())`, `toggleState()`, added observing for prop `disabled`, issue #1633 ### 4.3.10 + [x] Input: added API method `setAutocompleteList(array|string)`, issue #1576 + [x] Scrollbars: added styles with classes `.scrollbar-type-1`, `.scrollbar-type-2`, `.scrollbar-type-3`, `.scrollbar-type-4` + [x] NavView: fixed pane close on mobile devices when inputs, inside a pane, receive a focus, issue #1580 + [x] NavView: added displaying caption for `navview-menu` for compacted mode on the left of icon when user hovering item + [x] Grid: fixed offset-*-0 are missing in the grid system, issue #1583 + [x] Grid: added gaps with classes `gap-*`, where `*` is one of `0, 8, 16, 24, 32, 40` in pixels + [x] NavView: fixed scrolling menu in compact mode, issue #1579 + [x] NavView: added API method `toggleMode()` to toggle between expanded and compacted modes, issue #1538 + [x] Select: for API method `data(newOptions, selected, delimiter)` added second argument. Must be a `string` or `array`, if `selected` is a `string`, you can use `delimiter` argument to split string into array, issue #1497 ### 4.3.9 + [x] Component: `_fireEvent` push `__this` to arguments. `__this` contains HTMLElement + [x] Utils: fixed function `github()` for executing callback + [x] Counter: fixed for starting when page scrolls + [x] Counter: added attributes `data-from`, `data-prefix`, `data-suffix`. Prefixed and suffixed must be a plain text. + [x] Observer: added firing event `attrchange` when component attribute was ben changed. `e.detail` contains an object `{attr, newValue, oldValue, __this}`. + [x] General: added firing event `hotkeybonded` when hotkey for component was ben bonded. `e.detail` contains an object `{__this, hotkey, fn}`. + [x] General: all components fired event `create` when init. The `e.detail` contains an object `{name, __this}`. + [x] General: the document fired event `component-create` when a component was ben initialized. The `e.detail` contains an object `{element, name}`. + [x] Window: fixed `makeRuntime` calling, issue #1574 + [x] Window: fixed make window `resizable` + [x] Typography: added `italic` and `underline` text classes, issue #1577 ### 4.3.8 #### M4Q + [x] Animation: fixed using String.includes for IE11. Changed to `String.indexOf` + [x] Animation: added operator `/` to `_getRelativeValue()` + [x] Events: fixed `fire`. Now main is constructor `CustonEvent`, for old - `createEvent` + [x] Manipulation: added method `wrap`, `wrapAll`, `wrapInner`. The method puts elements inside the wrapper and return `wrapper(s)` + [x] Init: change `throw Error` to `console.warn` when selector is `#` or `.` + [x] setImmediate: added support for `process` and `web workers` #### Metro 4 + [x] General: new module system. All components now defined as alone IIFE modules. + [x] Validator: fixed functions `compare`, `equals`, `notequals` to work not inside a form, issue #1542 + [x] Rtl: remove `form-rtl`, `accordion-rtl` less files. RTL Styles moved to component style. + [x] Locales: added `pt-BR` Brazilian Portuguese language + [x] Toast: added method `Metro.createToast()`. This eq to `Metro.toast.create()` + [x] Components: event `on[Component]Create` now have context a `HTMLElement` and receive `$(HTMLElement)` as argument + [x] Keypad: fixed Keypad backspace button click behavior on `keypad`, created at `runtime`, issue #1547 + [x] Utils: improve function `isType` + [x] Utils: remove functions `camelCase()`, `dashedName()`. Use `String.camelCase` or `$.camelCase()` and `String.dashedName())` or `$.dashedName()`. + [x] Clock: added events `onTick`, `onSecond` + [x] String: added extensions `includes()`, `camelCase()`, `dashedName()`, `shuffle()` + [x] Array: added extensions `includes()` + [x] ListView: fixed event `onNodeDblclick`, issue #1453 + [x] Ribbon menu: fixed hovering when button disabled, issue #1551 + [x] Components: new constructor function + [x] Colors: full refactoring, now its full equals to `ColorJS` + [x] ColorType: new custom type for `color` variable. Var can be defined as `var c = new Color(...)` or `var c = new Metro.Color(...)` + [x] Material Tabs: update to work in all browsers + [x] Animation: redesign module + [x] Animation: added effects `zoom`, `swirl` + [x] Tiles: remove prefixed `animate-*` for values for attribute `data-effect` + [x] Core: removed meta attribute `metro4:init:mode`. Now Metro is **ALWAYS** initialized after the content has been loaded. + [x] IE: removed file `ie.less`. Styles moved to components styles. + [x] ListView: added method `selectByAttribute(attrName, attrValue, true|false)` for select/deselect items, issue #1554 + [x] Template: new component. This component allows you to use javascript templates inside HTML elements. + [x] Table: fixed using wrapper for `skip`, issue #1557 + [x] Calendar picker: fixed using attribute `clsPrepend`, issue #1558 + [x] Toast: added new arguments format `Metro.createToast(message, options)`. Where `options` is a `plain object`. + [x] Draggable: added attribute `dragContext`, you can set it for access to any object with drag events, issue #1565 + [x] Window: added second argument `context` for events `onDragStart`, `onDragStop`, `onDragMove`, issue #1565 + [x] Calendar picker: fixed work in `dialog-mode` + [x] Tabs: fixed work attribute `clsTabsListItemActive`, issue #1568 + [x] Locales: added danish locale `da-DK`, issue #1570 ### 4.3.7 #### M4Q + [x] Animation: a new engine for animation. The `animate` function changed. Now function receives one argument. Also, you can use old syntax :) + [x] Init: fixed minor bug for creating elements in context + [x] Ajax: added parameter `contentType`. If this param has value `false`, `Content-type` can't be defined. + [x] Contains: added checks with `:visible` to method `is`. Example: `$(...).is(':visible')` + [x] Utils: added methods `$.random(array | a, b)`, `$.getUnit(a)`, `$.strip(where, what)`, `$.hasProp(obj, prop)`, `$.dashedName(val)` + [x] Classes: added method `$(...).removeClassBy(mask)` #### Metro 4 + [x] Source: reposition source code + [x] Builder: new builder config, and new builder version `2020.1`. New version not compatibility with 4.3.6 + [x] Input: fixed append size and padding, issue #1512 + [x] Ripple: added ripple call for any element, issue #1515 + [x] Splitter: added event `onResizeWindow`. Setup this event with prop `data-on-resize-window` or event `$(...).on('resizewindow', ...)`, issue #1516 + [x] Table: added `skip to page` functionality, issue #1511 + [x] Table: added attributes `data-show-skip`, `data-table-skip-title`, `data-skip-wrapper`, `data-cls-table-skip`, `data-cls-table-skip-input`, `data-cls-table-skip-button` + [x] Table: added event `data-on-skip` + [x] Common css: optimize `lists`, `reset` + [x] UtilsJS: improve `isFloat` function, issue #1518 + [x] Icons: added `whatsapp` icon, issue #1510 + [x] AudioButton: added new component for the button with role `audio-button` + [x] Select: fixed `prepend`, `append` for `input-small`, `input-large`. With `multiple`, `append` and `prepend` will not displayed. + [x] Input: fixed `prepend`, `append` for `input-small`, `input-large`. Issue #1522 + [x] Counter: fixed start if element already in viewport + [x] CSS: added `metro-reset.css`, `metro-common.css`, `metro-components.css` as standalone. + [x] Image magnifier: fixed glass image when user resize original image + [x] Notifies: minor improve notify create method + [x] Donut: update for using new `animate` function to draw `stroke-dasharray` + [x] Counter: update for using new `animate` function to draw + [x] File: fixed clear when user fire `reset` on form in `drop` mode, issue #1524 + [x] Adblock: a new component for hunting on the ads blockers + [x] Core: refactoring for new component definition + [x] Audio: rename component to `audio-player` + [x] Video: rename component to `video-player` + [x] Calendar: minor updated for action buttons + [x] i18n: refactoring definition. Now each lang defined in own file + [x] Third party: third party components styles `select2`, `datatables` move to components and include to main + [x] Container: remove prop `display: block` + [x] Select: added using empty value for `option`, issue #1527 + [x] Action button: fixed sub actions position + [x] Additional colors: refactoring + [x] Utils: remove method `random`, to get random value from an array or two values, use `$.random(array | a, b)` from `m4q` + [x] Utils: remove method `uniqueID`, to get unique GUID, use `$.uniqueID(prefix)` from `m4q` + [x] Utils: remove method `formData`, to get form data as array, use `$.serializeToArray(form)` from `m4q` and `$.serialize(form)` to get stringify value with `&` divider + [x] Utils: remove method `strToArray`, to transform string to array, use String.prototype method `String.prototype.toArray(delimiter, type, format)` + [x] Utils: remove method `callback`, execute function or code, use method `Utils.exec(fn, args, context)` + [x] Sidebar: added attribute `data-menu-scrollbar="true|false"`. Attribute enable or disable scrollbar in the sidebar menu, issue #1528 + [x] Tag: new component. Used in `tag-input`, `select`, can be used as standalone. + [x] Ribbon menu: fixed sizes and positions for `ribbon-icon-button`, `ribbon-tool-button` + [x] Menus: removed `text-decoration` for anchors (`a`) inside any types of menus + [x] Cookie: new class for cookie manipulation `Metro.cookie`. Contains methods: `setCookie()`, `getCookie()`, `delCookie()` + [x] Cookie disclaimer: new component for accept cookies for GDPR, and not only, issue #1530 + [x] Metro icon font: added 65 new icons `cross-light`, `document-file-*` (64) + [x] Select: improved performance for creating options, issue #1534 + [x] Select: remove dependency from `d-menu` + [x] Navview: added scrollable to `navview-menu` in `compacted` mode ### 4.3.6 ##### M4Q + [x] M4Q: updated to `1.0.6` + [x] M4Q Init: fixed minor bug for creating elements in context + [x] M4Q Ajax: added parameter `contentType`. If this param has value `false`, `Content-type` can't be defined. ##### Metro 4 + [x] ColorJS: fixed functions `RGB`, `RGBA` + [x] Select: added focus state, issue #1488 + [x] Checkbox: added focus state + [x] Radio: added focus state + [x] Select: added attribute `data-cls-drop-container` + [x] Dropdown: added `important` to `.drop-left`, `.drop-right`, `.drop-up` classes + [x] Table: added support `formatMask` for fields defined in table head `thead` + [x] ResetCSS: remove duplicate declarations + [x] Toast: added global setup. Related to issue #1493 + [x] Streamer: now you can set event time up to a minute + [x] Streamer: now you can use for event size `half` and `one-third` constants + [x] Streamer: added events `onDrawEvent`, `onDrawGlobalEvent`, `onDrawStream` + [x] TreeView: fixed attribute `data-show-child-count` + [x] CalendarPicker: added attribute `data-value` to set init input value, issue #1506 + [x] Streamer: `data-wheel` now true by default + [x] Streamer: added attribute `data-wheel-step` to define scroll step for horizontal scrolling with mouse + [x] Streamer: fixed horizontal scrolling with mouse. ### 4.3.5 ##### M4Q + [x] M4Q: updated to `1.0.5` + [x] M4Q Events: fixed firing events, Metro 4 issue #1476 + [x] M4Q Events: optimize method `trigger`, now this is a synonym of `fire` ##### Metro 4 + [x] Tag input: change `trigger` defining + [x] Tag input: added `clear button` with attributes `clearButton`, `clsClearButton`, `clearButtonIcon` + [x] Tag input: added attributes `clsComponent`, `clsInput` + [x] Tag input: added event `onClear` + [x] List: added attribute `data-sort-initial` to sorts on create component, issue #1475 + [x] Tag input: added attribute `data-static` and static mode for `data-static='true'` or if present attribute `readonly` + [x] Tag input: added method `toggleStatic([true|false])` + [x] Select: fixed clearing `select-input`, issue #1477 + [x] Calendar picker: fixed closing calendar when user click on overlay, issue #1478 + [x] Select: fixed styles for `input-large`, `input-small` classes + [x] Tag input: change `keyup` to `keydown` for tag trigger event + [x] Tag input: added event `onTagTrigger` + [x] Tag input: added removing last tag on current value is empty end user press `Backspace`, you can disable it with attribute `data-backspace='false'` + [x] Draggable: added attribute `data-timeout` for set timeout before creating component + [x] Components: creating components can be deferred with attribute `data-[componentName]-deferred=[ms]`. Example: `<div data-role='draggable' data-draggable-deferred='2000'>...</div>` + [x] Counter: added attribute `data-start-on-viewport`. If attribute value is `true`, counter started after element showed in viewport. You can combine this with `data-timeout` + [x] Select: fixed bug with `data-filter='false'` + [x] File: fixed method `clear` for mode `dropzone` + [x] Select: added mode `button` ### 4.3.4 ##### M4Q + [x] M4Q: updated to `1.0.4` + [x] M4Q Manipulation: optimise `append`, `prepend` to one definition for IE + [x] M4Q Script: added `$.script`, `$.fn.script` to execute scripts from element or create script object + [x] M4Q Manipulation: `$.fn.append`, `$.fn.prepend` now support script tag processing + [x] M4Q Clone: now support cloning `data` if second argument `withData`is `true` - `$(el).clone(true, true)` + [x] M4Q Events: now you can define event name with `hyphen` or in `camelCase` notation. Example: `mouse-down`, `accordionCreate` + [x] M4Q Ajax: fixed handler for sending data + [x] M4Q Ajax: fixed `$.json` if returned value can't be parsed + [x] M4Q Ajax: fixed `post` for `object` + [x] $: added $.serializeToArray(form), $serialize(form) + [x] M4Q Events: fixed `removeEventListener` ##### Metro 4 + [x] Animations: put animations to separate less/css file `metro-animations` + [x] Object animations: added `.flip-card` + [x] Object animations: added `.post-card` + [x] Inputs: change placeholder `font-size` to `14px`, added `text-ellipsis` + [x] Utils CSS: added class `.stop-pointer` + [x] Role naming: you can now use a hyphen to separate words in verbose component names for the data-role attribute. Example: `data-role='button-group''` and `data-role='buttongroup''` are equivalent. + [x] Drag Items: added new component, issue #1336 + [x] Table: fixed `viewPath` for getting `view` from server + [x] Table: fixed colspan for message `emptyTableTitle` + [x] Checkbox: added using attribute `readonly` + [x] Switch: added using attribute `readonly` + [x] Table: fixed `viewPath` for saving `view` on server + [x] Animation CSS: relocation + [x] AppBar: fixed `app-bar-menu` behavior when user resize a window + [x] Slider: fixed hint for IE11 + [x] Window: fixed interop m4q and jquery for `Metro.window.create()` + [x] Splitter: fixed for IE11 + [x] AppBar: added events `onMenuOpen`, `onMenuClose`, `onMenuExpand`, `onMenuCollapse` ### 4.3.3 + [x] m4q: updated to 1.0.3 + [x] Toast: fixed calculating toast position + [x] Progress: fixed global setup function name + [x] Progress: percent value. To show set attribute `data-show-value="true"`, `data-value-position="free|center"` + [x] Progress: added label. Use attributes `data-show-label="true|false"`, `data-label-position="before|after"`, `data-label-template="Value is %VAL%"` + [x] InfoBox: fixed interop with Metro 4 and jQuery + [x] Table: added method `clear()`, issue #1426 + [x] Table: fixed cell data wrapping with attribute `data-cell-wrapper="true"` + [x] File: fixed Input file inconsistent display when user cancel the choose dialog, issue #1443 + [x] Slider: fixed using accuracy with decimal value, issue #1447 + [x] Calendar Picker: added attribute `data-show-week-number` + [x] Gravatar: fixed global setup method name + [x] Activity: fixed method `open` for undefined options + [x] Activity: fixed interop with Metro 4 and jQuery + [x] Dialog: fixed interop with Metro 4 and jQuery for dialog create method + [x] AppBar: set `max-height` for `app-bar-menu` opened with `hamburger` to visible viewport + [x] Buttons: refactoring - split to separate components from one file + [x] Calendar Picker: fixed dialog mode, issue #1450 + [x] Common CSS: added class `-disabled` + [x] General: Now `Metro4` init after content was loaded. If you need to switch to old init method, use `metro4:init:mode` with value `immediate` + [x] Double Slider: added new component, issue #1441 + [x] InfoButton: fixed position and `display` change from `inline-flex` to `inline-block`, issue #1451 + [x] M4Q Events: improve method `on` + [x] Select: fixed for ie11, issue #1452 + [x] ListView: added callback for `onNodeDblClick` event, issue #1453 + [x] Table: added show activity when data loaded + [x] Table: you can set data with JS object and attribute `data-source`. Value for attribute must be a object name. ### 4.3.2 + [x] Slider: fixed vertical slider marker position when slider is not visible, thx to [thinkcpu](https://github.com/thinkcpu), PR #1417 + [x] Slider: improve events + [x] HotKey: extended anchor work with `data-hotkey` and attr `href`, issue #1420 + [x] M4Q Events: fixed `function.name` property for IE11, issue #1425 + [x] Table: added methods `addItem([...], redraw)`, `addItems([...], redraw)`, issue #1426 + [x] Select: attribute `data-cls-drop-list` now override default class `d-menu` if defined + [x] Lists: if list has class attribute, it resets with `margin: 0; padding: 0; list-style: none inside;` + [x] Select: if option not has value, used option text for value + [x] Table: added event `onDataSaveError` + [x] Table: fixed save view to server + [x] M4Q Ajax: fixed creating additional headers for request, issue #1427 + [x] Init: added meta tag `metro4:init:mode`. The value must be `immediate` or `contentloaded`, default - `immediate`. If value is `contentloaded` and meta tag `metro4:init` not equal `false`, Metro 4 will be initiate after the content was loaded. + [x] Table: now you can define `decimalSeparator` and `thousandSeparator` in table head and global + [x] Table: added attributes `data-head` (object name, define table header), `data-body` (object name, define table data) + [x] Table: added attribute `data-static`. If `true`, search, pagination, info, rows count will be disabled and will not showing. + [x] Splitter: added method `size(str)` for change panel sizes at runtime, added observing for attribute `data-split-sizes` for change panel sizes at runtime + [x] Carousel: improve slide switching + [x] TreeView: added trigger `change` for checkboxes + [x] Common: fixed `h-auto-*` ### 4.3.1 + [x] Interop: fixed interop with Metro4 and jQuery, issue #1408 + [x] m4q: updated to 1.0.1 + [x] m4q: fixed initialization when `metro4` added into `head` + [x] Init: fixed issue #1409 + [x] Dropdown: fixed interop between Metro4 and jQuery, issue #1411 + [x] Select: fixed interop between Metro4 and jQuery, issue #1412 + [x] Panel: fixed interop between Metro4 and jQuery + [x] Windows: fixed interop between Metro4 and jQuery + [x] VideoPlayer: fixed interop between Metro4 and jQuery + [x] AudioPlayer: fixed interop between Metro4 and jQuery + [x] Hotkey: fixed interop between Metro4 and jQuery + [x] TimePicker: fixed interop between Metro4 and jQuery + [x] SideBar: fixed interop between Metro4 and jQuery + [x] Charms: fixed interop between Metro4 and jQuery + [x] Select: fixed close when user click document and jQuery used + [x] CalendarPicker: fixed interop between Metro4 and jQuery, fixed close when `next[Year, Month]` clicked + [x] Select: added works with disabled option. You can added attr `disabled` to option to create disabled option, issue #1413 + [x] Window: fixed toggle draggable, resizeable + [x] Tile: fixed tile width in then `tiles-grid` when tile placed in specific column + [x] Metro: fixed observing attributes ### 4.3.0 + [x] jQuery: Goodbye!!! + [x] M4Q: now built in for DOM manipulation and animation + [x] Keypad: rename property `data-length` to `data-key-length` + [x] Slider: fixed show/hide hint + [x] Typo: fixed `margin-top` for lists inside a lists, ex: `ul > ul` + [x] Animation: fixed `fadeIn`, `fadeOut` + [x] NavView: rename attribute `data-expanded` to `data-expand` + [x] Examples: updated `start screen` + [x] Calendar picker: fixed using locale for initial value, issue #1376 + [x] Typo: set line-height for paragraph to 1.5 + [x] Table: fire event onDataLoaded before table build + [x] Dialog: fixed hide method + [x] File: added method "clear" + [x] Source: structure refactoring + [x] Typography: added background to `remark` with `accent` color + [x] Tests: begin tests with `cypress` + [x] Draggable: minor improve for `mouseMove` + [x] Chat: added attribute `data-readonly` and method `toggleReadonly` + [x] Schemes: fixed colors for table `tfoot` + [x] Add `checkRuntime` to components + [x] Table: added attributes `data-empty-table-title`, `data-cls-empty-table-title` for issue #1403 + [x] Table: fixed padding for sortable columns + [x] Add `destroy` method to components. This method remove all event handlers and return core element + [x] Select: added props `data-add-empty-value` (default: false), `data-empty-value` (default: empty string) + [x] Select: added prop `data-placeholder` + [x] Select: added prop `data-clear-button` (default: false) + [x] Grid: optimise styles + [x] Hint: fixed remove on leave element + [x] TreeView: added attribute `data-show-child-count` ### 4.2.49 + [x] Select: extended to interop with role=dropdown + [x] Docs: updated docs for cards, added `icon-box`, `more-info-box`, `skill-box`, `social-box` + [x] Sidebar: fixed setup global function name + [x] Textarea: fixed issue #1400 + [x] MaterialTabs: fixed issue #1402 + [x] MaterialTabs: added method `open(tab_num)` for issue #1399 + [x] Select: fixed input autofocus when dropdown + [x] Textarea: fixed resize when component was created + [x] File: fixed firing `change` event on Safari ### 4.2.48 + [x] Select: fixed error when using with pair to Select from Metro 4 for React + [x] Carousel: moved style props for slide background image from js to css + [x] Input: added attribute `data-exclaim` for defining exclamation symbol + [x] Input: fixed no display clear button when input is readOnly + [x] Textarea: fixed no display clear button when input is readOnly ### 4.2.47 + [x] Input: fixed triggering `change` event, added trigger event `clear` when clear button is pressed + [x] Accordion: fixed glitch for frames who must be closed, but initiated as open ### 4.2.46 + [x] Table: fixed format value for sorting when value is empty, null or undefined + [x] Dropdown: fixed set open on init + [x] DatePicker: added observation for attribute `data-locale` + [x] DatePicker: added observation for attribute `data-format` + [x] Utils: updated func `isLocalhost` + [x] Windows: fixed make runtime + [x] Dialog: fixed make runtime + [x] InfoBox: fixed make runtime + [x] Validator: fixed validating for `integer` and `float` rules, issue #1388 + [x] Builder: fixed builder `config` + [x] Embed objects: set default width and height to `100%` ### 4.2.45 + [x] Calendar picker: fixed initial value for i18n + [x] Typography: set `line-height: 1.5` for `p` + [x] Examples: fixed desktop demo + [x] Examples: fixed start screen demo + [x] Notify system: fixed minor bug for creating notify after setup ### 4.2.44 + [x] Calendar: fixed methods `setMaxDate`, `setMinDate`, issue #1374 + [x] Datepicker: fixed offset for timezones, issue #1372 + [x] Datepicker: fixed `val()` method ### 4.2.43 + [x] Inputs: added class `.input-small` for using with `input`, `select`, `spinner`, `tag-input`, `keypad`, `file` , issue #1245 + [x] Events: updated docs for subscribing events with `$.on` and `addEventListener()` + [x] Panel: new method `customButtons()` for added custom buttons at runtime + [x] Table: added `margin-top: 1rem` for class `.table` + [x] Lists: added `margin-top: 1rem` for `ul`, `ol`, `dl` + [x] Hotkey: full refactoring + [x] Datepicker: added attribute `data-input-format` + [x] Datepicker: fixed hours timezone offset + [x] Datepicker: now you can use attribute `value` to setup component date + [x] Pickers: change default scroll speed factor to `4` + [x] Window: fixed methods `setContent`, `setTitle`, `setIcon`, `changePlace` + [x] Utils: rename method `isJQueryObject` to `isJQuery` + [x] Utils: added methods `isM4Q`, `isQ`. Method `isQ` return one of `isJQuery` or `isM4Q` + [x] Streamer: fixed scrolling with `apple magic mouse` and `firefox` + [x] Streamer: fixed scroll position for `events-area` when source changed + [x] TreeView: fixed confused calls `expandNode` and `collapseNode` events + [x] Dialog: added attribute `data-actions` for predefined dialog + [x] DatePicker: fixed scroll event handler + [x] TimePicker: fixed scroll event handler + [x] Tabs material: added event `data-on-tabs-scroll` + [x] ScrollEvents: plugin for `scrollStart`, `scrollStop` events was removed + [x] Mousewheel: plugin was removed ### 4.2.42 + [x] General: improved components initialization + [x] Hotkeys: now you can added or change `hotkey` at runtime + [x] Select: fixed cyclic error when `Uncaught ReferenceError: function is not defined` for `onchange` event + [x] Card: added class `flex-card` to create card in flex model + [x] ListView: fixed works methods with jQuery object and\or HTMLElement + [x] Streamer: added event `data-on-events-scroll` + [x] Streamer: fixed method `source` + [x] Streamer: rename method `data` to `dataSet` + [x] TreeView: fixed methods for added nodes, issue #1150 ### 4.2.41 + [x] List: added event `data-on-data-load-error` + [x] List: added item template with property `template` + [x] Table: added item template with property `template` and value wrapper `this.cellValue` + [x] Pagination: added function `Metro.pagination` + [x] Templates: now you can change `begin` and `end` template symbols with third argument `{beginToken, endToken}` + [x] Html container: added attributes `data-method`, `data-request-data` + [x] Html container: change name of events to `data-on-html-load`, `data-on-html-load-fail`, `data-on-html-load-done` + [x] Typography: change `line-height` for `p`, `.text-leader`, `.text-leader2` to `1.2` + [x] Charm: added event `data-on-toggle`. + [x] Chat: fixed error for time manipulation, issue #1355 + [x] Master: added events `data-on-next-page`, `data-on-prev-page` + [x] Events extensions: Now you can subscribe to all table events with `$.on()` or `addEventListener()` + [x] Wizard: added events `data-on-next-page`, `data-on-prev-page`, `data-on-first-page`, `data-on-last-page`, `data-on-finish-page` + [x] Global setup: added using global object `metro{ComponentName}Setup` to set up all components on the page with own global options set. + [x] Resizable: fixed toggle `canResize` property + [x] Calendar picker: fixed width for calendar wide + [x] Slider: change events to `startAll`, `moveAll`, `stopAll` + [x] Streamer: added events `data-on-data-load`, `data-on-data-loaded`, `data-on-data-load-error` + [x] Streamer: fixed methods `changeSource`, `changeData` + [x] Streamer: added property `row` for event + [x] Streamer: added property `html` for event with custom html ### 4.2.40 + [x] Chat: new component + [x] Boxes: added new boxes `skill-box`, `social-box`, `more-info-box` + [x] NavView: added behavior for show submenu on left from main menu for compacted mode + [x] Cards: added default background color `white` + [x] Cards: fixed flex model for image header + [x] Colors: change `op-*` alpha value from `0.7` to `0.1` + [x] Dropdown: if element has class `open`, it will be open after initialization + [x] Show metro4 about in console: added meta parameter `metro4:about`. Thanks to [Ken Kitay](https://github.com/kens-code) + [x] Metro4 Events: added constants `Metro.events.startAll`, `Metro.events.stopAll`, `Metro.events.moveAll`. Constants contains both mouse and touch. + [x] Clock: updated component, PR #1341, Thanks to [Ken Kitay](https://github.com/kens-code) + [x] Sidenav simple: optimize css + [x] Sidenav counter: optimize css + [x] File: call trigger `change` when user drop files into drop area + [x] Form: Add default styling for `input[type=submit]`, `input[type=reset]`, `input[type=button]`. + [x] Rating: added half value for static with attribute `data-half="true"` + [x] Headlines: added `margin-top` to `display*`, `h1-h5` and `.h1-.h5` + [x] Panel: added `text-ellipsis` to `caption` + [x] Table: added methods: `updateItem(key, field, value)`, `getIndex()`, `rebuildIndex()`, `getItem(key)` + [x] Table: store item data in row. Now you can use `tr.data('original')` to get table row original data + [x] Table: store cell data in cell. Now you can use `td.data('original')` to get cell original data + [x] Table: fixed incorrect work service radio buttons + [x] Select: remove `margin-bottom` + [x] Blockquote: rename class `place-right` to `right-side` for right side quote + [x] Lists: fixed list style position for ordered list + [x] Dropdown: added service class `stay-open`. When an element has this class, an element can't be closed when the user clicks on the document. + [x] Collapse: change default animation duration to `100ms` + [x] Tiles: set cover default position to `center center` + [x] Tiles: added attribute for image slide `data-cover-position` + [x] Timepicker: set default value for `data-scroll-speed` to `1` + [x] Datepicker: set default value for `data-scroll-speed` to `1` + [x] Countdown: change behavior when browser tab lost focus or invisible + [x] Countdown: fixed zoom effect + [x] Countdown: fixed minor bug when first tick (not critical) + [x] Dialog: change padding for dialog title to `12px 24px` + [x] Dialog: added predefined accent classes `primary`, `alert`, `info`, `warning`, ... + [x] InfoBox: added predefined accent classes `primary`, `alert`, `info`, `warning`, ... + [x] Elements colors: optimize less for using `each` function + [x] Additional colors: optimize less for using `each` function + [x] Element: added class `.accent-block` for using with accent colors classes `primary`, `alert`, `info`, `warning`, ... + [x] Dialog: added close button to top left corner with attribute `data-close-button` + [x] Video: fixed show/hide controls when mouse enter leave + [x] Video: fixed show controls in full screen mode with attribute `data-full-screen-mode="desktop"` + [x] Draggable: fixed minor bug for draggable windows + [x] Sidenav M3: fixed item height with text overflow + [x] Sidenav M3: remove floating for `d-menu` + [x] Dropdown: added attribute `data-drop-filter`. Filtering elements on closing. + [x] Select: Opening a select now closes only other selects. + [x] Accordion: added drop marker. Marker can disabled with attribute `data-show-marker="false"` + [x] Accordion: fixed frames open on accordion init ### 4.2.39 + [x] NavView: minor improve styling + [x] NavView: added method `pullClick()` for emulate pull button click at runtime + [x] NavView: added class `.focusableItems` to added focus state for items + [x] NavView: added attribute `data-active-state="true|false"` to added active state for menu items + [x] NavView: added `.badges` container for menu item for collect menu item badges + [x] NavView: added `.data-box` container for navigation view pane + [x] IconBox: new css component + [x] Panel: fixed draggable + [x] Panel: added custom buttons to panel title + [x] Table: fixed assign classes from attribute `data-cls-head-cell` + [x] Breadcrumbs: added `.breadcrumb-item` class + [x] Draggable: fixed recreate element content when drag started + [x] Table: fixed implements custom class to custom wrappers (search, pagination, ...), issue #1335 + [x] Select: fixed error for validating required func for select with `multiple` option, issue #1338 + [x] Select: for validating added functions `length`, `minlength`, `maxlength` for select with `multiple` option ### 4.2.38 + [x] ListView: added class `.vertical-layout` for `icons-*` view mo