From eec1af36f8d6726528bfabb5158714af00426fca Mon Sep 17 00:00:00 2001 From: Ian Richardson Date: Sat, 2 May 2020 23:27:59 -0500 Subject: [PATCH] 1.5.1 Update action-handler --- package.json | 4 +- src/action-handler-directive.ts | 93 ++++++------ src/const.ts | 2 +- src/radial-menu.ts | 8 +- yarn.lock | 250 ++++++++++++++++++-------------- 5 files changed, 196 insertions(+), 161 deletions(-) diff --git a/package.json b/package.json index a8f330a..05030f0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "radial-menu", - "version": "1.5.0", + "version": "1.5.1", "description": "Lovelace radial-menu", "keywords": [ "home-assistant", @@ -15,7 +15,7 @@ "author": "Ian Richardson ", "license": "MIT", "dependencies": { - "custom-card-helpers": "^1.3.9", + "custom-card-helpers": "^1.6.4", "home-assistant-js-websocket": "^4.4.0", "lit-element": "^2.2.1", "lit-html": "^1.1.2" diff --git a/src/action-handler-directive.ts b/src/action-handler-directive.ts index 1a73805..0718f90 100644 --- a/src/action-handler-directive.ts +++ b/src/action-handler-directive.ts @@ -1,5 +1,6 @@ import { directive, PropertyPart } from 'lit-html'; -import { fireEvent, ActionHandlerOptions } from 'custom-card-helpers'; + +import { fireEvent, ActionHandlerDetail, ActionHandlerOptions } from 'custom-card-helpers'; const isTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; @@ -7,28 +8,30 @@ interface ActionHandler extends HTMLElement { holdTime: number; bind(element: Element, options): void; } -interface ActionHandlerElement extends Element { +interface ActionHandlerElement extends HTMLElement { actionHandler?: boolean; } +declare global { + interface HASSDomEvents { + action: ActionHandlerDetail; + } +} + class ActionHandler extends HTMLElement implements ActionHandler { - public holdTime: number; - /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ + public holdTime = 500; + public ripple: any; - protected timer: number | undefined; - protected held: boolean; - protected cooldownStart: boolean; - protected cooldownEnd: boolean; - private dblClickTimeout: number | undefined; + + protected timer?: number; + + protected held = false; + + private dblClickTimeout?: number; constructor() { super(); - this.holdTime = 500; this.ripple = document.createElement('mwc-ripple'); - this.timer = undefined; - this.held = false; - this.cooldownStart = false; - this.cooldownEnd = false; } public connectedCallback(): void { @@ -38,6 +41,7 @@ class ActionHandler extends HTMLElement implements ActionHandler { height: isTouch ? '100px' : '50px', transform: 'translate(-50%, -50%)', pointerEvents: 'none', + zIndex: '999', }); this.appendChild(this.ripple); @@ -72,13 +76,10 @@ class ActionHandler extends HTMLElement implements ActionHandler { } e.cancelBubble = true; e.returnValue = false; - return; + return false; }); - const clickStart = (ev: Event): void => { - if (this.cooldownStart) { - return; - } + const start = (ev: Event): void => { this.held = false; let x; let y; @@ -94,56 +95,50 @@ class ActionHandler extends HTMLElement implements ActionHandler { this.startAnimation(x, y); this.held = true; }, this.holdTime); - - this.cooldownStart = true; - window.setTimeout(() => (this.cooldownStart = false), 100); }; - const clickEnd = (ev: Event): void => { - if (this.cooldownEnd || (['touchend', 'touchcancel'].includes(ev.type) && this.timer === undefined)) { + const end = (ev: Event): void => { + // Prevent mouse event if touch event + ev.preventDefault(); + if (['touchend', 'touchcancel'].includes(ev.type) && this.timer === undefined) { return; } clearTimeout(this.timer); this.stopAnimation(); this.timer = undefined; if (this.held) { - fireEvent(element as HTMLElement, 'action', { action: 'hold' }); - } else if (options.hasDoubleTap) { - if ((ev as MouseEvent).detail === 1 || ev.type === 'keyup') { + fireEvent(element, 'action', { action: 'hold' }); + } else if (options.hasDoubleClick) { + if ((ev.type === 'click' && (ev as MouseEvent).detail < 2) || !this.dblClickTimeout) { this.dblClickTimeout = window.setTimeout(() => { - fireEvent(element as HTMLElement, 'action', { action: 'tap' }); + this.dblClickTimeout = undefined; + fireEvent(element, 'action', { action: 'tap' }); }, 250); } else { clearTimeout(this.dblClickTimeout); - fireEvent(element as HTMLElement, 'action', { action: 'double_tap' }); + this.dblClickTimeout = undefined; + fireEvent(element, 'action', { action: 'double_tap' }); } } else { - fireEvent(element as HTMLElement, 'action', { action: 'tap' }); + fireEvent(element, 'action', { action: 'tap' }); } - this.cooldownEnd = true; - window.setTimeout(() => (this.cooldownEnd = false), 100); }; - const handleEnter = (ev: Event): void => { - if ((ev as KeyboardEvent).keyCode === 13) { - return clickEnd(ev); + const handleEnter = (ev: KeyboardEvent): void => { + if (ev.keyCode !== 13) { + return; } + end(ev); }; - element.addEventListener('touchstart', clickStart, { passive: true }); - element.addEventListener('touchend', clickEnd); - element.addEventListener('touchcancel', clickEnd); - element.addEventListener('keyup', handleEnter); + element.addEventListener('touchstart', start, { passive: true }); + element.addEventListener('touchend', end); + element.addEventListener('touchcancel', end); - // iOS 13 sends a complete normal touchstart-touchend series of events followed by a mousedown-click series. - // That might be a bug, but until it's fixed, this should make action-handler work. - // If it's not a bug that is fixed, this might need updating with the next iOS version. - // Note that all events (both touch and mouse) must be listened for in order to work on computers with both mouse and touchscreen. - const isIOS13 = /iPhone OS 13_/.test(window.navigator.userAgent); - if (!isIOS13) { - element.addEventListener('mousedown', clickStart, { passive: true }); - element.addEventListener('click', clickEnd); - } + element.addEventListener('mousedown', start, { passive: true }); + element.addEventListener('click', end); + + element.addEventListener('keyup', handleEnter); } private startAnimation(x: number, y: number): void { @@ -187,5 +182,5 @@ export const actionHandlerBind = (element: ActionHandlerElement, options: Action }; export const actionHandler = directive((options: ActionHandlerOptions = {}) => (part: PropertyPart): void => { - actionHandlerBind(part.committer.element, options); + actionHandlerBind(part.committer.element as ActionHandlerElement, options); }); diff --git a/src/const.ts b/src/const.ts index b5b56e5..5f0632b 100644 --- a/src/const.ts +++ b/src/const.ts @@ -1 +1 @@ -export const CARD_VERSION = '1.5.0'; +export const CARD_VERSION = '1.5.1'; diff --git a/src/radial-menu.ts b/src/radial-menu.ts index 5d18e14..b1736cc 100644 --- a/src/radial-menu.ts +++ b/src/radial-menu.ts @@ -92,7 +92,7 @@ export class RadialMenu extends LitElement { @action=${this._handleAction} .actionHandler=${actionHandler({ hasHold: hasAction(item.hold_action), - hasDoubleTap: hasAction(item.double_tap_action), + hasDoubleClick: hasAction(item.double_tap_action), })} .config=${item} .stateObj=${{ @@ -113,7 +113,7 @@ export class RadialMenu extends LitElement { @action=${this._handleAction} .actionHandler=${actionHandler({ hasHold: hasAction(item.hold_action), - hasDoubleTap: hasAction(item.double_tap_action), + hasDoubleClick: hasAction(item.double_tap_action), })} .config=${item} .icon=${item.icon} @@ -133,7 +133,7 @@ export class RadialMenu extends LitElement { @action=${this._handleAction} .actionHandler=${actionHandler({ hasHold: hasAction(this._config.hold_action), - hasDoubleTap: hasAction(this._config.double_tap_action), + hasDoubleClick: hasAction(this._config.double_tap_action), })} .config=${this._config} .stateObj=${{ @@ -151,7 +151,7 @@ export class RadialMenu extends LitElement { @action=${this._handleAction} .actionHandler=${actionHandler({ hasHold: hasAction(this._config.hold_action), - hasDoubleTap: hasAction(this._config.double_tap_action), + hasDoubleClick: hasAction(this._config.double_tap_action), })} .icon=${this._config.icon} .title=${this._config.name} diff --git a/yarn.lock b/yarn.lock index 0e17c60..03be439 100644 --- a/yarn.lock +++ b/yarn.lock @@ -327,6 +327,23 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@formatjs/intl-unified-numberformat@^3.3.5": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@formatjs/intl-unified-numberformat/-/intl-unified-numberformat-3.3.5.tgz#b150c25eb56c1b09a03bf24fb5d1e394b945a27c" + integrity sha512-LdRs9OoqG8Ah6wKKAcaq9wfeZ0w+Icway63thbbOam5DLY9G3u44NReFYWAmVSU+MXOQ+VPATMB9RUXGZxBdig== + dependencies: + "@formatjs/intl-utils" "^2.2.4" + +"@formatjs/intl-utils@^2.2.4": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@formatjs/intl-utils/-/intl-utils-2.2.4.tgz#fe62a96799d1f7dbe621fd38a4bd2e5a6a16cb0e" + integrity sha512-83fsJywew0o9wQsW3VuEp33HRiFd0qbQDyFFnwZCwk59eLZ33CtKyJ5ofKMrU2KK6hk1zaIdzisrZeoNfmI3Tw== + +"@types/chai@^4.2.11": + version "4.2.11" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.11.tgz#d3614d6c5f500142358e6ed24e1bf16657536c50" + integrity sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw== + "@types/eslint-visitor-keys@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" @@ -459,6 +476,11 @@ array-includes@^3.0.3: define-properties "^1.1.2" es-abstract "^1.7.0" +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -492,6 +514,18 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3" integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw== +chai@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -506,6 +540,11 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -518,16 +557,6 @@ cli-width@^2.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= -clone-deep@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" - integrity sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ== - dependencies: - for-own "^1.0.0" - is-plain-object "^2.0.4" - kind-of "^6.0.0" - shallow-clone "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -583,16 +612,18 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -custom-card-helpers@^1.3.9: - version "1.4.0" - resolved "https://registry.yarnpkg.com/custom-card-helpers/-/custom-card-helpers-1.4.0.tgz#8e11f469813e699e6ee6054586b588df8707920e" - integrity sha512-IQdgHu8mt7BGbNIO5b1xVoaxIJhPXQQS4vngCuURhinaj3mWrXPVeUU832WqNdH6QqIWebTYpL98WwALij37iA== +custom-card-helpers@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/custom-card-helpers/-/custom-card-helpers-1.6.4.tgz#d615ab72a26db5c72aaca62d39a9ac4ca37da9a9" + integrity sha512-9h+tUZHtxYGbV7Wiw10NQIHT/CbSnFKcfPkKOCrbHOdGjmg6dFLjIKlTbdVHx2gjbdgRsZoW6DmFmRnLB0VJlQ== dependencies: - fecha "^3.0.3" - home-assistant-js-websocket "^4.4.0" - intl-messageformat "^2.2.0" - lit-element "^2.1.0" - superstruct "^0.6.0" + fecha "^4.2.0" + home-assistant-js-websocket "^5.1.0" + intl-messageformat "^8.3.9" + lit-element "^2.3.1" + rollup "^2.7.6" + superstruct "^0.8.3" + typescript "^3.8.3" debug@^2.6.8, debug@^2.6.9: version "2.6.9" @@ -608,6 +639,13 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: dependencies: ms "^2.1.1" +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -885,10 +923,10 @@ fast-levenshtein@~2.0.4: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fecha@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-3.0.3.tgz#fabbd416497649a42c24d34bfa726b579203a1e2" - integrity sha512-6LQK/1jud/FZnfEEZJ7y81vw7ge81DNd/XEsX0hgMUjhS+QMljkb1C0czBaP7dMNRVrd5mw/J2J7qI2Nw+TWZw== +fecha@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41" + integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg== figures@^3.0.0: version "3.1.0" @@ -942,23 +980,6 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg== -for-in@^0.1.3: - version "0.1.8" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" - integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= - -for-in@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -for-own@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" - integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= - dependencies: - for-in "^1.0.1" - fs-extra@8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -973,6 +994,11 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -983,6 +1009,11 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" @@ -1056,6 +1087,11 @@ home-assistant-js-websocket@^4.4.0: resolved "https://registry.yarnpkg.com/home-assistant-js-websocket/-/home-assistant-js-websocket-4.4.0.tgz#676229112a2357b054ec26ed0f186940757bc826" integrity sha512-B/7nDtlVv3Cz0PVteGjmpGI+Ksw+9Lf4VOM+dlMG1LErCH9uOJlLQV7vswx+7bzeGMuB9YeRDb64lqjoR0zpPg== +home-assistant-js-websocket@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/home-assistant-js-websocket/-/home-assistant-js-websocket-5.1.0.tgz#052d2b6cd0f3fdfd3fabda36555e660351d7efe6" + integrity sha512-lMbDiardBqkM8UEzk13fgypkBRur/ZawdybWVl1vbwtjGfAQOVTttqdogzpED+xgdLbp+5NfYkPNeGhEx92LvQ== + hosted-git-info@^2.1.4: version "2.7.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" @@ -1118,17 +1154,28 @@ inquirer@^7.0.0: strip-ansi "^5.1.0" through "^2.3.6" -intl-messageformat-parser@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz#b43d45a97468cadbe44331d74bb1e8dea44fc075" - integrity sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU= +intl-format-cache@^4.2.26: + version "4.2.26" + resolved "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-4.2.26.tgz#ba5e2ee6cec25217f688b68ecdd58eec3703a827" + integrity sha512-RalEzK89R3rJrOo7vcGY8h1WLypF1ZRQQldIsrQM6FTEPixvHb+pAEhd2QkdUk972hFjAEBJR02GdHhaEw9v2g== + dependencies: + "@types/chai" "^4.2.11" + chai "^4.2.0" -intl-messageformat@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-2.2.0.tgz#345bcd46de630b7683330c2e52177ff5eab484fc" - integrity sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw= +intl-messageformat-parser@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-5.0.2.tgz#878c0d66459b366f4135a812007a873789875b95" + integrity sha512-7logOIMKQX4cWTAGdMSPdlzlGG2aGcpdTr/Laroi3/LTgXvYqMQ8fbC7DolygSEWUxbYrzDIuQsoQGJO6Kp8Gg== + dependencies: + "@formatjs/intl-unified-numberformat" "^3.3.5" + +intl-messageformat@^8.3.9: + version "8.3.9" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-8.3.9.tgz#fa57e6f5abdd4b5ad03dd767c965435bd38cbd78" + integrity sha512-WHIopaMiZ14UJ76d14FfqbeNE3knGJT7pJg6eJVxh1G5ziL656BqfQk6dYxPZ2VvoaY7wnT3dLlIXy1MTE0blw== dependencies: - intl-messageformat-parser "1.4.0" + intl-format-cache "^4.2.26" + intl-messageformat-parser "^5.0.2" is-arrayish@^0.2.1: version "0.2.1" @@ -1145,11 +1192,6 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= -is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -1177,13 +1219,6 @@ is-module@^1.0.0: resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -1213,11 +1248,6 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - jest-worker@^24.0.0, jest-worker@^24.6.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" @@ -1268,15 +1298,10 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== levn@^0.3.0, levn@~0.3.0: version "0.3.0" @@ -1286,13 +1311,6 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lit-element@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-2.1.0.tgz#85bc3f1da0227f4b13de8a1be978229b9fa327e9" - integrity sha512-0z/KHm1xZweivfOVRr8AKR06+D3k02u15m9s4jkuRdnGe5wfmEwePzrQQBsSZNILdnfJvfo3TJOeGhBCVZaPbw== - dependencies: - lit-html "^1.0.0" - lit-element@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-2.2.1.tgz#79c94d8cfdc2d73b245656e37991bd1e4811d96f" @@ -1300,11 +1318,23 @@ lit-element@^2.2.1: dependencies: lit-html "^1.0.0" +lit-element@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-2.3.1.tgz#73343b978fa1e73d60526c6bb6ad60f53a16c343" + integrity sha512-tOcUAmeO3BzwiQ7FGWdsshNvC0HVHcTFYw/TLIImmKwXYoV0E7zCBASa8IJ7DiP4cen/Yoj454gS0qqTnIGsFA== + dependencies: + lit-html "^1.1.1" + lit-html@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-1.0.0.tgz#3dc3781a8ca68a9b5c2ff2a61e263662b9b2267b" integrity sha512-oeWlpLmBW3gFl7979Wol2LKITpmKTUFNn7PnFbh6YNynF61W74l6x5WhwItAwPRSATpexaX1egNnRzlN4GOtfQ== +lit-html@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-1.2.1.tgz#1fb933dc1e2ddc095f60b8086277d4fcd9d62cc8" + integrity sha512-GSJHHXMGLZDzTRq59IUfL9FCdAlGfqNp/dEa7k7aBaaWD+JKaCjsAk9KYm2V12ItonVaYx2dprN66Zdm1AuBTQ== + lit-html@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-1.1.2.tgz#2e3560a7075210243649c888ad738eaf0daa8374" @@ -1389,14 +1419,6 @@ minimist@^1.2.0: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= -mixin-object@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" - integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= - dependencies: - for-in "^0.1.3" - is-extendable "^0.1.1" - mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -1604,6 +1626,11 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" +pathval@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -1788,6 +1815,13 @@ rollup@^1.26.0: "@types/node" "*" acorn "^7.1.0" +rollup@^2.7.6: + version "2.7.6" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.7.6.tgz#8e6682e64ca65eb33b896dcce902696f0415ce1a" + integrity sha512-AdHosxHBKyBsdtbT1/AqbWNQ87O4SSxS4N9iMwEpoCDAT6e4Du3uJSy83mp3ckgmCxly5VeXGx0WHsm21Djytg== + optionalDependencies: + fsevents "~2.1.2" + run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" @@ -1832,15 +1866,6 @@ serialize-javascript@^1.7.0, serialize-javascript@^1.9.0: resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== -shallow-clone@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" - integrity sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA== - dependencies: - is-extendable "^0.1.1" - kind-of "^5.0.0" - mixin-object "^2.0.1" - shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -1967,13 +1992,13 @@ strip-json-comments@^3.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== -superstruct@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.6.0.tgz#20d2073526cf683a57f258695e009c4a19134ad0" - integrity sha512-6Y+bh5oFXCMUmGGzcdwd8M2qXMWn9aH3Qu2wV8Cg/Lxu+3fTxJ0dTx54nKd/Sm3lSz3i901xVatzev7c/xN8Lg== +superstruct@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.8.3.tgz#fb4d8901aca3bf9f79afab1bbab7a7f335cc4ef2" + integrity sha512-LbtbFpktW1FcwxVIJlxdk7bCyBq/GzOx2FSFLRLTUhWIA1gHkYPIl3aXRG5mBdGZtnPNT6t+4eEcLDCMOuBHww== dependencies: - clone-deep "^2.0.1" - kind-of "^6.0.1" + kind-of "^6.0.2" + tiny-invariant "^1.0.6" supports-color@^5.3.0: version "5.5.0" @@ -2018,6 +2043,11 @@ through@^2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= +tiny-invariant@^1.0.6: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -2054,6 +2084,11 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + type-fest@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" @@ -2064,6 +2099,11 @@ typescript@^3.6.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.4.tgz#b18752bb3792bc1a0281335f7f6ebf1bbfc5b91d" integrity sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg== +typescript@^3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" + integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== + uglify-js@^3.4.9: version "3.6.7" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.7.tgz#15f49211df6b8a01ee91322bbe46fa33223175dc"