@designcrowd/fe-shared-lib 1.3.9-currency-5 → 1.3.9-test-1

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 (34) hide show
  1. package/package.json +2 -3
  2. package/src/atoms/components/Dropdown/DropdownItem.vue +1 -1
  3. package/src/atoms/components/TextInput/TextInput.vue +1 -2
  4. package/src/atoms/components/vuecropper.js +370 -0
  5. package/src/bundles/bundled-translations.de-DE.json +1 -2
  6. package/src/bundles/bundled-translations.es-ES.json +1 -2
  7. package/src/bundles/bundled-translations.fr-CA.json +1 -2
  8. package/src/bundles/bundled-translations.fr-FR.json +1 -2
  9. package/src/bundles/bundled-translations.json +1 -2
  10. package/src/bundles/bundled-translations.pt-BR.json +1 -2
  11. package/src/bundles/bundled-translations.pt-PT.json +1 -2
  12. package/src/experiences/clients/brand-page-api.client.js +0 -15
  13. package/src/experiences/components/AuthFlow/AuthModal.vue +1 -1
  14. package/src/experiences/components/AuthFlow/ForgotPassword.vue +1 -1
  15. package/src/experiences/components/AuthFlow/ResetPassword.vue +1 -1
  16. package/src/experiences/components/AuthFlow/ResetPasswordSuccessModal.vue +1 -1
  17. package/src/experiences/components/AuthFlow/SocialSignInButton.vue +1 -1
  18. package/src/experiences/components/AuthFlow/SubmissionButton.vue +1 -1
  19. package/src/experiences/components/PaymentConfigList/PaymentConfig.mixin.js +0 -20
  20. package/src/experiences/components/PaymentConfigList/PaymentConfigDeleteConfigModal.vue +5 -7
  21. package/src/experiences/components/PaymentConfigList/PaymentConfigDropdown.vue +39 -77
  22. package/src/experiences/components/PaymentConfigList/PaymentConfigList.stories.js +0 -45
  23. package/src/experiences/components/PaymentConfigList/PaymentConfigList.vue +3 -3
  24. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.de-DE.json +1 -2
  25. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.es-ES.json +1 -2
  26. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.fr-CA.json +1 -2
  27. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.fr-FR.json +1 -2
  28. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.json +1 -2
  29. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.pt-BR.json +1 -2
  30. package/src/experiences/components/PaymentConfigList/i18n/shared-payment-config.pt-PT.json +1 -2
  31. package/src/experiences/components/UploadYourLogoOnBoarding/LogoBusinessBrandColours.vue +3 -3
  32. package/src/experiences/components/UploadYourLogoOnBoarding/LogoCropper.vue +2 -2
  33. package/src/experiences/components/UploadYourLogoOnBoarding/LogoUploadModal.vue +1 -1
  34. package/src/experiences/components/UploadedLogoSearchResultCard/UploadedLogoSearchResultCard.vue +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@designcrowd/fe-shared-lib",
3
- "version": "1.3.9-currency-5",
3
+ "version": "1.3.9-test-1",
4
4
  "scripts": {
5
5
  "start": "run-p storybook watch:translation",
6
6
  "build": "npm run build:css --production",
@@ -25,7 +25,7 @@
25
25
  "axios": "1.6.7",
26
26
  "click-outside-vue3": "4.0.1",
27
27
  "core-js": "3.35.1",
28
- "cropperjs": "1.6.1",
28
+ "cropperjs": "2.0.1",
29
29
  "dropzone-vue3": "1.0.2",
30
30
  "fs-extra": "11.2.0",
31
31
  "i18next": "25.2.1",
@@ -38,7 +38,6 @@
38
38
  "vite-plugin-vue-devtools": "7.7.0",
39
39
  "vue": "3.5.15",
40
40
  "vue-color": "3.0.2",
41
- "vue-cropperjs": "5.0.0",
42
41
  "vue-observe-visibility": "1.0.0",
43
42
  "vue-router": "4.5.0",
44
43
  "yargs": "17.7.2"
@@ -2,7 +2,7 @@
2
2
  <div>
3
3
  <div
4
4
  class="tw-flex tw-items-center tw-px-2 tw-py-2 tw-cursor-pointer"
5
- @click.stop="onClick"
5
+ @click="onClick"
6
6
  :class="{
7
7
  'dropdown-item-hover': backgroundHover,
8
8
  }"
@@ -25,9 +25,8 @@
25
25
  <div
26
26
  :class="{
27
27
  'tw-relative': icon || enableInput,
28
- 'tw-grow': !!prefixText,
29
- 'tw-w-full': !prefixText,
30
28
  }"
29
+ class="tw-w-full"
31
30
  >
32
31
  <div
33
32
  v-if="icon"
