From eb768c061d2c5539110f567faf2047fdc6059d2d Mon Sep 17 00:00:00 2001 From: Thomas Allmer Date: Wed, 25 Sep 2019 11:43:16 +0200 Subject: [PATCH] chore(calendar): different event key names --- packages/calendar/src/LionCalendar.js | 2 +- .../src/utils/differentKeyNamesShimIE.js | 33 ------------- packages/calendar/test/keyboardEventShimIE.js | 49 ------------------- packages/calendar/test/lion-calendar.test.js | 2 +- 4 files changed, 2 insertions(+), 84 deletions(-) delete mode 100644 packages/calendar/src/utils/differentKeyNamesShimIE.js delete mode 100644 packages/calendar/test/keyboardEventShimIE.js diff --git a/packages/calendar/src/LionCalendar.js b/packages/calendar/src/LionCalendar.js index 18771d5de..329a8bf49 100644 --- a/packages/calendar/src/LionCalendar.js +++ b/packages/calendar/src/LionCalendar.js @@ -1,5 +1,6 @@ import { html, LitElement } from '@lion/core'; import { localize, getWeekdayNames, getMonthNames, LocalizeMixin } from '@lion/localize'; +import '@lion/core/src/differentKeyEventNamesShimIE.js'; import { createMultipleMonth } from './utils/createMultipleMonth.js'; import { dayTemplate } from './utils/dayTemplate.js'; import { dataTemplate } from './utils/dataTemplate.js'; @@ -7,7 +8,6 @@ import { getFirstDayNextMonth } from './utils/getFirstDayNextMonth.js'; import { getLastDayPreviousMonth } from './utils/getLastDayPreviousMonth.js'; import { isSameDate } from './utils/isSameDate.js'; import { calendarStyle } from './calendarStyle.js'; -import './utils/differentKeyNamesShimIE.js'; import { createDay } from './utils/createDay.js'; import { normalizeDateTime } from './utils/normalizeDateTime.js'; diff --git a/packages/calendar/src/utils/differentKeyNamesShimIE.js b/packages/calendar/src/utils/differentKeyNamesShimIE.js deleted file mode 100644 index 65b6d49d1..000000000 --- a/packages/calendar/src/utils/differentKeyNamesShimIE.js +++ /dev/null @@ -1,33 +0,0 @@ -const event = KeyboardEvent.prototype; -const descriptor = Object.getOwnPropertyDescriptor(event, 'key'); -if (descriptor) { - const keys = { - Win: 'Meta', - Scroll: 'ScrollLock', - Spacebar: ' ', - - Down: 'ArrowDown', - Left: 'ArrowLeft', - Right: 'ArrowRight', - Up: 'ArrowUp', - - Del: 'Delete', - Apps: 'ContextMenu', - Esc: 'Escape', - - Multiply: '*', - Add: '+', - Subtract: '-', - Decimal: '.', - Divide: '/', - }; - Object.defineProperty(event, 'key', { - // eslint-disable-next-line object-shorthand, func-names - get: function() { - const key = descriptor.get.call(this); - - // eslint-disable-next-line no-prototype-builtins - return keys.hasOwnProperty(key) ? keys[key] : key; - }, - }); -} diff --git a/packages/calendar/test/keyboardEventShimIE.js b/packages/calendar/test/keyboardEventShimIE.js deleted file mode 100644 index 45e834217..000000000 --- a/packages/calendar/test/keyboardEventShimIE.js +++ /dev/null @@ -1,49 +0,0 @@ -if (typeof window.KeyboardEvent !== 'function') { - // e.g. is IE and needs "polyfill" - const KeyboardEvent = (event, _params) => { - // current spec for it https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent - const params = { - bubbles: false, - cancelable: false, - view: document.defaultView, - key: false, - location: false, - ctrlKey: false, - shiftKey: false, - altKey: false, - metaKey: false, - repeat: false, - ..._params, - }; - const modifiersListArray = []; - if (params.ctrlKey) { - modifiersListArray.push('Control'); - } - if (params.shiftKey) { - modifiersListArray.push('Shift'); - } - if (params.altKey) { - modifiersListArray.push('Alt'); - } - if (params.metaKey) { - modifiersListArray.push('Meta'); - } - - const ev = document.createEvent('KeyboardEvent'); - // IE Spec for it https://technet.microsoft.com/en-us/windows/ff975297(v=vs.60) - ev.initKeyboardEvent( - event, - params.bubbles, - params.cancelable, - params.view, - params.key, - params.location, - modifiersListArray.join(' '), - params.repeat ? 1 : 0, - params.locale, - ); - return ev; - }; - KeyboardEvent.prototype = window.Event.prototype; - window.KeyboardEvent = KeyboardEvent; -} diff --git a/packages/calendar/test/lion-calendar.test.js b/packages/calendar/test/lion-calendar.test.js index 84c0b02f7..cc110906c 100644 --- a/packages/calendar/test/lion-calendar.test.js +++ b/packages/calendar/test/lion-calendar.test.js @@ -1,4 +1,5 @@ import { expect, fixture } from '@open-wc/testing'; +import '@lion/core/test-helpers/keyboardEventShimIE.js'; import sinon from 'sinon'; import { html } from '@lion/core'; @@ -6,7 +7,6 @@ import { localize } from '@lion/localize'; import { localizeTearDown } from '@lion/localize/test-helpers.js'; import { CalendarObject, DayObject } from '../test-helpers.js'; -import './keyboardEventShimIE.js'; import { isSameDate } from '../src/utils/isSameDate.js'; import '../lion-calendar.js';