@ordergroove/offers 2.29.0 → 2.29.1-alpha-PR-707-2.113

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.
Files changed (37) hide show
  1. package/README.md +22 -1
  2. package/dist/bundle-report.html +72 -59
  3. package/dist/examples.js +262 -105
  4. package/dist/examples.js.map +2 -2
  5. package/dist/offers.js +82 -32
  6. package/dist/offers.js.map +3 -3
  7. package/examples/index.js +230 -218
  8. package/package.json +2 -2
  9. package/src/components/PrepaidData.js +110 -0
  10. package/src/components/PrepaidToggle.js +108 -0
  11. package/src/components/Price.js +6 -6
  12. package/src/components/Select.js +6 -1
  13. package/src/components/__tests__/PrepaidData.spec.js +173 -0
  14. package/src/components/__tests__/PrepaidToggle.spec.js +115 -0
  15. package/src/components/__tests__/Price.spec.js +96 -0
  16. package/src/core/__tests__/adapters.spec.js +232 -1
  17. package/src/core/__tests__/descriptors.spec.js +56 -0
  18. package/src/core/__tests__/reducer.spec.js +153 -1
  19. package/src/core/__tests__/selectors.spec.js +34 -1
  20. package/src/core/actions.js +5 -0
  21. package/src/core/adapters.js +48 -2
  22. package/src/core/constants.js +1 -0
  23. package/src/core/descriptors.js +7 -1
  24. package/src/core/reducer.js +35 -14
  25. package/src/core/selectors.js +32 -0
  26. package/src/core/utils.ts +16 -0
  27. package/src/make-api.js +4 -0
  28. package/src/shopify/__tests__/productPlan.spec.js +513 -0
  29. package/src/shopify/__tests__/shopifyReducer.spec.js +630 -19
  30. package/src/shopify/__tests__/utils.spec.js +25 -0
  31. package/src/shopify/reducers/productPlans.ts +134 -0
  32. package/src/shopify/shopifyMiddleware.ts +3 -0
  33. package/src/shopify/shopifyReducer.js +96 -47
  34. package/src/shopify/shopifyTrackingMiddleware.ts +1 -1
  35. package/src/shopify/types/productPlan.ts +11 -0
  36. package/src/shopify/types/shopify.ts +98 -0
  37. package/src/shopify/utils.ts +3 -0
package/README.md CHANGED
@@ -537,7 +537,7 @@ Current keys allowed in from clause are:
537
537
 
538
538
  ### og-when
539
539
 
540
- Element that renders it chilren when test condition matches
540
+ Element that renders it children when test condition matches
541
541
 
542
542
  | DESCRIPTOR | SUMMARY | Example |
543
543
  | ---------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------- |
@@ -549,6 +549,8 @@ Element that renders it chilren when test condition matches
549
549
  | upcomingOrderContainsProduct | If the upcoming order contains the product being offered | `<og-when test="upcomingOrderContainsProduct">` |
550
550
  | upsellEligible | when an offer and product are eligible for upsell and usr has an upcomming order | `<og-when test="upsellEligible">` |
551
551
  | regularEligible | this is similar to subscriptionEligible but it also checks that is not upsellEligible | `<og-when test="regularEligible">` |
552
+ | prepaidEligible | Product is eligible for creating a prepaid subscription. Can be set on rc3 product config | `<og-when test="prepaidEligible">` |
553
+ | prepaidSubscribed | If the customer optedIn into a prepaid subscription | `<og-when test="prepaidSubscribed">` |
552
554
 
553
555
  #### Combine descriptors
554
556
 
@@ -607,3 +609,22 @@ The folowing code will show and offer only if regular and it will show nothing i
607
609
  </og-when>
608
610
  </og-offer>