@@ -0,0 +1,370 @@
1
+ import { h } from 'vue';
2
+ import Cropper from 'cropperjs';
3
+
4
+ const previewPropType = typeof window === 'undefined' ? [String, Array] : [String, Array, Element, NodeList];
5
+
6
+ export default {
7
+ render() {
8
+ const crossorigin = this.crossorigin || undefined;
9
+
10
+ return h('div', { style: this.containerStyle }, [
11
+ h('img', {
12
+ ref: 'img',
13
+ src: this.src,
14
+ alt: this.alt || 'image',
15
+ style: [{ 'max-width': '100%' }, this.imgStyle],
16
+ crossorigin,
17
+ }),
18
+ ]);
19
+ },
20
+ props: {
21
+ // Library props
22
+ containerStyle: Object,
23
+ src: {
24
+ type: String,
25
+ default: '',
26
+ },
27
+ alt: String,
28
+ imgStyle: Object,
29
+
30
+ // CropperJS props
31
+ viewMode: Number,
32
+ dragMode: String,
33
+ initialAspectRatio: Number,
34
+ aspectRatio: Number,
35
+ data: Object,
36
+ preview: previewPropType,
37
+ responsive: {
38
+ type: Boolean,
39
+ default: true,
40
+ },
41
+ restore: {
42
+ type: Boolean,
43
+ default: true,
44
+ },
45
+ checkCrossOrigin: {
46
+ type: Boolean,
47
+ default: true,
48
+ },
49
+ checkOrientation: {
50
+ type: Boolean,
51
+ default: true,
52
+ },
53
+ crossorigin: {
54
+ type: String,
55
+ },
56
+ modal: {
57
+ type: Boolean,
58
+ default: true,
59
+ },
60
+ guides: {
61
+ type: Boolean,
62
+ default: true,
63
+ },
64
+ center: {
65
+ type: Boolean,
66
+ default: true,
67
+ },
68
+ highlight: {
69
+ type: Boolean,
70
+ default: true,
71
+ },
72
+ background: {
73
+ type: Boolean,
74
+ default: true,
75
+ },
76
+ autoCrop: {
77
+ type: Boolean,
78
+ default: true,
79
+ },
80
+ autoCropArea: Number,
81
+ movable: {
82
+ type: Boolean,
83
+ default: true,
84
+ },
85
+ rotatable: {
86
+ type: Boolean,
87
+ default: true,
88
+ },
89
+ scalable: {
90
+ type: Boolean,
91
+ default: true,
92
+ },
93
+ zoomable: {
94
+ type: Boolean,
95
+ default: true,
96
+ },
97
+ zoomOnTouch: {
98
+ type: Boolean,
99
+ default: true,
100
+ },
101
+ zoomOnWheel: {
102
+ type: Boolean,
103
+ default: true,
104
+ },
105
+ wheelZoomRatio: Number,
106
+ cropBoxMovable: {
107
+ type: Boolean,
108
+ default: true,
109
+ },
110
+ cropBoxResizable: {
111
+ type: Boolean,
112
+ default: true,
113
+ },
114
+ toggleDragModeOnDblclick: {
115
+ type: Boolean,
116
+ default: true,
117
+ },
118
+
119
+ // Size limitation
120
+ minCanvasWidth: Number,
121
+ minCanvasHeight: Number,
122
+ minCropBoxWidth: Number,
123
+ minCropBoxHeight: Number,
124
+ minContainerWidth: Number,
125
+ minContainerHeight: Number,
126
+
127
+ // callbacks
128
+ ready: Function,
129
+ cropstart: Function,
130
+ cropmove: Function,
131
+ cropend: Function,
132
+ crop: Function,
133
+ zoom: Function,
134
+ },
135
+ mounted() {
136
+ const { containerStyle, src, alt, imgStyle, ...data } = this.$options.props;
137
+ const props = {};
138
+
139
+ // eslint-disable-next-line no-restricted-syntax
140
+ for (const key in data) {
141
+ if (this[key] !== undefined) {
142
+ props[key] = this[key];
143
+ }
144
+ }
145
+
146
+ this.cropper = new Cropper(this.$refs.img, props);
147
+ },
148
+ methods: {
149
+ // Reset the image and crop box to their initial states
150
+ reset() {
151
+ return this.cropper.reset();
152
+ },
153
+
154
+ // Clear the crop box
155
+ clear() {
156
+ return this.cropper.clear();
157
+ },
158
+
159
+ // Init crop box manually
160
+ initCrop() {
161
+ return this.cropper.crop();
162
+ },
163
+
164
+ /**
165
+ * Replace the image's src and rebuild the cropper
166
+ * @param {string} url - The new URL.
167
+ * @param {boolean} [onlyColorChanged] - Indicate if the new image only changed color.
168
+ * @returns {Object} this
169
+ */
170
+ replace(url, onlyColorChanged = false) {
171
+ return this.cropper.replace(url, onlyColorChanged);
172
+ },
173
+
174
+ // Enable (unfreeze) the cropper
175
+ enable() {
176
+ return this.cropper.enable();
177
+ },
178
+
179
+ // Disable (freeze) the cropper
180
+ disable() {
181
+ return this.cropper.disable();
182
+ },
183
+
184
+ // Destroy the cropper and remove the instance from the image
185
+ destroy() {
186
+ return this.cropper.destroy();
187
+ },
188
+
189
+ /**
190
+ * Move the canvas with relative offsets
191
+ * @param {number} offsetX - The relative offset distance on the x-axis.
192
+ * @param {number} offsetY - The relative offset distance on the y-axis.
193
+ * @returns {Object} this
194
+ */
195
+ move(offsetX, offsetY) {
196
+ return this.cropper.move(offsetX, offsetY);
197
+ },
198
+
199
+ /**
200
+ * Move the canvas to an absolute point
201
+ * @param {number} x - The x-axis coordinate.
202
+ * @param {number} [y=x] - The y-axis coordinate.
203
+ * @returns {Object} this
204
+ */
205
+ moveTo(x, y = x) {
206
+ return this.cropper.moveTo(x, y);
207
+ },
208
+
209
+ /**
210
+ * Zoom the canvas with a relative ratio
211
+ * @param {number} ratio - The target ratio.
212
+ * @param {Event} _originalEvent - The original event if any.
213
+ * @returns {Object} this
214
+ */
215
+ relativeZoom(ratio, _originalEvent) {
216
+ return this.cropper.zoom(ratio, _originalEvent);
217
+ },
218
+
219
+ /**
220
+ * Zoom the canvas to an absolute ratio
221
+ * @param {number} ratio - The target ratio.
222
+ * @param {Event} _originalEvent - The original event if any.
223
+ * @returns {Object} this
224
+ */
225
+ zoomTo(ratio, _originalEvent) {
226
+ return this.cropper.zoomTo(ratio, _originalEvent);
227
+ },
228
+
229
+ /**
230
+ * Rotate the canvas with a relative degree
231
+ * @param {number} degree - The rotate degree.
232
+ * @returns {Object} this
233
+ */
234
+ rotate(degree) {
235
+ return this.cropper.rotate(degree);
236
+ },
237
+
238
+ /**
239
+ * Rotate the canvas to an absolute degree
240
+ * @param {number} degree - The rotate degree.
241
+ * @returns {Object} this
242
+ */
243
+ rotateTo(degree) {
244
+ return this.cropper.rotateTo(degree);
245
+ },
246
+
247
+ /**
248
+ * Scale the image on the x-axis.
249
+ * @param {number} scaleX - The scale ratio on the x-axis.
250
+ * @returns {Object} this
251
+ */
252
+ scaleX(scaleX) {
253
+ return this.cropper.scaleX(scaleX);
254
+ },
255
+
256
+ /**
257
+ * Scale the image on the y-axis.
258
+ * @param {number} scaleY - The scale ratio on the y-axis.
259
+ * @returns {Object} this
260
+ */
261
+ scaleY(scaleY) {
262
+ return this.cropper.scaleY(scaleY);
263
+ },
264
+
265
+ /**
266
+ * Scale the image
267
+ * @param {number} scaleX - The scale ratio on the x-axis.
268
+ * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis.
269
+ * @returns {Object} this
270
+ */
271
+ scale(scaleX, scaleY = scaleX) {
272
+ return this.cropper.scale(scaleX, scaleY);
273
+ },
274
+
275
+ /**
276
+ * Get the cropped area position and size data (base on the original image)
277
+ * @param {boolean} [rounded=false] - Indicate if round the data values or not.
278
+ * @returns {Object} The result cropped data.
279
+ */
280
+ getData(rounded = false) {
281
+ return this.cropper.getData(rounded);
282
+ },
283
+
284
+ /**
285
+ * Set the cropped area position and size with new data
286
+ * @param {Object} data - The new data.
287
+ * @returns {Object} this
288
+ */
289
+ setData(data) {
290
+ return this.cropper.setData(data);
291
+ },
292
+
293
+ /**
294
+ * Get the container size data.
295
+ * @returns {Object} The result container data.
296
+ */
297
+ getContainerData() {
298
+ return this.cropper.getContainerData();
299
+ },
300
+
301
+ /**
302
+ * Get the image position and size data.
303
+ * @returns {Object} The result image data.
304
+ */
305
+ getImageData() {
306
+ return this.cropper.getImageData();
307
+ },
308
+
309
+ /**
310
+ * Get the canvas position and size data.
311
+ * @returns {Object} The result canvas data.
312
+ */
313
+ getCanvasData() {
314
+ return this.cropper.getCanvasData();
315
+ },
316
+
317
+ /**
318
+ * Set the canvas position and size with new data.
319
+ * @param {Object} data - The new canvas data.
320
+ * @returns {Object} this
321
+ */
322
+ setCanvasData(data) {
323
+ return this.cropper.setCanvasData(data);
324
+ },
325
+
326
+ /**
327
+ * Get the crop box position and size data.
328
+ * @returns {Object} The result crop box data.
329
+ */
330
+ getCropBoxData() {
331
+ return this.cropper.getCropBoxData();
332
+ },
333
+
334
+ /**
335
+ * Set the crop box position and size with new data.
336
+ * @param {Object} data - The new crop box data.
337
+ * @returns {Object} this
338
+ */
339
+ setCropBoxData(data) {
340
+ return this.cropper.setCropBoxData(data);
341
+ },
342
+
343
+ /**
344
+ * Get a canvas drawn the cropped image.
345
+ * @param {Object} [options={}] - The config options.
346
+ * @returns {HTMLCanvasElement} - The result canvas.
347
+ */
348
+ getCroppedCanvas(options = {}) {
349
+ return this.cropper.getCroppedCanvas(options);
350
+ },
351
+
352
+ /**
353
+ * Change the aspect ratio of the crop box.
354
+ * @param {number} aspectRatio - The new aspect ratio.
355
+ * @returns {Object} this
356
+ */
357
+ setAspectRatio(aspectRatio) {
358
+ return this.cropper.setAspectRatio(aspectRatio);
359
+ },
360
+
361
+ /**
362
+ * Change the drag mode.
363
+ * @param {string} mode - The new drag mode.
364
+ * @returns {Object} this
365
+ */
366
+ setDragMode(mode) {
367
+ return this.cropper.setDragMode(mode);
368
+ },
369
+ },
370
+ };
@@ -9,8 +9,7 @@
9
9
  "connected": "Verbunden",
