Skip to content

Commit

Permalink
fix(Blur): delay element injection
Browse files Browse the repository at this point in the history
  • Loading branch information
bigopon committed Apr 22, 2018
1 parent ca4a901 commit bf5ce63
Show file tree
Hide file tree
Showing 12 changed files with 99 additions and 103 deletions.
5 changes: 4 additions & 1 deletion .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@ bower_components
.idea
.vscode
.circleci
.npmignore
.gitignore
src
doc
test
gulpfile.js
karma.conf.js
config.js
gulpfile.js
tsconig.json
tsconfig.json
tslint.json
CONTRIBUTING.md
ISSUE_TEMPLATE.md
2 changes: 1 addition & 1 deletion dist/amd/blur.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export interface BlurConfig {
}
export declare class Blur {
private element;
static inject: {
static inject(): {
new (): Element;
prototype: Element;
}[];
Expand Down
29 changes: 14 additions & 15 deletions dist/amd/blur.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
define(["require", "exports", "aurelia-pal", "aurelia-templating", "aurelia-binding"], function (require, exports, aurelia_pal_1, aurelia_templating_1, aurelia_binding_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var global = aurelia_pal_1.PLATFORM.global;
var document = global.document;
// let useTouch = false;
var useMouse = false;
var Blur = /** @class */ (function () {
Expand All @@ -34,6 +32,9 @@ define(["require", "exports", "aurelia-pal", "aurelia-templating", "aurelia-bind
this.linkingContext = null;
}
Blur_1 = Blur;
Blur.inject = function () {
return [aurelia_pal_1.DOM.Element];
};
Blur.use = function (cfg) {
for (var i in cfg) {
if (i in this.listen) {
Expand Down Expand Up @@ -65,7 +66,7 @@ define(["require", "exports", "aurelia-pal", "aurelia-templating", "aurelia-bind
}
var _a = this, linkedWith = _a.linkedWith, linkingContext = _a.linkingContext;
links = Array.isArray(linkedWith) ? linkedWith : [linkedWith];
contextNode = (typeof linkingContext === 'string' ? document.querySelector(linkingContext) : linkingContext) || document.body;
contextNode = (typeof linkingContext === 'string' ? aurelia_pal_1.PLATFORM.global.document.querySelector(linkingContext) : linkingContext) || aurelia_pal_1.PLATFORM.global.document.body;
for (i = 0, ii = links.length; i < ii; ++i) {
el = links[i];
// When user specify to link with something by a string, it acts as a CSS selector
Expand Down Expand Up @@ -111,35 +112,34 @@ define(["require", "exports", "aurelia-pal", "aurelia-templating", "aurelia-bind
}
this.value = false;
};
Blur.inject = [aurelia_pal_1.DOM.Element];
Blur.listen = {
touch: function (on) {
// useTouch = !!on;
var fn = on ? addListener : removeListener;
fn(document, 'touchstart', handleTouchStart, true);
fn(aurelia_pal_1.PLATFORM.global.document, 'touchstart', handleTouchStart, true);
return Blur_1.listen;
},
mouse: function (on) {
useMouse = !!on;
var fn = on ? addListener : removeListener;
fn(document, 'mousedown', handleMousedown, true);
fn(aurelia_pal_1.PLATFORM.global.document, 'mousedown', handleMousedown, true);
return Blur_1.listen;
},
pointer: function (on) {
// usePointer = !!on;
var fn = on ? addListener : removeListener;
fn(document, 'pointerdown', handlePointerDown, true);
fn(aurelia_pal_1.PLATFORM.global.document, 'pointerdown', handlePointerDown, true);
return Blur_1.listen;
},
focus: function (on) {
// useFocus = !!on;
var fn = on ? addListener : removeListener;
fn(global, 'focus', handleWindowFocus, true);
fn(aurelia_pal_1.PLATFORM.global, 'focus', handleWindowFocus, true);
return Blur_1.listen;
},
windowBlur: function (on) {
var fn = on ? addListener : removeListener;
fn(global, 'blur', handleWindowBlur, false);
fn(aurelia_pal_1.PLATFORM.global, 'blur', handleWindowBlur, false);
return Blur_1.listen;
}
};
Expand Down Expand Up @@ -202,7 +202,6 @@ define(["require", "exports", "aurelia-pal", "aurelia-templating", "aurelia-bind
if (idx !== -1)
checkTargets.splice(idx, 1);
}
var setTimeout = global.setTimeout;
var alreadyChecked = false;
var cleanCheckTimeout = 0;
function revertAlreadyChecked() {
Expand All @@ -213,7 +212,7 @@ define(["require", "exports", "aurelia-pal", "aurelia-templating", "aurelia-bind
var target = getTargetFromEvent(e);
for (var i = 0, ii = checkTargets.length; i < ii; ++i) {
var attr = checkTargets[i];
if (global === target || !attr.contains(target)) {
if (aurelia_pal_1.PLATFORM.global === target || !attr.contains(target)) {
attr.triggerBlur();
}
}
Expand All @@ -222,7 +221,7 @@ define(["require", "exports", "aurelia-pal", "aurelia-templating", "aurelia-bind
}
function handleTouchStart(e) {
if (alreadyChecked) {
if (!useMouse) {
if (!useMouse) { // If user listen to mouse even, dont revert, let mousedownHandler do the job
clearTimeout(cleanCheckTimeout);
revertAlreadyChecked();
}
Expand All @@ -231,7 +230,7 @@ define(["require", "exports", "aurelia-pal", "aurelia-templating", "aurelia-bind
var target = getTargetFromEvent(e);
for (var i = 0, ii = checkTargets.length; i < ii; ++i) {
var attr = checkTargets[i];
if (target === global || !attr.contains(target)) {
if (target === aurelia_pal_1.PLATFORM.global || !attr.contains(target)) {
attr.triggerBlur();
}
}
Expand All @@ -247,7 +246,7 @@ define(["require", "exports", "aurelia-pal", "aurelia-templating", "aurelia-bind
var target = getTargetFromEvent(e);
for (var i = 0, ii = checkTargets.length; i < ii; ++i) {
var attr = checkTargets[i];
if (global === target || !attr.contains(target)) {
if (aurelia_pal_1.PLATFORM.global === target || !attr.contains(target)) {
attr.triggerBlur();
}
}
Expand All @@ -261,7 +260,7 @@ define(["require", "exports", "aurelia-pal", "aurelia-templating", "aurelia-bind
return;
}
var target = getTargetFromEvent(e);
var shouldBlur = target === global;
var shouldBlur = target === aurelia_pal_1.PLATFORM.global;
for (var i = 0, ii = checkTargets.length; i < ii; ++i) {
var attr = checkTargets[i];
if (shouldBlur || !attr.contains(target)) {
Expand Down
2 changes: 1 addition & 1 deletion dist/commonjs/blur.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export interface BlurConfig {
}
export declare class Blur {
private element;
static inject: {
static inject(): {
new (): Element;
prototype: Element;
}[];
Expand Down
29 changes: 14 additions & 15 deletions dist/commonjs/blur.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
var aurelia_pal_1 = require("aurelia-pal");
var aurelia_templating_1 = require("aurelia-templating");
var aurelia_binding_1 = require("aurelia-binding");
var global = aurelia_pal_1.PLATFORM.global;
var document = global.document;
// let useTouch = false;
var useMouse = false;
var Blur = /** @class */ (function () {
Expand All @@ -36,6 +34,9 @@ var Blur = /** @class */ (function () {
this.linkingContext = null;
}
Blur_1 = Blur;
Blur.inject = function () {
return [aurelia_pal_1.DOM.Element];
};
Blur.use = function (cfg) {
for (var i in cfg) {
if (i in this.listen) {
Expand Down Expand Up @@ -67,7 +68,7 @@ var Blur = /** @class */ (function () {
}
var _a = this, linkedWith = _a.linkedWith, linkingContext = _a.linkingContext;
links = Array.isArray(linkedWith) ? linkedWith : [linkedWith];
contextNode = (typeof linkingContext === 'string' ? document.querySelector(linkingContext) : linkingContext) || document.body;
contextNode = (typeof linkingContext === 'string' ? aurelia_pal_1.PLATFORM.global.document.querySelector(linkingContext) : linkingContext) || aurelia_pal_1.PLATFORM.global.document.body;
for (i = 0, ii = links.length; i < ii; ++i) {
el = links[i];
// When user specify to link with something by a string, it acts as a CSS selector
Expand Down Expand Up @@ -113,35 +114,34 @@ var Blur = /** @class */ (function () {
}
this.value = false;
};
Blur.inject = [aurelia_pal_1.DOM.Element];
Blur.listen = {
touch: function (on) {
// useTouch = !!on;
var fn = on ? addListener : removeListener;
fn(document, 'touchstart', handleTouchStart, true);
fn(aurelia_pal_1.PLATFORM.global.document, 'touchstart', handleTouchStart, true);
return Blur_1.listen;
},
mouse: function (on) {
useMouse = !!on;
var fn = on ? addListener : removeListener;
fn(document, 'mousedown', handleMousedown, true);
fn(aurelia_pal_1.PLATFORM.global.document, 'mousedown', handleMousedown, true);
return Blur_1.listen;
},
pointer: function (on) {
// usePointer = !!on;
var fn = on ? addListener : removeListener;
fn(document, 'pointerdown', handlePointerDown, true);
fn(aurelia_pal_1.PLATFORM.global.document, 'pointerdown', handlePointerDown, true);
return Blur_1.listen;
},
focus: function (on) {
// useFocus = !!on;
var fn = on ? addListener : removeListener;
fn(global, 'focus', handleWindowFocus, true);
fn(aurelia_pal_1.PLATFORM.global, 'focus', handleWindowFocus, true);
return Blur_1.listen;
},
windowBlur: function (on) {
var fn = on ? addListener : removeListener;
fn(global, 'blur', handleWindowBlur, false);
fn(aurelia_pal_1.PLATFORM.global, 'blur', handleWindowBlur, false);
return Blur_1.listen;
}
};
Expand Down Expand Up @@ -204,7 +204,6 @@ function unregister(attr) {
if (idx !== -1)
checkTargets.splice(idx, 1);
}
var setTimeout = global.setTimeout;
var alreadyChecked = false;
var cleanCheckTimeout = 0;
function revertAlreadyChecked() {
Expand All @@ -215,7 +214,7 @@ function handlePointerDown(e) {
var target = getTargetFromEvent(e);
for (var i = 0, ii = checkTargets.length; i < ii; ++i) {
var attr = checkTargets[i];
if (global === target || !attr.contains(target)) {
if (aurelia_pal_1.PLATFORM.global === target || !attr.contains(target)) {
attr.triggerBlur();
}
}
Expand All @@ -224,7 +223,7 @@ function handlePointerDown(e) {
}
function handleTouchStart(e) {
if (alreadyChecked) {
if (!useMouse) {
if (!useMouse) { // If user listen to mouse even, dont revert, let mousedownHandler do the job
clearTimeout(cleanCheckTimeout);
revertAlreadyChecked();
}
Expand All @@ -233,7 +232,7 @@ function handleTouchStart(e) {
var target = getTargetFromEvent(e);
for (var i = 0, ii = checkTargets.length; i < ii; ++i) {
var attr = checkTargets[i];
if (target === global || !attr.contains(target)) {
if (target === aurelia_pal_1.PLATFORM.global || !attr.contains(target)) {
attr.triggerBlur();
}
}
Expand All @@ -249,7 +248,7 @@ function handleMousedown(e) {
var target = getTargetFromEvent(e);
for (var i = 0, ii = checkTargets.length; i < ii; ++i) {
var attr = checkTargets[i];
if (global === target || !attr.contains(target)) {
if (aurelia_pal_1.PLATFORM.global === target || !attr.contains(target)) {
attr.triggerBlur();
}
}
Expand All @@ -263,7 +262,7 @@ function handleWindowFocus(e) {
return;
}
var target = getTargetFromEvent(e);
var shouldBlur = target === global;
var shouldBlur = target === aurelia_pal_1.PLATFORM.global;
for (var i = 0, ii = checkTargets.length; i < ii; ++i) {
var attr = checkTargets[i];
if (shouldBlur || !attr.contains(target)) {
Expand Down
2 changes: 1 addition & 1 deletion dist/es2015/blur.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export interface BlurConfig {
}
export declare class Blur {
private element;
static inject: {
static inject(): {
new (): Element;
prototype: Element;
}[];
Expand Down
Loading

0 comments on commit bf5ce63

Please sign in to comment.