diff --git a/.eslintrc.yml b/.eslintrc.yml deleted file mode 100644 index a6a0ce9..0000000 --- a/.eslintrc.yml +++ /dev/null @@ -1,277 +0,0 @@ ---- -parserOptions: - sourceType: module - ecmaFeatures: - jsx: true - -env: - amd: true - browser: true - es6: true - jquery: true - node: true - -# http://eslint.org/docs/rules/ -rules: - # Possible Errors - no-await-in-loop: off - no-cond-assign: error - no-console: off - no-constant-condition: error - no-control-regex: error - no-debugger: error - no-dupe-args: error - no-dupe-keys: error - no-duplicate-case: error - no-empty-character-class: error - no-empty: error - no-ex-assign: error - no-extra-boolean-cast: error - no-extra-parens: off - no-extra-semi: error - no-func-assign: error - no-inner-declarations: - - error - - functions - no-invalid-regexp: error - no-irregular-whitespace: error - no-negated-in-lhs: error - no-obj-calls: error - no-prototype-builtins: off - no-regex-spaces: error - no-sparse-arrays: error - no-template-curly-in-string: off - no-unexpected-multiline: error - no-unreachable: error - no-unsafe-finally: off - no-unsafe-negation: off - use-isnan: error - valid-jsdoc: off - valid-typeof: error - - # Best Practices - accessor-pairs: error - array-callback-return: off - block-scoped-var: off - class-methods-use-this: off - complexity: - - error - - 6 - consistent-return: off - curly: off - default-case: off - dot-location: off - dot-notation: off - eqeqeq: error - guard-for-in: error - no-alert: error - no-caller: error - no-case-declarations: error - no-div-regex: error - no-else-return: off - no-empty-function: off - no-empty-pattern: error - no-eq-null: error - no-eval: error - no-extend-native: error - no-extra-bind: error - no-extra-label: off - no-fallthrough: error - no-floating-decimal: off - no-global-assign: off - no-implicit-coercion: off - no-implied-eval: error - no-invalid-this: off - no-iterator: error - no-labels: - - error - - allowLoop: true - allowSwitch: true - no-lone-blocks: error - no-loop-func: error - no-magic-number: off - no-multi-spaces: off - no-multi-str: off - no-native-reassign: error - no-new-func: error - no-new-wrappers: error - no-new: error - no-octal-escape: error - no-octal: error - no-param-reassign: off - no-proto: error - no-redeclare: error - no-restricted-properties: off - no-return-assign: error - no-return-await: off - no-script-url: error - no-self-assign: off - no-self-compare: error - no-sequences: off - no-throw-literal: off - no-unmodified-loop-condition: off - no-unused-expressions: error - no-unused-labels: off - no-useless-call: error - no-useless-concat: error - no-useless-escape: off - no-useless-return: off - no-void: error - no-warning-comments: off - no-with: error - prefer-promise-reject-errors: off - radix: error - require-await: off - vars-on-top: off - wrap-iife: error - yoda: off - - # Strict - strict: off - - # Variables - init-declarations: off - no-catch-shadow: error - no-delete-var: error - no-label-var: error - no-restricted-globals: off - no-shadow-restricted-names: error - no-shadow: off - no-undef-init: error - no-undef: off - no-undefined: off - no-unused-vars: off - no-use-before-define: off - - # Node.js and CommonJS - callback-return: error - global-require: error - handle-callback-err: error - no-mixed-requires: off - no-new-require: off - no-path-concat: error - no-process-env: off - no-process-exit: error - no-restricted-modules: off - no-sync: off - - # Stylistic Issues - array-bracket-spacing: off - block-spacing: off - brace-style: off - camelcase: off - capitalized-comments: off - comma-dangle: - - error - - never - comma-spacing: off - comma-style: off - computed-property-spacing: off - consistent-this: off - eol-last: off - func-call-spacing: off - func-name-matching: off - func-names: off - func-style: off - id-length: off - id-match: off - indent: off - jsx-quotes: off - key-spacing: off - keyword-spacing: off - line-comment-position: off - linebreak-style: off - lines-around-comment: off - lines-around-directive: off - max-depth: off - max-len: off - max-nested-callbacks: off - max-params: off - max-statements-per-line: off - max-statements: - - error - - 30 - multiline-ternary: off - new-cap: off - new-parens: off - newline-after-var: off - newline-before-return: off - newline-per-chained-call: off - no-array-constructor: off - no-bitwise: off - no-continue: off - no-inline-comments: off - no-lonely-if: off - no-mixed-operators: off - no-mixed-spaces-and-tabs: off - no-multi-assign: off - no-multiple-empty-lines: off - no-negated-condition: off - no-nested-ternary: off - no-new-object: off - no-plusplus: off - no-restricted-syntax: off - no-spaced-func: off - no-tabs: off - no-ternary: off - no-trailing-spaces: off - no-underscore-dangle: off - no-unneeded-ternary: off - object-curly-newline: off - object-curly-spacing: off - object-property-newline: off - one-var-declaration-per-line: off - one-var: off - operator-assignment: off - operator-linebreak: off - padded-blocks: off - quote-props: off - quotes: off - require-jsdoc: off - semi-spacing: off - semi: off - sort-keys: off - sort-vars: off - space-before-blocks: off - space-before-function-paren: off - space-in-parens: off - space-infix-ops: off - space-unary-ops: off - spaced-comment: off - template-tag-spacing: off - unicode-bom: off - wrap-regex: off - - # ECMAScript 6 - arrow-body-style: off - arrow-parens: off - arrow-spacing: off - constructor-super: off - generator-star-spacing: off - no-class-assign: off - no-confusing-arrow: off - no-const-assign: off - no-dupe-class-members: off - no-duplicate-imports: off - no-new-symbol: off - no-restricted-imports: off - no-this-before-super: off - no-useless-computed-key: off - no-useless-constructor: off - no-useless-rename: off - no-var: off - object-shorthand: off - prefer-arrow-callback: off - prefer-const: off - prefer-destructuring: off - prefer-numeric-literals: off - prefer-rest-params: off - prefer-reflect: off - prefer-spread: off - prefer-template: off - require-yield: off - rest-spread-spacing: off - sort-imports: off - symbol-description: off - template-curly-spacing: off - yield-star-spacing: off diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index d421faa..0000000 --- a/.jshintrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "predef": [ - "document", - "window", - "-Promise" - ], - "browser": true, - "boss": true, - "curly": true, - "debug": false, - "devel": true, - "eqeqeq": true, - "evil": true, - "forin": false, - "immed": false, - "laxbreak": false, - "newcap": true, - "noarg": true, - "noempty": false, - "nonew": false, - "nomen": false, - "onevar": false, - "plusplus": false, - "regexp": false, - "undef": true, - "sub": true, - "strict": false, - "white": false, - "eqnull": true, - "esversion": 6, - "unused": true -} diff --git a/addon/mixins/ctrl-enter-submits-form.js b/addon/mixins/ctrl-enter-submits-form.js index 328f0ba..a36649f 100644 --- a/addon/mixins/ctrl-enter-submits-form.js +++ b/addon/mixins/ctrl-enter-submits-form.js @@ -1,10 +1,11 @@ -import { deprecatingAlias } from "@ember/object/computed"; -import Mixin from "@ember/object/mixin"; -/* global KeyEvent */ -import { once } from "@ember/runloop"; +import KeyEvent from 'keyevent'; -import ClosestForm from "./closest-form"; -import FormSubmissionUtils from "./form-submission-utils"; +import { deprecatingAlias } from '@ember/object/computed'; +import Mixin from '@ember/object/mixin'; +import { once } from '@ember/runloop'; + +import ClosestForm from './closest-form'; +import FormSubmissionUtils from './form-submission-utils'; /** * When the CTRL+ENTER is pressed the nearest form up the DOM is triggered for submit. @@ -17,9 +18,9 @@ export default Mixin.create(ClosestForm, FormSubmissionUtils, { * The function will receive three parameters: the first is the DOM event, the second is * `this` component, and the third is the jQuery wrapped `$form`. */ - afterCtrlEnterSubmitAction: deprecatingAlias("afterSubmit", { - id: "mixin.ctrl-enter-submits-form.deprecate-after-ctrl-enter-submit-action", - until: "2.1.0", + afterCtrlEnterSubmitAction: deprecatingAlias('afterSubmit', { + id: 'mixin.ctrl-enter-submits-form.deprecate-after-ctrl-enter-submit-action', + until: '2.1.0', }), /** @@ -27,16 +28,16 @@ export default Mixin.create(ClosestForm, FormSubmissionUtils, { * The function will receive three parameters: the first is the DOM event, the second is * `this` component, and the third is the jQuery wrapped `$form`. */ - beforeCtrlEnterSubmitAction: deprecatingAlias("beforeSubmit", { - id: "mixin.ctrl-enter-submits-form.deprecate-before-ctrl-enter-submit-action", - until: "2.1.0", + beforeCtrlEnterSubmitAction: deprecatingAlias('beforeSubmit', { + id: 'mixin.ctrl-enter-submits-form.deprecate-before-ctrl-enter-submit-action', + until: '2.1.0', }), /** * When set to `true`, CTRL+ENTER will attempt to submit the nearest form. Set this to `false` if you do not * want this behaviour. Default value is `false`. */ - "ctrlEnterSubmitsForm?": false, + 'ctrlEnterSubmitsForm?': false, /** * Immediately prevent this ENTER/RETURN key from bubbling. @@ -45,15 +46,8 @@ export default Mixin.create(ClosestForm, FormSubmissionUtils, { insertNewline(event) { this._super(...arguments); - if (this["ctrlEnterSubmitsForm?"] && event.ctrlKey) { - once( - this, - this._triggerFormSubmission, - this.afterAction, - this.beforeAction, - event, - this._form - ); + if (this['ctrlEnterSubmitsForm?'] && event.ctrlKey) { + once(this, this._triggerFormSubmission, this.afterAction, this.beforeAction, event, this._form); } }, @@ -66,11 +60,7 @@ export default Mixin.create(ClosestForm, FormSubmissionUtils, { keyPress(event) { this._super(...arguments); - if ( - event.ctrlKey && - (event.keyCode === KeyEvent.DOM_VK_ENTER || - event.keyCode === KeyEvent.DOM_VK_RETURN) - ) { + if (event.ctrlKey && (event.keyCode === KeyEvent.DOM_VK_ENTER || event.keyCode === KeyEvent.DOM_VK_RETURN)) { event.preventDefault(); } }, diff --git a/addon/mixins/enter-submits-form.js b/addon/mixins/enter-submits-form.js index 81027f2..de042b0 100644 --- a/addon/mixins/enter-submits-form.js +++ b/addon/mixins/enter-submits-form.js @@ -1,10 +1,11 @@ -import { deprecatingAlias } from "@ember/object/computed"; -import Mixin from "@ember/object/mixin"; -/* global KeyEvent */ -import { once } from "@ember/runloop"; +import KeyEvent from 'keyevent'; -import ClosestForm from "./closest-form"; -import FormSubmissionUtils from "./form-submission-utils"; +import { deprecatingAlias } from '@ember/object/computed'; +import Mixin from '@ember/object/mixin'; +import { once } from '@ember/runloop'; + +import ClosestForm from './closest-form'; +import FormSubmissionUtils from './form-submission-utils'; /** * When the ENTER is pressed the nearest form up the DOM is triggered for submit. @@ -16,15 +17,15 @@ export default Mixin.create(ClosestForm, FormSubmissionUtils, { * The version 1.x property for pressing enter. Deprecated in favour of `enterSubmitsForm?`. * @deprecated */ - "enterWillSubmitForm?": deprecatingAlias("enterSubmitsForm?", { - id: "mixin.enter-submits-form.deprecate-enter-will-submit-form?", - until: "2.1.0", + 'enterWillSubmitForm?': deprecatingAlias('enterSubmitsForm?', { + id: 'mixin.enter-submits-form.deprecate-enter-will-submit-form?', + until: '2.1.0', }), /** * Defaults to `true`. By default, a text-based input should submit when just the enter key is pressed. */ - "enterSubmitsForm?": true, + 'enterSubmitsForm?': true, /** * Immediately prevent this ENTER/RETURN key from bubbling. @@ -33,21 +34,8 @@ export default Mixin.create(ClosestForm, FormSubmissionUtils, { insertNewline(event) { this._super(...arguments); - if ( - this["enterSubmitsForm?"] && - !event.altKey && - !event.ctrlKey && - !event.metaKey && - !event.shiftKey - ) { - once( - this, - this._triggerFormSubmission, - this.afterAction, - this.beforeAction, - event, - this._form - ); + if (this['enterSubmitsForm?'] && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) { + once(this, this._triggerFormSubmission, this.afterAction, this.beforeAction, event, this._form); } }, @@ -59,10 +47,7 @@ export default Mixin.create(ClosestForm, FormSubmissionUtils, { */ keyPress(event) { this._super(...arguments); - if ( - event.keyCode === KeyEvent.DOM_VK_ENTER || - event.keyCode === KeyEvent.DOM_VK_RETURN - ) { + if (event.keyCode === KeyEvent.DOM_VK_ENTER || event.keyCode === KeyEvent.DOM_VK_RETURN) { event.preventDefault(); } }, diff --git a/ember-cli-build.js b/ember-cli-build.js index 5a3fdc3..6533780 100644 --- a/ember-cli-build.js +++ b/ember-cli-build.js @@ -4,25 +4,7 @@ const EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); module.exports = function (defaults) { - let app = new EmberAddon(defaults, { - nodeAssets: { - keyevent: { - vendor: { - srcDir: 'src', - destDir: 'ember-cli-text-support-mixins', - include: ['keyevent.js'] - } - } - } - }); - - /* - This build file specifies the options for the dummy test app of this - addon, located in `/tests/dummy` - This build file does *not* influence how the addon or the app using it - behave. You most likely want to be modifying `./index.js` or app's build file - */ - app.import('vendor/ember-cli-text-support-mixins/keyevent.js'); + let app = new EmberAddon(defaults, {}); return app.toTree(); }; diff --git a/index.js b/index.js index e401297..2c132ac 100644 --- a/index.js +++ b/index.js @@ -1,23 +1,6 @@ /* eslint-env node */ -"use strict"; +'use strict'; module.exports = { - name: require("./package").name, - - options: { - nodeAssets: { - keyevent: { - vendor: { - srcDir: "src", - destDir: "ember-cli-text-support-mixins", - include: ["keyevent.js"], - }, - }, - }, - }, - - included: function (app) { - this._super.included.apply(this, arguments); - app.import("vendor/ember-cli-text-support-mixins/keyevent.js"); - }, + name: require('./package').name, }; diff --git a/install_ember_addons.sh b/install_ember_addons.sh deleted file mode 100755 index f765a19..0000000 --- a/install_ember_addons.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -yarn add --dev clipboard - -ember install ct-emberjs-bling - -ember install @fortawesome/ember-fontawesome -yarn add @fortawesome/free-solid-svg-icons --dev -yarn add @fortawesome/free-brands-svg-icons --dev - -ember install ember-auto-import - -ember install ember-cli-app-version - -ember install ember-cli-bootstrap-4 - -ember install ember-cli-deploy -ember install ember-cli-deploy-build -ember install ember-cli-deploy-gzip -ember install ember-cli-deploy-s3 -ember install ember-cli-deploy-slack - -ember install ember-cli-element-closest-polyfill - -ember install ember-route-action-helper - -yarn add keyevent --dev -yarn add ember-cli-node-assets # this must go into "dependencies" NOT "devDependencies" diff --git a/package.json b/package.json index b21f740..d0c3c4f 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "ember-auto-import": "^2.4.1", "ember-cli-babel": "^7.17.2", "ember-cli-htmlbars": "^6.0.1", - "ember-cli-node-assets": "^0.2.2" + "keyevent": "^2.0.0" }, "devDependencies": { "@ember/jquery": "^2.0.0", @@ -92,7 +92,6 @@ "ember-try": "^2.0.0", "eslint-plugin-ember": "^7.7.2", "eslint-plugin-node": "^11.1.0", - "keyevent": "^1.1.0", "loader.js": "^4.7.0", "popper.js": "^1.14.0", "prettier": "^2.6.2", diff --git a/tests/acceptance/escape-clears-test.js b/tests/acceptance/escape-clears-test.js index cd09ae3..f7fb42c 100644 --- a/tests/acceptance/escape-clears-test.js +++ b/tests/acceptance/escape-clears-test.js @@ -1,57 +1,37 @@ -import { setupApplicationTest } from "ember-qunit"; -/* global KeyEvent */ +import { setupApplicationTest } from 'ember-qunit'; +import KeyEvent from 'keyevent'; // eslint-disable-next-line no-unused-vars -import { module, skip, test } from "qunit"; +import { module, skip, test } from 'qunit'; -import { currentURL, keyEvent, visit } from "@ember/test-helpers"; +import { currentURL, keyEvent, visit } from '@ember/test-helpers'; -module("Acceptance | escape clears", function (hooks) { +module('Acceptance | escape clears', function (hooks) { setupApplicationTest(hooks); - skip("when escape clears text by default", async function (assert) { - await visit("/acceptance/escape-clears-text"); - - assert.equal(currentURL(), "/acceptance/escape-clears-text"); - assert - .dom("input.escape-clears-by-default") - .hasValue("Escape Clears This Text"); - await keyEvent( - "input.escape-clears-by-default", - "keyup", - KeyEvent.DOM_VK_ESCAPE - ); - assert.dom("input.escape-clears-by-default").hasValue(""); + skip('when escape clears text by default', async function (assert) { + await visit('/acceptance/escape-clears-text'); + + assert.equal(currentURL(), '/acceptance/escape-clears-text'); + assert.dom('input.escape-clears-by-default').hasValue('Escape Clears This Text'); + await keyEvent('input.escape-clears-by-default', 'keyup', KeyEvent.DOM_VK_ESCAPE); + assert.dom('input.escape-clears-by-default').hasValue(''); }); - skip("when escape clears text because escapeKeyClears? was set to true", async function (assert) { - await visit("/acceptance/escape-clears-text"); - - assert.equal(currentURL(), "/acceptance/escape-clears-text"); - assert - .dom("input.escape-clears-enabled") - .hasValue("Escape Clears This Text"); - await keyEvent( - "input.escape-clears-enabled", - "keyup", - KeyEvent.DOM_VK_ESCAPE - ); - assert.dom("input.escape-clears-enabled").hasValue(""); + skip('when escape clears text because escapeKeyClears? was set to true', async function (assert) { + await visit('/acceptance/escape-clears-text'); + + assert.equal(currentURL(), '/acceptance/escape-clears-text'); + assert.dom('input.escape-clears-enabled').hasValue('Escape Clears This Text'); + await keyEvent('input.escape-clears-enabled', 'keyup', KeyEvent.DOM_VK_ESCAPE); + assert.dom('input.escape-clears-enabled').hasValue(''); }); - skip("when escape WILL NOT clear text because escapeKeyClears? was set to false", async function (assert) { - await visit("/acceptance/escape-clears-text"); - - assert.equal(currentURL(), "/acceptance/escape-clears-text"); - assert - .dom("input.escape-clears-disabled") - .hasValue("Escape Will Not Clear This Text"); - await keyEvent( - "input.escape-clears-disabled", - "keyup", - KeyEvent.DOM_VK_ESCAPE - ); - assert - .dom("input.escape-clears-disabled") - .hasValue("Escape Will Not Clear This Text"); + skip('when escape WILL NOT clear text because escapeKeyClears? was set to false', async function (assert) { + await visit('/acceptance/escape-clears-text'); + + assert.equal(currentURL(), '/acceptance/escape-clears-text'); + assert.dom('input.escape-clears-disabled').hasValue('Escape Will Not Clear This Text'); + await keyEvent('input.escape-clears-disabled', 'keyup', KeyEvent.DOM_VK_ESCAPE); + assert.dom('input.escape-clears-disabled').hasValue('Escape Will Not Clear This Text'); }); }); diff --git a/tests/integration/components/input-text-test.js b/tests/integration/components/input-text-test.js index 01f2dc0..da2215e 100644 --- a/tests/integration/components/input-text-test.js +++ b/tests/integration/components/input-text-test.js @@ -1,23 +1,23 @@ -import { setupRenderingTest } from "ember-qunit"; -import hbs from "htmlbars-inline-precompile"; -/* global KeyEvent */ -import { module, skip, test } from "qunit"; +import { setupRenderingTest } from 'ember-qunit'; +import hbs from 'htmlbars-inline-precompile'; +import KeyEvent from 'keyevent'; +import { module, skip, test } from 'qunit'; -import { render, triggerKeyEvent } from "@ember/test-helpers"; -import { isPresent } from "@ember/utils"; +import { render, triggerKeyEvent } from '@ember/test-helpers'; +import { isPresent } from '@ember/utils'; -module("Integration | Component | input text", function (hooks) { +module('Integration | Component | input text', function (hooks) { setupRenderingTest(hooks); - test("when rendered the .input-text class is present", async function (assert) { + test('when rendered the .input-text class is present', async function (assert) { await render(hbs`{{input-text}}`); - assert.dom("input[type=text]").hasClass("input-text"); + assert.dom('input[type=text]').hasClass('input-text'); }); - skip("when form is not submitted by pressing enter", async function (assert) { + skip('when form is not submitted by pressing enter', async function (assert) { let formSubmitted = false; - this.set("formAction", () => { + this.set('formAction', () => { formSubmitted = true; }); @@ -29,29 +29,27 @@ module("Integration | Component | input text", function (hooks) { assert.notOk(formSubmitted); - await triggerKeyEvent("input", "keydown", KeyEvent.DOM_VK_ENTER); + await triggerKeyEvent('input', 'keydown', KeyEvent.DOM_VK_ENTER); assert.ok(formSubmitted); }); - test("when form cannot be found it does not ctrl+enter submit or invoke any before/after hooks", async function (assert) { + test('when form cannot be found it does not ctrl+enter submit or invoke any before/after hooks', async function (assert) { let wasCalled = false; let formSubmitted = false; - this.set("beforeSubmitAction", function (event, component, $form) { + this.set('beforeSubmitAction', function (event, component, $form) { wasCalled = true; assert.ok(isPresent(event)); assert.ok(isPresent(component)); assert.ok(isPresent($form)); }); - await render( - hbs`{{input-text ctrlEnterSubmitsForm?=true beforeSubmit=this.beforeSubmitAction}}` - ); + await render(hbs`{{input-text ctrlEnterSubmitsForm?=true beforeSubmit=this.beforeSubmitAction}}`); assert.notOk(wasCalled); assert.notOk(formSubmitted); - await triggerKeyEvent("input", "keydown", KeyEvent.DOM_VK_ENTER, { + await triggerKeyEvent('input', 'keydown', KeyEvent.DOM_VK_ENTER, { ctrlKey: true, }); @@ -59,18 +57,18 @@ module("Integration | Component | input text", function (hooks) { assert.notOk(formSubmitted); }); - skip("when hooking into the before ctrl-enter-submits-form hook", async function (assert) { + skip('when hooking into the before ctrl-enter-submits-form hook', async function (assert) { let wasCalled = false; let formSubmitted = false; - this.set("beforeSubmitAction", function (event, component, $form) { + this.set('beforeSubmitAction', function (event, component, $form) { wasCalled = true; assert.ok(isPresent(event)); assert.ok(isPresent(component)); assert.ok(isPresent($form)); }); - this.set("formAction", () => { + this.set('formAction', () => { formSubmitted = true; }); @@ -83,7 +81,7 @@ module("Integration | Component | input text", function (hooks) { assert.notOk(wasCalled); assert.notOk(formSubmitted); - await triggerKeyEvent("input", "keydown", KeyEvent.DOM_VK_ENTER, { + await triggerKeyEvent('input', 'keydown', KeyEvent.DOM_VK_ENTER, { ctrlKey: true, }); @@ -91,17 +89,17 @@ module("Integration | Component | input text", function (hooks) { assert.ok(formSubmitted); }); - skip("when hooking into the after ctrl-enter-submits-form hook", async function (assert) { + skip('when hooking into the after ctrl-enter-submits-form hook', async function (assert) { let wasCalled = false; let formSubmitted = false; - this.set("afterCtrlEnterSubmitAction", function (event, component, $form) { + this.set('afterCtrlEnterSubmitAction', function (event, component, $form) { wasCalled = true; assert.ok(isPresent(event)); assert.ok(isPresent(component)); assert.ok(isPresent($form)); }); - this.set("formAction", () => { + this.set('formAction', () => { formSubmitted = true; }); @@ -114,7 +112,7 @@ module("Integration | Component | input text", function (hooks) { assert.notOk(wasCalled); assert.notOk(formSubmitted); - await triggerKeyEvent("input", "keydown", KeyEvent.DOM_VK_ENTER, { + await triggerKeyEvent('input', 'keydown', KeyEvent.DOM_VK_ENTER, { ctrlKey: true, }); @@ -122,38 +120,34 @@ module("Integration | Component | input text", function (hooks) { assert.ok(formSubmitted); }); - test("when hooking into the before escape-key-clears hook", async function (assert) { + test('when hooking into the before escape-key-clears hook', async function (assert) { let wasCalled = false; - this.set("beforeClearAction", function (event, component) { + this.set('beforeClearAction', function (event, component) { wasCalled = true; assert.ok(isPresent(event)); assert.ok(isPresent(component)); }); - await render( - hbs`{{input-text escapeKeyClears?=true beforeClearAction=beforeClearAction}}` - ); + await render(hbs`{{input-text escapeKeyClears?=true beforeClearAction=beforeClearAction}}`); assert.notOk(wasCalled); - await triggerKeyEvent("input", "keyup", KeyEvent.DOM_VK_ESCAPE); + await triggerKeyEvent('input', 'keyup', KeyEvent.DOM_VK_ESCAPE); assert.ok(wasCalled); }); - test("when hooking into the after escape-key-clears hook", async function (assert) { + test('when hooking into the after escape-key-clears hook', async function (assert) { let wasCalled = false; - this.set("afterClearAction", function (event, component) { + this.set('afterClearAction', function (event, component) { wasCalled = true; assert.ok(isPresent(event)); assert.ok(isPresent(component)); }); - await render( - hbs`{{input-text escapeKeyClears?=true afterClearAction=afterClearAction}}` - ); + await render(hbs`{{input-text escapeKeyClears?=true afterClearAction=afterClearAction}}`); assert.notOk(wasCalled); - await triggerKeyEvent("input", "keyup", KeyEvent.DOM_VK_ESCAPE); + await triggerKeyEvent('input', 'keyup', KeyEvent.DOM_VK_ESCAPE); assert.ok(wasCalled); }); diff --git a/yarn.lock b/yarn.lock index 5b0bb8c..d2a950b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3341,26 +3341,6 @@ broccoli-funnel-reducer@^1.0.0: resolved "https://registry.yarnpkg.com/broccoli-funnel-reducer/-/broccoli-funnel-reducer-1.0.0.tgz#11365b2a785aec9b17972a36df87eef24c5cc0ea" integrity sha1-ETZbKnha7JsXlyo234fu8kxcwOo= -broccoli-funnel@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz#cddc3afc5ff1685a8023488fff74ce6fb5a51296" - integrity sha1-zdw6/F/xaFqAI0iP/3TOb7WlEpY= - dependencies: - array-equal "^1.0.0" - blank-object "^1.0.1" - broccoli-plugin "^1.3.0" - debug "^2.2.0" - exists-sync "0.0.4" - fast-ordered-set "^1.0.0" - fs-tree-diff "^0.5.3" - heimdalljs "^0.2.0" - minimatch "^3.0.0" - mkdirp "^0.5.0" - path-posix "^1.0.0" - rimraf "^2.4.3" - symlink-or-copy "^1.0.0" - walk-sync "^0.3.1" - broccoli-funnel@^2.0.0, broccoli-funnel@^2.0.1, broccoli-funnel@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-2.0.2.tgz#0edf629569bc10bd02cc525f74b9a38e71366a75" @@ -3422,20 +3402,6 @@ broccoli-lint-eslint@^5.0.0: lodash.defaultsdeep "^4.6.0" md5-hex "^2.0.0" -broccoli-merge-trees@^1.1.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-1.2.4.tgz#a001519bb5067f06589d91afa2942445a2d0fdb5" - integrity sha1-oAFRm7UGfwZYnZGvopQkRaLQ/bU= - dependencies: - broccoli-plugin "^1.3.0" - can-symlink "^1.0.0" - fast-ordered-set "^1.0.2" - fs-tree-diff "^0.5.4" - heimdalljs "^0.2.1" - heimdalljs-logger "^0.1.7" - rimraf "^2.4.3" - symlink-or-copy "^1.0.0" - broccoli-merge-trees@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-2.0.1.tgz#14d4b7fc1a90318c12b16f843e6ba2693808100c" @@ -5409,18 +5375,6 @@ ember-cli-lodash-subset@^2.0.1: resolved "https://registry.yarnpkg.com/ember-cli-lodash-subset/-/ember-cli-lodash-subset-2.0.1.tgz#20cb68a790fe0fde2488ddfd8efbb7df6fe766f2" integrity sha1-IMtop5D+D94kiN39jvu332/nZvI= -ember-cli-node-assets@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/ember-cli-node-assets/-/ember-cli-node-assets-0.2.2.tgz#d2d55626e7cc6619f882d7fe55751f9266022708" - integrity sha1-0tVWJufMZhn4gtf+VXUfkmYCJwg= - dependencies: - broccoli-funnel "^1.0.1" - broccoli-merge-trees "^1.1.1" - broccoli-source "^1.1.0" - debug "^2.2.0" - lodash "^4.5.1" - resolve "^1.1.7" - ember-cli-normalize-entity-name@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ember-cli-normalize-entity-name/-/ember-cli-normalize-entity-name-1.0.0.tgz#0b14f7bcbc599aa117b5fddc81e4fd03c4bad5b7" @@ -6365,11 +6319,6 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -exists-sync@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/exists-sync/-/exists-sync-0.0.4.tgz#9744c2c428cc03b01060db454d4b12f0ef3c8879" - integrity sha1-l0TCxCjMA7AQYNtFTUsS8O88iHk= - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -6510,7 +6459,7 @@ fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fast-ordered-set@^1.0.0, fast-ordered-set@^1.0.2: +fast-ordered-set@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/fast-ordered-set/-/fast-ordered-set-1.0.3.tgz#3fbb36634f7be79e4f7edbdb4a357dee25d184eb" integrity sha1-P7s2Y097555PftvbSjV97iXRhOs= @@ -8612,10 +8561,10 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -keyevent@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/keyevent/-/keyevent-1.1.0.tgz#9c0e0118a22fd83d4d23f6713a10701391ca6060" - integrity sha1-nA4BGKIv2D1NI/ZxOhBwE5HKYGA= +keyevent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/keyevent/-/keyevent-2.0.0.tgz#9ecfe97e96aca2fd9d2c19ad8c407adf5a5cb229" + integrity sha512-URiCV7CVjH8Qal31t+zSVp6jC9qQxhtEsPBlgytqm2t5/5rMFAOwagD8UtK3wa/tE/DfxfRipq3DDhZw5lPYMA== keyv@3.0.0: version "3.0.0" @@ -8989,7 +8938,7 @@ lodash.without@~4.4.0: resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@^4.0.0, lodash@^4.11.1, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.5.1: +lodash@^4.0.0, lodash@^4.11.1, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -11516,7 +11465,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: version "1.22.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==