@thescaffold/ngx-apps-capital 0.2.32 → 0.2.34
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.
- package/README.md +1 -1
- package/fesm2022/{thescaffold-ngx-apps-capital-dashboard.module-C08wnnHw.mjs → thescaffold-ngx-apps-capital-dashboard.module-fLYoq8nC.mjs} +259 -285
- package/fesm2022/thescaffold-ngx-apps-capital-dashboard.module-fLYoq8nC.mjs.map +1 -0
- package/fesm2022/{thescaffold-ngx-apps-capital-payment.module-BuzjSS_y.mjs → thescaffold-ngx-apps-capital-payment.module-BA6Cvnz6.mjs} +2 -2
- package/fesm2022/{thescaffold-ngx-apps-capital-payment.module-BuzjSS_y.mjs.map → thescaffold-ngx-apps-capital-payment.module-BA6Cvnz6.mjs.map} +1 -1
- package/fesm2022/{thescaffold-ngx-apps-capital-payment.provider-DAlEfzgr.mjs → thescaffold-ngx-apps-capital-payment.provider-BueWK2vQ.mjs} +3 -3
- package/fesm2022/thescaffold-ngx-apps-capital-payment.provider-BueWK2vQ.mjs.map +1 -0
- package/fesm2022/thescaffold-ngx-apps-capital.mjs +4 -4
- package/package.json +1 -1
- package/fesm2022/thescaffold-ngx-apps-capital-dashboard.module-C08wnnHw.mjs.map +0 -1
- package/fesm2022/thescaffold-ngx-apps-capital-payment.provider-DAlEfzgr.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ Run `ng build capital` to build the project. The build artifacts will be stored
|
|
|
14
14
|
|
|
15
15
|
## Publishing
|
|
16
16
|
|
|
17
|
-
After building your library with `ng build capital`, go to the dist folder `cd dist/capital` and run `
|
|
17
|
+
After building your library with `ng build capital`, go to the dist folder `cd dist/capital` and run `npm publish`.
|
|
18
18
|
|
|
19
19
|
## Running unit tests
|
|
20
20
|
|
|
@@ -7,7 +7,7 @@ import { BaseDirective, ControlService, getEnv, navigateExternal, using, SharedM
|
|
|
7
7
|
import * as i2 from '@thescaffold/ngx-ui';
|
|
8
8
|
import { FlyoutService, WizardService, WebgetsModule, ElementsModule, DashboardModule as DashboardModule$1 } from '@thescaffold/ngx-ui';
|
|
9
9
|
import { C as CardProvider } from './thescaffold-ngx-apps-capital-card.provider-CebuwlQl.mjs';
|
|
10
|
-
import { P as PaymentProvider } from './thescaffold-ngx-apps-capital-payment.provider-
|
|
10
|
+
import { P as PaymentProvider } from './thescaffold-ngx-apps-capital-payment.provider-BueWK2vQ.mjs';
|
|
11
11
|
import { of, takeUntil, map, switchMap, forkJoin } from 'rxjs';
|
|
12
12
|
import * as i1 from '@angular/common';
|
|
13
13
|
|
|
@@ -50,7 +50,7 @@ class DashboardComponent extends BaseDirective {
|
|
|
50
50
|
this.apiService.get('apps/capital/user-plan'),
|
|
51
51
|
of(wallet),
|
|
52
52
|
this.apiService.get('apps/capital/debt'),
|
|
53
|
-
this.apiService.get('apps/capital/
|
|
53
|
+
this.apiService.get('apps/capital/accrual'),
|
|
54
54
|
])), map(([plan, wallet, pending, estimate]) => {
|
|
55
55
|
this.currentPlan = plan?.data;
|
|
56
56
|
return {
|
|
@@ -117,7 +117,7 @@ class DashboardComponent extends BaseDirective {
|
|
|
117
117
|
<ng-template #beforeMetricsTemplate>
|
|
118
118
|
<!-- verify payment -->
|
|
119
119
|
<x-common-payment [data]="verifyPaymentData"></x-common-payment>
|
|
120
|
-
|
|
120
|
+
|
|
121
121
|
@if (capital$ | async; as capital) {
|
|
122
122
|
<div class="">
|
|
123
123
|
<div class="row gx-5 d-flex flex-wrap">
|
|
@@ -126,13 +126,12 @@ class DashboardComponent extends BaseDirective {
|
|
|
126
126
|
<div class="d-flex justify-content-between align-items-center">
|
|
127
127
|
<span class="fs-6">
|
|
128
128
|
{{
|
|
129
|
-
|
|
129
|
+
'apps.capital.component.dashboard.message.plan'
|
|
130
|
+
| xTranslate
|
|
130
131
|
}}
|
|
131
132
|
</span>
|
|
132
133
|
@if (capital.plan?.type?.name) {
|
|
133
|
-
<span class="fs-3"
|
|
134
|
-
>{{ capital.plan?.type?.name }}
|
|
135
|
-
</span>
|
|
134
|
+
<span class="fs-3">{{ capital.plan?.type?.name }} </span>
|
|
136
135
|
}
|
|
137
136
|
<!-- <span *ngIf="capital.plan?.type?.name" class="fs-3"
|
|
138
137
|
>{{
|
|
@@ -140,48 +139,42 @@ class DashboardComponent extends BaseDirective {
|
|
|
140
139
|
| xMajor | number: '1.2-2'
|
|
141
140
|
}}<span class="fs-6">{{ capital.plan.type.currency }}</span>
|
|
142
141
|
</span> -->
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
capital.plan?.type?.name &&
|
|
151
|
-
capital.plan?.type?.name?.toLowerCase() != 'pro'
|
|
142
|
+
@if (!capital.plan?.type?.name) {
|
|
143
|
+
<span class="fs-3"> ... </span>
|
|
144
|
+
}
|
|
145
|
+
</div>
|
|
146
|
+
@if (
|
|
147
|
+
capital.plan?.type?.name &&
|
|
148
|
+
capital.plan?.type?.name?.toLowerCase() != 'pro'
|
|
152
149
|
) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
class="btn btn-outline-warning btn-sm small-text"
|
|
158
|
-
(click)="upgradePlan()"
|
|
150
|
+
<div class="d-flex justify-content-end align-items-center">
|
|
151
|
+
<button
|
|
152
|
+
class="btn btn-outline-warning btn-sm small-text"
|
|
153
|
+
(click)="upgradePlan()"
|
|
159
154
|
>
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
class="btn btn-outline-warning btn-sm small-text"
|
|
173
|
-
(click)="upgradePlan()"
|
|
155
|
+
{{
|
|
156
|
+
'apps.capital.component.dashboard.button.upgrade-plan'
|
|
157
|
+
| xTranslate
|
|
158
|
+
}}
|
|
159
|
+
</button>
|
|
160
|
+
</div>
|
|
161
|
+
}
|
|
162
|
+
@if (!capital.plan?.type?.name) {
|
|
163
|
+
<div class="d-flex justify-content-end align-items-center">
|
|
164
|
+
<button
|
|
165
|
+
class="btn btn-outline-warning btn-sm small-text"
|
|
166
|
+
(click)="upgradePlan()"
|
|
174
167
|
>
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
168
|
+
{{
|
|
169
|
+
'apps.capital.component.dashboard.button.select-plan'
|
|
170
|
+
| xTranslate
|
|
171
|
+
}}
|
|
172
|
+
</button>
|
|
173
|
+
</div>
|
|
174
|
+
}
|
|
175
|
+
</div>
|
|
182
176
|
</div>
|
|
183
|
-
|
|
184
|
-
<!-- <div class="col d-flex flex-column">
|
|
177
|
+
<!-- <div class="col d-flex flex-column">
|
|
185
178
|
<div class="card card-body">
|
|
186
179
|
<div class="d-flex justify-content-between align-items-center">
|
|
187
180
|
<span class="fs-6">{{
|
|
@@ -197,112 +190,109 @@ class DashboardComponent extends BaseDirective {
|
|
|
197
190
|
</div>
|
|
198
191
|
</div>
|
|
199
192
|
</div> -->
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
193
|
+
<div class="col d-flex flex-column">
|
|
194
|
+
<div class="card card-body">
|
|
195
|
+
<div class="d-flex justify-content-between align-items-center">
|
|
196
|
+
<span class="fs-6">
|
|
197
|
+
{{
|
|
198
|
+
'apps.capital.component.dashboard.message.pending'
|
|
199
|
+
| xTranslate
|
|
200
|
+
}}
|
|
201
|
+
</span>
|
|
202
|
+
<span
|
|
203
|
+
class="fs-3"
|
|
204
|
+
[ngClass]="{ 'text-warning': capital.pending.amount }"
|
|
205
|
+
>{{ capital.pending.amount | xMajor | number: '1.2-2'
|
|
206
|
+
}}<span class="fs-6">{{ capital.wallet.currency }}</span>
|
|
207
|
+
</span>
|
|
208
|
+
</div>
|
|
209
|
+
@if (capital.pending.amount > 0) {
|
|
210
|
+
<div class="d-flex justify-content-end align-items-center">
|
|
211
|
+
<button
|
|
212
|
+
class="btn btn-outline-warning btn-sm small-text"
|
|
213
|
+
(click)="payNow(capital.pending.amount)"
|
|
214
|
+
>
|
|
215
|
+
{{
|
|
216
|
+
'apps.capital.component.dashboard.button.pay-now'
|
|
217
|
+
| xTranslate
|
|
218
|
+
}}
|
|
219
|
+
</button>
|
|
220
|
+
</div>
|
|
221
|
+
}
|
|
222
|
+
</div>
|
|
215
223
|
</div>
|
|
216
|
-
|
|
217
|
-
<div
|
|
218
|
-
class="d-flex justify-content-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
224
|
+
<div class="col d-flex flex-column">
|
|
225
|
+
<div class="card card-body">
|
|
226
|
+
<div class="d-flex justify-content-between align-items-center">
|
|
227
|
+
<span class="fs-6">{{
|
|
228
|
+
'apps.capital.component.dashboard.message.amount'
|
|
229
|
+
| xTranslate
|
|
230
|
+
}}</span>
|
|
231
|
+
<span class="fs-3"
|
|
232
|
+
>{{ capital.estimate.amount | xMajor | number: '1.2-2'
|
|
233
|
+
}}<span class="fs-6">{{
|
|
234
|
+
capital.wallet.currency
|
|
235
|
+
}}</span></span
|
|
223
236
|
>
|
|
224
|
-
|
|
225
|
-
'apps.capital.component.dashboard.button.pay-now'
|
|
226
|
-
| xTranslate
|
|
227
|
-
}}
|
|
228
|
-
</button>
|
|
237
|
+
</div>
|
|
229
238
|
</div>
|
|
230
|
-
}
|
|
231
|
-
</div>
|
|
232
|
-
</div>
|
|
233
|
-
<div class="col d-flex flex-column">
|
|
234
|
-
<div class="card card-body">
|
|
235
|
-
<div class="d-flex justify-content-between align-items-center">
|
|
236
|
-
<span class="fs-6">{{
|
|
237
|
-
'apps.capital.component.dashboard.message.cost' | xTranslate
|
|
238
|
-
}}</span>
|
|
239
|
-
<span class="fs-3"
|
|
240
|
-
>{{ capital.estimate.cost | xMajor | number: '1.2-2'
|
|
241
|
-
}}<span class="fs-6">{{
|
|
242
|
-
capital.wallet.currency
|
|
243
|
-
}}</span></span
|
|
244
|
-
>
|
|
245
239
|
</div>
|
|
246
240
|
</div>
|
|
247
241
|
</div>
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
<x-element-loader></x-element-loader>
|
|
252
|
-
}
|
|
242
|
+
} @else {
|
|
243
|
+
<x-element-loader></x-element-loader>
|
|
244
|
+
}
|
|
253
245
|
</ng-template>
|
|
254
|
-
|
|
246
|
+
|
|
255
247
|
<!-- upgrade plan flyout -->
|
|
256
248
|
<ng-template #upgradePlanFlyout>
|
|
257
249
|
<x-webget-flyout [data]="{ title: 'Upgrade Plan' }">
|
|
258
250
|
<x-webget-wizard [data]="wizardData">
|
|
259
251
|
<ng-template [xWizard]="'select-plan'">
|
|
260
252
|
@if (periodData$ | async; as periodData) {
|
|
261
|
-
@if (
|
|
262
|
-
|
|
263
|
-
<div
|
|
264
|
-
class="d-flex flex-column"
|
|
265
|
-
>
|
|
253
|
+
@if (planTypes$ && planTypes$ | async; as planTypes) {
|
|
254
|
+
<div class="d-flex flex-column">
|
|
266
255
|
<div class="d-flex flex-column my-3 align-items-center">
|
|
267
256
|
<p class="text-secondary text-center">
|
|
268
257
|
{{
|
|
269
|
-
|
|
270
|
-
|
|
258
|
+
'apps.capital.component.dashboard.message.select-plan'
|
|
259
|
+
| xTranslate
|
|
271
260
|
}}
|
|
272
261
|
</p>
|
|
273
262
|
</div>
|
|
274
|
-
<div
|
|
263
|
+
<div
|
|
264
|
+
class="d-flex justify-content-end align-items-center my-3"
|
|
265
|
+
>
|
|
275
266
|
<x-picker
|
|
276
267
|
[data]="periodData"
|
|
277
268
|
(select)="onPeriodSelect($event)"
|
|
278
269
|
></x-picker>
|
|
279
270
|
</div>
|
|
280
271
|
@if (planTypes.length) {
|
|
281
|
-
<div
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
>
|
|
272
|
+
<div class="accordion" id="plan-accordion">
|
|
273
|
+
@for (
|
|
274
|
+
planType of planTypes;
|
|
275
|
+
track planType;
|
|
276
|
+
let i = $index
|
|
277
|
+
) {
|
|
278
|
+
<div class="accordion-item w-100">
|
|
289
279
|
@if (planType.id != currentPlan?.type?.id) {
|
|
290
|
-
<div
|
|
291
|
-
class="accordion-header"
|
|
292
|
-
>
|
|
280
|
+
<div class="accordion-header">
|
|
293
281
|
<button
|
|
294
282
|
class="accordion-button d-flex justify-content-between align-items-center"
|
|
295
|
-
[ngClass]="{
|
|
283
|
+
[ngClass]="{
|
|
284
|
+
collapsed: planType.type !== 'popular',
|
|
285
|
+
}"
|
|
296
286
|
type="button"
|
|
297
287
|
data-bs-toggle="collapse"
|
|
298
288
|
[attr.data-bs-target]="'#collapse' + i"
|
|
299
|
-
|
|
289
|
+
>
|
|
300
290
|
<div class="col-8">
|
|
301
|
-
<div class="h3">
|
|
291
|
+
<div class="h3">
|
|
292
|
+
{{ planType.name | titlecase }}
|
|
293
|
+
</div>
|
|
302
294
|
@if (planType.desc) {
|
|
303
|
-
<div
|
|
304
|
-
class="h6 text-body-secondary"
|
|
305
|
-
>
|
|
295
|
+
<div class="h6 text-body-secondary">
|
|
306
296
|
{{ planType.desc }}
|
|
307
297
|
</div>
|
|
308
298
|
}
|
|
@@ -311,9 +301,9 @@ class DashboardComponent extends BaseDirective {
|
|
|
311
301
|
<div class="fw-bolder fst-italic h3">
|
|
312
302
|
{{ planType.currency ?? '...' }}
|
|
313
303
|
{{
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
304
|
+
(planType[periodType]
|
|
305
|
+
| xMajor
|
|
306
|
+
| number: '1.2-2') ?? '...'
|
|
317
307
|
}}
|
|
318
308
|
</div>
|
|
319
309
|
</div>
|
|
@@ -325,27 +315,24 @@ class DashboardComponent extends BaseDirective {
|
|
|
325
315
|
class="accordion-collapse collapse"
|
|
326
316
|
[ngClass]="{ show: planType.type == 'popular' }"
|
|
327
317
|
data-bs-parent="#plan-accordion"
|
|
328
|
-
|
|
318
|
+
>
|
|
329
319
|
<div class="accordion-body">
|
|
330
320
|
<div
|
|
331
321
|
class="d-flex justify-content-start align-items-center"
|
|
332
|
-
|
|
322
|
+
>
|
|
333
323
|
@if (planType.detail) {
|
|
334
|
-
<p
|
|
335
|
-
class="text-body-secondary"
|
|
336
|
-
>
|
|
324
|
+
<p class="text-body-secondary">
|
|
337
325
|
{{ planType.detail }}
|
|
338
326
|
</p>
|
|
339
327
|
}
|
|
340
328
|
</div>
|
|
341
329
|
@if (planType?.meta?.features?.length) {
|
|
342
|
-
<ul
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
>
|
|
330
|
+
<ul class="list-group list-group-flush">
|
|
331
|
+
@for (
|
|
332
|
+
feature of planType?.meta?.features;
|
|
333
|
+
track feature
|
|
334
|
+
) {
|
|
335
|
+
<li class="list-group-item">
|
|
349
336
|
{{ feature }}
|
|
350
337
|
</li>
|
|
351
338
|
}
|
|
@@ -353,11 +340,11 @@ class DashboardComponent extends BaseDirective {
|
|
|
353
340
|
}
|
|
354
341
|
<div
|
|
355
342
|
class="d-flex justify-content-end align-items-center my-3"
|
|
356
|
-
|
|
343
|
+
>
|
|
357
344
|
<button
|
|
358
345
|
class="btn btn-primary"
|
|
359
346
|
(click)="selectPlanType(planType)"
|
|
360
|
-
|
|
347
|
+
>
|
|
361
348
|
Choose {{ planType.name }}
|
|
362
349
|
<i class="fa-solid fa-arrow-right-long"></i>
|
|
363
350
|
</button>
|
|
@@ -372,11 +359,11 @@ class DashboardComponent extends BaseDirective {
|
|
|
372
359
|
}
|
|
373
360
|
<div
|
|
374
361
|
class="d-flex justify-content-center align-items-center my-3"
|
|
375
|
-
|
|
362
|
+
>
|
|
376
363
|
<p class="text-center mb-1">
|
|
377
364
|
{{
|
|
378
|
-
|
|
379
|
-
|
|
365
|
+
'apps.capital.component.dashboard.message.terms'
|
|
366
|
+
| xTranslate
|
|
380
367
|
}}
|
|
381
368
|
</p>
|
|
382
369
|
</div>
|
|
@@ -397,7 +384,7 @@ class DashboardComponent extends BaseDirective {
|
|
|
397
384
|
</x-webget-wizard>
|
|
398
385
|
</x-webget-flyout>
|
|
399
386
|
</ng-template>
|
|
400
|
-
|
|
387
|
+
|
|
401
388
|
<!-- pay now flyout -->
|
|
402
389
|
<ng-template #payNowFlyout>
|
|
403
390
|
<x-webget-flyout [data]="{ title: 'Pay Now' }">
|
|
@@ -407,21 +394,21 @@ class DashboardComponent extends BaseDirective {
|
|
|
407
394
|
}
|
|
408
395
|
</x-webget-flyout>
|
|
409
396
|
</ng-template>
|
|
410
|
-
|
|
397
|
+
|
|
411
398
|
<!-- upgrade payment flyout -->
|
|
412
399
|
<ng-template #makePaymentTemplate>
|
|
413
400
|
<x-common-payment [data]="paymentData"></x-common-payment>
|
|
414
401
|
</ng-template>
|
|
415
|
-
|
|
402
|
+
|
|
416
403
|
<!-- misc -->
|
|
417
404
|
<ng-template #loader>
|
|
418
405
|
<x-element-loader></x-element-loader>
|
|
419
406
|
</ng-template>
|
|
420
|
-
|
|
407
|
+
|
|
421
408
|
<ng-template #empty>
|
|
422
409
|
<x-element-blank></x-element-blank>
|
|
423
410
|
</ng-template>
|
|
424
|
-
|
|
411
|
+
`, isInline: true, styles: [".small-text{font-size:.7rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.FlyoutComponent, selector: "x-webget-flyout", inputs: ["data"] }, { kind: "component", type: i2.WizardComponent, selector: "x-webget-wizard", inputs: ["data"] }, { kind: "directive", type: i2.WizardDirective, selector: "ng-template[xWizard]", inputs: ["xWizard"] }, { kind: "component", type: i2.BlankComponent, selector: "x-element-blank", inputs: ["image", "icon", "type"] }, { kind: "component", type: i2.LoaderComponent, selector: "x-element-loader", inputs: ["data"] }, { kind: "component", type: i2.PickerComponent, selector: "x-picker", inputs: ["data"], outputs: ["select"] }, { kind: "component", type: i1$1.PaymentComponent, selector: "x-common-payment", inputs: ["data"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i3.TranslatePipe, name: "xTranslate" }, { kind: "pipe", type: i3.MajorPipe, name: "xMajor" }] }); }
|
|
425
412
|
}
|
|
426
413
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
427
414
|
type: Component,
|
|
@@ -429,7 +416,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
429
416
|
<ng-template #beforeMetricsTemplate>
|
|
430
417
|
<!-- verify payment -->
|
|
431
418
|
<x-common-payment [data]="verifyPaymentData"></x-common-payment>
|
|
432
|
-
|
|
419
|
+
|
|
433
420
|
@if (capital$ | async; as capital) {
|
|
434
421
|
<div class="">
|
|
435
422
|
<div class="row gx-5 d-flex flex-wrap">
|
|
@@ -438,13 +425,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
438
425
|
<div class="d-flex justify-content-between align-items-center">
|
|
439
426
|
<span class="fs-6">
|
|
440
427
|
{{
|
|
441
|
-
|
|
428
|
+
'apps.capital.component.dashboard.message.plan'
|
|
429
|
+
| xTranslate
|
|
442
430
|
}}
|
|
443
431
|
</span>
|
|
444
432
|
@if (capital.plan?.type?.name) {
|
|
445
|
-
<span class="fs-3"
|
|
446
|
-
>{{ capital.plan?.type?.name }}
|
|
447
|
-
</span>
|
|
433
|
+
<span class="fs-3">{{ capital.plan?.type?.name }} </span>
|
|
448
434
|
}
|
|
449
435
|
<!-- <span *ngIf="capital.plan?.type?.name" class="fs-3"
|
|
450
436
|
>{{
|
|
@@ -452,48 +438,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
452
438
|
| xMajor | number: '1.2-2'
|
|
453
439
|
}}<span class="fs-6">{{ capital.plan.type.currency }}</span>
|
|
454
440
|
</span> -->
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
capital.plan?.type?.name &&
|
|
463
|
-
capital.plan?.type?.name?.toLowerCase() != 'pro'
|
|
441
|
+
@if (!capital.plan?.type?.name) {
|
|
442
|
+
<span class="fs-3"> ... </span>
|
|
443
|
+
}
|
|
444
|
+
</div>
|
|
445
|
+
@if (
|
|
446
|
+
capital.plan?.type?.name &&
|
|
447
|
+
capital.plan?.type?.name?.toLowerCase() != 'pro'
|
|
464
448
|
) {
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
class="btn btn-outline-warning btn-sm small-text"
|
|
470
|
-
(click)="upgradePlan()"
|
|
449
|
+
<div class="d-flex justify-content-end align-items-center">
|
|
450
|
+
<button
|
|
451
|
+
class="btn btn-outline-warning btn-sm small-text"
|
|
452
|
+
(click)="upgradePlan()"
|
|
471
453
|
>
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
class="btn btn-outline-warning btn-sm small-text"
|
|
485
|
-
(click)="upgradePlan()"
|
|
454
|
+
{{
|
|
455
|
+
'apps.capital.component.dashboard.button.upgrade-plan'
|
|
456
|
+
| xTranslate
|
|
457
|
+
}}
|
|
458
|
+
</button>
|
|
459
|
+
</div>
|
|
460
|
+
}
|
|
461
|
+
@if (!capital.plan?.type?.name) {
|
|
462
|
+
<div class="d-flex justify-content-end align-items-center">
|
|
463
|
+
<button
|
|
464
|
+
class="btn btn-outline-warning btn-sm small-text"
|
|
465
|
+
(click)="upgradePlan()"
|
|
486
466
|
>
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
467
|
+
{{
|
|
468
|
+
'apps.capital.component.dashboard.button.select-plan'
|
|
469
|
+
| xTranslate
|
|
470
|
+
}}
|
|
471
|
+
</button>
|
|
472
|
+
</div>
|
|
473
|
+
}
|
|
474
|
+
</div>
|
|
494
475
|
</div>
|
|
495
|
-
|
|
496
|
-
<!-- <div class="col d-flex flex-column">
|
|
476
|
+
<!-- <div class="col d-flex flex-column">
|
|
497
477
|
<div class="card card-body">
|
|
498
478
|
<div class="d-flex justify-content-between align-items-center">
|
|
499
479
|
<span class="fs-6">{{
|
|
@@ -509,112 +489,109 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
509
489
|
</div>
|
|
510
490
|
</div>
|
|
511
491
|
</div> -->
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
492
|
+
<div class="col d-flex flex-column">
|
|
493
|
+
<div class="card card-body">
|
|
494
|
+
<div class="d-flex justify-content-between align-items-center">
|
|
495
|
+
<span class="fs-6">
|
|
496
|
+
{{
|
|
497
|
+
'apps.capital.component.dashboard.message.pending'
|
|
498
|
+
| xTranslate
|
|
499
|
+
}}
|
|
500
|
+
</span>
|
|
501
|
+
<span
|
|
502
|
+
class="fs-3"
|
|
503
|
+
[ngClass]="{ 'text-warning': capital.pending.amount }"
|
|
504
|
+
>{{ capital.pending.amount | xMajor | number: '1.2-2'
|
|
505
|
+
}}<span class="fs-6">{{ capital.wallet.currency }}</span>
|
|
506
|
+
</span>
|
|
507
|
+
</div>
|
|
508
|
+
@if (capital.pending.amount > 0) {
|
|
509
|
+
<div class="d-flex justify-content-end align-items-center">
|
|
510
|
+
<button
|
|
511
|
+
class="btn btn-outline-warning btn-sm small-text"
|
|
512
|
+
(click)="payNow(capital.pending.amount)"
|
|
513
|
+
>
|
|
514
|
+
{{
|
|
515
|
+
'apps.capital.component.dashboard.button.pay-now'
|
|
516
|
+
| xTranslate
|
|
517
|
+
}}
|
|
518
|
+
</button>
|
|
519
|
+
</div>
|
|
520
|
+
}
|
|
521
|
+
</div>
|
|
527
522
|
</div>
|
|
528
|
-
|
|
529
|
-
<div
|
|
530
|
-
class="d-flex justify-content-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
523
|
+
<div class="col d-flex flex-column">
|
|
524
|
+
<div class="card card-body">
|
|
525
|
+
<div class="d-flex justify-content-between align-items-center">
|
|
526
|
+
<span class="fs-6">{{
|
|
527
|
+
'apps.capital.component.dashboard.message.amount'
|
|
528
|
+
| xTranslate
|
|
529
|
+
}}</span>
|
|
530
|
+
<span class="fs-3"
|
|
531
|
+
>{{ capital.estimate.amount | xMajor | number: '1.2-2'
|
|
532
|
+
}}<span class="fs-6">{{
|
|
533
|
+
capital.wallet.currency
|
|
534
|
+
}}</span></span
|
|
535
535
|
>
|
|
536
|
-
|
|
537
|
-
'apps.capital.component.dashboard.button.pay-now'
|
|
538
|
-
| xTranslate
|
|
539
|
-
}}
|
|
540
|
-
</button>
|
|
536
|
+
</div>
|
|
541
537
|
</div>
|
|
542
|
-
}
|
|
543
|
-
</div>
|
|
544
|
-
</div>
|
|
545
|
-
<div class="col d-flex flex-column">
|
|
546
|
-
<div class="card card-body">
|
|
547
|
-
<div class="d-flex justify-content-between align-items-center">
|
|
548
|
-
<span class="fs-6">{{
|
|
549
|
-
'apps.capital.component.dashboard.message.cost' | xTranslate
|
|
550
|
-
}}</span>
|
|
551
|
-
<span class="fs-3"
|
|
552
|
-
>{{ capital.estimate.cost | xMajor | number: '1.2-2'
|
|
553
|
-
}}<span class="fs-6">{{
|
|
554
|
-
capital.wallet.currency
|
|
555
|
-
}}</span></span
|
|
556
|
-
>
|
|
557
538
|
</div>
|
|
558
539
|
</div>
|
|
559
540
|
</div>
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
<x-element-loader></x-element-loader>
|
|
564
|
-
}
|
|
541
|
+
} @else {
|
|
542
|
+
<x-element-loader></x-element-loader>
|
|
543
|
+
}
|
|
565
544
|
</ng-template>
|
|
566
|
-
|
|
545
|
+
|
|
567
546
|
<!-- upgrade plan flyout -->
|
|
568
547
|
<ng-template #upgradePlanFlyout>
|
|
569
548
|
<x-webget-flyout [data]="{ title: 'Upgrade Plan' }">
|
|
570
549
|
<x-webget-wizard [data]="wizardData">
|
|
571
550
|
<ng-template [xWizard]="'select-plan'">
|
|
572
551
|
@if (periodData$ | async; as periodData) {
|
|
573
|
-
@if (
|
|
574
|
-
|
|
575
|
-
<div
|
|
576
|
-
class="d-flex flex-column"
|
|
577
|
-
>
|
|
552
|
+
@if (planTypes$ && planTypes$ | async; as planTypes) {
|
|
553
|
+
<div class="d-flex flex-column">
|
|
578
554
|
<div class="d-flex flex-column my-3 align-items-center">
|
|
579
555
|
<p class="text-secondary text-center">
|
|
580
556
|
{{
|
|
581
|
-
|
|
582
|
-
|
|
557
|
+
'apps.capital.component.dashboard.message.select-plan'
|
|
558
|
+
| xTranslate
|
|
583
559
|
}}
|
|
584
560
|
</p>
|
|
585
561
|
</div>
|
|
586
|
-
<div
|
|
562
|
+
<div
|
|
563
|
+
class="d-flex justify-content-end align-items-center my-3"
|
|
564
|
+
>
|
|
587
565
|
<x-picker
|
|
588
566
|
[data]="periodData"
|
|
589
567
|
(select)="onPeriodSelect($event)"
|
|
590
568
|
></x-picker>
|
|
591
569
|
</div>
|
|
592
570
|
@if (planTypes.length) {
|
|
593
|
-
<div
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
>
|
|
571
|
+
<div class="accordion" id="plan-accordion">
|
|
572
|
+
@for (
|
|
573
|
+
planType of planTypes;
|
|
574
|
+
track planType;
|
|
575
|
+
let i = $index
|
|
576
|
+
) {
|
|
577
|
+
<div class="accordion-item w-100">
|
|
601
578
|
@if (planType.id != currentPlan?.type?.id) {
|
|
602
|
-
<div
|
|
603
|
-
class="accordion-header"
|
|
604
|
-
>
|
|
579
|
+
<div class="accordion-header">
|
|
605
580
|
<button
|
|
606
581
|
class="accordion-button d-flex justify-content-between align-items-center"
|
|
607
|
-
[ngClass]="{
|
|
582
|
+
[ngClass]="{
|
|
583
|
+
collapsed: planType.type !== 'popular',
|
|
584
|
+
}"
|
|
608
585
|
type="button"
|
|
609
586
|
data-bs-toggle="collapse"
|
|
610
587
|
[attr.data-bs-target]="'#collapse' + i"
|
|
611
|
-
|
|
588
|
+
>
|
|
612
589
|
<div class="col-8">
|
|
613
|
-
<div class="h3">
|
|
590
|
+
<div class="h3">
|
|
591
|
+
{{ planType.name | titlecase }}
|
|
592
|
+
</div>
|
|
614
593
|
@if (planType.desc) {
|
|
615
|
-
<div
|
|
616
|
-
class="h6 text-body-secondary"
|
|
617
|
-
>
|
|
594
|
+
<div class="h6 text-body-secondary">
|
|
618
595
|
{{ planType.desc }}
|
|
619
596
|
</div>
|
|
620
597
|
}
|
|
@@ -623,9 +600,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
623
600
|
<div class="fw-bolder fst-italic h3">
|
|
624
601
|
{{ planType.currency ?? '...' }}
|
|
625
602
|
{{
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
603
|
+
(planType[periodType]
|
|
604
|
+
| xMajor
|
|
605
|
+
| number: '1.2-2') ?? '...'
|
|
629
606
|
}}
|
|
630
607
|
</div>
|
|
631
608
|
</div>
|
|
@@ -637,27 +614,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
637
614
|
class="accordion-collapse collapse"
|
|
638
615
|
[ngClass]="{ show: planType.type == 'popular' }"
|
|
639
616
|
data-bs-parent="#plan-accordion"
|
|
640
|
-
|
|
617
|
+
>
|
|
641
618
|
<div class="accordion-body">
|
|
642
619
|
<div
|
|
643
620
|
class="d-flex justify-content-start align-items-center"
|
|
644
|
-
|
|
621
|
+
>
|
|
645
622
|
@if (planType.detail) {
|
|
646
|
-
<p
|
|
647
|
-
class="text-body-secondary"
|
|
648
|
-
>
|
|
623
|
+
<p class="text-body-secondary">
|
|
649
624
|
{{ planType.detail }}
|
|
650
625
|
</p>
|
|
651
626
|
}
|
|
652
627
|
</div>
|
|
653
628
|
@if (planType?.meta?.features?.length) {
|
|
654
|
-
<ul
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
>
|
|
629
|
+
<ul class="list-group list-group-flush">
|
|
630
|
+
@for (
|
|
631
|
+
feature of planType?.meta?.features;
|
|
632
|
+
track feature
|
|
633
|
+
) {
|
|
634
|
+
<li class="list-group-item">
|
|
661
635
|
{{ feature }}
|
|
662
636
|
</li>
|
|
663
637
|
}
|
|
@@ -665,11 +639,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
665
639
|
}
|
|
666
640
|
<div
|
|
667
641
|
class="d-flex justify-content-end align-items-center my-3"
|
|
668
|
-
|
|
642
|
+
>
|
|
669
643
|
<button
|
|
670
644
|
class="btn btn-primary"
|
|
671
645
|
(click)="selectPlanType(planType)"
|
|
672
|
-
|
|
646
|
+
>
|
|
673
647
|
Choose {{ planType.name }}
|
|
674
648
|
<i class="fa-solid fa-arrow-right-long"></i>
|
|
675
649
|
</button>
|
|
@@ -684,11 +658,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
684
658
|
}
|
|
685
659
|
<div
|
|
686
660
|
class="d-flex justify-content-center align-items-center my-3"
|
|
687
|
-
|
|
661
|
+
>
|
|
688
662
|
<p class="text-center mb-1">
|
|
689
663
|
{{
|
|
690
|
-
|
|
691
|
-
|
|
664
|
+
'apps.capital.component.dashboard.message.terms'
|
|
665
|
+
| xTranslate
|
|
692
666
|
}}
|
|
693
667
|
</p>
|
|
694
668
|
</div>
|
|
@@ -709,7 +683,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
709
683
|
</x-webget-wizard>
|
|
710
684
|
</x-webget-flyout>
|
|
711
685
|
</ng-template>
|
|
712
|
-
|
|
686
|
+
|
|
713
687
|
<!-- pay now flyout -->
|
|
714
688
|
<ng-template #payNowFlyout>
|
|
715
689
|
<x-webget-flyout [data]="{ title: 'Pay Now' }">
|
|
@@ -719,21 +693,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
719
693
|
}
|
|
720
694
|
</x-webget-flyout>
|
|
721
695
|
</ng-template>
|
|
722
|
-
|
|
696
|
+
|
|
723
697
|
<!-- upgrade payment flyout -->
|
|
724
698
|
<ng-template #makePaymentTemplate>
|
|
725
699
|
<x-common-payment [data]="paymentData"></x-common-payment>
|
|
726
700
|
</ng-template>
|
|
727
|
-
|
|
701
|
+
|
|
728
702
|
<!-- misc -->
|
|
729
703
|
<ng-template #loader>
|
|
730
704
|
<x-element-loader></x-element-loader>
|
|
731
705
|
</ng-template>
|
|
732
|
-
|
|
706
|
+
|
|
733
707
|
<ng-template #empty>
|
|
734
708
|
<x-element-blank></x-element-blank>
|
|
735
709
|
</ng-template>
|
|
736
|
-
|
|
710
|
+
`, styles: [".small-text{font-size:.7rem!important}\n"] }]
|
|
737
711
|
}], propDecorators: { beforeMetricsTemplate: [{
|
|
738
712
|
type: ViewChild,
|
|
739
713
|
args: ['beforeMetricsTemplate', {
|
|
@@ -785,4 +759,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
785
759
|
}] });
|
|
786
760
|
|
|
787
761
|
export { DashboardModule };
|
|
788
|
-
//# sourceMappingURL=thescaffold-ngx-apps-capital-dashboard.module-
|
|
762
|
+
//# sourceMappingURL=thescaffold-ngx-apps-capital-dashboard.module-fLYoq8nC.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thescaffold-ngx-apps-capital-dashboard.module-fLYoq8nC.mjs","sources":["../../../projects/capital/src/lib/pages/dashboard/dashboard.component.ts","../../../projects/capital/src/lib/pages/dashboard/dashboard.module.ts"],"sourcesContent":["import { Component, inject, TemplateRef, ViewChild } from '@angular/core';\nimport {\n DefaultPeriodType,\n PaymentContract,\n PeriodService,\n} from '@thescaffold/ngx-common';\nimport {\n BaseDirective,\n ControlService,\n getEnv,\n navigateExternal,\n using,\n} from '@thescaffold/ngx-core';\nimport {\n FlyoutService,\n PickerItemContract,\n WizardContract,\n WizardService,\n} from '@thescaffold/ngx-ui';\nimport { forkJoin, map, Observable, of, switchMap, takeUntil } from 'rxjs';\n\n@Component({\n standalone: false,\n selector: 'app-dashboard',\n template: `\n <ng-template #beforeMetricsTemplate>\n <!-- verify payment -->\n <x-common-payment [data]=\"verifyPaymentData\"></x-common-payment>\n\n @if (capital$ | async; as capital) {\n <div class=\"\">\n <div class=\"row gx-5 d-flex flex-wrap\">\n <div class=\"col d-flex flex-column\">\n <div class=\"card card-body\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <span class=\"fs-6\">\n {{\n 'apps.capital.component.dashboard.message.plan'\n | xTranslate\n }}\n </span>\n @if (capital.plan?.type?.name) {\n <span class=\"fs-3\">{{ capital.plan?.type?.name }} </span>\n }\n <!-- <span *ngIf=\"capital.plan?.type?.name\" class=\"fs-3\"\n >{{\n capital.plan.type[capital.plan.periodType]\n | xMajor | number: '1.2-2'\n }}<span class=\"fs-6\">{{ capital.plan.type.currency }}</span>\n </span> -->\n @if (!capital.plan?.type?.name) {\n <span class=\"fs-3\"> ... </span>\n }\n </div>\n @if (\n capital.plan?.type?.name &&\n capital.plan?.type?.name?.toLowerCase() != 'pro'\n ) {\n <div class=\"d-flex justify-content-end align-items-center\">\n <button\n class=\"btn btn-outline-warning btn-sm small-text\"\n (click)=\"upgradePlan()\"\n >\n {{\n 'apps.capital.component.dashboard.button.upgrade-plan'\n | xTranslate\n }}\n </button>\n </div>\n }\n @if (!capital.plan?.type?.name) {\n <div class=\"d-flex justify-content-end align-items-center\">\n <button\n class=\"btn btn-outline-warning btn-sm small-text\"\n (click)=\"upgradePlan()\"\n >\n {{\n 'apps.capital.component.dashboard.button.select-plan'\n | xTranslate\n }}\n </button>\n </div>\n }\n </div>\n </div>\n <!-- <div class=\"col d-flex flex-column\">\n <div class=\"card card-body\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <span class=\"fs-6\">{{\n 'apps.capital.component.dashboard.message.balance'\n | xTranslate\n }}</span>\n <span class=\"fs-3\"\n >{{ capital.wallet.availableBalance | xMajor | number: '1.2-2'\n }}<span class=\"fs-6\">{{\n capital.wallet.currency\n }}</span></span\n >\n </div>\n </div>\n </div> -->\n <div class=\"col d-flex flex-column\">\n <div class=\"card card-body\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <span class=\"fs-6\">\n {{\n 'apps.capital.component.dashboard.message.pending'\n | xTranslate\n }}\n </span>\n <span\n class=\"fs-3\"\n [ngClass]=\"{ 'text-warning': capital.pending.amount }\"\n >{{ capital.pending.amount | xMajor | number: '1.2-2'\n }}<span class=\"fs-6\">{{ capital.wallet.currency }}</span>\n </span>\n </div>\n @if (capital.pending.amount > 0) {\n <div class=\"d-flex justify-content-end align-items-center\">\n <button\n class=\"btn btn-outline-warning btn-sm small-text\"\n (click)=\"payNow(capital.pending.amount)\"\n >\n {{\n 'apps.capital.component.dashboard.button.pay-now'\n | xTranslate\n }}\n </button>\n </div>\n }\n </div>\n </div>\n <div class=\"col d-flex flex-column\">\n <div class=\"card card-body\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <span class=\"fs-6\">{{\n 'apps.capital.component.dashboard.message.amount'\n | xTranslate\n }}</span>\n <span class=\"fs-3\"\n >{{ capital.estimate.amount | xMajor | number: '1.2-2'\n }}<span class=\"fs-6\">{{\n capital.wallet.currency\n }}</span></span\n >\n </div>\n </div>\n </div>\n </div>\n </div>\n } @else {\n <x-element-loader></x-element-loader>\n }\n </ng-template>\n\n <!-- upgrade plan flyout -->\n <ng-template #upgradePlanFlyout>\n <x-webget-flyout [data]=\"{ title: 'Upgrade Plan' }\">\n <x-webget-wizard [data]=\"wizardData\">\n <ng-template [xWizard]=\"'select-plan'\">\n @if (periodData$ | async; as periodData) {\n @if (planTypes$ && planTypes$ | async; as planTypes) {\n <div class=\"d-flex flex-column\">\n <div class=\"d-flex flex-column my-3 align-items-center\">\n <p class=\"text-secondary text-center\">\n {{\n 'apps.capital.component.dashboard.message.select-plan'\n | xTranslate\n }}\n </p>\n </div>\n <div\n class=\"d-flex justify-content-end align-items-center my-3\"\n >\n <x-picker\n [data]=\"periodData\"\n (select)=\"onPeriodSelect($event)\"\n ></x-picker>\n </div>\n @if (planTypes.length) {\n <div class=\"accordion\" id=\"plan-accordion\">\n @for (\n planType of planTypes;\n track planType;\n let i = $index\n ) {\n <div class=\"accordion-item w-100\">\n @if (planType.id != currentPlan?.type?.id) {\n <div class=\"accordion-header\">\n <button\n class=\"accordion-button d-flex justify-content-between align-items-center\"\n [ngClass]=\"{\n collapsed: planType.type !== 'popular',\n }\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [attr.data-bs-target]=\"'#collapse' + i\"\n >\n <div class=\"col-8\">\n <div class=\"h3\">\n {{ planType.name | titlecase }}\n </div>\n @if (planType.desc) {\n <div class=\"h6 text-body-secondary\">\n {{ planType.desc }}\n </div>\n }\n </div>\n <div class=\"col-3\">\n <div class=\"fw-bolder fst-italic h3\">\n {{ planType.currency ?? '...' }}\n {{\n (planType[periodType]\n | xMajor\n | number: '1.2-2') ?? '...'\n }}\n </div>\n </div>\n </button>\n </div>\n }\n <div\n [attr.id]=\"'collapse' + i\"\n class=\"accordion-collapse collapse\"\n [ngClass]=\"{ show: planType.type == 'popular' }\"\n data-bs-parent=\"#plan-accordion\"\n >\n <div class=\"accordion-body\">\n <div\n class=\"d-flex justify-content-start align-items-center\"\n >\n @if (planType.detail) {\n <p class=\"text-body-secondary\">\n {{ planType.detail }}\n </p>\n }\n </div>\n @if (planType?.meta?.features?.length) {\n <ul class=\"list-group list-group-flush\">\n @for (\n feature of planType?.meta?.features;\n track feature\n ) {\n <li class=\"list-group-item\">\n {{ feature }}\n </li>\n }\n </ul>\n }\n <div\n class=\"d-flex justify-content-end align-items-center my-3\"\n >\n <button\n class=\"btn btn-primary\"\n (click)=\"selectPlanType(planType)\"\n >\n Choose {{ planType.name }}\n <i class=\"fa-solid fa-arrow-right-long\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n } @else {\n <x-element-blank></x-element-blank>\n }\n <div\n class=\"d-flex justify-content-center align-items-center my-3\"\n >\n <p class=\"text-center mb-1\">\n {{\n 'apps.capital.component.dashboard.message.terms'\n | xTranslate\n }}\n </p>\n </div>\n </div>\n } @else {\n <x-element-loader></x-element-loader>\n }\n } @else {\n <x-element-loader></x-element-loader>\n }\n </ng-template>\n <ng-template [xWizard]=\"'make-payment'\">\n @if (false) {\n } @else {\n <x-common-payment [data]=\"paymentData\"></x-common-payment>\n }\n </ng-template>\n </x-webget-wizard>\n </x-webget-flyout>\n </ng-template>\n\n <!-- pay now flyout -->\n <ng-template #payNowFlyout>\n <x-webget-flyout [data]=\"{ title: 'Pay Now' }\">\n @if (false) {\n } @else {\n <x-common-payment [data]=\"paymentData\"></x-common-payment>\n }\n </x-webget-flyout>\n </ng-template>\n\n <!-- upgrade payment flyout -->\n <ng-template #makePaymentTemplate>\n <x-common-payment [data]=\"paymentData\"></x-common-payment>\n </ng-template>\n\n <!-- misc -->\n <ng-template #loader>\n <x-element-loader></x-element-loader>\n </ng-template>\n\n <ng-template #empty>\n <x-element-blank></x-element-blank>\n </ng-template>\n `,\n styles: [\n `\n .small-text {\n font-size: 0.7rem !important;\n }\n `,\n ],\n})\nexport class DashboardComponent extends BaseDirective {\n private readonly flyoutService = inject(FlyoutService);\n private readonly controlService = inject(ControlService);\n private readonly wizardService = inject(WizardService);\n private readonly periodService = inject(PeriodService);\n\n paymentMeta$ = () =>\n of({\n type: this.actionType,\n planTypeId: this.selectedPlanTypeId,\n periodType: this.periodType,\n });\n\n get paymentData(): PaymentContract {\n const amount = (\n this.actionType == 'apps.capital.dashboard.upgrade-plan'\n ? this.upgradePlanAmount\n : this.actionType == 'apps.capital.dashboard.pay-debt'\n ? this.payNowAmount\n : 0\n )!;\n return {\n mode: 'pay',\n appName: getEnv('APP_NAME'),\n amount: amount == 0 ? -1 : amount,\n hooks: {\n meta: () => this.paymentMeta$(),\n },\n options: ['card', 'provider', 'wallet'],\n redirect: (\n provider: string,\n amount: number,\n reference: string,\n currency: string,\n ) => {\n navigateExternal(\n `${getEnv('BASE_URL')}${this.router.url}?type=${provider}&reference=${reference}`,\n );\n },\n };\n }\n\n verifyPaymentData: PaymentContract = {\n mode: 'verify',\n appName: getEnv('APP_NAME'),\n amount: 0.0,\n hooks: {},\n options: [],\n };\n\n wizardData: WizardContract = {\n name: 'upgrade-plan',\n showProgress: true,\n showNav: false,\n };\n context = this.controlService.getContext();\n selectedPlanTypeId?: string;\n\n @ViewChild('beforeMetricsTemplate', {\n read: TemplateRef,\n static: true,\n })\n beforeMetricsTemplate!: TemplateRef<any>;\n\n @ViewChild('upgradePlanFlyout', { read: TemplateRef, static: true })\n upgradePlanFlyout!: TemplateRef<any>;\n\n @ViewChild('payNowFlyout', { read: TemplateRef, static: true })\n payNowFlyout!: TemplateRef<any>;\n\n planTypes$ = this.apiService\n .on('apps/capital/plan-type')\n .getMany({\n page: 1,\n perPage: 12,\n clientId: this.context?.clientId,\n currency: getEnv('X_PREFERENCE_CURRENCY'),\n })\n .pipe(\n takeUntil(this.$),\n map(({ data }) => data),\n );\n\n currentPlan: any = null;\n capital$: Observable<{\n plan: any;\n wallet: any;\n pending: any;\n estimate: any;\n }> = this.apiService.post('apps/capital/wallet/init').pipe(\n takeUntil(this.$),\n switchMap((wallet) =>\n forkJoin([\n this.apiService.get('apps/capital/user-plan'),\n of(wallet),\n this.apiService.get('apps/capital/debt'),\n this.apiService.get('apps/capital/accrual'),\n ]),\n ),\n map(([plan, wallet, pending, estimate]) => {\n this.currentPlan = plan?.data;\n return {\n plan: plan?.data,\n wallet: wallet?.data,\n pending: pending?.data,\n estimate: estimate?.data,\n };\n }),\n );\n\n private actionType?:\n | 'apps.capital.dashboard.upgrade-plan'\n | 'apps.capital.dashboard.pay-debt';\n\n upgradePlanAmount?: number;\n payNowAmount?: number;\n\n periodType = DefaultPeriodType;\n\n periodData$ = this.periodService.list().pipe(\n map((list) => ({\n default: list.find((item) => item.value == DefaultPeriodType)!,\n list,\n size: 'btn-lg',\n showSearch: false,\n })),\n );\n\n onPeriodSelect({ value }: PickerItemContract) {\n this.periodType = value;\n }\n\n upgradePlan() {\n this.actionType = 'apps.capital.dashboard.upgrade-plan';\n this.flyoutService.open(this.upgradePlanFlyout);\n }\n\n payNow(payNowAmount: number) {\n this.actionType = 'apps.capital.dashboard.pay-debt';\n this.payNowAmount = payNowAmount;\n this.flyoutService.open(this.payNowFlyout);\n }\n\n selectPlanType(planType: any) {\n this.selectedPlanTypeId = planType.id;\n this.apiService\n .post('apps/capital/user-plan/compute-upgrade', {\n planTypeId: planType.id,\n periodType: this.periodType,\n })\n .pipe(takeUntil(this.$))\n .subscribe(\n using(({ data }: any) => {\n this.upgradePlanAmount = data.diff;\n this.wizardService.goto(this.wizardData.name, 'make-payment');\n }),\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { PaymentModule } from '@thescaffold/ngx-common';\nimport { PipesModule, SharedModule } from '@thescaffold/ngx-core';\nimport {\n ElementsModule,\n DashboardModule as InnerDashboardModule,\n WebgetsModule,\n} from '@thescaffold/ngx-ui';\nimport { CardProvider } from '../card/card.provider';\nimport { PaymentProvider } from '../payment/payment.provider';\nimport { DashboardComponent } from './dashboard.component';\n\n@NgModule({\n declarations: [DashboardComponent],\n imports: [\n SharedModule,\n InnerDashboardModule.register({\n metrics: [],\n providers: [CardProvider, PaymentProvider],\n templateSource: DashboardComponent,\n }),\n WebgetsModule,\n ElementsModule,\n PipesModule,\n PaymentModule,\n ],\n})\nexport class DashboardModule {}\n"],"names":["i3","i4","PaymentModule","InnerDashboardModule"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { NgModule } from '@angular/core';
|
|
|
3
3
|
import { PaymentModule as PaymentModule$1 } from '@thescaffold/ngx-common';
|
|
4
4
|
import { SharedModule, PipesModule } from '@thescaffold/ngx-core';
|
|
5
5
|
import { CrudModule, ElementsModule, CRUD_PROVIDER } from '@thescaffold/ngx-ui';
|
|
6
|
-
import { a as PaymentComponent, P as PaymentProvider } from './thescaffold-ngx-apps-capital-payment.provider-
|
|
6
|
+
import { a as PaymentComponent, P as PaymentProvider } from './thescaffold-ngx-apps-capital-payment.provider-BueWK2vQ.mjs';
|
|
7
7
|
|
|
8
8
|
class PaymentModule {
|
|
9
9
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: PaymentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
31
31
|
}] });
|
|
32
32
|
|
|
33
33
|
export { PaymentModule };
|
|
34
|
-
//# sourceMappingURL=thescaffold-ngx-apps-capital-payment.module-
|
|
34
|
+
//# sourceMappingURL=thescaffold-ngx-apps-capital-payment.module-BA6Cvnz6.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thescaffold-ngx-apps-capital-payment.module-
|
|
1
|
+
{"version":3,"file":"thescaffold-ngx-apps-capital-payment.module-BA6Cvnz6.mjs","sources":["../../../projects/capital/src/lib/pages/payment/payment.module.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { PaymentModule as PkgPaymentModule } from '@thescaffold/ngx-common';\nimport { PipesModule, SharedModule } from '@thescaffold/ngx-core';\nimport { CRUD_PROVIDER, CrudModule, ElementsModule } from '@thescaffold/ngx-ui';\nimport { PaymentComponent } from './payment.component';\nimport { PaymentProvider } from './payment.provider';\n\n@NgModule({\n declarations: [PaymentComponent],\n exports: [CrudModule],\n providers: [\n {\n provide: CRUD_PROVIDER,\n useClass: PaymentProvider,\n },\n ],\n imports: [SharedModule, PkgPaymentModule, ElementsModule, PipesModule],\n})\nexport class PaymentModule {}\n"],"names":["PkgPaymentModule"],"mappings":";;;;;;;MAkBa,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAb,aAAa,EAAA,YAAA,EAAA,CAVT,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAQrB,YAAY,EAAEA,eAAgB,EAAE,cAAc,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CAP3D,UAAU,CAAA,EAAA,CAAA,CAAA;AAST,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAAA,SAAA,EARb;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,QAAQ,EAAE,eAAe;AAC1B,aAAA;SACF,EAAA,OAAA,EAAA,CACS,YAAY,EAAEA,eAAgB,EAAE,cAAc,EAAE,WAAW,EAP3D,UAAU,CAAA,EAAA,CAAA,CAAA;;2FAST,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,UAAU,CAAC;AACrB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,QAAQ,EAAE,eAAe;AAC1B,yBAAA;AACF,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY,EAAEA,eAAgB,EAAE,cAAc,EAAE,WAAW,CAAC;AACvE,iBAAA;;;;;"}
|
|
@@ -212,8 +212,8 @@ class PaymentProvider extends CrudProvider {
|
|
|
212
212
|
value: payload.currency,
|
|
213
213
|
},
|
|
214
214
|
{
|
|
215
|
-
title: this.translate('apps.capital.payment.columns.
|
|
216
|
-
value: payload.
|
|
215
|
+
title: this.translate('apps.capital.payment.columns.amount.title'),
|
|
216
|
+
value: payload.amount,
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
219
|
title: this.translate('apps.capital.payment.columns.paid.title'),
|
|
@@ -327,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
327
327
|
}] });
|
|
328
328
|
|
|
329
329
|
export { PaymentProvider as P, PaymentComponent as a };
|
|
330
|
-
//# sourceMappingURL=thescaffold-ngx-apps-capital-payment.provider-
|
|
330
|
+
//# sourceMappingURL=thescaffold-ngx-apps-capital-payment.provider-BueWK2vQ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thescaffold-ngx-apps-capital-payment.provider-BueWK2vQ.mjs","sources":["../../../projects/capital/src/lib/pages/payment/payment.component.ts","../../../projects/capital/src/lib/pages/payment/payment.provider.ts"],"sourcesContent":["import { Component, inject, TemplateRef, ViewChild } from '@angular/core';\nimport { PaymentContract } from '@thescaffold/ngx-common';\nimport { getEnv, navigateExternal } from '@thescaffold/ngx-core';\nimport { CrudComponentDirective, FlyoutService } from '@thescaffold/ngx-ui';\n\n@Component({\n standalone: false,\n selector: 'app-payment',\n template: `\n <!-- verify payment -->\n <ng-template #beforeListTemplate>\n <x-common-payment [data]=\"verifyPaymentData\"></x-common-payment>\n </ng-template>\n \n <!-- show payment buttons -->\n <ng-template #afterShowTemplate let-item=\"item\">\n @if (item) {\n <div\n class=\"d-flex justify-content-center align-items-center\"\n >\n <div class=\"btn-toolbar\">\n <div class=\"btn-group\">\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"download(item.receiptUrl)\"\n [attr.disabled]=\"item.receiptUrl ? null : true\"\n >\n {{\n 'apps.capital.payment.collection.links.secondary.download-receipt.title'\n | xTranslate\n }}\n </button>\n </div>\n </div>\n </div>\n }\n </ng-template>\n \n <!-- misc -->\n <ng-template #loader>\n <x-element-loader></x-element-loader>\n </ng-template>\n \n <ng-template #empty>\n <x-element-blank></x-element-blank>\n </ng-template>\n `,\n styles: [],\n})\nexport class PaymentComponent extends CrudComponentDirective {\n readonly flyoutService = inject(FlyoutService);\n\n @ViewChild('beforeListTemplate', {\n read: TemplateRef,\n static: true,\n })\n beforeListTemplate!: TemplateRef<any>;\n\n @ViewChild('afterShowTemplate', {\n read: TemplateRef,\n static: true,\n })\n afterShowTemplate!: TemplateRef<any>;\n\n verifyPaymentData: PaymentContract = {\n mode: 'verify',\n appName: getEnv('APP_NAME'),\n amount: 0.0,\n hooks: {},\n options: [],\n };\n\n download(url: string) {\n navigateExternal(url, true);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { navigateExternal, toMajor } from '@thescaffold/ngx-core';\nimport { CrudActionType, CrudProvider } from '@thescaffold/ngx-ui';\nimport { PaymentComponent } from './payment.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaymentProvider extends CrudProvider {\n override main = true;\n override name = this.translate('apps.capital.payment.name');\n override pluralName = this.translate('apps.capital.payment.plural');\n override dataSource = this.apiService.on('apps/capital/payment');\n override path = ['/', 'payments'];\n override columns = [\n {\n key: 'reference',\n value: this.translate('apps.capital.payment.columns.reference.title'),\n type: 'link',\n links: (column: any, item: any) => [\n {\n title:\n `${item.reference?.slice(0, 10)}...${item.reference?.slice(-10)}`.toLowerCase(),\n fn: (link: any) => {\n this.show(item);\n },\n },\n ],\n },\n {\n key: 'currency',\n value: this.translate('apps.capital.payment.columns.currency.title'),\n },\n {\n key: 'cost',\n value: this.translate('apps.capital.payment.columns.cost.title'),\n },\n {\n key: 'createdAt',\n value: '',\n type: 'date',\n },\n {\n key: 'status',\n value: '',\n type: 'class',\n class: 'badge border text-primary',\n },\n ];\n override fields = [];\n\n override templateSource = PaymentComponent;\n\n override routes = {\n // [CrudActionType.CloseCreate]: ['/', 'payments'],\n // [CrudActionType.AfterSave]: ['/', 'payments'],\n // [CrudActionType.CloseEdit]: ['/', 'payments'],\n // [CrudActionType.AfterUpdate]: ['/', 'payments'],\n // [CrudActionType.CloseShow]: ['/', 'payments'],\n // [CrudActionType.CloseDelete]: ['/', 'payments'],\n // [CrudActionType.AfterRemove]: ['/', 'payments'],\n };\n\n override morphs = {\n [CrudActionType.BeforeSave]: (payload: any) => {\n return payload;\n },\n [CrudActionType.AfterSave]: (payload: any) => {\n return payload;\n },\n [CrudActionType.BeforeEdit]: (payload: any) => {\n return payload;\n },\n [CrudActionType.AfterEdit]: (payload: any) => {\n return payload;\n },\n [CrudActionType.BeforeUpdate]: (payload: any) => {\n return payload;\n },\n [CrudActionType.AfterUpdate]: (payload: any) => {\n return payload;\n },\n [CrudActionType.BeforeShow]: (payload: any) => {\n return {\n list: [\n {\n title: this.translate(\n 'apps.capital.payment.columns.reference.title',\n ),\n value: payload.reference,\n copyable: true,\n },\n {\n title: this.translate('apps.capital.payment.columns.plan.title'),\n value: payload.plan.type.name,\n },\n {\n title: this.translate('apps.capital.payment.columns.period.title'),\n value: payload.period,\n },\n {\n title: this.translate(\n 'apps.capital.payment.columns.currency.title',\n ),\n value: payload.currency,\n },\n {\n title: this.translate('apps.capital.payment.columns.amount.title'),\n value: payload.amount,\n },\n {\n title: this.translate('apps.capital.payment.columns.paid.title'),\n value: payload.paid ? 'Paid' : 'Pending',\n },\n ],\n ...payload,\n };\n },\n [CrudActionType.AfterShow]: (payload: any) => {\n return payload;\n },\n [CrudActionType.BeforeList]: (payload: any) => {\n return {\n page: payload.page,\n perPage: payload.perPage,\n relations: 'plan,plan.type',\n };\n },\n [CrudActionType.AfterList]: (payload: any) => {\n return payload;\n },\n [CrudActionType.BeforeDelete]: (payload: any) => {\n return payload;\n },\n [CrudActionType.AfterDelete]: (payload: any) => {\n return payload;\n },\n [CrudActionType.BeforeRemove]: (payload: any) => {\n return payload;\n },\n [CrudActionType.AfterRemove]: (payload: any) => {\n return payload;\n },\n };\n\n override hooks = {\n [CrudActionType.BeforeCreate]: () => {},\n [CrudActionType.AfterCreate]: () => {},\n [CrudActionType.BeforeSave]: (payload: any) => {},\n [CrudActionType.AfterSave]: (payload: any, data: any) => {},\n [CrudActionType.BeforeEdit]: (payload: any) => {},\n [CrudActionType.AfterEdit]: (payload: any) => {},\n [CrudActionType.BeforeUpdate]: (payload: any) => {},\n [CrudActionType.AfterUpdate]: (payload: any, data: any) => {},\n [CrudActionType.BeforeShow]: (payload: any) => {},\n [CrudActionType.AfterShow]: (payload: any) => {},\n [CrudActionType.BeforeList]: (payload: any) => {},\n [CrudActionType.AfterList]: (payload: any, data: any) => {},\n [CrudActionType.BeforeDelete]: (payload: any) => {},\n [CrudActionType.AfterDelete]: (payload: any) => {},\n [CrudActionType.BeforeRemove]: (payload: any) => {},\n [CrudActionType.AfterRemove]: (payload: any, data: any) => {},\n };\n\n override toCollection = (response: any) => {\n return {\n title: this.pluralName,\n columns: this.columns,\n rows: response?.data?.map((row: any) => ({\n ...row,\n cost: toMajor(row.cost),\n })),\n links: {\n primary: [],\n secondary: [\n {\n title: this.translate(\n 'apps.capital.payment.collection.links.secondary.view.title',\n ),\n fn: (link: any, item: any) => {\n this.show(item);\n },\n },\n {\n title: this.translate(\n 'apps.capital.payment.collection.links.secondary.download-receipt.title',\n ),\n fn: (link: any, item: any) => {\n navigateExternal(item.receiptUrl, true);\n },\n enabled: (link: any, item: any) => {\n return !!item.receiptUrl;\n },\n },\n ],\n tertiary: [],\n empty: [\n // {\n // title: this.translate(\n // 'apps.capital.payment.collection.links.empty.learn-more.title',\n // ),\n // fn: (link: any) => {\n // navigateExternal(`${getEnv('DOCS_BASE_URL')}/payments`, true);\n // },\n // },\n ],\n },\n hasTextFilter: true,\n hasDateFilter: false,\n selectable: false,\n hasHeaders: true,\n page: response?.meta?.current_page,\n perPage: response?.meta?.per_page,\n total: response?.meta?.total,\n };\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -154,7 +154,7 @@ class PagesModule {
|
|
|
154
154
|
},
|
|
155
155
|
{
|
|
156
156
|
path: 'dashboard',
|
|
157
|
-
loadChildren: () => import('./thescaffold-ngx-apps-capital-dashboard.module-
|
|
157
|
+
loadChildren: () => import('./thescaffold-ngx-apps-capital-dashboard.module-fLYoq8nC.mjs').then((m) => m.DashboardModule),
|
|
158
158
|
},
|
|
159
159
|
{
|
|
160
160
|
path: 'card',
|
|
@@ -162,7 +162,7 @@ class PagesModule {
|
|
|
162
162
|
},
|
|
163
163
|
{
|
|
164
164
|
path: 'payment',
|
|
165
|
-
loadChildren: () => import('./thescaffold-ngx-apps-capital-payment.module-
|
|
165
|
+
loadChildren: () => import('./thescaffold-ngx-apps-capital-payment.module-BA6Cvnz6.mjs').then((m) => m.PaymentModule),
|
|
166
166
|
},
|
|
167
167
|
{
|
|
168
168
|
path: 'voucher',
|
|
@@ -199,7 +199,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
199
199
|
},
|
|
200
200
|
{
|
|
201
201
|
path: 'dashboard',
|
|
202
|
-
loadChildren: () => import('./thescaffold-ngx-apps-capital-dashboard.module-
|
|
202
|
+
loadChildren: () => import('./thescaffold-ngx-apps-capital-dashboard.module-fLYoq8nC.mjs').then((m) => m.DashboardModule),
|
|
203
203
|
},
|
|
204
204
|
{
|
|
205
205
|
path: 'card',
|
|
@@ -207,7 +207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
|
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
209
|
path: 'payment',
|
|
210
|
-
loadChildren: () => import('./thescaffold-ngx-apps-capital-payment.module-
|
|
210
|
+
loadChildren: () => import('./thescaffold-ngx-apps-capital-payment.module-BA6Cvnz6.mjs').then((m) => m.PaymentModule),
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
213
|
path: 'voucher',
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"thescaffold-ngx-apps-capital-dashboard.module-C08wnnHw.mjs","sources":["../../../projects/capital/src/lib/pages/dashboard/dashboard.component.ts","../../../projects/capital/src/lib/pages/dashboard/dashboard.module.ts"],"sourcesContent":["import { Component, inject, TemplateRef, ViewChild } from '@angular/core';\nimport {\n DefaultPeriodType,\n PaymentContract,\n PeriodService,\n} from '@thescaffold/ngx-common';\nimport {\n BaseDirective,\n ControlService,\n getEnv,\n navigateExternal,\n using,\n} from '@thescaffold/ngx-core';\nimport {\n FlyoutService,\n PickerItemContract,\n WizardContract,\n WizardService,\n} from '@thescaffold/ngx-ui';\nimport { forkJoin, map, Observable, of, switchMap, takeUntil } from 'rxjs';\n\n@Component({\n standalone: false,\n selector: 'app-dashboard',\n template: `\n <ng-template #beforeMetricsTemplate>\n <!-- verify payment -->\n <x-common-payment [data]=\"verifyPaymentData\"></x-common-payment>\n \n @if (capital$ | async; as capital) {\n <div class=\"\">\n <div class=\"row gx-5 d-flex flex-wrap\">\n <div class=\"col d-flex flex-column\">\n <div class=\"card card-body\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <span class=\"fs-6\">\n {{\n 'apps.capital.component.dashboard.message.plan' | xTranslate\n }}\n </span>\n @if (capital.plan?.type?.name) {\n <span class=\"fs-3\"\n >{{ capital.plan?.type?.name }}\n </span>\n }\n <!-- <span *ngIf=\"capital.plan?.type?.name\" class=\"fs-3\"\n >{{\n capital.plan.type[capital.plan.periodType]\n | xMajor | number: '1.2-2'\n }}<span class=\"fs-6\">{{ capital.plan.type.currency }}</span>\n </span> -->\n @if (!capital.plan?.type?.name) {\n <span class=\"fs-3\">\n ...\n </span>\n }\n </div>\n @if (\n capital.plan?.type?.name &&\n capital.plan?.type?.name?.toLowerCase() != 'pro'\n ) {\n <div\n class=\"d-flex justify-content-end align-items-center\"\n >\n <button\n class=\"btn btn-outline-warning btn-sm small-text\"\n (click)=\"upgradePlan()\"\n >\n {{\n 'apps.capital.component.dashboard.button.upgrade-plan'\n | xTranslate\n }}\n </button>\n </div>\n }\n @if (!capital.plan?.type?.name) {\n <div\n class=\"d-flex justify-content-end align-items-center\"\n >\n <button\n class=\"btn btn-outline-warning btn-sm small-text\"\n (click)=\"upgradePlan()\"\n >\n {{\n 'apps.capital.component.dashboard.button.select-plan'\n | xTranslate\n }}\n </button>\n </div>\n }\n </div>\n </div>\n <!-- <div class=\"col d-flex flex-column\">\n <div class=\"card card-body\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <span class=\"fs-6\">{{\n 'apps.capital.component.dashboard.message.balance'\n | xTranslate\n }}</span>\n <span class=\"fs-3\"\n >{{ capital.wallet.availableBalance | xMajor | number: '1.2-2'\n }}<span class=\"fs-6\">{{\n capital.wallet.currency\n }}</span></span\n >\n </div>\n </div>\n </div> -->\n <div class=\"col d-flex flex-column\">\n <div class=\"card card-body\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <span class=\"fs-6\">\n {{\n 'apps.capital.component.dashboard.message.pending'\n | xTranslate\n }}\n </span>\n <span\n class=\"fs-3\"\n [ngClass]=\"{ 'text-warning': capital.pending.debt }\"\n >{{ capital.pending.debt | xMajor | number: '1.2-2'\n }}<span class=\"fs-6\">{{ capital.wallet.currency }}</span>\n </span>\n </div>\n @if (capital.pending.debt > 0) {\n <div\n class=\"d-flex justify-content-end align-items-center\"\n >\n <button\n class=\"btn btn-outline-warning btn-sm small-text\"\n (click)=\"payNow(capital.pending.debt)\"\n >\n {{\n 'apps.capital.component.dashboard.button.pay-now'\n | xTranslate\n }}\n </button>\n </div>\n }\n </div>\n </div>\n <div class=\"col d-flex flex-column\">\n <div class=\"card card-body\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <span class=\"fs-6\">{{\n 'apps.capital.component.dashboard.message.cost' | xTranslate\n }}</span>\n <span class=\"fs-3\"\n >{{ capital.estimate.cost | xMajor | number: '1.2-2'\n }}<span class=\"fs-6\">{{\n capital.wallet.currency\n }}</span></span\n >\n </div>\n </div>\n </div>\n </div>\n </div>\n } @else {\n <x-element-loader></x-element-loader>\n }\n </ng-template>\n \n <!-- upgrade plan flyout -->\n <ng-template #upgradePlanFlyout>\n <x-webget-flyout [data]=\"{ title: 'Upgrade Plan' }\">\n <x-webget-wizard [data]=\"wizardData\">\n <ng-template [xWizard]=\"'select-plan'\">\n @if (periodData$ | async; as periodData) {\n @if (\n planTypes$ && planTypes$ | async; as planTypes) {\n <div\n class=\"d-flex flex-column\"\n >\n <div class=\"d-flex flex-column my-3 align-items-center\">\n <p class=\"text-secondary text-center\">\n {{\n 'apps.capital.component.dashboard.message.select-plan'\n | xTranslate\n }}\n </p>\n </div>\n <div class=\"d-flex justify-content-end align-items-center my-3\">\n <x-picker\n [data]=\"periodData\"\n (select)=\"onPeriodSelect($event)\"\n ></x-picker>\n </div>\n @if (planTypes.length) {\n <div\n class=\"accordion\"\n id=\"plan-accordion\"\n >\n @for (planType of planTypes; track planType; let i = $index) {\n <div\n class=\"accordion-item w-100\"\n >\n @if (planType.id != currentPlan?.type?.id) {\n <div\n class=\"accordion-header\"\n >\n <button\n class=\"accordion-button d-flex justify-content-between align-items-center\"\n [ngClass]=\"{ collapsed: planType.type !== 'popular' }\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [attr.data-bs-target]=\"'#collapse' + i\"\n >\n <div class=\"col-8\">\n <div class=\"h3\">{{ planType.name | titlecase }}</div>\n @if (planType.desc) {\n <div\n class=\"h6 text-body-secondary\"\n >\n {{ planType.desc }}\n </div>\n }\n </div>\n <div class=\"col-3\">\n <div class=\"fw-bolder fst-italic h3\">\n {{ planType.currency ?? '...' }}\n {{\n (planType[periodType]\n | xMajor\n | number: '1.2-2') ?? '...'\n }}\n </div>\n </div>\n </button>\n </div>\n }\n <div\n [attr.id]=\"'collapse' + i\"\n class=\"accordion-collapse collapse\"\n [ngClass]=\"{ show: planType.type == 'popular' }\"\n data-bs-parent=\"#plan-accordion\"\n >\n <div class=\"accordion-body\">\n <div\n class=\"d-flex justify-content-start align-items-center\"\n >\n @if (planType.detail) {\n <p\n class=\"text-body-secondary\"\n >\n {{ planType.detail }}\n </p>\n }\n </div>\n @if (planType?.meta?.features?.length) {\n <ul\n class=\"list-group list-group-flush\"\n >\n @for (feature of planType?.meta?.features; track feature) {\n <li\n class=\"list-group-item\"\n >\n {{ feature }}\n </li>\n }\n </ul>\n }\n <div\n class=\"d-flex justify-content-end align-items-center my-3\"\n >\n <button\n class=\"btn btn-primary\"\n (click)=\"selectPlanType(planType)\"\n >\n Choose {{ planType.name }}\n <i class=\"fa-solid fa-arrow-right-long\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n } @else {\n <x-element-blank></x-element-blank>\n }\n <div\n class=\"d-flex justify-content-center align-items-center my-3\"\n >\n <p class=\"text-center mb-1\">\n {{\n 'apps.capital.component.dashboard.message.terms'\n | xTranslate\n }}\n </p>\n </div>\n </div>\n } @else {\n <x-element-loader></x-element-loader>\n }\n } @else {\n <x-element-loader></x-element-loader>\n }\n </ng-template>\n <ng-template [xWizard]=\"'make-payment'\">\n @if (false) {\n } @else {\n <x-common-payment [data]=\"paymentData\"></x-common-payment>\n }\n </ng-template>\n </x-webget-wizard>\n </x-webget-flyout>\n </ng-template>\n \n <!-- pay now flyout -->\n <ng-template #payNowFlyout>\n <x-webget-flyout [data]=\"{ title: 'Pay Now' }\">\n @if (false) {\n } @else {\n <x-common-payment [data]=\"paymentData\"></x-common-payment>\n }\n </x-webget-flyout>\n </ng-template>\n \n <!-- upgrade payment flyout -->\n <ng-template #makePaymentTemplate>\n <x-common-payment [data]=\"paymentData\"></x-common-payment>\n </ng-template>\n \n <!-- misc -->\n <ng-template #loader>\n <x-element-loader></x-element-loader>\n </ng-template>\n \n <ng-template #empty>\n <x-element-blank></x-element-blank>\n </ng-template>\n `,\n styles: [\n `\n .small-text {\n font-size: 0.7rem !important;\n }\n `,\n ],\n})\nexport class DashboardComponent extends BaseDirective {\n private readonly flyoutService = inject(FlyoutService);\n private readonly controlService = inject(ControlService);\n private readonly wizardService = inject(WizardService);\n private readonly periodService = inject(PeriodService);\n\n paymentMeta$ = () =>\n of({\n type: this.actionType,\n planTypeId: this.selectedPlanTypeId,\n periodType: this.periodType,\n });\n\n get paymentData(): PaymentContract {\n const amount = (\n this.actionType == 'apps.capital.dashboard.upgrade-plan'\n ? this.upgradePlanAmount\n : this.actionType == 'apps.capital.dashboard.pay-debt'\n ? this.payNowAmount\n : 0\n )!;\n return {\n mode: 'pay',\n appName: getEnv('APP_NAME'),\n amount: amount == 0 ? -1 : amount,\n hooks: {\n meta: () => this.paymentMeta$(),\n },\n options: ['card', 'provider', 'wallet'],\n redirect: (\n provider: string,\n amount: number,\n reference: string,\n currency: string,\n ) => {\n navigateExternal(\n `${getEnv('BASE_URL')}${this.router.url}?type=${provider}&reference=${reference}`,\n );\n },\n };\n }\n\n verifyPaymentData: PaymentContract = {\n mode: 'verify',\n appName: getEnv('APP_NAME'),\n amount: 0.0,\n hooks: {},\n options: [],\n };\n\n wizardData: WizardContract = {\n name: 'upgrade-plan',\n showProgress: true,\n showNav: false,\n };\n context = this.controlService.getContext();\n selectedPlanTypeId?: string;\n\n @ViewChild('beforeMetricsTemplate', {\n read: TemplateRef,\n static: true,\n })\n beforeMetricsTemplate!: TemplateRef<any>;\n\n @ViewChild('upgradePlanFlyout', { read: TemplateRef, static: true })\n upgradePlanFlyout!: TemplateRef<any>;\n\n @ViewChild('payNowFlyout', { read: TemplateRef, static: true })\n payNowFlyout!: TemplateRef<any>;\n\n planTypes$ = this.apiService\n .on('apps/capital/plan-type')\n .getMany({\n page: 1,\n perPage: 12,\n clientId: this.context?.clientId,\n currency: getEnv('X_PREFERENCE_CURRENCY'),\n })\n .pipe(\n takeUntil(this.$),\n map(({ data }) => data),\n );\n\n currentPlan: any = null;\n capital$: Observable<{\n plan: any;\n wallet: any;\n pending: any;\n estimate: any;\n }> = this.apiService.post('apps/capital/wallet/init').pipe(\n takeUntil(this.$),\n switchMap((wallet) =>\n forkJoin([\n this.apiService.get('apps/capital/user-plan'),\n of(wallet),\n this.apiService.get('apps/capital/debt'),\n this.apiService.get('apps/capital/cost', { type: 'current' }),\n ]),\n ),\n map(([plan, wallet, pending, estimate]) => {\n this.currentPlan = plan?.data;\n return {\n plan: plan?.data,\n wallet: wallet?.data,\n pending: pending?.data,\n estimate: estimate?.data,\n };\n }),\n );\n\n private actionType?:\n | 'apps.capital.dashboard.upgrade-plan'\n | 'apps.capital.dashboard.pay-debt';\n\n upgradePlanAmount?: number;\n payNowAmount?: number;\n\n periodType = DefaultPeriodType;\n\n periodData$ = this.periodService.list().pipe(\n map((list) => ({\n default: list.find((item) => item.value == DefaultPeriodType)!,\n list,\n size: 'btn-lg',\n showSearch: false,\n })),\n );\n\n onPeriodSelect({ value }: PickerItemContract) {\n this.periodType = value;\n }\n\n upgradePlan() {\n this.actionType = 'apps.capital.dashboard.upgrade-plan';\n this.flyoutService.open(this.upgradePlanFlyout);\n }\n\n payNow(payNowAmount: number) {\n this.actionType = 'apps.capital.dashboard.pay-debt';\n this.payNowAmount = payNowAmount;\n this.flyoutService.open(this.payNowFlyout);\n }\n\n selectPlanType(planType: any) {\n this.selectedPlanTypeId = planType.id;\n this.apiService\n .post('apps/capital/user-plan/compute-upgrade', {\n planTypeId: planType.id,\n periodType: this.periodType,\n })\n .pipe(takeUntil(this.$))\n .subscribe(\n using(({ data }: any) => {\n this.upgradePlanAmount = data.diff;\n this.wizardService.goto(this.wizardData.name, 'make-payment');\n }),\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { PaymentModule } from '@thescaffold/ngx-common';\nimport { PipesModule, SharedModule } from '@thescaffold/ngx-core';\nimport {\n ElementsModule,\n DashboardModule as InnerDashboardModule,\n WebgetsModule,\n} from '@thescaffold/ngx-ui';\nimport { CardProvider } from '../card/card.provider';\nimport { PaymentProvider } from '../payment/payment.provider';\nimport { DashboardComponent } from './dashboard.component';\n\n@NgModule({\n declarations: [DashboardComponent],\n imports: [\n SharedModule,\n InnerDashboardModule.register({\n metrics: [],\n providers: [CardProvider, PaymentProvider],\n templateSource: DashboardComponent,\n }),\n WebgetsModule,\n ElementsModule,\n PipesModule,\n PaymentModule,\n ],\n})\nexport class DashboardModule {}\n"],"names":["i3","i4","PaymentModule","InnerDashboardModule"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"thescaffold-ngx-apps-capital-payment.provider-DAlEfzgr.mjs","sources":["../../../projects/capital/src/lib/pages/payment/payment.component.ts","../../../projects/capital/src/lib/pages/payment/payment.provider.ts"],"sourcesContent":["import { Component, inject, TemplateRef, ViewChild } from '@angular/core';\nimport { PaymentContract } from '@thescaffold/ngx-common';\nimport { getEnv, navigateExternal } from '@thescaffold/ngx-core';\nimport { CrudComponentDirective, FlyoutService } from '@thescaffold/ngx-ui';\n\n@Component({\n standalone: false,\n selector: 'app-payment',\n template: `\n <!-- verify payment -->\n <ng-template #beforeListTemplate>\n <x-common-payment [data]=\"verifyPaymentData\"></x-common-payment>\n </ng-template>\n \n <!-- show payment buttons -->\n <ng-template #afterShowTemplate let-item=\"item\">\n @if (item) {\n <div\n class=\"d-flex justify-content-center align-items-center\"\n >\n <div class=\"btn-toolbar\">\n <div class=\"btn-group\">\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"download(item.receiptUrl)\"\n [attr.disabled]=\"item.receiptUrl ? null : true\"\n >\n {{\n 'apps.capital.payment.collection.links.secondary.download-receipt.title'\n | xTranslate\n }}\n </button>\n </div>\n </div>\n </div>\n }\n </ng-template>\n \n <!-- misc -->\n <ng-template #loader>\n <x-element-loader></x-element-loader>\n </ng-template>\n \n <ng-template #empty>\n <x-element-blank></x-element-blank>\n </ng-template>\n `,\n styles: [],\n})\nexport class PaymentComponent extends CrudComponentDirective {\n readonly flyoutService = inject(FlyoutService);\n\n @ViewChild('beforeListTemplate', {\n read: TemplateRef,\n static: true,\n })\n beforeListTemplate!: TemplateRef<any>;\n\n @ViewChild('afterShowTemplate', {\n read: TemplateRef,\n static: true,\n })\n afterShowTemplate!: TemplateRef<any>;\n\n verifyPaymentData: PaymentContract = {\n mode: 'verify',\n appName: getEnv('APP_NAME'),\n amount: 0.0,\n hooks: {},\n options: [],\n };\n\n download(url: string) {\n navigateExternal(url, true);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { navigateExternal, toMajor } from '@thescaffold/ngx-core';\nimport { CrudActionType, CrudProvider } from '@thescaffold/ngx-ui';\nimport { PaymentComponent } from './payment.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaymentProvider extends CrudProvider {\n override main = true;\n override name = this.translate('apps.capital.payment.name');\n override pluralName = this.translate('apps.capital.payment.plural');\n override dataSource = this.apiService.on('apps/capital/payment');\n override path = ['/', 'payments'];\n override columns = [\n {\n key: 'reference',\n value: this.translate('apps.capital.payment.columns.reference.title'),\n type: 'link',\n links: (column: any, item: any) => [\n {\n title:\n `${item.reference?.slice(0, 10)}...${item.reference?.slice(-10)}`.toLowerCase(),\n fn: (link: any) => {\n this.show(item);\n },\n },\n ],\n },\n {\n key: 'currency',\n value: this.translate('apps.capital.payment.columns.currency.title'),\n },\n {\n key: 'cost',\n value: this.translate('apps.capital.payment.columns.cost.title'),\n },\n {\n key: 'createdAt',\n value: '',\n type: 'date',\n },\n {\n key: 'status',\n value: '',\n type: 'class',\n class: 'badge border text-primary',\n },\n ];\n override fields = [];\n\n override templateSource = PaymentComponent;\n\n override routes = {\n // [CrudActionType.CloseCreate]: ['/', 'payments'],\n // [CrudActionType.AfterSave]: ['/', 'payments'],\n // [CrudActionType.CloseEdit]: ['/', 'payments'],\n // [CrudActionType.AfterUpdate]: ['/', 'payments'],\n // [CrudActionType.CloseShow]: ['/', 'payments'],\n // [CrudActionType.CloseDelete]: ['/', 'payments'],\n // [CrudActionType.AfterRemove]: ['/', 'payments'],\n };\n\n override morphs = {\n [CrudActionType.BeforeSave]: (payload: any) => {\n return payload;\n },\n [CrudActionType.AfterSave]: (payload: any) => {\n return payload;\n },\n [CrudActionType.BeforeEdit]: (payload: any) => {\n return payload;\n },\n [CrudActionType.AfterEdit]: (payload: any) => {\n return payload;\n },\n [CrudActionType.BeforeUpdate]: (payload: any) => {\n return payload;\n },\n [CrudActionType.AfterUpdate]: (payload: any) => {\n return payload;\n },\n [CrudActionType.BeforeShow]: (payload: any) => {\n return {\n list: [\n {\n title: this.translate(\n 'apps.capital.payment.columns.reference.title',\n ),\n value: payload.reference,\n copyable: true,\n },\n {\n title: this.translate('apps.capital.payment.columns.plan.title'),\n value: payload.plan.type.name,\n },\n {\n title: this.translate('apps.capital.payment.columns.period.title'),\n value: payload.period,\n },\n {\n title: this.translate(\n 'apps.capital.payment.columns.currency.title',\n ),\n value: payload.currency,\n },\n {\n title: this.translate('apps.capital.payment.columns.cost.title'),\n value: payload.cost,\n },\n {\n title: this.translate('apps.capital.payment.columns.paid.title'),\n value: payload.paid ? 'Paid' : 'Pending',\n },\n ],\n ...payload,\n };\n },\n [CrudActionType.AfterShow]: (payload: any) => {\n return payload;\n },\n [CrudActionType.BeforeList]: (payload: any) => {\n return {\n page: payload.page,\n perPage: payload.perPage,\n relations: 'plan,plan.type',\n };\n },\n [CrudActionType.AfterList]: (payload: any) => {\n return payload;\n },\n [CrudActionType.BeforeDelete]: (payload: any) => {\n return payload;\n },\n [CrudActionType.AfterDelete]: (payload: any) => {\n return payload;\n },\n [CrudActionType.BeforeRemove]: (payload: any) => {\n return payload;\n },\n [CrudActionType.AfterRemove]: (payload: any) => {\n return payload;\n },\n };\n\n override hooks = {\n [CrudActionType.BeforeCreate]: () => {},\n [CrudActionType.AfterCreate]: () => {},\n [CrudActionType.BeforeSave]: (payload: any) => {},\n [CrudActionType.AfterSave]: (payload: any, data: any) => {},\n [CrudActionType.BeforeEdit]: (payload: any) => {},\n [CrudActionType.AfterEdit]: (payload: any) => {},\n [CrudActionType.BeforeUpdate]: (payload: any) => {},\n [CrudActionType.AfterUpdate]: (payload: any, data: any) => {},\n [CrudActionType.BeforeShow]: (payload: any) => {},\n [CrudActionType.AfterShow]: (payload: any) => {},\n [CrudActionType.BeforeList]: (payload: any) => {},\n [CrudActionType.AfterList]: (payload: any, data: any) => {},\n [CrudActionType.BeforeDelete]: (payload: any) => {},\n [CrudActionType.AfterDelete]: (payload: any) => {},\n [CrudActionType.BeforeRemove]: (payload: any) => {},\n [CrudActionType.AfterRemove]: (payload: any, data: any) => {},\n };\n\n override toCollection = (response: any) => {\n return {\n title: this.pluralName,\n columns: this.columns,\n rows: response?.data?.map((row: any) => ({\n ...row,\n cost: toMajor(row.cost),\n })),\n links: {\n primary: [],\n secondary: [\n {\n title: this.translate(\n 'apps.capital.payment.collection.links.secondary.view.title',\n ),\n fn: (link: any, item: any) => {\n this.show(item);\n },\n },\n {\n title: this.translate(\n 'apps.capital.payment.collection.links.secondary.download-receipt.title',\n ),\n fn: (link: any, item: any) => {\n navigateExternal(item.receiptUrl, true);\n },\n enabled: (link: any, item: any) => {\n return !!item.receiptUrl;\n },\n },\n ],\n tertiary: [],\n empty: [\n // {\n // title: this.translate(\n // 'apps.capital.payment.collection.links.empty.learn-more.title',\n // ),\n // fn: (link: any) => {\n // navigateExternal(`${getEnv('DOCS_BASE_URL')}/payments`, true);\n // },\n // },\n ],\n },\n hasTextFilter: true,\n hasDateFilter: false,\n selectable: false,\n hasHeaders: true,\n page: response?.meta?.current_page,\n perPage: response?.meta?.per_page,\n total: response?.meta?.total,\n };\n };\n}\n"],"names":[],"mappings":"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"}
|