@benbraide/inlinejs-stripe 2.0.5 → 2.1.0

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.
@@ -32,6 +32,7 @@ class StripeElement extends inlinejs_element_1.CustomElement {
32
32
  this.fields_ = null;
33
33
  this.readyFields_ = null;
34
34
  this.instanceWaiters_ = new Array();
35
+ this.interactiveFields_ = null;
35
36
  this.completeFields_ = null;
36
37
  this.errorFields_ = null;
37
38
  this.options = null;
@@ -48,6 +49,10 @@ class StripeElement extends inlinejs_element_1.CustomElement {
48
49
  field.WaitReady().then(() => {
49
50
  this.readyFields_ = (this.readyFields_ || []);
50
51
  this.readyFields_.push(field);
52
+ if (field.IsInteractive()) {
53
+ this.interactiveFields_ = (this.interactiveFields_ || []);
54
+ this.interactiveFields_.push(field);
55
+ }
51
56
  (this.fields_ && this.readyFields_ && this.fields_.length <= this.readyFields_.length) && (0, inlinejs_1.JournalTry)(() => {
52
57
  this.isReady_ = true;
53
58
  this.onready && (0, inlinejs_1.EvaluateLater)({
@@ -65,11 +70,11 @@ class StripeElement extends inlinejs_element_1.CustomElement {
65
70
  this.completeFields_ = (this.completeFields_ || []);
66
71
  if (data && !this.completeFields_.includes(field)) {
67
72
  this.completeFields_.push(field);
68
- changed = !!(this.readyFields_ && this.completeFields_.length == this.readyFields_.length);
73
+ changed = !!(this.interactiveFields_ && this.completeFields_.length == this.interactiveFields_.length);
69
74
  }
70
75
  else if (!data && this.completeFields_.includes(field)) {
71
76
  this.completeFields_ = this.completeFields_.filter(x => x !== field);
72
- changed = !!(this.readyFields_ && (this.completeFields_.length == (this.readyFields_.length - 1)));
77
+ changed = !!(this.interactiveFields_ && (this.completeFields_.length == (this.interactiveFields_.length - 1)));
73
78
  }
74
79
  changed && this.oncomplete && (0, inlinejs_1.EvaluateLater)({
75
80
  componentId: this.componentId_,
@@ -104,6 +109,9 @@ class StripeElement extends inlinejs_element_1.CustomElement {
104
109
  RemoveStripeField(field) {
105
110
  this.fields_ && (this.fields_ = this.fields_.filter(x => x !== field));
106
111
  this.readyFields_ && (this.readyFields_ = this.readyFields_.filter(x => x !== field));
112
+ this.interactiveFields_ && (this.interactiveFields_ = this.interactiveFields_.filter(x => x !== field));
113
+ this.completeFields_ && (this.completeFields_ = this.completeFields_.filter(x => x !== field));
114
+ this.errorFields_ && (this.errorFields_ = this.errorFields_.filter(x => x !== field));
107
115
  }
108
116
  FocusNextField(field) {
109
117
  if (this.fields_) {
@@ -2,4 +2,5 @@ export * from './components/stripe';
2
2
  export * from './components/field';
3
3
  export * from './components/detail';
4
4
  export * from './components/payment-method';
5
+ export * from './directive/stripe';
5
6
  export * from './entry';
@@ -18,4 +18,5 @@ __exportStar(require("./components/stripe"), exports);
18
18
  __exportStar(require("./components/field"), exports);
19
19
  __exportStar(require("./components/detail"), exports);
20
20
  __exportStar(require("./components/payment-method"), exports);
21
+ __exportStar(require("./directive/stripe"), exports);
21
22
  __exportStar(require("./entry"), exports);
@@ -6,6 +6,7 @@ export interface IStripePaymentDetails {
6
6
  export declare type StripeFieldChangeType = 'error' | 'complete';
7
7
  export declare type StripeFieldChangeHandlerType = (type: StripeFieldChangeType, data: any) => void;
8
8
  export interface IStripeField {
9
+ IsInteractive(): boolean;
9
10
  WaitReady(): Promise<void>;
10
11
  AddChangeListener(listener: StripeFieldChangeHandlerType): void;
11
12
  RemoveChangeListener(listener: StripeFieldChangeHandlerType): void;
@@ -15,6 +15,7 @@ export declare class StripeFieldElement extends StripeGenericField {
15
15
  oncomplete: string;
16
16
  onerrors: string;
17
17
  constructor();
18
+ IsInteractive(): boolean;
18
19
  WaitReady(): Promise<void>;
19
20
  AddChangeListener(listener: StripeFieldChangeHandlerType): void;
20
21
  RemoveChangeListener(listener: StripeFieldChangeHandlerType): void;
@@ -33,6 +33,9 @@ export class StripeFieldElement extends StripeGenericField {
33
33
  this.oncomplete = '';
34
34
  this.onerrors = '';
35
35
  }
36
+ IsInteractive() {
37
+ return true;
38
+ }
36
39
  WaitReady() {
37
40
  return new Promise(resolve => {
38
41
  this.isReady_ ? resolve() : this.readyWaiters_.push(() => resolve());
@@ -3,6 +3,7 @@ import { CustomElement } from "@benbraide/inlinejs-element";
3
3
  import { IStripeElement, IStripeField, IStripePaymentDetails, StripeFieldChangeHandlerType } from "../types";
4
4
  export declare class StripeGenericField extends CustomElement implements IStripeField {
5
5
  stripe: IStripeElement | null;
6
+ IsInteractive(): boolean;
6
7
  WaitReady(): Promise<void>;
7
8
  AddChangeListener(listener: StripeFieldChangeHandlerType): void;
8
9
  RemoveChangeListener(listener: StripeFieldChangeHandlerType): void;
@@ -22,6 +22,9 @@ export class StripeGenericField extends CustomElement {
22
22
  super(...arguments);
23
23
  this.stripe = null;
24
24
  }
25
+ IsInteractive() {
26
+ return false;
27
+ }
25
28
  WaitReady() {
26
29
  return Promise.resolve();
27
30
  }
@@ -12,6 +12,7 @@ export declare class StripeElement extends CustomElement implements IStripeEleme
12
12
  protected fields_: Array<IStripeField> | null;
13
13
  protected readyFields_: Array<IStripeField> | null;
14
14
  protected instanceWaiters_: (() => void)[];
15
+ protected interactiveFields_: Array<IStripeField> | null;
15
16
  protected completeFields_: Array<IStripeField> | null;
16
17
  protected errorFields_: Array<IStripeField> | null;
17
18
  options: stripe.elements.ElementsOptions | null;
@@ -29,6 +29,7 @@ export class StripeElement extends CustomElement {
29
29
  this.fields_ = null;
30
30
  this.readyFields_ = null;
31
31
  this.instanceWaiters_ = new Array();
32
+ this.interactiveFields_ = null;
32
33
  this.completeFields_ = null;
33
34
  this.errorFields_ = null;
34
35
  this.options = null;
@@ -45,6 +46,10 @@ export class StripeElement extends CustomElement {
45
46
  field.WaitReady().then(() => {
46
47
  this.readyFields_ = (this.readyFields_ || []);
47
48
  this.readyFields_.push(field);
49
+ if (field.IsInteractive()) {
50
+ this.interactiveFields_ = (this.interactiveFields_ || []);
51
+ this.interactiveFields_.push(field);
52
+ }
48
53
  (this.fields_ && this.readyFields_ && this.fields_.length <= this.readyFields_.length) && JournalTry(() => {
49
54
  this.isReady_ = true;
50
55
  this.onready && EvaluateLater({
@@ -62,11 +67,11 @@ export class StripeElement extends CustomElement {
62
67
  this.completeFields_ = (this.completeFields_ || []);
63
68
  if (data && !this.completeFields_.includes(field)) {
64
69
  this.completeFields_.push(field);
65
- changed = !!(this.readyFields_ && this.completeFields_.length == this.readyFields_.length);
70
+ changed = !!(this.interactiveFields_ && this.completeFields_.length == this.interactiveFields_.length);
66
71
  }
67
72
  else if (!data && this.completeFields_.includes(field)) {
68
73
  this.completeFields_ = this.completeFields_.filter(x => x !== field);
69
- changed = !!(this.readyFields_ && (this.completeFields_.length == (this.readyFields_.length - 1)));
74
+ changed = !!(this.interactiveFields_ && (this.completeFields_.length == (this.interactiveFields_.length - 1)));
70
75
  }
71
76
  changed && this.oncomplete && EvaluateLater({
72
77
  componentId: this.componentId_,
@@ -101,6 +106,9 @@ export class StripeElement extends CustomElement {
101
106
  RemoveStripeField(field) {
102
107
  this.fields_ && (this.fields_ = this.fields_.filter(x => x !== field));
103
108
  this.readyFields_ && (this.readyFields_ = this.readyFields_.filter(x => x !== field));
109
+ this.interactiveFields_ && (this.interactiveFields_ = this.interactiveFields_.filter(x => x !== field));
110
+ this.completeFields_ && (this.completeFields_ = this.completeFields_.filter(x => x !== field));
111
+ this.errorFields_ && (this.errorFields_ = this.errorFields_.filter(x => x !== field));
104
112
  }
105
113
  FocusNextField(field) {
106
114
  if (this.fields_) {
@@ -2,4 +2,5 @@ export * from './components/stripe';
2
2
  export * from './components/field';
3
3
  export * from './components/detail';
4
4
  export * from './components/payment-method';
5
+ export * from './directive/stripe';
5
6
  export * from './entry';
package/lib/esm/index.js CHANGED
@@ -2,4 +2,5 @@ export * from './components/stripe';
2
2
  export * from './components/field';
3
3
  export * from './components/detail';
4
4
  export * from './components/payment-method';
5
+ export * from './directive/stripe';
5
6
  export * from './entry';
@@ -6,6 +6,7 @@ export interface IStripePaymentDetails {
6
6
  export declare type StripeFieldChangeType = 'error' | 'complete';
7
7
  export declare type StripeFieldChangeHandlerType = (type: StripeFieldChangeType, data: any) => void;
8
8
  export interface IStripeField {
9
+ IsInteractive(): boolean;
9
10
  WaitReady(): Promise<void>;
10
11
  AddChangeListener(listener: StripeFieldChangeHandlerType): void;
11
12
  RemoveChangeListener(listener: StripeFieldChangeHandlerType): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@benbraide/inlinejs-stripe",
3
- "version": "2.0.5",
3
+ "version": "2.1.0",
4
4
  "description": "Run javascript code by embedding them in your HTML using the element as context.",
5
5
  "main": "./lib/common/index.js",
6
6
  "module": "./lib/esm/index.js",
@@ -48,13 +48,14 @@
48
48
  "jsdom": "^16.6.0",
49
49
  "jsdom-global": "^3.0.2",
50
50
  "mocha": "^9.0.0",
51
+ "terser-webpack-plugin": "^5.3.10",
51
52
  "ts-loader": "^9.2.3",
52
53
  "ts-node": "^10.0.0",
53
54
  "webpack": "^5.41.0"
54
55
  },
55
56
  "dependencies": {
56
- "@benbraide/inlinejs": "^1.1.2",
57
- "@benbraide/inlinejs-element": "^2.0.4",
57
+ "@benbraide/inlinejs": "^1.2.1",
58
+ "@benbraide/inlinejs-element": "^2.1.0",
58
59
  "webpack-cli": "^4.7.2"
59
60
  }
60
61
  }