10
10
  "inactive": "Inaktiv",
11
11
  "addPaymentProvider": "Zahlungsanbieter hinzufügen",
12
- "deletePaymentMethod": "Zahlungsmethode löschen",
13
- "currencyLabel": "Währung"
12
+ "deletePaymentMethod": "Zahlungsmethode löschen"
14
13
  },
15
14
  "publishBrandPageModal": {
16
15
  "firstTimePublishHeaderLabel": "Legen Sie die URL für {{brandPageDisplayName}} fest",
@@ -9,8 +9,7 @@
9
9
  "connected": "Conectado",
10
10
  "inactive": "Inactivo",
11
11
  "addPaymentProvider": "Añadir proveedor de pago",
12
- "deletePaymentMethod": "Eliminar método de pago",
13
- "currencyLabel": "Moneda"
12
+ "deletePaymentMethod": "Eliminar método de pago"
14
13
  },
15
14
  "publishBrandPageModal": {
16
15
  "firstTimePublishHeaderLabel": "Establece la URL para {{brandPageDisplayName}}",
@@ -9,8 +9,7 @@
9
9
  "connected": "Connecté",
10
10
  "inactive": "Inactif",
11
11
  "addPaymentProvider": "Ajouter un fournisseur de paiement",
12
- "deletePaymentMethod": "Supprimer le mode de paiement",
13
- "currencyLabel": "Devise"
12
+ "deletePaymentMethod": "Supprimer le mode de paiement"
14
13
  },
