tango-app-ui-manage-settings 3.0.2 → 3.0.3
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/.eslintrc.json +37 -0
- package/ng-package.json +7 -0
- package/package.json +12 -25
- package/src/lib/components/brand-details/billing-details/billing-details.component.html +70 -0
- package/src/lib/components/brand-details/billing-details/billing-details.component.scss +95 -0
- package/src/lib/components/brand-details/billing-details/billing-details.component.spec.ts +23 -0
- package/src/lib/components/brand-details/billing-details/billing-details.component.ts +68 -0
- package/src/lib/components/brand-details/brand-details.component.html +56 -0
- package/src/lib/components/brand-details/brand-details.component.scss +5 -0
- package/src/lib/components/brand-details/brand-details.component.spec.ts +23 -0
- package/src/lib/components/brand-details/brand-details.component.ts +153 -0
- package/src/lib/components/brand-details/brand-info/brand-info.component.html +147 -0
- package/src/lib/components/brand-details/brand-info/brand-info.component.scss +152 -0
- package/src/lib/components/brand-details/brand-info/brand-info.component.spec.ts +23 -0
- package/src/lib/components/brand-details/brand-info/brand-info.component.ts +101 -0
- package/src/lib/components/brand-details/signatory-details/signatory-details.component.html +49 -0
- package/src/lib/components/brand-details/signatory-details/signatory-details.component.scss +80 -0
- package/src/lib/components/brand-details/signatory-details/signatory-details.component.spec.ts +23 -0
- package/src/lib/components/brand-details/signatory-details/signatory-details.component.ts +55 -0
- package/src/lib/components/configurations/audit-configuration/audit-configuration.component.html +175 -0
- package/src/lib/components/configurations/audit-configuration/audit-configuration.component.scss +176 -0
- package/src/lib/components/configurations/audit-configuration/audit-configuration.component.spec.ts +23 -0
- package/src/lib/components/configurations/audit-configuration/audit-configuration.component.ts +166 -0
- package/src/lib/components/configurations/configurations.component.html +107 -0
- package/src/lib/components/configurations/configurations.component.scss +4 -0
- package/src/lib/components/configurations/configurations.component.spec.ts +23 -0
- package/src/lib/components/configurations/configurations.component.ts +174 -0
- package/src/lib/components/configurations/domain-details/domain-details.component.html +59 -0
- package/src/lib/components/configurations/domain-details/domain-details.component.scss +129 -0
- package/src/lib/components/configurations/domain-details/domain-details.component.spec.ts +23 -0
- package/src/lib/components/configurations/domain-details/domain-details.component.ts +93 -0
- package/src/lib/components/configurations/feature-configuration/feature-configuration.component.html +179 -0
- package/src/lib/components/configurations/feature-configuration/feature-configuration.component.scss +116 -0
- package/src/lib/components/configurations/feature-configuration/feature-configuration.component.spec.ts +23 -0
- package/src/lib/components/configurations/feature-configuration/feature-configuration.component.ts +114 -0
- package/src/lib/components/configurations/report-configuration/add-report/add-report.component.html +55 -0
- package/src/lib/components/configurations/report-configuration/add-report/add-report.component.scss +117 -0
- package/src/lib/components/configurations/report-configuration/add-report/add-report.component.spec.ts +23 -0
- package/src/lib/components/configurations/report-configuration/add-report/add-report.component.ts +81 -0
- package/src/lib/components/configurations/report-configuration/report-configuration.component.html +74 -0
- package/src/lib/components/configurations/report-configuration/report-configuration.component.scss +129 -0
- package/src/lib/components/configurations/report-configuration/report-configuration.component.spec.ts +23 -0
- package/src/lib/components/configurations/report-configuration/report-configuration.component.ts +151 -0
- package/src/lib/components/configurations/ticket-configuration/ticket-configuration.component.html +302 -0
- package/src/lib/components/configurations/ticket-configuration/ticket-configuration.component.scss +216 -0
- package/src/lib/components/configurations/ticket-configuration/ticket-configuration.component.spec.ts +23 -0
- package/src/lib/components/configurations/ticket-configuration/ticket-configuration.component.ts +68 -0
- package/src/lib/components/configurations/user-configuration/user-configuration.component.html +46 -0
- package/src/lib/components/configurations/user-configuration/user-configuration.component.scss +129 -0
- package/src/lib/components/configurations/user-configuration/user-configuration.component.spec.ts +23 -0
- package/src/lib/components/configurations/user-configuration/user-configuration.component.ts +86 -0
- package/src/lib/components/contact-directory/contact-directory.component.html +122 -0
- package/src/lib/components/contact-directory/contact-directory.component.scss +110 -0
- package/src/lib/components/contact-directory/contact-directory.component.spec.ts +23 -0
- package/src/lib/components/contact-directory/contact-directory.component.ts +221 -0
- package/src/lib/components/contact-directory/detele-spoc/detele-spoc.component.html +24 -0
- package/src/lib/components/contact-directory/detele-spoc/detele-spoc.component.scss +80 -0
- package/src/lib/components/contact-directory/detele-spoc/detele-spoc.component.spec.ts +23 -0
- package/src/lib/components/contact-directory/detele-spoc/detele-spoc.component.ts +34 -0
- package/src/lib/components/contact-directory/edit-spoc/edit-spoc.component.html +80 -0
- package/src/lib/components/contact-directory/edit-spoc/edit-spoc.component.scss +80 -0
- package/src/lib/components/contact-directory/edit-spoc/edit-spoc.component.spec.ts +23 -0
- package/src/lib/components/contact-directory/edit-spoc/edit-spoc.component.ts +83 -0
- package/src/lib/components/documents/documents.component.html +185 -0
- package/src/lib/components/documents/documents.component.scss +137 -0
- package/src/lib/components/documents/documents.component.spec.ts +23 -0
- package/src/lib/components/documents/documents.component.ts +127 -0
- package/src/lib/components/payments-subscription/payments-subscription.component.html +1975 -0
- package/src/lib/components/payments-subscription/payments-subscription.component.scss +551 -0
- package/src/lib/components/payments-subscription/payments-subscription.component.spec.ts +23 -0
- package/src/lib/components/payments-subscription/payments-subscription.component.ts +313 -0
- package/src/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.html +66 -0
- package/src/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.scss +48 -0
- package/src/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.spec.ts +23 -0
- package/src/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.ts +38 -0
- package/src/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.html +103 -0
- package/src/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.scss +103 -0
- package/src/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.spec.ts +23 -0
- package/src/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.ts +194 -0
- package/src/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.html +112 -0
- package/src/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.scss +89 -0
- package/src/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.spec.ts +23 -0
- package/src/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.ts +82 -0
- package/src/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.html +89 -0
- package/src/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.scss +69 -0
- package/src/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.spec.ts +23 -0
- package/src/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.ts +34 -0
- package/src/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.html +28 -0
- package/src/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.scss +21 -0
- package/src/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.spec.ts +23 -0
- package/src/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.ts +10 -0
- package/src/lib/components/payments-subscription/subscription-popups/suspended/suspended.component.html +14 -0
- package/src/lib/components/payments-subscription/subscription-popups/suspended/suspended.component.scss +8 -0
- package/src/lib/components/payments-subscription/subscription-popups/suspended/suspended.component.spec.ts +23 -0
- package/src/lib/components/payments-subscription/subscription-popups/suspended/suspended.component.ts +10 -0
- package/src/lib/components/payments-subscription/subscription-popups/trail-expired/trail-expired.component.html +41 -0
- package/src/lib/components/payments-subscription/subscription-popups/trail-expired/trail-expired.component.scss +9 -0
- package/src/lib/components/payments-subscription/subscription-popups/trail-expired/trail-expired.component.spec.ts +23 -0
- package/src/lib/components/payments-subscription/subscription-popups/trail-expired/trail-expired.component.ts +10 -0
- package/src/lib/components/payments-subscription/subscription-popups/update/update.component.html +46 -0
- package/src/lib/components/payments-subscription/subscription-popups/update/update.component.scss +51 -0
- package/src/lib/components/payments-subscription/subscription-popups/update/update.component.spec.ts +23 -0
- package/src/lib/components/payments-subscription/subscription-popups/update/update.component.ts +61 -0
- package/src/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.html +463 -0
- package/src/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.scss +135 -0
- package/src/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.spec.ts +23 -0
- package/src/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.ts +92 -0
- package/src/lib/components/tango-manage-settings/tango-manage-settings.component.html +131 -0
- package/src/lib/components/tango-manage-settings/tango-manage-settings.component.scss +30 -0
- package/src/lib/components/tango-manage-settings/tango-manage-settings.component.spec.ts +23 -0
- package/src/lib/components/tango-manage-settings/tango-manage-settings.component.ts +54 -0
- package/src/lib/directives/dnd.directive.spec.ts +8 -0
- package/src/lib/directives/dnd.directive.ts +30 -0
- package/src/lib/services/client-api.service.ts +153 -0
- package/src/lib/services/payment-subscription.service.ts +31 -0
- package/src/lib/tango-manage-settings-routing.module.ts +48 -0
- package/src/lib/tango-manage-settings.module.ts +92 -0
- package/{public-api.d.ts → src/public-api.ts} +8 -2
- package/tsconfig.lib.json +14 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +14 -0
- package/esm2022/lib/components/tango-manage-settings/tango-manage-settings.component.mjs +0 -27
- package/esm2022/lib/tango-manage-settings-routing.module.mjs +0 -24
- package/esm2022/lib/tango-manage-settings.module.mjs +0 -25
- package/esm2022/public-api.mjs +0 -6
- package/esm2022/tango-app-ui-manage-settings.mjs +0 -5
- package/fesm2022/tango-app-ui-manage-settings.mjs +0 -80
- package/fesm2022/tango-app-ui-manage-settings.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/components/tango-manage-settings/tango-manage-settings.component.d.ts +0 -11
- package/lib/tango-manage-settings-routing.module.d.ts +0 -7
- package/lib/tango-manage-settings.module.d.ts +0 -9
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../.eslintrc.json",
|
|
3
|
+
"ignorePatterns": [
|
|
4
|
+
"!**/*"
|
|
5
|
+
],
|
|
6
|
+
"overrides": [
|
|
7
|
+
{
|
|
8
|
+
"files": [
|
|
9
|
+
"*.ts"
|
|
10
|
+
],
|
|
11
|
+
"rules": {
|
|
12
|
+
"@angular-eslint/directive-selector": [
|
|
13
|
+
"error",
|
|
14
|
+
{
|
|
15
|
+
"type": "attribute",
|
|
16
|
+
"prefix": "lib",
|
|
17
|
+
"style": "camelCase"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"@angular-eslint/component-selector": [
|
|
21
|
+
"error",
|
|
22
|
+
{
|
|
23
|
+
"type": "element",
|
|
24
|
+
"prefix": "lib",
|
|
25
|
+
"style": "kebab-case"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"files": [
|
|
32
|
+
"*.html"
|
|
33
|
+
],
|
|
34
|
+
"rules": {}
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
package/ng-package.json
ADDED
package/package.json
CHANGED
|
@@ -1,25 +1,12 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "tango-app-ui-manage-settings",
|
|
3
|
-
"version": "3.0.
|
|
4
|
-
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^17.0.0",
|
|
6
|
-
"@angular/core": "^17.0.0"
|
|
7
|
-
},
|
|
8
|
-
"dependencies": {
|
|
9
|
-
"tslib": "^2.3.0"
|
|
10
|
-
},
|
|
11
|
-
"sideEffects": false
|
|
12
|
-
|
|
13
|
-
"typings": "index.d.ts",
|
|
14
|
-
"exports": {
|
|
15
|
-
"./package.json": {
|
|
16
|
-
"default": "./package.json"
|
|
17
|
-
},
|
|
18
|
-
".": {
|
|
19
|
-
"types": "./index.d.ts",
|
|
20
|
-
"esm2022": "./esm2022/tango-app-ui-manage-settings.mjs",
|
|
21
|
-
"esm": "./esm2022/tango-app-ui-manage-settings.mjs",
|
|
22
|
-
"default": "./fesm2022/tango-app-ui-manage-settings.mjs"
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "tango-app-ui-manage-settings",
|
|
3
|
+
"version": "3.0.3",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^17.0.0",
|
|
6
|
+
"@angular/core": "^17.0.0"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"tslib": "^2.3.0"
|
|
10
|
+
},
|
|
11
|
+
"sideEffects": false
|
|
12
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
<form [formGroup]="billingDetailsForm">
|
|
2
|
+
<div class="row">
|
|
3
|
+
<div *ngIf="billingDetailsForm.disabled" class="col-12 mb-5">
|
|
4
|
+
<div class=" d-flex justify-content-end">
|
|
5
|
+
<button (click)="billingDetailsForm.disabled ? billingDetailsForm.enable() : billingDetailsForm.disable()" type="button" class="btn btn-outline align-items-end"><span class="me-2"><svg
|
|
6
|
+
xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
|
|
7
|
+
<g clip-path="url(#clip0_2579_25125)">
|
|
8
|
+
<path
|
|
9
|
+
d="M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z"
|
|
10
|
+
stroke="#344054" stroke-width="1.67" stroke-linecap="round"
|
|
11
|
+
stroke-linejoin="round" />
|
|
12
|
+
</g>
|
|
13
|
+
<defs>
|
|
14
|
+
<clipPath id="clip0_2579_25125">
|
|
15
|
+
<rect width="20" height="20" fill="white" />
|
|
16
|
+
</clipPath>
|
|
17
|
+
</defs>
|
|
18
|
+
</svg></span>Edit Details</button>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5">
|
|
22
|
+
<label for="tradeName" class="form-label">Trade Name <span class="alert-required"></span></label>
|
|
23
|
+
<input formControlName="tradeName" type="type" class="form-control" id="tradeName" autocomplete="off">
|
|
24
|
+
</div>
|
|
25
|
+
<div class="col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5">
|
|
26
|
+
<label for="gstNumber" class="form-label">GST Number <span class="alert-required"></span></label>
|
|
27
|
+
<div class="input-group ">
|
|
28
|
+
<input formControlName="gstNumber" type="text" class="form-control" placeholder="" aria-label="Example text with button addon"
|
|
29
|
+
aria-describedby="button-addon1" id="gstNumber">
|
|
30
|
+
<button [disabled]="billingDetailsForm.disabled" (click)="triggerFileInput()" class="btn btn-outline upload-btn" type="button" id="button-addon1">
|
|
31
|
+
<span class="me-2"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"
|
|
32
|
+
viewBox="0 0 20 20" fill="none">
|
|
33
|
+
<path
|
|
34
|
+
d="M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5"
|
|
35
|
+
stroke="#667085" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round" />
|
|
36
|
+
</svg></span>
|
|
37
|
+
Upload</button>
|
|
38
|
+
</div>
|
|
39
|
+
<input (change)="onFileSelect($event)" accept=".pdf" class="d-none" #gstFormInput type="file">
|
|
40
|
+
<a *ngIf="gstForm" [href]="gstForm" target="_blank" class="mt-3">
|
|
41
|
+
<span class="uploaded-doc-text me-2">GST Certificate</span>
|
|
42
|
+
</a>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5">
|
|
45
|
+
<label for="invoiceAuthorityName" class="form-label">Invoice Authority Name <span
|
|
46
|
+
class="alert-required"></span></label>
|
|
47
|
+
<input formControlName="authorityName" type="type" class="form-control" id="invoiceAuthorityName"
|
|
48
|
+
autocomplete="off">
|
|
49
|
+
|
|
50
|
+
</div>
|
|
51
|
+
<div class="col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5">
|
|
52
|
+
<label for="invoiceAuthorityEmail" class="form-label">Invoice Authority Email <span
|
|
53
|
+
class="alert-required"></span></label>
|
|
54
|
+
<input formControlName="authorityEmail" type="type" class="form-control" id="invoiceAuthorityEmail"
|
|
55
|
+
autocomplete="off">
|
|
56
|
+
</div>
|
|
57
|
+
<div class="col-12 mb-5">
|
|
58
|
+
<label for="billingAddress" class="form-label">Billing Address <span class="alert-required"></span></label>
|
|
59
|
+
<input formControlName="billingAddress" type="type" class="form-control" id="billingAddress" autocomplete="off">
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
<div *ngIf="billingDetailsForm.enabled">
|
|
64
|
+
<div class="mb-5 w-100 footer-seperator"></div>
|
|
65
|
+
<div class="d-flex justify-content-end">
|
|
66
|
+
<a (click)="onCancel()" type="button" class="btn btn-outline me-4">Cancel</a>
|
|
67
|
+
<a (click)="onSubmit()" type="submit" class="btn btn-primary px-4 "><span>Save Changes</span></a>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</form>
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
.form-control {
|
|
2
|
+
display: block;
|
|
3
|
+
height: 45px;
|
|
4
|
+
padding: 0.5rem 1rem;
|
|
5
|
+
font-size: 1.1rem;
|
|
6
|
+
font-weight: 400;
|
|
7
|
+
color: var(--Gray-500, #667085);
|
|
8
|
+
-webkit-appearance: none;
|
|
9
|
+
appearance: none;
|
|
10
|
+
border: 1px solid var(--Gray-300, #D0D5DD) !important;
|
|
11
|
+
background: var(--White, #FFF) !important;
|
|
12
|
+
box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05) !important;
|
|
13
|
+
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.form-label {
|
|
17
|
+
color: var(--Gray-700, #344054);
|
|
18
|
+
font-size: 14px;
|
|
19
|
+
font-style: normal;
|
|
20
|
+
font-weight: 500;
|
|
21
|
+
line-height: 20px;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.is-invalid {
|
|
25
|
+
border-radius: 8px !important;
|
|
26
|
+
border: 1px solid var(--Error-300, #FDA29B) !important;
|
|
27
|
+
background: var(--White, #FFF) !important;
|
|
28
|
+
box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05) !important;
|
|
29
|
+
padding-right: calc(1.5em + 0.75rem) !important;
|
|
30
|
+
background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=) !important;
|
|
31
|
+
background-repeat: no-repeat !important;
|
|
32
|
+
background-position: right calc(0.375em + 0.1875rem) center !important;
|
|
33
|
+
background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) !important;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
small {
|
|
37
|
+
color: var(--Error-500, #F04438) !important;
|
|
38
|
+
font-size: 14px !important;
|
|
39
|
+
font-weight: 400 !important;
|
|
40
|
+
line-height: 20px;
|
|
41
|
+
display: block;
|
|
42
|
+
margin-top: 6px;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.cancel {
|
|
46
|
+
border-radius: 8px;
|
|
47
|
+
border: 1px solid #D0D5DD;
|
|
48
|
+
background: #FFF;
|
|
49
|
+
color: #344054;
|
|
50
|
+
font-family: 'Inter';
|
|
51
|
+
font-size: 14px;
|
|
52
|
+
font-weight: 600;
|
|
53
|
+
line-height: 20px;
|
|
54
|
+
text-transform: capitalize;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.apply {
|
|
58
|
+
color: #FFF;
|
|
59
|
+
font-family: Inter;
|
|
60
|
+
font-size: 14px;
|
|
61
|
+
font-style: normal;
|
|
62
|
+
font-weight: 600;
|
|
63
|
+
line-height: 20px;
|
|
64
|
+
text-transform: capitalize;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
input[disabled],
|
|
69
|
+
select[disabled],
|
|
70
|
+
textarea[disabled],
|
|
71
|
+
input[readonly],
|
|
72
|
+
select[readonly],
|
|
73
|
+
textarea[readonly] {
|
|
74
|
+
background-color: #F9FAFB !important;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.footer-seperator {
|
|
78
|
+
border-top: 1px solid #EAECF0;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.upload-btn {
|
|
82
|
+
box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05) !important;
|
|
83
|
+
color: var(--Gray-500, #667085);
|
|
84
|
+
font-size: 16px;
|
|
85
|
+
font-weight: 600;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.uploaded-doc-text {
|
|
89
|
+
color: var(--Primary-700, #009BF3);
|
|
90
|
+
font-family: Inter;
|
|
91
|
+
font-size: 14px;
|
|
92
|
+
font-weight: 600;
|
|
93
|
+
text-transform: capitalize;
|
|
94
|
+
cursor: pointer;
|
|
95
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
2
|
+
|
|
3
|
+
import { BillingDetailsComponent } from './billing-details.component';
|
|
4
|
+
|
|
5
|
+
describe('BillingDetailsComponent', () => {
|
|
6
|
+
let component: BillingDetailsComponent;
|
|
7
|
+
let fixture: ComponentFixture<BillingDetailsComponent>;
|
|
8
|
+
|
|
9
|
+
beforeEach(async () => {
|
|
10
|
+
await TestBed.configureTestingModule({
|
|
11
|
+
declarations: [BillingDetailsComponent]
|
|
12
|
+
})
|
|
13
|
+
.compileComponents();
|
|
14
|
+
|
|
15
|
+
fixture = TestBed.createComponent(BillingDetailsComponent);
|
|
16
|
+
component = fixture.componentInstance;
|
|
17
|
+
fixture.detectChanges();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('should create', () => {
|
|
21
|
+
expect(component).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component, ElementRef, ViewChild } from '@angular/core';
|
|
2
|
+
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
3
|
+
import { ClientApiService } from '../../../services/client-api.service';
|
|
4
|
+
|
|
5
|
+
@Component({
|
|
6
|
+
selector: 'lib-billing-details',
|
|
7
|
+
templateUrl: './billing-details.component.html',
|
|
8
|
+
styleUrl: './billing-details.component.scss'
|
|
9
|
+
})
|
|
10
|
+
export class BillingDetailsComponent {
|
|
11
|
+
billingDetailsForm: FormGroup
|
|
12
|
+
@ViewChild('gstFormInput') uploadInput: ElementRef<HTMLElement>;
|
|
13
|
+
gstForm: string;
|
|
14
|
+
|
|
15
|
+
constructor(private fb: FormBuilder, private apiService: ClientApiService, private cd: ChangeDetectorRef) {
|
|
16
|
+
this.initForm()
|
|
17
|
+
this.apiService.clientFormData.subscribe((res) => {
|
|
18
|
+
if (res) {
|
|
19
|
+
if(res.type === 'input' && res.form === 'billing-details'){
|
|
20
|
+
this.patchForm(res.value)
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
initForm() {
|
|
28
|
+
this.billingDetailsForm = this.fb.group({
|
|
29
|
+
tradeName: [''],
|
|
30
|
+
gstNumber: [''],
|
|
31
|
+
gstCertificate: [''],
|
|
32
|
+
authorityName: [''],
|
|
33
|
+
authorityEmail: [''],
|
|
34
|
+
billingAddress: [''],
|
|
35
|
+
});
|
|
36
|
+
this.billingDetailsForm.disable()
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
patchForm(data: any) {
|
|
40
|
+
this.billingDetailsForm.patchValue(
|
|
41
|
+
{
|
|
42
|
+
...data
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
this.gstForm = data?.gstCertificate
|
|
46
|
+
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
triggerFileInput() {
|
|
50
|
+
this.uploadInput.nativeElement.click()
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
onFileSelect(event: any) {
|
|
54
|
+
if (event.target.files && event.target.files[0]) {
|
|
55
|
+
let file: File = event.target.files[0];
|
|
56
|
+
this.billingDetailsForm.value.gstCertificate = file
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
onCancel(){
|
|
61
|
+
this.billingDetailsForm.disable()
|
|
62
|
+
this.apiService.clientFormData.next({value:null, type:'cancel', form:'billing-details'})
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
onSubmit(){
|
|
66
|
+
this.apiService.clientFormData.next({value:this.billingDetailsForm.value, type:'submit', form:'billing-details'})
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<div class="row">
|
|
2
|
+
<div class="col-12">
|
|
3
|
+
<div ngbAccordion [closeOthers]="true" [destroyOnHide]="true" (show)="openItem($event)">
|
|
4
|
+
<div class="settings-accordian-card " ngbAccordionItem>
|
|
5
|
+
<div class="d-flex" ngbAccordionHeader>
|
|
6
|
+
<button class="mainheading" ngbAccordionButton>
|
|
7
|
+
<div class="header-row">
|
|
8
|
+
<span >Brand Info</span>
|
|
9
|
+
<span class="divider"></span>
|
|
10
|
+
</div>
|
|
11
|
+
</button>
|
|
12
|
+
</div>
|
|
13
|
+
<div ngbAccordionCollapse>
|
|
14
|
+
<div ngbAccordionBody>
|
|
15
|
+
<ng-template>
|
|
16
|
+
<lib-brand-info></lib-brand-info>
|
|
17
|
+
</ng-template>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="settings-accordian-card mt-6" ngbAccordionItem>
|
|
22
|
+
<div class="d-flex" ngbAccordionHeader>
|
|
23
|
+
<button class="mainheading" ngbAccordionButton>
|
|
24
|
+
<div class="header-row">
|
|
25
|
+
<span >Billing Details</span>
|
|
26
|
+
<span class="divider"></span>
|
|
27
|
+
</div>
|
|
28
|
+
</button>
|
|
29
|
+
</div>
|
|
30
|
+
<div ngbAccordionCollapse>
|
|
31
|
+
<div ngbAccordionBody>
|
|
32
|
+
<ng-template>
|
|
33
|
+
<lib-billing-details></lib-billing-details>
|
|
34
|
+
</ng-template>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="settings-accordian-card mt-6" ngbAccordionItem>
|
|
39
|
+
<div class="d-flex" ngbAccordionHeader>
|
|
40
|
+
<button class="mainheading" ngbAccordionButton>
|
|
41
|
+
<div class="header-row">
|
|
42
|
+
<span >Signatory Details</span>
|
|
43
|
+
<span class="divider"></span>
|
|
44
|
+
</div>
|
|
45
|
+
</button>
|
|
46
|
+
</div>
|
|
47
|
+
<div ngbAccordionCollapse>
|
|
48
|
+
<div ngbAccordionBody>
|
|
49
|
+
<ng-template>
|
|
50
|
+
<lib-signatory-details></lib-signatory-details>
|
|
51
|
+
</ng-template>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
2
|
+
|
|
3
|
+
import { BrandDetailsComponent } from './brand-details.component';
|
|
4
|
+
|
|
5
|
+
describe('BrandDetailsComponent', () => {
|
|
6
|
+
let component: BrandDetailsComponent;
|
|
7
|
+
let fixture: ComponentFixture<BrandDetailsComponent>;
|
|
8
|
+
|
|
9
|
+
beforeEach(async () => {
|
|
10
|
+
await TestBed.configureTestingModule({
|
|
11
|
+
declarations: [BrandDetailsComponent]
|
|
12
|
+
})
|
|
13
|
+
.compileComponents();
|
|
14
|
+
|
|
15
|
+
fixture = TestBed.createComponent(BrandDetailsComponent);
|
|
16
|
+
component = fixture.componentInstance;
|
|
17
|
+
fixture.detectChanges();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('should create', () => {
|
|
21
|
+
expect(component).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { ClientApiService } from '../../services/client-api.service';
|
|
3
|
+
import { ToastService } from 'tango-app-ui-shared';
|
|
4
|
+
|
|
5
|
+
@Component({
|
|
6
|
+
selector: 'lib-brand-details',
|
|
7
|
+
templateUrl: './brand-details.component.html',
|
|
8
|
+
styleUrl: './brand-details.component.scss',
|
|
9
|
+
})
|
|
10
|
+
export class BrandDetailsComponent {
|
|
11
|
+
clientData:any;
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
constructor(private clientApi: ClientApiService, private toast:ToastService) {
|
|
15
|
+
this.clientApi.clientFormData.subscribe((e) => {
|
|
16
|
+
if (e.type === 'submit') {
|
|
17
|
+
this.submitForm(e)
|
|
18
|
+
}else if(e.type === 'cancel'){
|
|
19
|
+
this.resetForm(e)
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
this.clientApi.clientData.subscribe((e)=>{
|
|
24
|
+
if(e){
|
|
25
|
+
this.clientData = e
|
|
26
|
+
this.populateBrandInfo(e)
|
|
27
|
+
this.populateBillingDetails(e)
|
|
28
|
+
this.populateSignatoryDetails(e)
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
openItem(event:string){
|
|
34
|
+
this.populateBrandInfo(this.clientData)
|
|
35
|
+
this.populateBillingDetails(this.clientData)
|
|
36
|
+
this.populateSignatoryDetails(this.clientData)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
populateBrandInfo(data: any) {
|
|
40
|
+
let obj = {
|
|
41
|
+
brandName: data?.brandName,
|
|
42
|
+
registeredCompanyName: data?.profileDetails?.registeredCompanyName,
|
|
43
|
+
industry: data?.profileDetails?.industry,
|
|
44
|
+
clientType: data?.profileDetails?.clientType,
|
|
45
|
+
corporateEmail: data?.userData?.corporateEmail,
|
|
46
|
+
countryCode: data?.userData?.countryCode,
|
|
47
|
+
mobileNumber: data?.userData?.mobileNumber,
|
|
48
|
+
registeredAddress: data?.profileDetails?.registeredAddress,
|
|
49
|
+
headQuarters: data?.profileDetails?.headQuarters,
|
|
50
|
+
website: data?.profileDetails?.website,
|
|
51
|
+
status: data?.status,
|
|
52
|
+
logo: data?.profileDetails?.logo,
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'brand-info' })
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
populateBillingDetails(data: any) {
|
|
59
|
+
let obj = {
|
|
60
|
+
tradeName: data?.billingDetails?.tradeName,
|
|
61
|
+
gstNumber: data?.billingDetails?.gstNumber,
|
|
62
|
+
authorityName: data?.billingDetails?.authorityName,
|
|
63
|
+
authorityEmail: data?.billingDetails?.authorityEmail,
|
|
64
|
+
billingAddress: data?.billingDetails?.billingAddress,
|
|
65
|
+
gstCertificate: data?.document?.gst?.path,
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'billing-details' })
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
populateSignatoryDetails(data: any) {
|
|
72
|
+
let obj = {
|
|
73
|
+
name: data?.signatoryDetail?.name,
|
|
74
|
+
email: data?.signatoryDetail?.email,
|
|
75
|
+
number: data?.signatoryDetail?.number,
|
|
76
|
+
designation: data?.signatoryDetail?.designation,
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'signatory-details' })
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
submitForm(e: any) {
|
|
85
|
+
if (e.form === 'brand-info') {
|
|
86
|
+
const formData = new FormData();
|
|
87
|
+
formData.append('logo', e.value.logo);
|
|
88
|
+
formData.append('clientType', e.value.clientType);
|
|
89
|
+
formData.append('headQuarters', e.value.headQuarters);
|
|
90
|
+
formData.append('industry', e.value.industry);
|
|
91
|
+
formData.append('registeredAddress', e.value.registeredAddress);
|
|
92
|
+
formData.append('registeredCompanyName', e.value.registeredCompanyName);
|
|
93
|
+
formData.append('status', e.value.status);
|
|
94
|
+
formData.append('website', e.value.website);
|
|
95
|
+
this.clientApi.updateBrandInfo(this.clientData.clientId, formData).subscribe({
|
|
96
|
+
next: (e) => {
|
|
97
|
+
this.toast.getSuccessToast(e.data?.result)
|
|
98
|
+
this.clientApi.clientFormData.next({value:null, type:'submitted', form:'null'})
|
|
99
|
+
},
|
|
100
|
+
error: (e) => {
|
|
101
|
+
this.toast.getErrorToast(e.error?.error)
|
|
102
|
+
this.populateBrandInfo(this.clientData)
|
|
103
|
+
}
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
} else if (e.form === 'billing-details') {
|
|
107
|
+
const formData = new FormData();
|
|
108
|
+
formData.append('tradeName', e.value.tradeName);
|
|
109
|
+
formData.append('gstNumber', e.value.gstNumber);
|
|
110
|
+
formData.append('gstCertificate', e.value.gstCertificate);
|
|
111
|
+
formData.append('authorityName', e.value.authorityName);
|
|
112
|
+
formData.append('authorityEmail', e.value.authorityEmail);
|
|
113
|
+
formData.append('billingAddress', e.value.billingAddress);
|
|
114
|
+
this.clientApi.updateBillingDetails(this.clientData.clientId, formData).subscribe({
|
|
115
|
+
next: (e) => {
|
|
116
|
+
this.toast.getSuccessToast(e.data?.result)
|
|
117
|
+
this.clientApi.clientFormData.next({value:null, type:'submitted', form:'null'})
|
|
118
|
+
},
|
|
119
|
+
error: (e) => {
|
|
120
|
+
this.toast.getErrorToast(e.error?.error)
|
|
121
|
+
this.populateBillingDetails(this.clientData)
|
|
122
|
+
}
|
|
123
|
+
})
|
|
124
|
+
}else if (e.form === 'signatory-details') {
|
|
125
|
+
this.clientApi.updateSignatoryDetails(this.clientData.clientId, e.value).subscribe({
|
|
126
|
+
next: (e) => {
|
|
127
|
+
this.toast.getSuccessToast(e.data?.result)
|
|
128
|
+
this.clientApi.clientFormData.next({value:null, type:'submitted', form:'null'})
|
|
129
|
+
},
|
|
130
|
+
error: (e) => {
|
|
131
|
+
this.toast.getErrorToast(e.error?.error)
|
|
132
|
+
this.populateSignatoryDetails(this.clientData)
|
|
133
|
+
}
|
|
134
|
+
})
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
resetForm(e:any){
|
|
139
|
+
if (e.form === 'brand-info') {
|
|
140
|
+
this.populateBrandInfo(this.clientData)
|
|
141
|
+
}else
|
|
142
|
+
if (e.form === 'billing-details') {
|
|
143
|
+
this.populateBillingDetails(this.clientData)
|
|
144
|
+
}else
|
|
145
|
+
if (e.form === 'signatory-details') {
|
|
146
|
+
this.populateSignatoryDetails(this.clientData)
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
}
|