609
611
  ```
612
+
613
+ ## og-prepaid-data
614
+
615
+ Display information from the prepaid plan selected when merchant and product is prepaid eligible.
616
+
617
+ ```
618
+ <og-prepaid-data total-price></og-prepaid-data>
619
+ ```
620
+
621
+
622
+ | PROPERTY | SUMMARY | Example |
623
+ | ---------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
624
+ | total-price | Total price of the prepaid subscription that will be billed on checkout | `<og-prepaid-data total-price></og-prepaid-data>` |
625
+ | per-delivery-price | The price of each product being delivered | `<og-prepaid-data per-delivery-price></og-prepaid-data>` |
626
+ | total-savings | Total savings in money ($0.00) format compared with product price | `<og-prepaid-data total-savings></og-prepaid-data>` |
627
+ | per-delivery-savings | Savings per product in money ($0.00) format compared with the product price | `<og-prepaid-data per-delivery-savings></og-prepaid-data>` |
628
+ | percentage-savings | Percentage of the total being saved when opting-in into a prepaid subscription | `<og-prepaid-data percentage-savings></og-prepaid-data>` |
629
+ | extra-percentage-savings | Percentage of what is being saved compared to the pay as you go (normal) subscription | `<og-prepaid-data extra-percentage-savings></og-prepaid-data>` |
630
+ | number-of-shipments | Number of shipments that is selected on the prepaid box | `<og-prepaid-data number-of-shipments></og-prepaid-data>` |
@@ -1,124 +1,133 @@
1
1
  <pre id="esbuild-metadata">
2
- dist/examples.js ─────────────────────────────────────────── 259.1kb ─ 100.0%
3
- ├ ../offers-templates/dist/main.js ──────────────────────── 249.6kb ── 96.3%
2
+ dist/examples.js ─────────────────────────────────────────── 266.0kb ─ 100.0%
3
+ ├ ../offers-templates/dist/main.js ──────────────────────── 256.2kb ── 96.3%
4
4
  │ └ examples/index.js
5
- └ examples/index.js ───────────────────────────────────────── 8.5kb ─── 3.3%
5
+ └ examples/index.js ───────────────────────────────────────── 8.9kb ─── 3.3%
6
6
 
7
- dist/offers.js ───────────────────────────────────────────── 127.9kb ─ 100.0%
8
- ├ src/components/Offer.js ─────────────────────────────────── 8.2kb ─── 6.4%
7
+ dist/offers.js ───────────────────────────────────────────── 136.3kb ─ 100.0%
8
+ ├ src/components/Offer.js ─────────────────────────────────── 8.2kb ─── 6.0%
9
9
  │ └ src/make-api.js
10
10
  │ └ src/index.js
11
- ├ node_modules/redux/es/redux.js ──────────────────────────── 6.7kb ─── 5.2%
11
+ ├ node_modules/redux/es/redux.js ──────────────────────────── 6.7kb ─── 4.9%
12
12
  │ └ src/shopify/shopifyReducer.js
13
13
  │ └ src/index.js
14
- ├ src/core/reducer.js ─────────────────────────────────────── 6.1kb ─── 4.8%
14
+ ├ src/core/reducer.js ─────────────────────────────────────── 6.4kb ─── 4.7%
15
15
  │ └ src/index.js
16
- ├ src/shopify/shopifyReducer.js ───────────────────────────── 5.6kb ─── 4.4%
16
+ ├ src/shopify/shopifyReducer.js ───────────────────────────── 6.0kb ─── 4.4%
17
17
  │ └ src/index.js
18
- ├ src/components/TestWizard.js ────────────────────────────── 5.5kb ─── 4.3%
18
+ ├ src/components/TestWizard.js ────────────────────────────── 5.5kb ─── 4.0%
19
19
  │ └ src/run-tests.js
20
20
  │ └ src/test-mode.js
21
21
  │ └ src/make-api.js
22
22
  │ └ src/index.js
23
- ├ node_modules/lit-element/lib/updating-element.js ────────── 5.4kb ─── 4.2%
23
+ ├ node_modules/lit-element/lib/updating-element.js ────────── 5.4kb ─── 4.0%
24
24
  │ └ node_modules/lit-element/lit-element.js
25
25
  │ └ src/components/Price.js
26
26
  │ └ src/make-api.js
27
27
  │ └ src/index.js
28
- ├ node_modules/lit-html/lib/parts.js ──────────────────────── 5.0kb ─── 3.9%
28
+ ├ node_modules/lit-html/lib/parts.js ──────────────────────── 5.0kb ─── 3.6%
29
29
  │ └ node_modules/lit-html/lit-html.js
30
30
  │ └ node_modules/lit-element/lit-element.js
31
31
  │ └ src/components/Price.js
32
32
  │ └ src/make-api.js
33
33
  │ └ src/index.js
34
- ├ src/components/Modal.js ─────────────────────────────────── 4.8kb ─── 3.8%
34
+ ├ src/components/Modal.js ─────────────────────────────────── 4.8kb ─── 3.5%
35
35
  │ └ src/make-api.js
36
36
  │ └ src/index.js
37
- ├ src/shopify/shopifyMiddleware.ts ────────────────────────── 4.6kb ─── 3.6%
37
+ ├ src/shopify/shopifyMiddleware.ts ────────────────────────── 4.6kb ─── 3.4%
38
38
  │ └ src/index.js
39
- ├ src/components/Tooltip.js ───────────────────────────────── 4.4kb ─── 3.4%
39
+ ├ src/components/Tooltip.js ───────────────────────────────── 4.4kb ─── 3.2%
40
40
  │ └ src/make-api.js
41
41
  │ └ src/index.js
42
- ├ node_modules/lodash.memoize/index.js ────────────────────── 4.0kb ─── 3.1%
42
+ ├ node_modules/lodash.memoize/index.js ────────────────────── 4.0kb ─── 2.9%
43
43
  │ └ src/shopify/shopifyMiddleware.ts
44
44
  │ └ src/index.js
45
- ├ src/core/actions.js ─────────────────────────────────────── 3.8kb ─── 2.9%
45
+ ├ src/core/actions.js ─────────────────────────────────────── 3.9kb ─── 2.8%
46
46
  │ └ src/shopify/shopifyBootstrap.ts
47
47
  │ └ src/index.js
48
- ├ src/core/api.js ─────────────────────────────────────────── 2.6kb ─── 2.0%
48
+ ├ src/core/api.js ─────────────────────────────────────────── 2.6kb ─── 1.9%
49
49
  │ └ src/core/reducer.js
50
50
  │ └ src/index.js
51
- ├ src/components/OptinStatus.js ───────────────────────────── 2.6kb ─── 2.0%
51
+ ├ src/components/OptinStatus.js ───────────────────────────── 2.6kb ─── 1.9%
52
52
  │ └ src/make-api.js
53
53
  │ └ src/index.js
54
- ├ src/make-api.js ─────────────────────────────────────────── 2.5kb ─── 1.9%
54
+ ├ src/make-api.js ─────────────────────────────────────────── 2.6kb ─── 1.9%
55
55
  │ └ src/index.js
56
- ├ src/components/UpsellModal.js ───────────────────────────── 2.4kb ─── 1.9%
56
+ ├ src/components/UpsellModal.js ───────────────────────────── 2.4kb ─── 1.8%
57
57
  │ └ src/make-api.js
58
58
  │ └ src/index.js
59
- ├ src/core/actions-preview.js ─────────────────────────────── 2.3kb ─── 1.8%
59
+ ├ src/core/utils.ts ───────────────────────────────────────── 2.3kb ─── 1.7%
60
+ │ └ src/index.js
61
+ ├ src/core/actions-preview.js ─────────────────────────────── 2.3kb ─── 1.7%
60
62
  │ └ src/components/Offer.js
61
63
  │ └ src/make-api.js
62
64
  │ └ src/index.js
63
- ├ src/core/utils.ts ───────────────────────────────────────── 2.2kb ─── 1.7%
64
- │ └ src/index.js
65
- node_modules/lit-html/lib/shady-render.js ───────────────── 2.1kb ─── 1.7%
65
+ ├ src/core/selectors.js ───────────────────────────────────── 2.2kb ─── 1.6%
66
+ │ └ src/core/utils.ts
67
+ │ └ src/index.js
68
+ ├ src/shopify/reducers/productPlans.ts ────────────────────── 2.2kb ─── 1.6%
69
+ │ └ src/shopify/shopifyReducer.js
70
+ │ └ src/index.js
71
+ ├ node_modules/lit-html/lib/shady-render.js ───────────────── 2.1kb ─── 1.6%
66
72
  │ └ node_modules/lit-element/lit-element.js
67
73
  │ └ src/components/Price.js
68
74
  │ └ src/make-api.js
69
75
  │ └ src/index.js
70
- ├ src/components/SelectFrequency.js ───────────────────────── 2.0kb ─── 1.6%
76
+ ├ src/components/PrepaidToggle.js ─────────────────────────── 2.0kb ─── 1.5%
77
+ │ └ src/make-api.js
78
+ │ └ src/index.js
79
+ ├ src/components/SelectFrequency.js ───────────────────────── 2.0kb ─── 1.5%
71
80
  │ └ src/make-api.js
72
81
  │ └ src/index.js
73
- ├ src/components/IncentiveText.js ─────────────────────────── 1.9kb ─── 1.5%
82
+ ├ src/components/IncentiveText.js ─────────────────────────── 1.9kb ─── 1.4%
74
83
  │ └ src/make-api.js
75
84
  │ └ src/index.js
76
- ├ node_modules/lit-html/lib/template.js ───────────────────── 1.8kb ─── 1.4%
85
+ ├ node_modules/lit-html/lib/template.js ───────────────────── 1.8kb ─── 1.3%
77
86
  │ └ node_modules/lit-html/lit-html.js
78
87
  │ └ node_modules/lit-element/lit-element.js
79
88
  │ └ src/components/Price.js
80
89
  │ └ src/make-api.js
81
90
  │ └ src/index.js
82
- ├ node_modules/lit-element/lit-element.js ─────────────────── 1.8kb ─── 1.4%
91
+ ├ node_modules/lit-element/lit-element.js ─────────────────── 1.8kb ─── 1.3%
83
92
  │ └ src/components/Price.js
84
93
  │ └ src/make-api.js
85
94
  │ └ src/index.js
86
- ├ src/core/selectors.js ───────────────────────────────────── 1.7kb ─── 1.3%
87
- │ └ src/shopify/shopifyMiddleware.ts
95
+ ├ src/components/PrepaidData.js ───────────────────────────── 1.7kb ─── 1.3%
96
+ │ └ src/make-api.js
88
97
  │ └ src/index.js
89
- ├ src/components/Select.js ────────────────────────────────── 1.6kb ─── 1.3%
98
+ ├ src/components/Select.js ────────────────────────────────── 1.7kb ─── 1.3%
90
99
  │ └ src/make-api.js
91
100
  │ └ src/index.js
92
- ├ src/components/FrequencyStatus.js ───────────────────────── 1.6kb ─── 1.2%
101
+ ├ src/components/FrequencyStatus.js ───────────────────────── 1.6kb ─── 1.1%
93
102
  │ └ src/make-api.js
94
103
  │ └ src/index.js
95
- ├ src/components/OptinToggle.js ───────────────────────────── 1.5kb ─── 1.2%
104
+ ├ src/components/OptinToggle.js ───────────────────────────── 1.5kb ─── 1.1%
96
105
  │ └ src/make-api.js
97
106
  │ └ src/index.js
98
- ├ src/components/OptinSelect.js ───────────────────────────── 1.4kb ─── 1.1%
107
+ ├ src/core/descriptors.js ─────────────────────────────────── 1.4kb ─── 1.1%
108
+ │ └ src/components/When.js
109
+ │ └ src/make-api.js
110
+ │ └ src/index.js
111
+ ├ src/components/OptinSelect.js ───────────────────────────── 1.4kb ─── 1.0%
99
112
  │ └ src/make-api.js
100
113
  │ └ src/index.js
101
114
  ├ node_modules/reselect/es/index.js ───────────────────────── 1.3kb ─── 1.0%
102
115
  │ └ src/core/selectors.js
103
- │ └ src/shopify/shopifyMiddleware.ts
116
+ │ └ src/core/utils.ts
104
117
  │ └ src/index.js
105
- ├ src/core/resolveProperties.js ───────────────────────────── 1.3kb ─── 1.0%
118
+ ├ src/core/resolveProperties.js ───────────────────────────── 1.3kb ─── 0.9%
106
119
  │ └ src/components/Price.js
107
120
  │ └ src/make-api.js
108
121
  │ └ src/index.js
109
- ├ src/core/descriptors.js ─────────────────────────────────── 1.2kb ─── 1.0%
110
- │ └ src/components/When.js
111
- │ └ src/make-api.js
112
- │ └ src/index.js
113
122
  ├ src/components/OptinButton.js ───────────────────────────── 1.2kb ─── 0.9%
114
123
  │ └ src/make-api.js
115
124
  │ └ src/index.js
116
- ├ src/shopify/shopifyBootstrap.ts ─────────────────────────── 1.1kb ─── 0.9%
117
- │ └ src/index.js
118
- ├ src/core/constants.js ───────────────────────────────────── 1.1kb ─── 0.9%
125
+ ├ src/core/constants.js ───────────────────────────────────── 1.2kb ─── 0.9%
119
126
  │ └ src/shopify/shopifyTrackingMiddleware.ts
120
127
  │ └ src/index.js
121
- ├ src/index.js ────────────────────────────────────────────── 1.1kb ─── 0.9%
128
+ ├ src/shopify/shopifyBootstrap.ts ─────────────────────────── 1.1kb ─── 0.8%
129
+ │ └ src/index.js
130
+ ├ src/index.js ────────────────────────────────────────────── 1.1kb ─── 0.8%
122
131
  ├ src/components/UpsellButton.js ──────────────────────────── 1.1kb ─── 0.8%
123
132
  │ └ src/make-api.js
124
133
  │ └ src/index.js
@@ -130,20 +139,20 @@
130
139
  │ └ src/components/Price.js
131
140
  │ └ src/make-api.js
132
141
  │ └ src/index.js
133
- ├ node_modules/logical-expression-parser/node.js ──────────── 1.0kb ─── 0.8%
142
+ ├ node_modules/logical-expression-parser/node.js ──────────── 1.0kb ─── 0.7%
134
143
  │ └ node_modules/logical-expression-parser/index.js
135
144
  │ └ src/components/When.js
136
145
  │ └ src/make-api.js
137
146
  │ └ src/index.js
138
- ├ ../auth/dist/auth.js ───────────────────────────────────── 1021b ──── 0.8%
147
+ ├ ../auth/dist/auth.js ───────────────────────────────────── 1021b ──── 0.7%
139
148
  │ └ src/core/actions.js
140
149
  │ └ src/shopify/shopifyBootstrap.ts
141
150
  │ └ src/index.js
142
- ├ src/core/base.js ───────────────────────────────────────── 1011b ──── 0.8%
151
+ ├ src/core/base.js ───────────────────────────────────────── 1015b ──── 0.7%
143
152
  │ └ src/components/Price.js
144
153
  │ └ src/make-api.js
145
154
  │ └ src/index.js
146
- ├ node_modules/lit-html/lib/template-instance.js ─────────── 1008b ──── 0.8%
155
+ ├ node_modules/lit-html/lib/template-instance.js ─────────── 1008b ──── 0.7%
147
156
  │ └ node_modules/lit-html/lit-html.js
148
157
  │ └ node_modules/lit-element/lit-element.js
149
158
  │ └ src/components/Price.js
@@ -154,34 +163,37 @@
154
163
  │ └ src/components/Price.js
155
164
  │ └ src/make-api.js
156
165
  │ └ src/index.js
157
- ├ src/core/middleware.js ──────────────────────────────────── 951b ──── 0.7%
166
+ ├ src/core/middleware.js ──────────────────────────────────── 955b ──── 0.7%
158
167
  │ └ src/core/store.js
159
168
  │ └ src/index.js
160
- ../offers-live-editor/dist/offers-live-editor.js ────────── 921b ──── 0.7%
169
+ src/components/Price.js ─────────────────────────────────── 939b ──── 0.7%
161
170
  │ └ src/make-api.js
162
171
  │ └ src/index.js
163
- src/components/Price.js ─────────────────────────────────── 904b ──── 0.7%
172
+ ../offers-live-editor/dist/offers-live-editor.js ────────── 921b ──── 0.7%
164
173
  │ └ src/make-api.js
165
174
  │ └ src/index.js
166
- ├ node_modules/throttle-debounce/index.umd.js ─────────────── 880b ──── 0.7%
175
+ ├ node_modules/throttle-debounce/index.umd.js ─────────────── 880b ──── 0.6%
167
176
  │ └ src/shopify/shopifyMiddleware.ts
168
177
  │ └ src/index.js
169
- ├ src/components/Text.js ──────────────────────────────────── 862b ──── 0.7%
178
+ ├ src/components/Text.js ──────────────────────────────────── 862b ──── 0.6%
170
179
  │ └ src/make-api.js
171
180
  │ └ src/index.js
181
+ ├ src/core/adapters.js ────────────────────────────────────── 857b ──── 0.6%
182
+ │ └ src/shopify/shopifyReducer.js
183
+ │ └ src/index.js
172
184
  ├ src/core/localStorage.js ────────────────────────────────── 810b ──── 0.6%
173
185
  │ └ src/make-api.js
174
186
  │ └ src/index.js
175
187
  ├ src/core/connect.js ─────────────────────────────────────── 794b ──── 0.6%
176
188
  │ └ src/make-api.js
177
189
  │ └ src/index.js
178
- ├ node_modules/lit-html/lib/template-result.js ────────────── 639b ──── 0.5%
190
+ ├ node_modules/lit-html/lib/template-result.js ────────────── 642b ──── 0.5%
179
191
  │ └ node_modules/lit-html/lit-html.js
180
192
  │ └ node_modules/lit-element/lit-element.js
181
193
  │ └ src/components/Price.js
182
194
  │ └ src/make-api.js
183
195
  │ └ src/index.js
184
- ├ node_modules/logical-expression-parser/polish.js ────────── 594b ──── 0.5%
196
+ ├ node_modules/logical-expression-parser/polish.js ────────── 594b ──── 0.4%
185
197
  │ └ node_modules/logical-expression-parser/index.js
186
198
  │ └ src/components/When.js
187
199
  │ └ src/make-api.js
@@ -189,9 +201,6 @@
189
201
  ├ src/components/When.js ──────────────────────────────────── 564b ──── 0.4%
190
202
  │ └ src/make-api.js
191
203
  │ └ src/index.js
192
- ├ src/core/adapters.js ────────────────────────────────────── 555b ──── 0.4%
193
- │ └ src/make-api.js
194
- │ └ src/index.js
195
204
  ├ src/components/OptoutButton.js ──────────────────────────── 546b ──── 0.4%
196
205
  │ └ src/make-api.js
197
206
  │ └ src/index.js
@@ -252,7 +261,7 @@
252
261
  │ └ src/components/Price.js
253
262
  │ └ src/make-api.js
254
263
  │ └ src/index.js
255
- ├ node_modules/lit-html/lit-html.js ───────────────────────── 217b ──── 0.2%
264
+ ├ node_modules/lit-html/lit-html.js ───────────────────────── 218b ──── 0.2%
256
265
  │ └ node_modules/lit-element/lit-element.js
257
266
  │ └ src/components/Price.js
258
267
  │ └ src/make-api.js
@@ -276,6 +285,10 @@
276
285
  │ └ src/index.js
277
286
  ├ src/platform.ts ─────────────────────────────────────────── 170b ──── 0.1%
278
287
  │ └ src/index.js
288
+ ├ src/shopify/utils.ts ────────────────────────────────────── 107b ──── 0.1%
289
+ │ └ src/shopify/reducers/productPlans.ts
290
+ │ └ src/shopify/shopifyReducer.js
291
+ │ └ src/index.js
279
292
  ├ node_modules/lit-element/lib/decorators.js ───────────────── 93b ──── 0.1%
280
293
  │ └ node_modules/lit-element/lit-element.js
281
294
  │ └ src/components/Price.js