@starley/ion-directives 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,19 @@
1
+ import { NgModel } from "@angular/forms";
2
+ /**
3
+ * Responsavel pelo mascaramento de inputs
4
+ */
5
+ export declare class IonInputMaskDirective {
6
+ model: NgModel;
7
+ pattern: string;
8
+ /**
9
+ * Construtor
10
+ * @param {NgModel} model
11
+ * @param {string} pattern
12
+ */
13
+ constructor(model: NgModel, pattern: string);
14
+ /**
15
+ * Listener para mudança de valor do input
16
+ * @param event
17
+ */
18
+ onKeyDown(event: any): boolean;
19
+ }
@@ -0,0 +1,25 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ /**
3
+ * Gerencia pressHold
4
+ * @author Starley Cazorla
5
+ */
6
+ export declare class PressHoldDirective implements OnInit {
7
+ press: EventEmitter<any>;
8
+ pressGesture: {
9
+ name: string;
10
+ enabled: boolean;
11
+ interval: number;
12
+ };
13
+ pressTimeout: any;
14
+ isPressing: boolean;
15
+ lastTap: number;
16
+ tapCount: number;
17
+ tapTimeout: any;
18
+ constructor();
19
+ ngOnInit(): void;
20
+ onPress(event: {
21
+ type: any;
22
+ }): void;
23
+ private handlePressing;
24
+ private resetTaps;
25
+ }
@@ -0,0 +1,29 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ /**
3
+ * Gerencia tap e doubleTap
4
+ * @author Starley Cazorla
5
+ */
6
+ export declare class TapDirective implements OnInit {
7
+ tap: EventEmitter<any>;
8
+ doubleTap: EventEmitter<any>;
9
+ lastTap: number;
10
+ tapCount: number;
11
+ tapTimeout: any;
12
+ tapGesture: {
13
+ name: string;
14
+ enabled: boolean;
15
+ interval: number;
16
+ };
17
+ doubleTapGesture: {
18
+ name: string;
19
+ enabled: boolean;
20
+ interval: number;
21
+ };
22
+ constructor();
23
+ ngOnInit(): void;
24
+ handleTaps(e: {
25
+ timeStamp: number;
26
+ }): void;
27
+ private emitTaps;
28
+ private resetTaps;
29
+ }
@@ -0,0 +1,3 @@
1
+ export { IonInputMaskDirective } from './directives/input-mask/input-mask.directive';
2
+ export { PressHoldDirective } from './directives/press-hold/press-hold.directive';
3
+ export { TapDirective } from './directives/tap/tap.directive';
package/package.json CHANGED
@@ -1,16 +1,12 @@
1
1
  {
2
2
  "name": "@starley/ion-directives",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "description": "Directivas internas para ionic",
5
5
  "main": "dist/index.js",
6
- "module": "dist/index.d.ts",
7
- "files": [
8
- "dist"
9
- ],
6
+ "types": "dist/index.d.ts",
10
7
  "scripts": {
11
- "build": "rm -rf dist/ && npm run build:esm && npm run build:cjs",
12
- "build:esm": "tsc",
13
- "build:cjs": "tsc --module CommonJS --outDir dist/cjs"
8
+ "build": "tsc --declaration",
9
+ "dev": "nodemon --watch \"scr//\" --exec \"ts-node dist/index.js\" -e ts"
14
10
  },
15
11
  "peerDependencies": {
16
12
  "@angular/common": "^15.1.1 || ^11.2.4 || ~10.0.0",
@@ -1,29 +1,39 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IonInputMaskDirective = void 0;
4
- const tslib_1 = require("tslib");
5
- const core_1 = require("@angular/core");
6
- const forms_1 = require("@angular/forms");
1
+ import { Attribute, Directive } from '@angular/core';
2
+ import { NgModel } from "@angular/forms";
3
+
7
4
  /**
8
5
  * Responsavel pelo mascaramento de inputs
9
6
  */
10
- let IonInputMaskDirective = class IonInputMaskDirective {
7
+ @Directive({
8
+ selector: '[appMask]',
9
+ host: {
10
+ '(keydown)': 'onKeyDown($event)'
11
+ },
12
+ providers: [NgModel]
13
+ })
14
+ export class IonInputMaskDirective {
15
+
16
+ pattern: string;
17
+
11
18
  /**
12
19
  * Construtor
13
20
  * @param {NgModel} model
14
21
  * @param {string} pattern
15
22
  */
16
- constructor(model, pattern) {
17
- this.model = model;
23
+ constructor(public model: NgModel,
24
+ @Attribute('mask') pattern: string) {
18
25
  this.pattern = pattern;
26
+
19
27
  console.log('Inicou inputMask');
20
28
  }
29
+
21
30
  /**
22
31
  * Listener para mudança de valor do input
23
32
  * @param event
24
33
  */
25
- onKeyDown(event) {
26
- let value = event.target.value, pattern = this.pattern;
34
+ onKeyDown(event: any) {
35
+ let value = event.target.value,
36
+ pattern = this.pattern;
27
37
  if (event.keyIdentifier === 'U+0008' || event.keyCode === 8 || event.key === 'Backspace') {
28
38
  if (value.length) { //prevent fatal exception when backspacing empty value in progressive web app
29
39
  //remove all trailing formatting then delete character
@@ -35,8 +45,7 @@ let IonInputMaskDirective = class IonInputMaskDirective {
35
45
  value = value.substring(0, value.length - 1);
36
46
  }
37
47
  }
38
- }
39
- else {
48
+ } else {
40
49
  let maskIndex = value.length;
41
50
  let formatted = '';
42
51
  formatted += value;
@@ -55,16 +64,5 @@ let IonInputMaskDirective = class IonInputMaskDirective {
55
64
  }
56
65
  return true;
57
66
  }
58
- };
59
- IonInputMaskDirective = tslib_1.__decorate([
60
- (0, core_1.Directive)({
61
- selector: '[appMask]',
62
- host: {
63
- '(keydown)': 'onKeyDown($event)'
64
- },
65
- providers: [forms_1.NgModel]
66
- }),
67
- tslib_1.__param(1, (0, core_1.Attribute)('mask'))
68
- ], IonInputMaskDirective);
69
- exports.IonInputMaskDirective = IonInputMaskDirective;
70
- //# sourceMappingURL=input-mask.directive.js.map
67
+
68
+ }
@@ -0,0 +1,10 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { IonInputMaskDirective } from './input-mask.directive';
3
+
4
+ @NgModule({
5
+ declarations: [IonInputMaskDirective],
6
+ imports: [
7
+ ],
8
+ exports: [IonInputMaskDirective]
9
+ })
10
+ export class IonInputMaskDirectiveModule { }
@@ -0,0 +1,66 @@
1
+ import { Directive, EventEmitter, HostListener, OnInit, Output } from '@angular/core';
2
+
3
+ /**
4
+ * Gerencia pressHold
5
+ * @author Starley Cazorla
6
+ */
7
+
8
+ @Directive({
9
+ selector: '[appPressHold]'
10
+ })
11
+ export class PressHoldDirective implements OnInit {
12
+
13
+ @Output() press = new EventEmitter();
14
+ pressGesture = {
15
+ name: 'press',
16
+ enabled: false,
17
+ interval: 350
18
+ };
19
+ pressTimeout: any = null;
20
+ isPressing: boolean = false;
21
+ lastTap = 0;
22
+ tapCount = 0;
23
+ tapTimeout: any = null;
24
+
25
+ constructor() {
26
+ console.log('Inicou appPressHold');
27
+ }
28
+
29
+ ngOnInit(): void {
30
+ this.pressGesture.enabled = true;
31
+ }
32
+
33
+ @HostListener('touchstart', ['$event'])
34
+ @HostListener('touchend', ['$event'])
35
+ onPress(event: { type: any; }) {
36
+ if (!this.pressGesture.enabled) {
37
+ return;
38
+ } // Press is not enabled, don't do anything.
39
+ this.handlePressing(event.type);
40
+ }
41
+
42
+ private handlePressing(type: string) { // touchend or touchstart
43
+ if (type == 'touchstart') {
44
+ this.pressTimeout = setTimeout(() => {
45
+ this.isPressing = true;
46
+ }, this.pressGesture.interval); // Considered a press if it's longer than interval (default: 251).
47
+ } else if (type == 'touchend') {
48
+ clearTimeout(this.pressTimeout);
49
+ if (this.isPressing) {
50
+ this.press.emit('end');
51
+ this.resetTaps(); // Just incase this gets passed as a tap event too.
52
+ }
53
+ // Clicks have a natural delay of 300ms, so we have to account for that, before resetting isPressing.
54
+ // Otherwise a tap event is emitted.
55
+ setTimeout(() => this.isPressing = false, 50);
56
+ }
57
+ }
58
+
59
+ private resetTaps() {
60
+ clearTimeout(this.tapTimeout); // clear the old timeout
61
+ this.tapCount = 0;
62
+ this.tapTimeout = null;
63
+ this.lastTap = 0;
64
+ }
65
+
66
+ }
@@ -0,0 +1,10 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { PressHoldDirective } from './press-hold.directive';
3
+
4
+ @NgModule({
5
+ declarations: [PressHoldDirective],
6
+ imports: [
7
+ ],
8
+ exports: [PressHoldDirective]
9
+ })
10
+ export class PressHoldDirectiveModule { }
@@ -0,0 +1,70 @@
1
+ import { Directive, EventEmitter, HostListener, OnInit, Output } from '@angular/core';
2
+
3
+ /**
4
+ * Gerencia tap e doubleTap
5
+ * @author Starley Cazorla
6
+ */
7
+
8
+ @Directive({
9
+ selector: '[appTap]'
10
+ })
11
+ export class TapDirective implements OnInit {
12
+
13
+ @Output() tap = new EventEmitter();
14
+ @Output() doubleTap = new EventEmitter();
15
+ lastTap = 0;
16
+ tapCount = 0;
17
+ tapTimeout: any = null;
18
+ tapGesture = {
19
+ name: 'tap',
20
+ enabled: false,
21
+ interval: 250,
22
+ };
23
+ doubleTapGesture = {
24
+ name: 'doubleTap',
25
+ enabled: false,
26
+ interval: 300,
27
+ };
28
+
29
+ constructor() {
30
+ console.log('Inicou appTap');
31
+ }
32
+
33
+ ngOnInit(): void {
34
+ this.tapGesture.enabled = true;
35
+ this.doubleTapGesture.enabled = true;
36
+ }
37
+
38
+ @HostListener('click', ['$event'])
39
+ handleTaps(e: { timeStamp: number; }) {
40
+ const tapTimestamp = Math.floor(e.timeStamp);
41
+ const isDoubleTap = this.lastTap + this.tapGesture.interval > tapTimestamp;
42
+ if (!this.tapGesture.enabled && !this.doubleTapGesture.enabled) {
43
+ return this.resetTaps();
44
+ }
45
+ this.tapCount++;
46
+ if (isDoubleTap && this.doubleTapGesture.enabled) {
47
+ this.emitTaps();
48
+ } else if (!isDoubleTap) {
49
+ this.tapTimeout = setTimeout(() => this.emitTaps(), this.tapGesture.interval);
50
+ }
51
+ this.lastTap = tapTimestamp;
52
+ }
53
+
54
+ private emitTaps() {
55
+ if (this.tapCount === 1 && this.tapGesture.enabled) {
56
+ this.tap.emit();
57
+ } else if (this.tapCount === 2 && this.doubleTapGesture.enabled) {
58
+ this.doubleTap.emit();
59
+ }
60
+ this.resetTaps();
61
+ }
62
+
63
+ private resetTaps() {
64
+ clearTimeout(this.tapTimeout); // clear the old timeout
65
+ this.tapCount = 0;
66
+ this.tapTimeout = null;
67
+ this.lastTap = 0;
68
+ }
69
+
70
+ }
@@ -0,0 +1,10 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { TapDirective } from './tap.directive';
3
+
4
+ @NgModule({
5
+ declarations: [TapDirective],
6
+ imports: [
7
+ ],
8
+ exports: [TapDirective]
9
+ })
10
+ export class TapDirectiveModule { }
package/src/index.ts ADDED
@@ -0,0 +1,7 @@
1
+ export { IonInputMaskDirective } from './directives/input-mask/input-mask.directive';
2
+ export { PressHoldDirective } from './directives/press-hold/press-hold.directive';
3
+ export { TapDirective } from './directives/tap/tap.directive';
4
+ /** Modules */
5
+ export { IonInputMaskDirectiveModule } from './directives/input-mask/input-mask.module';
6
+ export { PressHoldDirectiveModule } from './directives/press-hold/press-hold.module';
7
+ export { TapDirectiveModule } from './directives/tap/tap.module';
package/tsconfig.json ADDED
@@ -0,0 +1,30 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "compileOnSave": false,
4
+ "compilerOptions": {
5
+ "baseUrl": "./",
6
+ "outDir": "./dist",
7
+ "forceConsistentCasingInFileNames": true,
8
+ "allowSyntheticDefaultImports": true,
9
+ "strict": true,
10
+ "noImplicitOverride": true,
11
+ "noPropertyAccessFromIndexSignature": true,
12
+ "noImplicitReturns": true,
13
+ "noFallthroughCasesInSwitch": true,
14
+ "sourceMap": true,
15
+ "declaration": false,
16
+ "downlevelIteration": true,
17
+ "experimentalDecorators": true,
18
+ "moduleResolution": "node",
19
+ "importHelpers": true,
20
+ "target": "es2015",
21
+ "module": "es2020",
22
+ "lib": [
23
+ "es2018",
24
+ "dom"
25
+ ],
26
+ "useDefineForClassFields": false
27
+ },
28
+ "include": ["src/**/*"],
29
+ "exclude": ["node_modules", "**/*.test.ts"]
30
+ }
package/tslint.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "extends": "../../../tslint.json",
3
+ "rules": {
4
+ "directive-selector": [
5
+ true,
6
+ "attribute",
7
+ "lib",
8
+ "camelCase"
9
+ ],
10
+ "component-selector": [
11
+ true,
12
+ "element",
13
+ "lib",
14
+ "kebab-case"
15
+ ]
16
+ }
17
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-mask.directive.js","sourceRoot":"","sources":["../../../../src/directives/input-mask/input-mask.directive.ts"],"names":[],"mappings":";;;;AAAA,wCAAqD;AACrD,0CAAyC;AAEzC;;GAEG;AAQI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAI9B;;;;OAIG;IACH,YAAmB,KAAc,EACV,OAAe;QADnB,UAAK,GAAL,KAAK,CAAS;QAE7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,KAAU;QAChB,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAC1B,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,KAAK,CAAC,aAAa,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YACtF,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,6EAA6E;gBAC7F,sDAAsD;gBACtD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;oBAC3D,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBAChD;gBACD,sDAAsD;gBACtD,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACrD,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBAChD;aACJ;SACJ;aAAM;YACH,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;YAC7B,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,SAAS,IAAI,KAAK,CAAC;YACnB,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE;gBAC5B,2BAA2B;gBAC3B,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE;oBAC/B,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;oBAChC,SAAS,EAAE,CAAC;iBACf;aACJ;YACD,KAAK,GAAG,SAAS,CAAC;SACrB;QACD,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CAEJ,CAAA;AAtDY,qBAAqB;IAPjC,IAAA,gBAAS,EAAC;QACP,QAAQ,EAAE,WAAW;QACrB,IAAI,EAAE;YACF,WAAW,EAAE,mBAAmB;SACnC;QACD,SAAS,EAAE,CAAC,eAAO,CAAC;KACvB,CAAC;IAWO,mBAAA,IAAA,gBAAS,EAAC,MAAM,CAAC,CAAA;GAVb,qBAAqB,CAsDjC;AAtDY,sDAAqB"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PressHoldDirective = void 0;
4
- const tslib_1 = require("tslib");
5
- const core_1 = require("@angular/core");
6
- /**
7
- * Gerencia pressHold
8
- * @author Starley Cazorla
9
- */
10
- let PressHoldDirective = class PressHoldDirective {
11
- constructor() {
12
- this.press = new core_1.EventEmitter();
13
- this.pressGesture = {
14
- name: 'press',
15
- enabled: false,
16
- interval: 350
17
- };
18
- this.pressTimeout = null;
19
- this.isPressing = false;
20
- this.lastTap = 0;
21
- this.tapCount = 0;
22
- this.tapTimeout = null;
23
- console.log('Inicou appPressHold');
24
- }
25
- ngOnInit() {
26
- this.pressGesture.enabled = true;
27
- }
28
- onPress(event) {
29
- if (!this.pressGesture.enabled) {
30
- return;
31
- } // Press is not enabled, don't do anything.
32
- this.handlePressing(event.type);
33
- }
34
- handlePressing(type) {
35
- if (type == 'touchstart') {
36
- this.pressTimeout = setTimeout(() => {
37
- this.isPressing = true;
38
- }, this.pressGesture.interval); // Considered a press if it's longer than interval (default: 251).
39
- }
40
- else if (type == 'touchend') {
41
- clearTimeout(this.pressTimeout);
42
- if (this.isPressing) {
43
- this.press.emit('end');
44
- this.resetTaps(); // Just incase this gets passed as a tap event too.
45
- }
46
- // Clicks have a natural delay of 300ms, so we have to account for that, before resetting isPressing.
47
- // Otherwise a tap event is emitted.
48
- setTimeout(() => this.isPressing = false, 50);
49
- }
50
- }
51
- resetTaps() {
52
- clearTimeout(this.tapTimeout); // clear the old timeout
53
- this.tapCount = 0;
54
- this.tapTimeout = null;
55
- this.lastTap = 0;
56
- }
57
- };
58
- tslib_1.__decorate([
59
- (0, core_1.Output)()
60
- ], PressHoldDirective.prototype, "press", void 0);
61
- tslib_1.__decorate([
62
- (0, core_1.HostListener)('touchstart', ['$event']),
63
- (0, core_1.HostListener)('touchend', ['$event'])
64
- ], PressHoldDirective.prototype, "onPress", null);
65
- PressHoldDirective = tslib_1.__decorate([
66
- (0, core_1.Directive)({
67
- selector: '[appPressHold]'
68
- })
69
- ], PressHoldDirective);
70
- exports.PressHoldDirective = PressHoldDirective;
71
- //# sourceMappingURL=press-hold.directive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"press-hold.directive.js","sourceRoot":"","sources":["../../../../src/directives/press-hold/press-hold.directive.ts"],"names":[],"mappings":";;;;AAAA,wCAAsF;AAEtF;;;GAGG;AAKI,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAc3B;QAZU,UAAK,GAAG,IAAI,mBAAY,EAAE,CAAC;QACrC,iBAAY,GAAG;YACX,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,GAAG;SAChB,CAAC;QACF,iBAAY,GAAQ,IAAI,CAAC;QACzB,eAAU,GAAY,KAAK,CAAC;QAC5B,YAAO,GAAG,CAAC,CAAC;QACZ,aAAQ,GAAG,CAAC,CAAC;QACb,eAAU,GAAQ,IAAI,CAAC;QAGnB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACtC,CAAC;IAEF,QAAQ;QACJ,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;IACrC,CAAC;IAID,OAAO,CAAC,KAAqB;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YAC5B,OAAO;SACV,CAAC,2CAA2C;QAC7C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEO,cAAc,CAAC,IAAY;QAC/B,IAAI,IAAI,IAAI,YAAY,EAAE;YACtB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC3B,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,kEAAkE;SACrG;aAAM,IAAI,IAAI,IAAI,UAAU,EAAE;YAC3B,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,mDAAmD;aACxE;YACD,qGAAqG;YACrG,oCAAoC;YACpC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;SACjD;IACL,CAAC;IAEO,SAAS;QACb,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,wBAAwB;QACvD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;CAEJ,CAAA;AArDa;IAAT,IAAA,aAAM,GAAE;iDAA4B;AAsBrC;IAFC,IAAA,mBAAY,EAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAA,mBAAY,EAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;iDAMpC;AA7BQ,kBAAkB;IAH9B,IAAA,gBAAS,EAAC;QACP,QAAQ,EAAE,gBAAgB;KAC7B,CAAC;GACW,kBAAkB,CAuD9B;AAvDY,gDAAkB"}
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TapDirective = void 0;
4
- const tslib_1 = require("tslib");
5
- const core_1 = require("@angular/core");
6
- /**
7
- * Gerencia tap e doubleTap
8
- * @author Starley Cazorla
9
- */
10
- let TapDirective = class TapDirective {
11
- constructor() {
12
- this.tap = new core_1.EventEmitter();
13
- this.doubleTap = new core_1.EventEmitter();
14
- this.lastTap = 0;
15
- this.tapCount = 0;
16
- this.tapTimeout = null;
17
- this.tapGesture = {
18
- name: 'tap',
19
- enabled: false,
20
- interval: 250,
21
- };
22
- this.doubleTapGesture = {
23
- name: 'doubleTap',
24
- enabled: false,
25
- interval: 300,
26
- };
27
- console.log('Inicou appTap');
28
- }
29
- ngOnInit() {
30
- this.tapGesture.enabled = true;
31
- this.doubleTapGesture.enabled = true;
32
- }
33
- handleTaps(e) {
34
- const tapTimestamp = Math.floor(e.timeStamp);
35
- const isDoubleTap = this.lastTap + this.tapGesture.interval > tapTimestamp;
36
- if (!this.tapGesture.enabled && !this.doubleTapGesture.enabled) {
37
- return this.resetTaps();
38
- }
39
- this.tapCount++;
40
- if (isDoubleTap && this.doubleTapGesture.enabled) {
41
- this.emitTaps();
42
- }
43
- else if (!isDoubleTap) {
44
- this.tapTimeout = setTimeout(() => this.emitTaps(), this.tapGesture.interval);
45
- }
46
- this.lastTap = tapTimestamp;
47
- }
48
- emitTaps() {
49
- if (this.tapCount === 1 && this.tapGesture.enabled) {
50
- this.tap.emit();
51
- }
52
- else if (this.tapCount === 2 && this.doubleTapGesture.enabled) {
53
- this.doubleTap.emit();
54
- }
55
- this.resetTaps();
56
- }
57
- resetTaps() {
58
- clearTimeout(this.tapTimeout); // clear the old timeout
59
- this.tapCount = 0;
60
- this.tapTimeout = null;
61
- this.lastTap = 0;
62
- }
63
- };
64
- tslib_1.__decorate([
65
- (0, core_1.Output)()
66
- ], TapDirective.prototype, "tap", void 0);
67
- tslib_1.__decorate([
68
- (0, core_1.Output)()
69
- ], TapDirective.prototype, "doubleTap", void 0);
70
- tslib_1.__decorate([
71
- (0, core_1.HostListener)('click', ['$event'])
72
- ], TapDirective.prototype, "handleTaps", null);
73
- TapDirective = tslib_1.__decorate([
74
- (0, core_1.Directive)({
75
- selector: '[appTap]'
76
- })
77
- ], TapDirective);
78
- exports.TapDirective = TapDirective;
79
- //# sourceMappingURL=tap.directive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tap.directive.js","sourceRoot":"","sources":["../../../../src/directives/tap/tap.directive.ts"],"names":[],"mappings":";;;;AAAA,wCAAsF;AAEtF;;;GAGG;AAKI,IAAM,YAAY,GAAlB,MAAM,YAAY;IAkBrB;QAhBU,QAAG,GAAG,IAAI,mBAAY,EAAE,CAAC;QACzB,cAAS,GAAG,IAAI,mBAAY,EAAE,CAAC;QACzC,YAAO,GAAG,CAAC,CAAC;QACZ,aAAQ,GAAG,CAAC,CAAC;QACb,eAAU,GAAQ,IAAI,CAAC;QACvB,eAAU,GAAG;YACT,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,GAAG;SAChB,CAAC;QACF,qBAAgB,GAAG;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,GAAG;SAChB,CAAC;QAGE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;IACzC,CAAC;IAGD,UAAU,CAAC,CAAyB;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC;QAC3E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAC5D,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;SAC3B;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,WAAW,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;aAAM,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACjF;QACD,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;IAChC,CAAC;IAEO,QAAQ;QACZ,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YAChD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACnB;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACzB;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAEO,SAAS;QACb,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,wBAAwB;QACvD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;CAEJ,CAAA;AAzDa;IAAT,IAAA,aAAM,GAAE;yCAA0B;AACzB;IAAT,IAAA,aAAM,GAAE;+CAAgC;AAyBzC;IADC,IAAA,mBAAY,EAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;8CAcjC;AAzCQ,YAAY;IAHxB,IAAA,gBAAS,EAAC;QACP,QAAQ,EAAE,UAAU;KACvB,CAAC;GACW,YAAY,CA2DxB;AA3DY,oCAAY"}
package/dist/cjs/index.js DELETED
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TapDirective = exports.PressHoldDirective = exports.IonInputMaskDirective = void 0;
4
- var input_mask_directive_1 = require("./directives/input-mask/input-mask.directive");
5
- Object.defineProperty(exports, "IonInputMaskDirective", { enumerable: true, get: function () { return input_mask_directive_1.IonInputMaskDirective; } });
6
- var press_hold_directive_1 = require("./directives/press-hold/press-hold.directive");
7
- Object.defineProperty(exports, "PressHoldDirective", { enumerable: true, get: function () { return press_hold_directive_1.PressHoldDirective; } });
8
- var tap_directive_1 = require("./directives/tap/tap.directive");
9
- Object.defineProperty(exports, "TapDirective", { enumerable: true, get: function () { return tap_directive_1.TapDirective; } });
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qFAAqF;AAA5E,6HAAA,qBAAqB,OAAA;AAC9B,qFAAkF;AAAzE,0HAAA,kBAAkB,OAAA;AAC3B,gEAA8D;AAArD,6GAAA,YAAY,OAAA"}