15
14
  "publishBrandPageModal": {
16
15
  "firstTimePublishHeaderLabel": "Définissez l'URL pour {{brandPageDisplayName}}",
@@ -9,8 +9,7 @@
9
9
  "connected": "Connecté",
10
10
  "inactive": "Inactif",
11
11
  "addPaymentProvider": "Ajouter un fournisseur de paiement",
12
- "deletePaymentMethod": "Supprimer le mode de paiement",
13
- "currencyLabel": "Devise"
12
+ "deletePaymentMethod": "Supprimer le mode de paiement"
14
13
  },
15
14
  "publishBrandPageModal": {
16
15
  "firstTimePublishHeaderLabel": "Définissez l'URL pour {{brandPageDisplayName}}",
@@ -9,8 +9,7 @@
9
9
  "connected": "Connected",
10
10
  "inactive": "Inactive",
11
11
  "addPaymentProvider": "Add Payment Provider",
12
- "deletePaymentMethod": "Delete payment method",
13
- "currencyLabel": "Currency"
12
+ "deletePaymentMethod": "Delete payment method"
14
13
  },
15
14
  "publishBrandPageModal": {
16
15
  "firstTimePublishHeaderLabel": "Set the URL for {{brandPageDisplayName}}",
@@ -9,8 +9,7 @@
9
9
  "connected": "Conectado",
10
10
  "inactive": "Inativo",
11
11
  "addPaymentProvider": "Adicionar fornecedor de pagamentos",
12
- "deletePaymentMethod": "Excluir método de pagamento",
13
- "currencyLabel": "Moeda"
12
+ "deletePaymentMethod": "Excluir método de pagamento"
14
13
  },
15
14
  "publishBrandPageModal": {
16
15
  "firstTimePublishHeaderLabel": "Defina o URL para {{brandPageDisplayName}}",
@@ -9,8 +9,7 @@
9
9
  "connected": "Ligado",
10
10
  "inactive": "Inativo",
11
11
  "addPaymentProvider": "Adicionar fornecedor de pagamentos",
12
- "deletePaymentMethod": "Eliminar método de pagamento",
13
- "currencyLabel": "Moeda"
12
+ "deletePaymentMethod": "Eliminar método de pagamento"
14
13
  },
15
14
  "publishBrandPageModal": {
16
15
  "firstTimePublishHeaderLabel": "Defina o URL para {{brandPageDisplayName}}",
@@ -24,20 +24,6 @@ const getPaymentConfigsByBrandPageToken = async (brandPageToken) => {
24
24
  }
25
25
  };
26
26
 
27
- const getPaymentConfigCurrencyListByBrandPageTokenAsync = async () => {
28
- try {
29
- const response = await getAxios().get(`/maker/api/brand-pages/payment-configs/currency-list`);
30
-
31
- if (response.status === 200) {
32
- return response.data;
33
- }
34
-
35
- return null;
36
- } catch (err) {
37
- return null;
38
- }
39
- };
40
-
41
27
  const deletePaymentConfigByBrandPageTokenAndConfigId = async (brandPageToken, paymentConfigId) => {
42
28
  try {
43
29
  const response = await getAxios().delete(`/maker/api/brand-pages/${brandPageToken}/payment-configs`, {
@@ -58,5 +44,4 @@ export default {
58
44
  setBrandPageApiClientAxios,
59
45
  getPaymentConfigsByBrandPageToken,
60
46
  deletePaymentConfigByBrandPageTokenAndConfigId,
61
- getPaymentConfigCurrencyListByBrandPageTokenAsync,
62
47
  };
@@ -17,7 +17,7 @@
17
17
  </div>
18
18
  </template>
19
19
  <script>
20
- import Icon from '../../../atoms/components/Icon/Icon.vue';
20
+ import Icon from '../../../../src/atoms/components/Icon/Icon.vue';
21
21
 
22
22
  export default {
23
23
  components: {
@@ -74,7 +74,7 @@
74
74
  </template>
75
75
  <script>
76
76
  import { getCurrentLocale } from '../../../useSharedLibTranslate';
77
- import HelloBar from '../../../atoms/components/HelloBar/HelloBar.vue';
77
+ import HelloBar from '../../../../src/atoms/components/HelloBar/HelloBar.vue';
78
78
  import SubmissionButton from './SubmissionButton.vue';
79
79
 
80
80
  export default {
@@ -64,7 +64,7 @@
64
64
  </template>
65
65
  <script>
66
66
  import { getCurrentLocale } from '../../../useSharedLibTranslate';
67
- import HelloBar from '../../../atoms/components/HelloBar/HelloBar.vue';
67
+ import HelloBar from '../../../../src/atoms/components/HelloBar/HelloBar.vue';
68
68
  import SubmissionButton from './SubmissionButton.vue';
69
69
 
70
70
  export default {
@@ -19,7 +19,7 @@
19
19
  </div>
20
20
  </template>
21
21
  <script>
22
- import Button from '../../../atoms/components/Button/Button.vue';
22
+ import Button from '../../../../src/atoms/components/Button/Button.vue';
23
23
 
24
24
  import AuthModal from './AuthModal.vue';
25
25
 
@@ -23,7 +23,7 @@
23
23
  </button>
24
24
  </template>
25
25
  <script>
26
- import Icon from '../../../atoms/components/Icon/Icon.vue';
26
+ import Icon from '../../../../src/atoms/components/Icon/Icon.vue';
27
27
 
28
28
  const TYPES = {
29
29
  FACEBOOK: 'facebook',
@@ -20,7 +20,7 @@
20
20
  </template>
21
21
 
22
22
  <script>
23
- import Button from '../../../atoms/components/Button/Button.vue';
23
+ import Button from '../../../../src/atoms/components/Button/Button.vue';
24
24
 
25
25
  export default {
26
26
  components: {
@@ -32,15 +32,9 @@ export default {
32
32
  data: () => ({
33
33
  isLoading: true,
34
34
  paymentConfigs: [],
35
- currencies: [],
36
35
  selectedPaymentConfig: {},
37
36
  isStripeOptionActionVisible: false,
38
37
  }),
39
- computed: {
40
- selectedCurrency() {
41
- return this.currencies.find((currency) => currency.iso4127Code === this.selectedPaymentConfig?.defaultCurrency);
42
- },
43
- },
44
38
  methods: {
45
39
  getPaymentConfigStatusDisplayText(paymentConfigStatus) {
46
40
  switch (paymentConfigStatus) {
@@ -100,19 +94,5 @@ export default {
100
94
  this.isLoading = false;
101
95
  }
102
96
  },
103
-
104
- async getCurrentListAsync() {
105
- try {
106
- const result = await brandPageApiClient.getPaymentConfigCurrencyListByBrandPageTokenAsync();
107
-
108
- if (result) {
109
- this.currencies = result?.currencies || [];
110
- }
111
- } catch (err) {
112
- if (process.env.NODE_ENV !== 'production') {
113
- console.error(`Error fetching currency list: ${err}`);
114
- }
115
- }
116
- },
117
97
  },
118
98
  };
@@ -40,17 +40,17 @@
40
40
  </Modal>
41
41
  </template>
42
42
  <script>
43
- import Modal from '../../../atoms/components/Modal/Modal.vue';
44
- import Button from '../../../atoms/components/Button/Button.vue';
45
- import Loader from '../../../atoms/components/Loader/Loader.vue';
46
- import brandPageApiClient from '../../clients/brand-page-api.client';
47
-
43
+ import Modal from '../../../../src/atoms/components/Modal/Modal.vue';
44
+ import Button from '../../../../src/atoms/components/Button/Button.vue';
45
+ import Loader from '../../../../src/atoms/components/Loader/Loader.vue';
46
+ import brandPageApiClient from './../../clients/brand-page-api.client';
48
47
  export default {
49
48
  components: {
50
49
  Modal,
51
50
  Button,
52
51
  Loader,
53
52
  },
53
+ emits: ['close-modal', 'on-delete'],
54
54
  props: {
55
55
  paymentConfig: {
56
56
  type: Object,
@@ -60,10 +60,8 @@ export default {
60
60
  brandPageToken: {
61
61
  type: String,
62
62
  required: false,
63
- default: () => undefined,
64
63
  },
65
64
  },
66
- emits: ['close-modal', 'on-delete'],
67
65
  data: () => ({
68
66
  isLoading: false,
69
67
  }),
@@ -10,84 +10,54 @@
10
10
  variant="outline"
11
11
  @on-click="onAddPaymentProviderButtonClick"
12
12
  ></Button>
13
- <div v-if="!isLoading && !isAddPaymentProviderButtonVisible">
14
- <Dropdown ref="dropdown">
15
- <template #title>
16
- <div
17
- v-if="selectedPaymentConfig"
18
- class="tw-flex tw-items-center tw-px-2 tw-py-2 drop-down-item tw-cursor-pointer"
19
- >
20
- <span class="tw-text-sm tw-grow tw-select-none tw-flex tw-flex-col">
21
- <span>{{ selectedPaymentConfig.name }}</span>
22
- <small class="stripe-acct">({{ selectedPaymentConfig.paymentProviderExternalId }})</small>
23
- </span>
24
- <Pill class="tw-text-white" :class="getPaymentConfigStatusDisplayClasses(selectedPaymentConfig.status)">
25
- {{ getPaymentConfigStatusDisplayText(selectedPaymentConfig.status) }}
26
- </Pill>
27
- </div>
28
- </template>
29
-
30
- <DropdownItem
31
- v-for="paymentConfig in paymentConfigs"
32
- :key="`payment-config-${paymentConfig.id}`"
33
- @click="onPaymentConfigClick(paymentConfig)"
13
+ <Dropdown v-if="!isLoading && !isAddPaymentProviderButtonVisible" ref="dropdown">
14
+ <template #title>
15
+ <div
16
+ v-if="selectedPaymentConfig"
17
+ class="tw-flex tw-items-center tw-px-2 tw-py-2 drop-down-item tw-cursor-pointer"
34
18
  >
35
19
  <span class="tw-text-sm tw-grow tw-select-none tw-flex tw-flex-col">
36
- <span>{{ paymentConfig.name }}</span>
37
- <small class="stripe-acct">({{ paymentConfig.paymentProviderExternalId }})</small>
20
+ <span>{{ selectedPaymentConfig.name }}</span>
21
+ <small class="stripe-acct">({{ selectedPaymentConfig.paymentProviderExternalId }})</small>
38
22
  </span>
39
- <Pill class="tw-text-white" :class="getPaymentConfigStatusDisplayClasses(paymentConfig.status)">
40
- {{ getPaymentConfigStatusDisplayText(paymentConfig.status) }}
23
+ <Pill class="tw-text-white" :class="getPaymentConfigStatusDisplayClasses(selectedPaymentConfig.status)">
24
+ {{ getPaymentConfigStatusDisplayText(selectedPaymentConfig.status) }}
41
25
  </Pill>
42
- </DropdownItem>
26
+ </div>
27
+ </template>
43
28
 
44
- <DropdownItem v-if="showAddPaymentProvider" class="tw-border-t-2" @click="onAddPaymentProviderButtonClick">
45
- <Button
46
- :full-width="true"
47
- :label="sharedPaymentConfigTr('addPaymentProvider')"
48
- size="small"
49
- variant="outline"
50
- @on-click="onAddPaymentProviderButtonClick"
51
- />
52
- </DropdownItem>
53
- </Dropdown>
54
- <!-- Currency -->
55
- <template v-if="currencies && currencies.length > 0">
56
- <h4 class="tw-mt-6 tw-mb-2 tw-text-sm tw-font-bold">{{ sharedPaymentConfigTr('currencyLabel') }}</h4>
57
- <Dropdown ref="dropdownCurrency" :menu-element-classes="'tw-w-full'">
58
- <template #title>
59
- <div
60
- v-if="selectedCurrency"
61
- class="tw-flex tw-items-center tw-px-2 tw-py-2 drop-down-item tw-cursor-pointer"
62
- >
63
- <span class="tw-text-sm tw-grow tw-select-none tw-flex tw-flex-col">
64
- <span>{{ selectedCurrency.iso4127Code }} ({{ selectedCurrency.symbol }})</span>
65
- </span>
66
- </div>
67
- </template>
29
+ <DropdownItem
30
+ v-for="paymentConfig in paymentConfigs"
31
+ :key="`payment-config-${paymentConfig.id}`"
32
+ @click="onPaymentConfigClick(paymentConfig)"
33
+ >
34
+ <span class="tw-text-sm tw-grow tw-select-none tw-flex tw-flex-col">
35
+ <span>{{ paymentConfig.name }}</span>
36
+ <small class="stripe-acct">({{ paymentConfig.paymentProviderExternalId }})</small>
37
+ </span>
38
+ <Pill class="tw-text-white" :class="getPaymentConfigStatusDisplayClasses(paymentConfig.status)">
39
+ {{ getPaymentConfigStatusDisplayText(paymentConfig.status) }}
40
+ </Pill>
41
+ </DropdownItem>
68
42
 
69
- <DropdownItem
70
- v-for="currency in currencies"
71
- :key="`currency-${currency.id}`"
72
- @click="onCurrencyClick(currency)"
73
- >
74
- <span class="tw-text-sm tw-grow tw-select-none tw-flex tw-flex-col">
75
- <span>{{ currency.iso4127Code }} ({{ currency.symbol }})</span>
76
- </span>
77
- <Icon v-if="selectedCurrency?.id === currency.id" name="check-thin" />
78
- </DropdownItem>
79
- </Dropdown>
80
- </template>
81
- </div>
43
+ <DropdownItem v-if="showAddPaymentProvider" class="tw-border-t-2" @click="onAddPaymentProviderButtonClick">
44
+ <Button
45
+ :full-width="true"
46
+ :label="sharedPaymentConfigTr('addPaymentProvider')"
47
+ size="small"
48
+ variant="outline"
49
+ @on-click="onAddPaymentProviderButtonClick"
50
+ />
51
+ </DropdownItem>
52
+ </Dropdown>
82
53
  </div>
83
54
  </template>
84
55
  <script>
85
- import Button from '../../../atoms/components/Button/Button.vue';
86
- import Dropdown from '../../../atoms/components/Dropdown/Dropdown.vue';
87
- import DropdownItem from '../../../atoms/components/Dropdown/DropdownItem.vue';
88
- import Loader from '../../../atoms/components/Loader/Loader.vue';
89
- import Pill from '../../../atoms/components/Pill/Pill.vue';
90
- import Icon from '../../../atoms/components/Icon/Icon.vue';
56
+ import Button from '../../../../src/atoms/components/Button/Button.vue';
57
+ import Dropdown from '../../../../src/atoms/components/Dropdown/Dropdown.vue';
58
+ import DropdownItem from '../../../../src/atoms/components/Dropdown/DropdownItem.vue';
59
+ import Loader from '../../../../src/atoms/components/Loader/Loader.vue';
60
+ import Pill from '../../../../src/atoms/components/Pill/Pill.vue';
91
61
 
92
62
  import PaymentConfigMixin, { paymentConfigStatuses } from './PaymentConfig.mixin';
93
63
  import { sharedPaymentConfigTr } from '../../../useSharedLibTranslate';
@@ -99,7 +69,6 @@ export default {
99
69
  DropdownItem,
100
70
  Loader,
101
71
  Pill,
102
- Icon,
103
72
  },
104
73
  mixins: [PaymentConfigMixin],
105
74
  props: {
@@ -120,8 +89,6 @@ export default {
120
89
  },
121
90
  },
122
91
  async mounted() {
123
- this.getCurrentListAsync();
124
-
125
92
  if (this.brandPageToken) {
126
93
  await this.updatePaymentConfigs();
127
94
  if (!this.selectedPaymentConfig && this.paymentConfigs.length === 0) {
@@ -158,11 +125,6 @@ export default {
158
125
  this.selectedPaymentConfig = paymentConfig;
159
126
  this.$emit('on-payment-config-selected', this.selectedPaymentConfig);
160
127
  },
161
-
162
- onCurrencyClick(currency) {
163
- this.$refs.dropdownCurrency.hideMenu();
164
- this.$emit('on-currency-selected', currency);
165
- },
166
128
  },
167
129
  };
168
130
  </script>
@@ -57,53 +57,11 @@ const PAYMENT_CONFIGS_RESPONSE = [
57
57
  },
58
58
  ];
59
59
 
60
- const PAYMENT_CONFIGS_CURRENCY_LIST_RESPONSE = {
61
- currencies: [
62
- {
63
- id: '9dce1a02-f415-433b-8ea8-0144c651e236',
64
- name: 'United State Dollar',
65
- iso4127Code: 'USD',
66
- iso31662Code: 'US',
67
- symbol: '$',
68
- isSymbolPlacedBeforePrice: true,
69
- created: '2023-06-21T01:04:12.961Z',
70
- },
71
- {
72
- id: '38dc53a9-a66f-4c6d-b14c-cf987d7f779b',
73
- name: 'Australian Dollar',
74
- iso4127Code: 'AUD',
75
- iso31662Code: 'AU',
76
- symbol: '$',
77
- isSymbolPlacedBeforePrice: true,
78
- created: '2023-06-21T01:04:12.961Z',
79
- },
80
- {
81
- id: '02c5a9f3-39f1-4764-bd91-a76982dd949a',
82
- name: 'British Pound Sterling',
83
- iso4127Code: 'GBP',
84
- iso31662Code: 'UK',
85
- symbol: '£',
86
- isSymbolPlacedBeforePrice: true,
87
- created: '2023-06-21T01:04:12.961Z',
88
- },
89
- {
90
- id: '2b26857d-0525-4bf0-b37c-e020847e0bd2',
91
- name: 'Euro',
92
- iso4127Code: 'EUR',
93
- iso31662Code: 'EU',
94
- symbol: '€',
95
- isSymbolPlacedBeforePrice: true,
96
- created: '2023-06-21T01:04:12.961Z',
97
- },
98
- ],
99
- };
100
-
101
60
  export const SampleStripe = () => {
102
61
  const mock = new MockAdapter(axios, { delayResponse: MOCK_RESPONSE_DELAY });
103
62
  const brandPageToken = '6bc3885c-7e5c-4c9e-9b54-21dcd06ca647';
104
63
 
105
64
  mock.onGet(`/maker/api/brand-pages/${brandPageToken}/payment-configs`).reply(200, PAYMENT_CONFIGS_RESPONSE);
106
- mock.onGet(`/maker/api/brand-pages/payment-configs/currency-list`).reply(200, PAYMENT_CONFIGS_CURRENCY_LIST_RESPONSE);
107
65
 
108
66
  return {
109
67
  components: {
@@ -127,7 +85,6 @@ export const SampleStripeHideExternalId = () => {
127
85
  const brandPageToken = '6bc3885c-7e5c-4c9e-9b54-21dcd06ca647';
128
86
 
129
87
  mock.onGet(`/maker/api/brand-pages/${brandPageToken}/payment-configs`).reply(200, PAYMENT_CONFIGS_RESPONSE);
130
- mock.onGet(`/maker/api/brand-pages/payment-configs/currency-list`).reply(200, PAYMENT_CONFIGS_CURRENCY_LIST_RESPONSE);
131
88
 
132
89
  return {
133
90
  components: {
@@ -155,7 +112,6 @@ export const SampleDropdownStripe = () => {
155
112
  const brandPageToken = '6bc3885c-7e5c-4c9e-9b54-21dcd06ca647';
156
113
 
157
114
  mock.onGet(`/maker/api/brand-pages/${brandPageToken}/payment-configs`).reply(200, PAYMENT_CONFIGS_RESPONSE);
158
- mock.onGet(`/maker/api/brand-pages/payment-configs/currency-list`).reply(200, PAYMENT_CONFIGS_CURRENCY_LIST_RESPONSE);
159
115
 
160
116
  return {
161
117
  components: {
@@ -183,7 +139,6 @@ export const SampleDropdownStripeWithFilter = () => {
183
139
  const brandPageToken = '6bc3885c-7e5c-4c9e-9b54-21dcd06ca647';
184
140
 
185
141
  mock.onGet(`/maker/api/brand-pages/${brandPageToken}/payment-configs`).reply(200, PAYMENT_CONFIGS_RESPONSE);
186
- mock.onGet(`/maker/api/brand-pages/payment-configs/currency-list`).reply(200, PAYMENT_CONFIGS_CURRENCY_LIST_RESPONSE);
187
142
 
188
143
  return {
189
144
  components: {
@@ -65,10 +65,10 @@
65
65
  </template>
66
66
 
67
67
  <script>
68
- import Loader from '../../../atoms/components/Loader/Loader.vue';
69
- import Button from '../../../atoms/components/Button/Button.vue';
68
+ import Loader from '../../../../src/atoms/components/Loader/Loader.vue';
69
+ import Button from '../../../../src/atoms/components/Button/Button.vue';
70
70
  import PaymentConfigDeleteConfigModal from './PaymentConfigDeleteConfigModal.vue';
71
- import Icon from '../../../atoms/components/Icon/Icon.vue';
71
+ import Icon from '../../../../src/atoms/components/Icon/Icon.vue';
72
72
 
73
73
  import PaymentConfigMixin from './PaymentConfig.mixin';
74
74
  import { sharedPaymentConfigTr } from '../../../useSharedLibTranslate';
@@ -5,7 +5,6 @@
5
5
  "connected" : "Verbunden",
6
6
  "inactive" : "Inaktiv",
7
7
  "addPaymentProvider" : "Zahlungsanbieter hinzufügen",
8
- "deletePaymentMethod" : "Zahlungsmethode löschen",
9
- "currencyLabel" : "Währung"
8
+ "deletePaymentMethod" : "Zahlungsmethode löschen"
10
9
  }
11
10
  }
@@ -5,7 +5,6 @@
5
5
  "connected" : "Conectado",
6
6
  "inactive" : "Inactivo",
7
7
  "addPaymentProvider" : "Añadir proveedor de pago",
8
- "deletePaymentMethod" : "Eliminar método de pago",
9
- "currencyLabel" : "Moneda"
8
+ "deletePaymentMethod" : "Eliminar método de pago"
10
9
  }
11
10
  }
@@ -5,7 +5,6 @@
5
5
  "connected" : "Connecté",
6
6
  "inactive" : "Inactif",
7
7
  "addPaymentProvider" : "Ajouter un fournisseur de paiement",
8
- "deletePaymentMethod" : "Supprimer le mode de paiement",
9
- "currencyLabel" : "Devise"
8
+ "deletePaymentMethod" : "Supprimer le mode de paiement"
10
9
  }
11
10
  }
@@ -5,7 +5,6 @@
5
5
  "connected" : "Connecté",
6
6
  "inactive" : "Inactif",
7
7
  "addPaymentProvider" : "Ajouter un fournisseur de paiement",
8
- "deletePaymentMethod" : "Supprimer le mode de paiement",
9
- "currencyLabel" : "Devise"
8
+ "deletePaymentMethod" : "Supprimer le mode de paiement"
10
9
  }
11
10
  }
@@ -5,7 +5,6 @@
5
5
  "connected": "Connected",
6
6
  "inactive": "Inactive",
7
7
  "addPaymentProvider": "Add Payment Provider",
8
- "deletePaymentMethod": "Delete payment method",
9
- "currencyLabel": "Currency"
8
+ "deletePaymentMethod": "Delete payment method"
10
9
  }
11
10
  }
@@ -5,7 +5,6 @@
5
5
  "connected" : "Conectado",
6
6
  "inactive" : "Inativo",
7
7
  "addPaymentProvider" : "Adicionar fornecedor de pagamentos",
8
- "deletePaymentMethod" : "Excluir método de pagamento",
9
- "currencyLabel" : "Moeda"
8
+ "deletePaymentMethod" : "Excluir método de pagamento"
10
9
  }
11
10
  }
@@ -5,7 +5,6 @@
5
5
  "connected" : "Ligado",
6
6
  "inactive" : "Inativo",
7
7
  "addPaymentProvider" : "Adicionar fornecedor de pagamentos",
8
- "deletePaymentMethod" : "Eliminar método de pagamento",
9
- "currencyLabel" : "Moeda"
8
+ "deletePaymentMethod" : "Eliminar método de pagamento"
10
9
  }
11
10
  }
@@ -121,9 +121,9 @@
121
121
  </template>
122
122
  <script>
123
123
  /* eslint-disable no-param-reassign */
124
- import Button from '../../../atoms/components/Button/Button.vue';
125
- import Icon from '../../../atoms/components/Icon/Icon.vue';
126
- import HelloBar from '../../../atoms/components/HelloBar/HelloBar.vue';
124
+ import Button from '../../../../src/atoms/components/Button/Button.vue';
125
+ import Icon from '../../../../src/atoms/components/Icon/Icon.vue';
126
+ import HelloBar from '../../../../src/atoms/components/HelloBar/HelloBar.vue';
127
127
  import trackEvent from '../../helpers/tracking';
128
128
  import hexDiff from '../../helpers/hex-diff';
129
129
  import { uploadYourLogoTr } from '../../../useSharedLibTranslate';
@@ -47,8 +47,8 @@
47
47
  </div>
48
48
  </template>
49
49
  <script>
50
- import VueCropper from 'vue-cropperjs';
51
- import Button from '../../../atoms/components/Button/Button.vue';
50
+ import Button from '../../../../src/atoms/components/Button/Button.vue';
51
+ import VueCropper from '../../../atoms/components/vuecropper';
52
52
 
53
53
  import trackEvent from '../../helpers/tracking';
54
54
  import { uploadYourLogoTr } from '../../../useSharedLibTranslate';
@@ -16,7 +16,7 @@
16
16
  </div>
17
17
  </template>
18
18
  <script>
19
- import Icon from '../../../atoms/components/Icon/Icon.vue';
19
+ import Icon from '../../../../src/atoms/components/Icon/Icon.vue';
20
20
 
21
21
  export default {
22
22
  components: {
@@ -98,7 +98,7 @@
98
98
  </template>
99
99
  <script>
100
100
  import axios from 'axios';
101
- import Button from '../../../atoms/components/Button/Button.vue';
101
+ import Button from '../../../../src/atoms/components/Button/Button.vue';
102
102
  import Events from '../../constants/event-constants';
103
103
  import API from '../../constants/api';
104
104
  import trackEvent from '../../helpers/tracking';