simpo-component-library 2.2.226 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/components/delete-hover-element/delete-hover-element.component.mjs +3 -3
  3. package/esm2022/lib/components/document/document.component.mjs +3 -3
  4. package/esm2022/lib/components/image-loading/image-loading.component.mjs +3 -3
  5. package/esm2022/lib/components/payment-details/payment-details.component.mjs +3 -3
  6. package/esm2022/lib/constants/business.constant.mjs +1 -1
  7. package/esm2022/lib/directive/blur-content.directive.mjs +1 -1
  8. package/esm2022/lib/directive/borderlessImage.directive.mjs +1 -1
  9. package/esm2022/lib/directive/button-directive.directive.mjs +1 -1
  10. package/esm2022/lib/directive/color.directive.mjs +1 -1
  11. package/esm2022/lib/directive/column-directive.directive.mjs +1 -1
  12. package/esm2022/lib/directive/container-alignment.directive.mjs +1 -1
  13. package/esm2022/lib/directive/container-fir.directive.mjs +1 -1
  14. package/esm2022/lib/directive/content-title-spacing.directive.mjs +1 -1
  15. package/esm2022/lib/directive/corner-directive.mjs +1 -1
  16. package/esm2022/lib/directive/hoverborder.directive.mjs +1 -1
  17. package/esm2022/lib/directive/image-container.directive.mjs +1 -1
  18. package/esm2022/lib/directive/image-directive.directive.mjs +1 -1
  19. package/esm2022/lib/directive/image-position.directive.mjs +1 -1
  20. package/esm2022/lib/directive/position-layout-directive.directive.mjs +1 -1
  21. package/esm2022/lib/directive/spacing-around.directive.mjs +1 -1
  22. package/esm2022/lib/directive/spacing-horizontal.directive.mjs +1 -1
  23. package/esm2022/lib/directive/sticky-directive.mjs +1 -1
  24. package/esm2022/lib/directive/text-background-directive.directive.mjs +1 -1
  25. package/esm2022/lib/directive/text-size.directive.mjs +1 -1
  26. package/esm2022/lib/directive/wrap-containers.directive.mjs +1 -1
  27. package/esm2022/lib/ecommerce/sections/address/address.component.mjs +3 -3
  28. package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +3 -3
  29. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +3 -3
  30. package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +3 -3
  31. package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
  32. package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +3 -3
  33. package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
  34. package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +3 -3
  35. package/esm2022/lib/ecommerce/sections/checkout/checkout.modal.mjs +1 -1
  36. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.component.mjs +3 -3
  37. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.model.mjs +1 -1
  38. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +3 -3
  39. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
  40. package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +3 -3
  41. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +3 -3
  42. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
  43. package/esm2022/lib/ecommerce/sections/item-varient/item-varient.component.mjs +3 -3
  44. package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +3 -3
  45. package/esm2022/lib/ecommerce/sections/pagnination/pagnination.component.mjs +3 -3
  46. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +3 -3
  47. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.model.mjs +1 -1
  48. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +3 -3
  49. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
  50. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +3 -3
  51. package/esm2022/lib/ecommerce/sections/product-list/product-list.modal.mjs +1 -1
  52. package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +3 -3
  53. package/esm2022/lib/ecommerce/sections/user-basic-info/user-basic-info.component.mjs +3 -3
  54. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +3 -3
  55. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.modal.mjs +1 -1
  56. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +3 -3
  57. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.model.mjs +1 -1
  58. package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +3 -3
  59. package/esm2022/lib/ecommerce/styles/BaseCollection.modal.mjs +1 -1
  60. package/esm2022/lib/ecommerce/styles/Collection.modal.mjs +1 -1
  61. package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
  62. package/esm2022/lib/ecommerce/styles/PincodeLocation.model.mjs +1 -1
  63. package/esm2022/lib/ecommerce/styles/PincodeLocationInter.model.mjs +1 -1
  64. package/esm2022/lib/ecommerce/styles/cart.modal.mjs +1 -1
  65. package/esm2022/lib/ecommerce/styles/category.modal.mjs +1 -1
  66. package/esm2022/lib/ecommerce/styles/order.modal.mjs +1 -1
  67. package/esm2022/lib/ecommerce/styles/product.modal.mjs +1 -1
  68. package/esm2022/lib/ecommerce/styles/review.modal.mjs +1 -1
  69. package/esm2022/lib/ecommerce/styles/user.modal.mjs +1 -1
  70. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +3 -3
  71. package/esm2022/lib/elements/button/button.component.mjs +3 -3
  72. package/esm2022/lib/elements/button/button.model.mjs +1 -1
  73. package/esm2022/lib/elements/card-skeleton-loader/card-skeleton-loader.component.mjs +3 -3
  74. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +3 -3
  75. package/esm2022/lib/elements/heading-element/heading-element.component.mjs +3 -3
  76. package/esm2022/lib/elements/index.mjs +6 -6
  77. package/esm2022/lib/elements/portfolio/portfolio.component.mjs +3 -3
  78. package/esm2022/lib/elements/property/property.component.mjs +41 -0
  79. package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +3 -3
  80. package/esm2022/lib/elements/svg-divider/svg-divider.component.mjs +3 -3
  81. package/esm2022/lib/elements/text/text.component.mjs +3 -3
  82. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +3 -3
  83. package/esm2022/lib/pipes/amount.pipe.mjs +1 -1
  84. package/esm2022/lib/pipes/gender.pipe.mjs +1 -1
  85. package/esm2022/lib/sections/BaseSection.mjs +1 -1
  86. package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +3 -3
  87. package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +3 -3
  88. package/esm2022/lib/sections/appointment-form/appointment-form.model.mjs +1 -1
  89. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +3 -3
  90. package/esm2022/lib/sections/banner-carousel/banner-carousel.model.mjs +1 -1
  91. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +3 -3
  92. package/esm2022/lib/sections/blog-list/blog-list.component.mjs +3 -3
  93. package/esm2022/lib/sections/blog-list/blog-list.model.mjs +1 -1
  94. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +3 -3
  95. package/esm2022/lib/sections/choose-us-section/choose-us-section.model.mjs +1 -1
  96. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +3 -3
  97. package/esm2022/lib/sections/faq-section/faq-section.modal.mjs +1 -1
  98. package/esm2022/lib/sections/features-section/features-section.component.mjs +3 -3
  99. package/esm2022/lib/sections/features-section/features-section.model.mjs +1 -1
  100. package/esm2022/lib/sections/header-text/header-text.component.mjs +3 -3
  101. package/esm2022/lib/sections/header-text/header-text.model.mjs +1 -1
  102. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +3 -3
  103. package/esm2022/lib/sections/image-carousel-section/image-carousel.model.mjs +1 -1
  104. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +3 -3
  105. package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
  106. package/esm2022/lib/sections/image-section/image-section.component.mjs +3 -3
  107. package/esm2022/lib/sections/image-section/image-section.model.mjs +1 -1
  108. package/esm2022/lib/sections/location-section/location-section.component.mjs +3 -3
  109. package/esm2022/lib/sections/location-section/location-section.modal.mjs +1 -1
  110. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +3 -3
  111. package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
  112. package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +12 -41
  113. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
  114. package/esm2022/lib/sections/pricing-section/pricing-section.modal.mjs +1 -1
  115. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +3 -3
  116. package/esm2022/lib/sections/process-modern/process-modern.model.mjs +1 -1
  117. package/esm2022/lib/sections/process-section/process-section.component.mjs +3 -3
  118. package/esm2022/lib/sections/process-section/process-section.modal.mjs +1 -1
  119. package/esm2022/lib/sections/property-component/property-component.component.mjs +7 -78
  120. package/esm2022/lib/sections/property-component/property-component.modal.mjs +1 -1
  121. package/esm2022/lib/sections/property-list/property-list.component.mjs +48 -101
  122. package/esm2022/lib/sections/property-list/property-list.modal.mjs +1 -1
  123. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +3 -3
  124. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.model.mjs +1 -1
  125. package/esm2022/lib/sections/registration-form/registration-form.component.mjs +3 -3
  126. package/esm2022/lib/sections/registration-form/registrationForm.model.mjs +1 -1
  127. package/esm2022/lib/sections/service-section/service-section.component.mjs +3 -3
  128. package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
  129. package/esm2022/lib/sections/skeleton-loader-section/skeleton-loader-section.component.mjs +3 -3
  130. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +3 -3
  131. package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
  132. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +3 -3
  133. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.model.mjs +1 -1
  134. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +3 -3
  135. package/esm2022/lib/sections/testimonial-section/testimonial-section.model.mjs +1 -1
  136. package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +3 -3
  137. package/esm2022/lib/sections/testimonial-video/testimonial-video.model.mjs +1 -1
  138. package/esm2022/lib/sections/text-section/text-section.model.mjs +1 -1
  139. package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +3 -3
  140. package/esm2022/lib/sections/usp-video-section/usp-video-section.model.mjs +1 -1
  141. package/esm2022/lib/sections/video-section/video-section.component.mjs +3 -3
  142. package/esm2022/lib/sections/video-section/video-section.model.mjs +1 -1
  143. package/esm2022/lib/sections/view-blog/view-blog.component.mjs +3 -3
  144. package/esm2022/lib/services/cart.service.mjs +1 -1
  145. package/esm2022/lib/services/endUser.service.mjs +1 -1
  146. package/esm2022/lib/services/events.service.mjs +1 -2
  147. package/esm2022/lib/services/image-upload-service.service.mjs +1 -1
  148. package/esm2022/lib/services/rest.service.mjs +3 -71
  149. package/esm2022/lib/services/sanitizeHtml.mjs +1 -1
  150. package/esm2022/lib/services/storage.service.mjs +1 -1
  151. package/esm2022/lib/styles/index.mjs +1 -6
  152. package/esm2022/lib/styles/style.model.mjs +1 -1
  153. package/esm2022/lib/styles/types.mjs +1 -1
  154. package/esm2022/public-api.mjs +1 -5
  155. package/fesm2022/simpo-component-library.mjs +1480 -2514
  156. package/fesm2022/simpo-component-library.mjs.map +1 -1
  157. package/lib/elements/index.d.ts +3 -3
  158. package/lib/elements/property/property.component.d.ts +8 -0
  159. package/lib/sections/navbar-section/navbar-section.component.d.ts +1 -9
  160. package/lib/sections/property-component/property-component.component.d.ts +4 -24
  161. package/lib/sections/property-component/property-component.modal.d.ts +18 -11
  162. package/lib/sections/property-list/property-list.component.d.ts +1 -7
  163. package/lib/services/events.service.d.ts +0 -1
  164. package/lib/services/rest.service.d.ts +0 -18
  165. package/lib/styles/index.d.ts +0 -4
  166. package/package.json +1 -1
  167. package/public-api.d.ts +0 -4
  168. package/simpo-component-library-3.0.0.tgz +0 -0
  169. package/src/lib/styles/global-styles.css +86 -86
  170. package/esm2022/lib/elements/my-documents/my-documents.component.mjs +0 -11
  171. package/esm2022/lib/elements/my-orders/my-orders.component.mjs +0 -64
  172. package/esm2022/lib/elements/my-statement/my-statement.component.mjs +0 -26
  173. package/esm2022/lib/elements/need-help/need-help.component.mjs +0 -11
  174. package/esm2022/lib/elements/payment-confirmation/payment-confirmation.component.mjs +0 -90
  175. package/esm2022/lib/elements/properties/properties.component.mjs +0 -70
  176. package/esm2022/lib/elements/property-view/property-view.component.mjs +0 -42
  177. package/esm2022/lib/sections/kyc-details/kyc-details.component.mjs +0 -163
  178. package/esm2022/lib/sections/profile-section/profile-section.component.mjs +0 -52
  179. package/esm2022/lib/sections/profile-section/profile-section.modal.mjs +0 -2
  180. package/esm2022/lib/sections/property-detail/property-detail.component.mjs +0 -121
  181. package/esm2022/lib/sections/property-detail/property-detail.model.mjs +0 -2
  182. package/esm2022/lib/sections/signup-signin/signup-signin.component.mjs +0 -278
  183. package/esm2022/lib/sections/signup-signin/signup-signin.model.mjs +0 -2
  184. package/esm2022/lib/sections/verify-property-payment/verify-property-payment.component.mjs +0 -55
  185. package/lib/elements/my-documents/my-documents.component.d.ts +0 -5
  186. package/lib/elements/my-orders/my-orders.component.d.ts +0 -10
  187. package/lib/elements/my-statement/my-statement.component.d.ts +0 -8
  188. package/lib/elements/need-help/need-help.component.d.ts +0 -5
  189. package/lib/elements/payment-confirmation/payment-confirmation.component.d.ts +0 -25
  190. package/lib/elements/properties/properties.component.d.ts +0 -12
  191. package/lib/elements/property-view/property-view.component.d.ts +0 -8
  192. package/lib/sections/kyc-details/kyc-details.component.d.ts +0 -38
  193. package/lib/sections/profile-section/profile-section.component.d.ts +0 -16
  194. package/lib/sections/profile-section/profile-section.modal.d.ts +0 -5
  195. package/lib/sections/property-detail/property-detail.component.d.ts +0 -32
  196. package/lib/sections/property-detail/property-detail.model.d.ts +0 -5
  197. package/lib/sections/signup-signin/signup-signin.component.d.ts +0 -49
  198. package/lib/sections/signup-signin/signup-signin.model.d.ts +0 -10
  199. package/lib/sections/verify-property-payment/verify-property-payment.component.d.ts +0 -16
  200. package/simpo-component-library-2.2.226.tgz +0 -0
@@ -1,163 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, Optional } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { MessageService } from 'primeng/api';
6
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
7
- import { ToastModule } from 'primeng/toast';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../../services/rest.service";
10
- import * as i2 from "primeng/api";
11
- import * as i3 from "@angular/router";
12
- import * as i4 from "@angular/material/dialog";
13
- import * as i5 from "@angular/material/icon";
14
- import * as i6 from "@angular/common";
15
- import * as i7 from "@angular/forms";
16
- import * as i8 from "@angular/material/progress-spinner";
17
- import * as i9 from "primeng/toast";
18
- export class KycDetailsComponent {
19
- constructor(restService, messageService, router, dialogRef) {
20
- this.restService = restService;
21
- this.messageService = messageService;
22
- this.router = router;
23
- this.dialogRef = dialogRef;
24
- this.panRequest = {
25
- panNumber: ''
26
- };
27
- this.aadharRequest = {
28
- aadhaarNumber: ''
29
- };
30
- this.verifyAadharRequest = {
31
- otp: '',
32
- refId: '',
33
- aadhaarNumber: ''
34
- };
35
- this.aadharOtpArray = new Array(6).fill('');
36
- this.isPanVerified = false;
37
- this.isAadharverified = false;
38
- this.aadharOtpSent = false;
39
- this.panVerifyLoader = false;
40
- this.aadharVerifyLoader = false;
41
- }
42
- ngOnInit() {
43
- this.getKycDetails();
44
- }
45
- ngOnDestroy() {
46
- this.kycDetailsSubscription?.unsubscribe();
47
- }
48
- getKycDetails() {
49
- this.kycDetailsSubscription = this.restService.getKycDetails().subscribe((res) => {
50
- if (res.message) {
51
- this.isPanVerified = res.message.panVerified === 'VALID';
52
- this.isAadharverified = res.message.aadhaarVerified === 'VALID';
53
- this.aadharRequest.aadhaarNumber = res.message.aadharNo;
54
- this.panRequest.panNumber = res.message.panNo;
55
- }
56
- }, (err) => {
57
- });
58
- }
59
- verifyPanNumber() {
60
- this.panVerifyLoader = true;
61
- if (!this.validatePan()) {
62
- this.messageService.add({
63
- severity: 'error',
64
- summary: 'Pan Number',
65
- detail: 'Enter valid PAN number'
66
- });
67
- this.panVerifyLoader = false;
68
- return;
69
- }
70
- this.restService.verifyPan(this.panRequest).subscribe((res) => {
71
- this.isPanVerified = true;
72
- this.restService.kycDetails = null;
73
- this.panVerifyLoader = false;
74
- ;
75
- this.checkKycVerification();
76
- }, () => {
77
- this.panVerifyLoader = false;
78
- });
79
- }
80
- validatePan() {
81
- const panRegex = /^[A-Z]{5}[0-9]{4}[A-Z]$/;
82
- return panRegex.test(this.panRequest.panNumber);
83
- }
84
- sendAadharOtp() {
85
- this.aadharVerifyLoader = true;
86
- if (!this.validateAadhaar()) {
87
- this.messageService.add({
88
- severity: 'error',
89
- summary: 'Aadhar Number',
90
- detail: 'Enter valid Aadhar number'
91
- });
92
- this.aadharVerifyLoader = false;
93
- return;
94
- }
95
- this.restService.sendAadharOtp(this.aadharRequest).subscribe((res) => {
96
- this.aadharOtpSent = true;
97
- this.messageService.add({
98
- severity: 'success',
99
- summary: 'OTP Sent',
100
- detail: 'AAdhar OTP Sent in registered mobile number'
101
- });
102
- this.aadharVerifyLoader = false;
103
- this.verifyAadharRequest.refId = res.message?.ref_id;
104
- }, () => {
105
- this.aadharVerifyLoader = false;
106
- });
107
- }
108
- verifyAadharOtp() {
109
- this.aadharVerifyLoader = true;
110
- this.verifyAadharRequest.otp = "";
111
- this.aadharOtpArray.forEach((otp) => {
112
- this.verifyAadharRequest.otp += otp;
113
- });
114
- this.verifyAadharRequest.aadhaarNumber = this.aadharRequest.aadhaarNumber;
115
- this.restService.verifyAadharOtp(this.verifyAadharRequest).subscribe((res) => {
116
- this.isAadharverified = true;
117
- this.restService.kycDetails = null;
118
- this.aadharVerifyLoader = false;
119
- this.checkKycVerification();
120
- }, () => {
121
- this.aadharVerifyLoader = false;
122
- });
123
- }
124
- validateAadhaar() {
125
- const aadhaarRegex = /^[2-9]{1}[0-9]{11}$/;
126
- return aadhaarRegex.test(this.aadharRequest.aadhaarNumber);
127
- }
128
- moveAadharOtpCursor(event, idx) {
129
- if (isNaN(Number(event.key)) && event.code != "Backspace")
130
- return;
131
- if (event.code != "Backspace") {
132
- this.aadharOtpArray[idx] = event.key;
133
- document.getElementById("aadharOtp_" + (idx + 1))?.focus();
134
- }
135
- if (event.code == "Backspace" && !this.aadharOtpArray[idx]) {
136
- document.getElementById("aadharOtp_" + (idx - 1))?.focus();
137
- }
138
- }
139
- checkKycVerification() {
140
- if (this.isAadharverified && this.isPanVerified) {
141
- document.getElementById('closeKycCanvas')?.click();
142
- this.dialogRef?.close();
143
- }
144
- }
145
- closeDialog() {
146
- this.dialogRef?.close();
147
- }
148
- redirectToProductList() {
149
- this.router.navigate(['property-list']);
150
- }
151
- get isMobile() {
152
- return window.innerWidth <= 475;
153
- }
154
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: KycDetailsComponent, deps: [{ token: i1.RestService }, { token: i2.MessageService }, { token: i3.Router }, { token: i4.MatDialogRef, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
155
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: KycDetailsComponent, isStandalone: true, selector: "simpo-kyc-details", providers: [MessageService], ngImport: i0, template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n\r\n<section class=\"main-section\">\r\n <div class=\"display-center\" *ngIf=\"!(isPanVerified && isAadharverified)\">\r\n <img class=\"img\" src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/970332c1740030187726kyc.png\"\r\n alt=\"\">\r\n <div class=\"text-group\">\r\n <p class=\"heading\">Complete Your KYC to start Investing</p>\r\n <p class=\"desc\">Before you can invest, we need to verify your identity, simply upload your documents,\r\n <br> submit your KYC, and let us handle the rest\r\n </p>\r\n </div>\r\n <button class=\"submit-btn\" type=\"button\" data-bs-toggle=\"offcanvas\" data-bs-target=\"#offcanvasRight\"\r\n aria-controls=\"offcanvasRight\">Submit KYC Now</button>\r\n </div>\r\n <div *ngIf=\"isPanVerified && isAadharverified\" class=\"display-center\">\r\n <div class=\"w-50\">\r\n <div class=\"secured\">\r\n <mat-icon>security</mat-icon>\r\n <p>Your Data is Safe & Secure</p>\r\n </div>\r\n\r\n <div class=\"mt-2\">\r\n <div class=\"d-flex justify-space\">\r\n <label for=\"\">PAN Number</label>\r\n </div>\r\n <div class=\"input-box\">\r\n <input type=\"text\" [(ngModel)]=\"panRequest.panNumber\" disabled>\r\n <mat-icon class=\"verified\" title=\"OTP Verified\">check_circle</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"mt-1\">\r\n <div class=\"d-flex justify-space\">\r\n <label for=\"\">Aadhar Number</label>\r\n </div>\r\n <div class=\"input-box\">\r\n <input type=\"text\" [(ngModel)]=\"aadharRequest.aadhaarNumber\" disabled>\r\n <mat-icon class=\"verified\" title=\"OTP Verified\">check_circle</mat-icon>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-15 text-center\">\r\n <button class=\"submit-btn\" (click)=\"redirectToProductList()\">Let's Grow Wealth</button>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n\r\n<div class=\"offcanvas offcanvas-end\" tabindex=\"-1\" id=\"offcanvasRight\" aria-labelledby=\"offcanvasRightLabel\">\r\n <div class=\"header\">\r\n <p>KYC Details</p>\r\n </div>\r\n <div class=\"middle-section\">\r\n <div class=\"body\">\r\n <div class=\"secured\">\r\n <mat-icon>security</mat-icon>\r\n <p>Your Data is Safe & Secure</p>\r\n </div>\r\n\r\n <div class=\"mt-2\">\r\n <div class=\"d-flex justify-space\">\r\n <label for=\"\">PAN Number</label>\r\n <p class=\"verify-text\" (click)=\"verifyPanNumber()\" *ngIf=\"!isPanVerified && !panVerifyLoader\">Verify</p>\r\n <div *ngIf=\"panVerifyLoader\" class=\"kyc-detail\"><mat-spinner></mat-spinner></div>\r\n </div>\r\n <div class=\"input-box\">\r\n <input type=\"text\" [(ngModel)]=\"panRequest.panNumber\" [disabled]=\"isPanVerified\">\r\n <mat-icon class=\"verified\" title=\"OTP Verified\" *ngIf=\"isPanVerified\">check_circle</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"mt-1\">\r\n <div class=\"d-flex justify-space\">\r\n <label for=\"\">Aadhar Number</label>\r\n <p class=\"verify-text\" (click)=\"sendAadharOtp()\" *ngIf=\"!aadharOtpSent && !aadharVerifyLoader\">Send OTP</p>\r\n <div *ngIf=\"aadharVerifyLoader && !aadharOtpSent\" class=\"kyc-detail\"><mat-spinner></mat-spinner></div>\r\n </div>\r\n <div class=\"input-box\">\r\n <input type=\"text\" [(ngModel)]=\"aadharRequest.aadhaarNumber\" [disabled]=\"isAadharverified\">\r\n <mat-icon class=\"verified\" title=\"OTP Verified\" *ngIf=\"aadharOtpSent\">check_circle</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"mt-1\" *ngIf=\"aadharOtpSent\">\r\n <label for=\"\">Enter OTP</label>\r\n\r\n <div id=\"otp\" class=\"otp-input\">\r\n <ng-container *ngFor=\"let otp of [1,2,3,4,5,6]; let idx = index\">\r\n <input type=\"number\" max=\"9\" class=\"otp-input\" [(ngModel)]=\"aadharOtpArray[idx]\"\r\n (keyup)=\"moveAadharOtpCursor($event, idx)\" [id]=\"'aadharOtp_'+idx\" />\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer\">\r\n <button class=\"cancel-btn\" data-bs-dismiss=\"offcanvas\" id=\"closeKycCanvas\" (click)=\"closeDialog()\">Cancel</button>\r\n <button class=\"submit-btn\" *ngIf=\"aadharOtpSent && !aadharVerifyLoader\" (click)=\"verifyAadharOtp()\">Verify</button>\r\n <button class=\"d-flex submit-btn\" *ngIf=\"aadharVerifyLoader && aadharOtpSent\">\r\n <mat-spinner></mat-spinner> Verifying\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".main-section{height:100%;background:#fff;border-radius:10px}.display-center{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.img{width:35%}.text-group{text-align:center;margin-top:3rem;margin-bottom:2rem}.heading{font-size:14px;font-family:DM SANS;font-weight:700;color:#000}.desc{font-size:14px;color:#0009;font-family:DM SANS;font-weight:500}.submit-btn{width:max-content!important;outline:none;border:1px solid rgba(248,169,56,1);background:#f8a938;color:#fff;border-radius:5px;font-size:16px!important;font-family:DM SANS;padding:7px 20px}.cancel-btn{width:max-content!important;outline:none;border:1px solid rgba(248,169,56,1);background:transparent;color:#f8a938;border-radius:5px;font-size:16px!important;font-family:DM SANS;padding:7px 20px}.header{padding:20px;border:1px solid rgba(14,35,60,.16);height:60px}.header p{font-size:17px;margin-bottom:0;font-weight:600;font-family:Inter}.middle-section{height:calc(100vh - 120px);overflow:scroll;background:#fcfcfc}.footer{position:absolute;bottom:0;height:60px;display:flex;align-items:center;justify-content:flex-end;border-top:1px solid rgba(14,35,60,.16);width:100%;padding:20px;gap:14px}.mat-mdc-progress-spinner{height:20px!important;width:20px!important}.offcanvas{width:40%;z-index:100000000}.body{background:#fff;margin:2.5rem;padding:2rem;border-radius:10px}.body label{font-size:14px;font-family:DM SANS;color:#434443;font-weight:400}.w-50{width:50%}.secured{display:flex;justify-content:center;gap:10px}.secured p{font-size:15px;font-family:DM SANS;font-weight:400;color:#0009}.secured mat-icon{display:flex;font-size:18px;color:#00dd80;align-items:center;justify-content:center}.input-box{width:100%;display:flex;justify-content:space-between;padding:10px;border:1px solid rgba(208,213,221,1);border-radius:7px;margin-top:8px}.input-box input{width:90%;border:none;outline:none;font-size:16px;font-family:DM SANS;background:#fff}.verified{color:#1ac100}p{margin-bottom:0}.mt-2{margin-top:2rem!important}.mt-1{margin-top:1rem!important}.mt-15{margin-top:1.5rem}.otp-input{display:flex;gap:20px;margin-top:8px}.otp-input input{width:59px;border:1px solid rgba(208,213,221,1);height:54px;border-radius:8px;outline:none;justify-content:center;text-align:center}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.justify-space{justify-content:space-between}.verify-text{font-size:13px;font-family:DM SANS;color:#f8a938;cursor:pointer}@media screen and (max-width: 475px){.offcanvas{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }] }); }
156
- }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: KycDetailsComponent, decorators: [{
158
- type: Component,
159
- args: [{ selector: 'simpo-kyc-details', standalone: true, imports: [MatIconModule, CommonModule, FormsModule, MatProgressSpinnerModule, ToastModule], providers: [MessageService], template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n\r\n<section class=\"main-section\">\r\n <div class=\"display-center\" *ngIf=\"!(isPanVerified && isAadharverified)\">\r\n <img class=\"img\" src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/970332c1740030187726kyc.png\"\r\n alt=\"\">\r\n <div class=\"text-group\">\r\n <p class=\"heading\">Complete Your KYC to start Investing</p>\r\n <p class=\"desc\">Before you can invest, we need to verify your identity, simply upload your documents,\r\n <br> submit your KYC, and let us handle the rest\r\n </p>\r\n </div>\r\n <button class=\"submit-btn\" type=\"button\" data-bs-toggle=\"offcanvas\" data-bs-target=\"#offcanvasRight\"\r\n aria-controls=\"offcanvasRight\">Submit KYC Now</button>\r\n </div>\r\n <div *ngIf=\"isPanVerified && isAadharverified\" class=\"display-center\">\r\n <div class=\"w-50\">\r\n <div class=\"secured\">\r\n <mat-icon>security</mat-icon>\r\n <p>Your Data is Safe & Secure</p>\r\n </div>\r\n\r\n <div class=\"mt-2\">\r\n <div class=\"d-flex justify-space\">\r\n <label for=\"\">PAN Number</label>\r\n </div>\r\n <div class=\"input-box\">\r\n <input type=\"text\" [(ngModel)]=\"panRequest.panNumber\" disabled>\r\n <mat-icon class=\"verified\" title=\"OTP Verified\">check_circle</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"mt-1\">\r\n <div class=\"d-flex justify-space\">\r\n <label for=\"\">Aadhar Number</label>\r\n </div>\r\n <div class=\"input-box\">\r\n <input type=\"text\" [(ngModel)]=\"aadharRequest.aadhaarNumber\" disabled>\r\n <mat-icon class=\"verified\" title=\"OTP Verified\">check_circle</mat-icon>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-15 text-center\">\r\n <button class=\"submit-btn\" (click)=\"redirectToProductList()\">Let's Grow Wealth</button>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n\r\n<div class=\"offcanvas offcanvas-end\" tabindex=\"-1\" id=\"offcanvasRight\" aria-labelledby=\"offcanvasRightLabel\">\r\n <div class=\"header\">\r\n <p>KYC Details</p>\r\n </div>\r\n <div class=\"middle-section\">\r\n <div class=\"body\">\r\n <div class=\"secured\">\r\n <mat-icon>security</mat-icon>\r\n <p>Your Data is Safe & Secure</p>\r\n </div>\r\n\r\n <div class=\"mt-2\">\r\n <div class=\"d-flex justify-space\">\r\n <label for=\"\">PAN Number</label>\r\n <p class=\"verify-text\" (click)=\"verifyPanNumber()\" *ngIf=\"!isPanVerified && !panVerifyLoader\">Verify</p>\r\n <div *ngIf=\"panVerifyLoader\" class=\"kyc-detail\"><mat-spinner></mat-spinner></div>\r\n </div>\r\n <div class=\"input-box\">\r\n <input type=\"text\" [(ngModel)]=\"panRequest.panNumber\" [disabled]=\"isPanVerified\">\r\n <mat-icon class=\"verified\" title=\"OTP Verified\" *ngIf=\"isPanVerified\">check_circle</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"mt-1\">\r\n <div class=\"d-flex justify-space\">\r\n <label for=\"\">Aadhar Number</label>\r\n <p class=\"verify-text\" (click)=\"sendAadharOtp()\" *ngIf=\"!aadharOtpSent && !aadharVerifyLoader\">Send OTP</p>\r\n <div *ngIf=\"aadharVerifyLoader && !aadharOtpSent\" class=\"kyc-detail\"><mat-spinner></mat-spinner></div>\r\n </div>\r\n <div class=\"input-box\">\r\n <input type=\"text\" [(ngModel)]=\"aadharRequest.aadhaarNumber\" [disabled]=\"isAadharverified\">\r\n <mat-icon class=\"verified\" title=\"OTP Verified\" *ngIf=\"aadharOtpSent\">check_circle</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"mt-1\" *ngIf=\"aadharOtpSent\">\r\n <label for=\"\">Enter OTP</label>\r\n\r\n <div id=\"otp\" class=\"otp-input\">\r\n <ng-container *ngFor=\"let otp of [1,2,3,4,5,6]; let idx = index\">\r\n <input type=\"number\" max=\"9\" class=\"otp-input\" [(ngModel)]=\"aadharOtpArray[idx]\"\r\n (keyup)=\"moveAadharOtpCursor($event, idx)\" [id]=\"'aadharOtp_'+idx\" />\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"footer\">\r\n <button class=\"cancel-btn\" data-bs-dismiss=\"offcanvas\" id=\"closeKycCanvas\" (click)=\"closeDialog()\">Cancel</button>\r\n <button class=\"submit-btn\" *ngIf=\"aadharOtpSent && !aadharVerifyLoader\" (click)=\"verifyAadharOtp()\">Verify</button>\r\n <button class=\"d-flex submit-btn\" *ngIf=\"aadharVerifyLoader && aadharOtpSent\">\r\n <mat-spinner></mat-spinner> Verifying\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".main-section{height:100%;background:#fff;border-radius:10px}.display-center{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.img{width:35%}.text-group{text-align:center;margin-top:3rem;margin-bottom:2rem}.heading{font-size:14px;font-family:DM SANS;font-weight:700;color:#000}.desc{font-size:14px;color:#0009;font-family:DM SANS;font-weight:500}.submit-btn{width:max-content!important;outline:none;border:1px solid rgba(248,169,56,1);background:#f8a938;color:#fff;border-radius:5px;font-size:16px!important;font-family:DM SANS;padding:7px 20px}.cancel-btn{width:max-content!important;outline:none;border:1px solid rgba(248,169,56,1);background:transparent;color:#f8a938;border-radius:5px;font-size:16px!important;font-family:DM SANS;padding:7px 20px}.header{padding:20px;border:1px solid rgba(14,35,60,.16);height:60px}.header p{font-size:17px;margin-bottom:0;font-weight:600;font-family:Inter}.middle-section{height:calc(100vh - 120px);overflow:scroll;background:#fcfcfc}.footer{position:absolute;bottom:0;height:60px;display:flex;align-items:center;justify-content:flex-end;border-top:1px solid rgba(14,35,60,.16);width:100%;padding:20px;gap:14px}.mat-mdc-progress-spinner{height:20px!important;width:20px!important}.offcanvas{width:40%;z-index:100000000}.body{background:#fff;margin:2.5rem;padding:2rem;border-radius:10px}.body label{font-size:14px;font-family:DM SANS;color:#434443;font-weight:400}.w-50{width:50%}.secured{display:flex;justify-content:center;gap:10px}.secured p{font-size:15px;font-family:DM SANS;font-weight:400;color:#0009}.secured mat-icon{display:flex;font-size:18px;color:#00dd80;align-items:center;justify-content:center}.input-box{width:100%;display:flex;justify-content:space-between;padding:10px;border:1px solid rgba(208,213,221,1);border-radius:7px;margin-top:8px}.input-box input{width:90%;border:none;outline:none;font-size:16px;font-family:DM SANS;background:#fff}.verified{color:#1ac100}p{margin-bottom:0}.mt-2{margin-top:2rem!important}.mt-1{margin-top:1rem!important}.mt-15{margin-top:1.5rem}.otp-input{display:flex;gap:20px;margin-top:8px}.otp-input input{width:59px;border:1px solid rgba(208,213,221,1);height:54px;border-radius:8px;outline:none;justify-content:center;text-align:center}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.justify-space{justify-content:space-between}.verify-text{font-size:13px;font-family:DM SANS;color:#f8a938;cursor:pointer}@media screen and (max-width: 475px){.offcanvas{width:100%}}\n"] }]
160
- }], ctorParameters: () => [{ type: i1.RestService }, { type: i2.MessageService }, { type: i3.Router }, { type: i4.MatDialogRef, decorators: [{
161
- type: Optional
162
- }] }] });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ljLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9reWMtZGV0YWlscy9reWMtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2t5Yy1kZXRhaWxzL2t5Yy1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7QUFXNUMsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUFvQixXQUF3QixFQUN6QixjQUE4QixFQUN2QyxNQUFjLEVBQ08sU0FBNEM7UUFIdkQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ3ZDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDTyxjQUFTLEdBQVQsU0FBUyxDQUFtQztRQUczRSxlQUFVLEdBQVE7WUFDaEIsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFBO1FBRUQsa0JBQWEsR0FBUTtZQUNuQixhQUFhLEVBQUUsRUFBRTtTQUNsQixDQUFBO1FBRUQsd0JBQW1CLEdBQVE7WUFDekIs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O0lBRUQsb0JBQW9CO1FBQ2xCLElBQUcsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMvQyxRQUFRLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUE7WUFDbEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDO0lBQ2xDLENBQUM7OEdBM0pVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGdFQUpuQixDQUFDLGNBQWMsQ0FBQywwQkNoQjdCLGt4SkFzR0EsMGtGRHZGWSxhQUFhLG1MQUFFLFlBQVksK1BBQUUsV0FBVywyOEJBQUUsd0JBQXdCLGtPQUFFLFdBQVc7OzJGQUs5RSxtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFLFdBQVcsQ0FBQyxhQUMvRSxDQUFDLGNBQWMsQ0FBQzs7MEJBUXhCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8ta3ljLWRldGFpbHMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsIENvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSwgVG9hc3RNb2R1bGVdLFxyXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4va3ljLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9reWMtZGV0YWlscy5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ljRGV0YWlsc0NvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEt5Y0RldGFpbHNDb21wb25lbnQ+XHJcbiAgKSB7fVxyXG5cclxuICBwYW5SZXF1ZXN0OiBhbnkgPSB7XHJcbiAgICBwYW5OdW1iZXI6ICcnXHJcbiAgfVxyXG5cclxuICBhYWRoYXJSZXF1ZXN0OiBhbnkgPSB7XHJcbiAgICBhYWRoYWFyTnVtYmVyOiAnJ1xyXG4gIH1cclxuXHJcbiAgdmVyaWZ5QWFkaGFyUmVxdWVzdDogYW55ID0ge1xyXG4gICAgb3RwOiAnJyxcclxuICAgIHJlZklkOiAnJyxcclxuICAgIGFhZGhhYXJOdW1iZXI6ICcnXHJcbiAgfVxyXG4gIGFhZGhhck90cEFycmF5ID0gbmV3IEFycmF5KDYpLmZpbGwoJycpXHJcbiAgaXNQYW5WZXJpZmllZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzQWFkaGFydmVyaWZpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhYWRoYXJPdHBTZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGFuVmVyaWZ5TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWFkaGFyVmVyaWZ5TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAga3ljRGV0YWlsc1N1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmdldEt5Y0RldGFpbHMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5reWNEZXRhaWxzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0S3ljRGV0YWlscygpIHtcclxuICAgIHRoaXMua3ljRGV0YWlsc1N1YnNjcmlwdGlvbiA9IHRoaXMucmVzdFNlcnZpY2UuZ2V0S3ljRGV0YWlscygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYocmVzLm1lc3NhZ2UpIHtcclxuICAgICAgICB0aGlzLmlzUGFuVmVyaWZpZWQgPSByZXMubWVzc2FnZS5wYW5WZXJpZmllZCA9PT0gJ1ZBTElEJztcclxuICAgICAgICB0aGlzLmlzQWFkaGFydmVyaWZpZWQgPSByZXMubWVzc2FnZS5hYWRoYWFyVmVyaWZpZWQgPT09ICdWQUxJRCc7XHJcbiAgICAgICAgdGhpcy5hYWRoYXJSZXF1ZXN0LmFhZGhhYXJOdW1iZXIgPSByZXMubWVzc2FnZS5hYWRoYXJOb1xyXG4gICAgICAgIHRoaXMucGFuUmVxdWVzdC5wYW5OdW1iZXIgPSByZXMubWVzc2FnZS5wYW5ObztcclxuICAgICAgfVxyXG4gICAgfSwgKGVycikgPT4ge1xyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB2ZXJpZnlQYW5OdW1iZXIoKSB7XHJcbiAgICB0aGlzLnBhblZlcmlmeUxvYWRlciA9IHRydWU7XHJcbiAgICBpZighdGhpcy52YWxpZGF0ZVBhbigpKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcclxuICAgICAgICBzdW1tYXJ5OiAnUGFuIE51bWJlcicsXHJcbiAgICAgICAgZGV0YWlsOiAnRW50ZXIgdmFsaWQgUEFOIG51bWJlcidcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMucGFuVmVyaWZ5TG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMucmVzdFNlcnZpY2UudmVyaWZ5UGFuKHRoaXMucGFuUmVxdWVzdCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmlzUGFuVmVyaWZpZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnJlc3RTZXJ2aWNlLmt5Y0RldGFpbHMgPSBudWxsO1xyXG4gICAgICB0aGlzLnBhblZlcmlmeUxvYWRlciA9IGZhbHNlOztcclxuICAgICAgdGhpcy5jaGVja0t5Y1ZlcmlmaWNhdGlvbigpO1xyXG4gICAgfSwgKCkgPT4ge1xyXG4gICAgICB0aGlzLnBhblZlcmlmeUxvYWRlciA9IGZhbHNlO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlUGFuKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcGFuUmVnZXggPSAvXltBLVpdezV9WzAtOV17NH1bQS1aXSQvO1xyXG4gICAgcmV0dXJuIHBhblJlZ2V4LnRlc3QodGhpcy5wYW5SZXF1ZXN0LnBhbk51bWJlcik7XHJcbiAgfVxyXG5cclxuICBzZW5kQWFkaGFyT3RwKCkge1xyXG4gICAgdGhpcy5hYWRoYXJWZXJpZnlMb2FkZXIgPSB0cnVlO1xyXG4gICAgaWYoIXRoaXMudmFsaWRhdGVBYWRoYWFyKCkpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxyXG4gICAgICAgIHN1bW1hcnk6ICdBYWRoYXIgTnVtYmVyJyxcclxuICAgICAgICBkZXRhaWw6ICdFbnRlciB2YWxpZCBBYWRoYXIgbnVtYmVyJ1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5hYWRoYXJWZXJpZnlMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVzdFNlcnZpY2Uuc2VuZEFhZGhhck90cCh0aGlzLmFhZGhhclJlcXVlc3QpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5hYWRoYXJPdHBTZW50ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgIHNldmVyaXR5OiAnc3VjY2VzcycsXHJcbiAgICAgICAgc3VtbWFyeTogJ09UUCBTZW50JyxcclxuICAgICAgICBkZXRhaWw6ICdBQWRoYXIgT1RQIFNlbnQgaW4gcmVnaXN0ZXJlZCBtb2JpbGUgbnVtYmVyJ1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5hYWRoYXJWZXJpZnlMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy52ZXJpZnlBYWRoYXJSZXF1ZXN0LnJlZklkID0gcmVzLm1lc3NhZ2U/LnJlZl9pZDtcclxuICAgIH0sKCkgPT4ge1xyXG4gICAgICB0aGlzLmFhZGhhclZlcmlmeUxvYWRlciA9IGZhbHNlO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHZlcmlmeUFhZGhhck90cCgpIHtcclxuICAgIHRoaXMuYWFkaGFyVmVyaWZ5TG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMudmVyaWZ5QWFkaGFyUmVxdWVzdC5vdHAgPSBcIlwiO1xyXG4gICAgdGhpcy5hYWRoYXJPdHBBcnJheS5mb3JFYWNoKChvdHApID0+IHtcclxuICAgICAgdGhpcy52ZXJpZnlBYWRoYXJSZXF1ZXN0Lm90cCArPSBvdHBcclxuICAgIH0pXHJcbiAgICB0aGlzLnZlcmlmeUFhZGhhclJlcXVlc3QuYWFkaGFhck51bWJlciA9IHRoaXMuYWFkaGFyUmVxdWVzdC5hYWRoYWFyTnVtYmVyO1xyXG5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UudmVyaWZ5QWFkaGFyT3RwKHRoaXMudmVyaWZ5QWFkaGFyUmVxdWVzdCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmlzQWFkaGFydmVyaWZpZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnJlc3RTZXJ2aWNlLmt5Y0RldGFpbHMgPSBudWxsO1xyXG4gICAgICB0aGlzLmFhZGhhclZlcmlmeUxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNoZWNrS3ljVmVyaWZpY2F0aW9uKCk7XHJcbiAgICB9LCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuYWFkaGFyVmVyaWZ5TG9hZGVyID0gZmFsc2U7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVBYWRoYWFyKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgYWFkaGFhclJlZ2V4ID0gL15bMi05XXsxfVswLTldezExfSQvO1xyXG4gICAgcmV0dXJuIGFhZGhhYXJSZWdleC50ZXN0KHRoaXMuYWFkaGFyUmVxdWVzdC5hYWRoYWFyTnVtYmVyKTtcclxuICB9XHJcblxyXG4gIG1vdmVBYWRoYXJPdHBDdXJzb3IoZXZlbnQ6IGFueSwgaWR4OiBudW1iZXIpIHtcclxuXHJcbiAgICBpZiAoaXNOYU4oTnVtYmVyKGV2ZW50LmtleSkpICYmIGV2ZW50LmNvZGUgIT0gXCJCYWNrc3BhY2VcIilcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGlmIChldmVudC5jb2RlICE9IFwiQmFja3NwYWNlXCIpIHtcclxuICAgICAgdGhpcy5hYWRoYXJPdHBBcnJheVtpZHhdID0gZXZlbnQua2V5O1xyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFhZGhhck90cF9cIiArIChpZHggKyAxKSk/LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQuY29kZSA9PSBcIkJhY2tzcGFjZVwiICYmICF0aGlzLmFhZGhhck90cEFycmF5W2lkeF0pIHtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJhYWRoYXJPdHBfXCIgKyAoaWR4IC0gMSkpPy5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tLeWNWZXJpZmljYXRpb24oKSB7XHJcbiAgICBpZih0aGlzLmlzQWFkaGFydmVyaWZpZWQgJiYgdGhpcy5pc1BhblZlcmlmaWVkKSB7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbG9zZUt5Y0NhbnZhcycpPy5jbGljaygpXHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VG9Qcm9kdWN0TGlzdCgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsncHJvcGVydHktbGlzdCddKVxyXG4gIH1cclxuXHJcbiAgZ2V0IGlzTW9iaWxlKCkge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NTtcclxuICB9XHJcbn1cclxuIiwiPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIlxyXG4gICAgW3Nob3dUcmFuc2Zvcm1PcHRpb25zXT1cImlzTW9iaWxlID8gJ3RyYW5zbGF0ZVkoLTEwMCUpJyA6ICcnXCI+PC9wLXRvYXN0PlxyXG5cclxuPHNlY3Rpb24gY2xhc3M9XCJtYWluLXNlY3Rpb25cIj5cclxuICA8ZGl2IGNsYXNzPVwiZGlzcGxheS1jZW50ZXJcIiAqbmdJZj1cIiEoaXNQYW5WZXJpZmllZCAmJiBpc0FhZGhhcnZlcmlmaWVkKVwiPlxyXG4gICAgPGltZyBjbGFzcz1cImltZ1wiIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvOTcwMzMyYzE3NDAwMzAxODc3MjZreWMucG5nXCJcclxuICAgICAgYWx0PVwiXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncm91cFwiPlxyXG4gICAgICA8cCBjbGFzcz1cImhlYWRpbmdcIj5Db21wbGV0ZSBZb3VyIEtZQyB0byBzdGFydCBJbnZlc3Rpbmc8L3A+XHJcbiAgICAgIDxwIGNsYXNzPVwiZGVzY1wiPkJlZm9yZSB5b3UgY2FuIGludmVzdCwgd2UgbmVlZCB0byB2ZXJpZnkgeW91ciBpZGVudGl0eSwgc2ltcGx5IHVwbG9hZCB5b3VyIGRvY3VtZW50cyxcclxuICAgICAgICA8YnI+IHN1Ym1pdCB5b3VyIEtZQywgYW5kIGxldCB1cyBoYW5kbGUgdGhlIHJlc3RcclxuICAgICAgPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwic3VibWl0LWJ0blwiIHR5cGU9XCJidXR0b25cIiBkYXRhLWJzLXRvZ2dsZT1cIm9mZmNhbnZhc1wiIGRhdGEtYnMtdGFyZ2V0PVwiI29mZmNhbnZhc1JpZ2h0XCJcclxuICAgICAgYXJpYS1jb250cm9scz1cIm9mZmNhbnZhc1JpZ2h0XCI+U3VibWl0IEtZQyBOb3c8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiaXNQYW5WZXJpZmllZCAmJiBpc0FhZGhhcnZlcmlmaWVkXCIgY2xhc3M9XCJkaXNwbGF5LWNlbnRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInctNTBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlY3VyZWRcIj5cclxuICAgICAgICA8bWF0LWljb24+c2VjdXJpdHk8L21hdC1pY29uPlxyXG4gICAgICAgIDxwPllvdXIgRGF0YSBpcyBTYWZlICYgU2VjdXJlPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LXNwYWNlXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+UEFOIE51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWJveFwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJwYW5SZXF1ZXN0LnBhbk51bWJlclwiIGRpc2FibGVkPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidmVyaWZpZWRcIiB0aXRsZT1cIk9UUCBWZXJpZmllZFwiPmNoZWNrX2NpcmNsZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1zcGFjZVwiPlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPkFhZGhhciBOdW1iZXI8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ib3hcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiYWFkaGFyUmVxdWVzdC5hYWRoYWFyTnVtYmVyXCIgZGlzYWJsZWQ+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJ2ZXJpZmllZFwiIHRpdGxlPVwiT1RQIFZlcmlmaWVkXCI+Y2hlY2tfY2lyY2xlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMTUgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwic3VibWl0LWJ0blwiIChjbGljayk9XCJyZWRpcmVjdFRvUHJvZHVjdExpc3QoKVwiPkxldCdzIEdyb3cgV2VhbHRoPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuXHJcbjxkaXYgY2xhc3M9XCJvZmZjYW52YXMgb2ZmY2FudmFzLWVuZFwiIHRhYmluZGV4PVwiLTFcIiBpZD1cIm9mZmNhbnZhc1JpZ2h0XCIgYXJpYS1sYWJlbGxlZGJ5PVwib2ZmY2FudmFzUmlnaHRMYWJlbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgIDxwPktZQyBEZXRhaWxzPC9wPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtaWRkbGUtc2VjdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJvZHlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlY3VyZWRcIj5cclxuICAgICAgICA8bWF0LWljb24+c2VjdXJpdHk8L21hdC1pY29uPlxyXG4gICAgICAgIDxwPllvdXIgRGF0YSBpcyBTYWZlICYgU2VjdXJlPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LXNwYWNlXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+UEFOIE51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInZlcmlmeS10ZXh0XCIgKGNsaWNrKT1cInZlcmlmeVBhbk51bWJlcigpXCIgKm5nSWY9XCIhaXNQYW5WZXJpZmllZCAmJiAhcGFuVmVyaWZ5TG9hZGVyXCI+VmVyaWZ5PC9wPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInBhblZlcmlmeUxvYWRlclwiIGNsYXNzPVwia3ljLWRldGFpbFwiPjxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ib3hcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwicGFuUmVxdWVzdC5wYW5OdW1iZXJcIiBbZGlzYWJsZWRdPVwiaXNQYW5WZXJpZmllZFwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidmVyaWZpZWRcIiB0aXRsZT1cIk9UUCBWZXJpZmllZFwiICpuZ0lmPVwiaXNQYW5WZXJpZmllZFwiPmNoZWNrX2NpcmNsZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1zcGFjZVwiPlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPkFhZGhhciBOdW1iZXI8L2xhYmVsPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJpZnktdGV4dFwiIChjbGljayk9XCJzZW5kQWFkaGFyT3RwKClcIiAqbmdJZj1cIiFhYWRoYXJPdHBTZW50ICYmICFhYWRoYXJWZXJpZnlMb2FkZXJcIj5TZW5kIE9UUDwvcD5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJhYWRoYXJWZXJpZnlMb2FkZXIgJiYgIWFhZGhhck90cFNlbnRcIiBjbGFzcz1cImt5Yy1kZXRhaWxcIj48bWF0LXNwaW5uZXI+PC9tYXQtc3Bpbm5lcj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYm94XCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImFhZGhhclJlcXVlc3QuYWFkaGFhck51bWJlclwiIFtkaXNhYmxlZF09XCJpc0FhZGhhcnZlcmlmaWVkXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJ2ZXJpZmllZFwiIHRpdGxlPVwiT1RQIFZlcmlmaWVkXCIgKm5nSWY9XCJhYWRoYXJPdHBTZW50XCI+Y2hlY2tfY2lyY2xlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0xXCIgKm5nSWY9XCJhYWRoYXJPdHBTZW50XCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cIlwiPkVudGVyIE9UUDwvbGFiZWw+XHJcblxyXG4gICAgICAgIDxkaXYgaWQ9XCJvdHBcIiBjbGFzcz1cIm90cC1pbnB1dFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3RwIG9mIFsxLDIsMyw0LDUsNl07IGxldCBpZHggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIG1heD1cIjlcIiBjbGFzcz1cIm90cC1pbnB1dFwiIFsobmdNb2RlbCldPVwiYWFkaGFyT3RwQXJyYXlbaWR4XVwiXHJcbiAgICAgICAgICAgICAgKGtleXVwKT1cIm1vdmVBYWRoYXJPdHBDdXJzb3IoJGV2ZW50LCBpZHgpXCIgW2lkXT1cIidhYWRoYXJPdHBfJytpZHhcIiAvPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idG5cIiBkYXRhLWJzLWRpc21pc3M9XCJvZmZjYW52YXNcIiBpZD1cImNsb3NlS3ljQ2FudmFzXCIgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXQtYnRuXCIgKm5nSWY9XCJhYWRoYXJPdHBTZW50ICYmICFhYWRoYXJWZXJpZnlMb2FkZXJcIiAoY2xpY2spPVwidmVyaWZ5QWFkaGFyT3RwKClcIj5WZXJpZnk8L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJkLWZsZXggc3VibWl0LWJ0blwiICpuZ0lmPVwiYWFkaGFyVmVyaWZ5TG9hZGVyICYmIGFhZGhhck90cFNlbnRcIj5cclxuICAgICAgPG1hdC1zcGlubmVyPjwvbWF0LXNwaW5uZXI+IFZlcmlmeWluZ1xyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,52 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { PortfolioComponent } from '../../elements/portfolio/portfolio.component';
3
- import { PropertiesComponent } from '../../elements/properties/properties.component';
4
- import { MyDocumentsComponent } from '../../elements/my-documents/my-documents.component';
5
- import { MyOrdersComponent } from '../../elements/my-orders/my-orders.component';
6
- import { MyStatementComponent } from '../../elements/my-statement/my-statement.component';
7
- import { NeedHelpComponent } from '../../elements/need-help/need-help.component';
8
- import { MatIcon } from '@angular/material/icon';
9
- import { CommonModule } from '@angular/common';
10
- import { KycDetailsComponent } from '../kyc-details/kyc-details.component';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "../../services/rest.service";
13
- import * as i2 from "@angular/common";
14
- export class ProfileSectionComponent {
15
- constructor(restService) {
16
- this.restService = restService;
17
- this.selectedPanel = "PORTFOLIO";
18
- this.sidePanelTabs = [
19
- { value: "PORTFOLIO", viewValue: "My Portfolio" },
20
- { value: "PROPERTIES", viewValue: "My Properties" },
21
- // {value : "ORDERS" , viewValue : "My Orders"},
22
- // {value : "DOCUMENTS" , viewValue : "My Documents"},
23
- // {value : "STATEMENT" , viewValue : "My Statements"},
24
- { value: "KYC", viewValue: "KYC" },
25
- // {value : "HELP" , viewValue : "Need Help"},
26
- ];
27
- }
28
- ngOnInit() {
29
- this.getInvestorDetails();
30
- }
31
- getInvestorDetails() {
32
- this.restService.getInvesterById().subscribe((res) => {
33
- this.investorDetails = res.message;
34
- });
35
- }
36
- getInitials() {
37
- const nameParts = this.investorDetails?.fullName?.split(' ');
38
- const initials = nameParts?.map((part) => part.charAt(0).toUpperCase()).join('');
39
- return initials;
40
- }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProfileSectionComponent, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ProfileSectionComponent, isStandalone: true, selector: "simpo-profile-section", inputs: { data: "data" }, ngImport: i0, template: "<section class=\"main-container d-flex justify-content-center\">\r\n <div class=\"side-panel\">\r\n <div class=\"details\">\r\n <div class=\"left-right d-flex align-items-center gap-10\">\r\n <div class=\"logo left w-15\">{{ getInitials() }}</div><div class=\"right name w-85\">{{investorDetails?.fullName || 'N/A'}}</div>\r\n </div>\r\n <div class=\"left-right d-flex align-items-center gap-10\">\r\n <div class=\"left w-15\"><mat-icon class=\"d-flex align-items-center justify-content-center f-18\"> phone</mat-icon>\r\n </div><div class=\"right w-80\">{{investorDetails?.phoneNumber || 'N/A'}}</div>\r\n </div>\r\n <div class=\"left-right d-flex align-items-center gap-10\">\r\n <div class=\"left w-15\"><mat-icon class=\" d-flex align-items-center justify-content-center f-18\"> email</mat-icon>\r\n </div><div class=\"right w-80\">{{investorDetails?.emailId || 'N/A'}}</div>\r\n </div>\r\n </div>\r\n <div class=\"tab-section\">\r\n <div class=\"tabs cursor-pointer\" *ngFor=\"let ele of sidePanelTabs\" (click)=\"selectedPanel = ele.value\" [class.activeTab]=\"selectedPanel == ele.value\">\r\n {{ele.viewValue}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"display-section\">\r\n <ng-container *ngIf=\"selectedPanel == 'KYC'\">\r\n <simpo-kyc-details></simpo-kyc-details>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedPanel == 'PORTFOLIO'\">\r\n <simpo-portfolio></simpo-portfolio>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedPanel == 'PROPERTIES'\">\r\n <simpo-properties></simpo-properties>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedPanel == 'ORDERS'\">\r\n <simpo-my-orders></simpo-my-orders>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedPanel == 'DOCUMENTS'\">\r\n <simpo-my-documents></simpo-my-documents>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedPanel == 'STATEMENT'\">\r\n <simpo-my-statement></simpo-my-statement>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedPanel == 'HELP'\">\r\n <simpo-need-help></simpo-need-help>\r\n </ng-container>\r\n </div>\r\n</section>\r\n", styles: ["*{font-family:DM Sans}mat-icon{font-family:Material Icons!important}.main-container{height:85vh;width:100%;padding:10px 0;gap:15px;background:#f1f6ff}.side-panel{width:18%;background:#fff;border:2px solid rgba(241,246,255,1);border-radius:10px}.display-section{width:60%}.w-15{width:15%}.w-85{width:85%}.cursor-pointer{cursor:pointer}.details{background:#19a6c6;border-radius:10px;padding:10px;margin:15px}.left-right{gap:10px;margin-bottom:10px}.logo{background:#e6f0ff;border-radius:50%;font-size:14px;text-align:center;font-weight:600;line-height:24px;padding:3px;color:#405071!important}.name{font-size:14px;font-weight:600;line-height:24px;color:#fff!important}.f-18{font-size:18px}.gap-10{gap:10px}.left{color:#fffc}.right{font-weight:500;font-size:14px;line-height:24px;color:#fffc}.tab-section{margin-top:15px}.tabs{margin-bottom:25px;font-weight:500;font-size:16px;line-height:24px;color:#01161e;margin-left:8px}.activeTab{border-left:8px solid rgba(248,169,56,1);font-weight:700!important;color:#219ebc;margin-right:15px;background:#f1f3f7;padding:10px;border-radius:0 6px 6px 0;margin-left:unset}\n"], dependencies: [{ kind: "component", type: PortfolioComponent, selector: "simpo-portfolio" }, { kind: "component", type: PropertiesComponent, selector: "simpo-properties" }, { kind: "component", type: MyDocumentsComponent, selector: "simpo-my-documents" }, { kind: "component", type: MyOrdersComponent, selector: "simpo-my-orders" }, { kind: "component", type: MyStatementComponent, selector: "simpo-my-statement" }, { kind: "component", type: NeedHelpComponent, selector: "simpo-need-help" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: KycDetailsComponent, selector: "simpo-kyc-details" }] }); }
43
- }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProfileSectionComponent, decorators: [{
45
- type: Component,
46
- args: [{ selector: 'simpo-profile-section', standalone: true, imports: [PortfolioComponent, PropertiesComponent, MyDocumentsComponent, MyOrdersComponent, MyStatementComponent, NeedHelpComponent, MatIcon, CommonModule,
47
- KycDetailsComponent
48
- ], template: "<section class=\"main-container d-flex justify-content-center\">\r\n <div class=\"side-panel\">\r\n <div class=\"details\">\r\n <div class=\"left-right d-flex align-items-center gap-10\">\r\n <div class=\"logo left w-15\">{{ getInitials() }}</div><div class=\"right name w-85\">{{investorDetails?.fullName || 'N/A'}}</div>\r\n </div>\r\n <div class=\"left-right d-flex align-items-center gap-10\">\r\n <div class=\"left w-15\"><mat-icon class=\"d-flex align-items-center justify-content-center f-18\"> phone</mat-icon>\r\n </div><div class=\"right w-80\">{{investorDetails?.phoneNumber || 'N/A'}}</div>\r\n </div>\r\n <div class=\"left-right d-flex align-items-center gap-10\">\r\n <div class=\"left w-15\"><mat-icon class=\" d-flex align-items-center justify-content-center f-18\"> email</mat-icon>\r\n </div><div class=\"right w-80\">{{investorDetails?.emailId || 'N/A'}}</div>\r\n </div>\r\n </div>\r\n <div class=\"tab-section\">\r\n <div class=\"tabs cursor-pointer\" *ngFor=\"let ele of sidePanelTabs\" (click)=\"selectedPanel = ele.value\" [class.activeTab]=\"selectedPanel == ele.value\">\r\n {{ele.viewValue}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"display-section\">\r\n <ng-container *ngIf=\"selectedPanel == 'KYC'\">\r\n <simpo-kyc-details></simpo-kyc-details>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedPanel == 'PORTFOLIO'\">\r\n <simpo-portfolio></simpo-portfolio>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedPanel == 'PROPERTIES'\">\r\n <simpo-properties></simpo-properties>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedPanel == 'ORDERS'\">\r\n <simpo-my-orders></simpo-my-orders>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedPanel == 'DOCUMENTS'\">\r\n <simpo-my-documents></simpo-my-documents>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedPanel == 'STATEMENT'\">\r\n <simpo-my-statement></simpo-my-statement>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedPanel == 'HELP'\">\r\n <simpo-need-help></simpo-need-help>\r\n </ng-container>\r\n </div>\r\n</section>\r\n", styles: ["*{font-family:DM Sans}mat-icon{font-family:Material Icons!important}.main-container{height:85vh;width:100%;padding:10px 0;gap:15px;background:#f1f6ff}.side-panel{width:18%;background:#fff;border:2px solid rgba(241,246,255,1);border-radius:10px}.display-section{width:60%}.w-15{width:15%}.w-85{width:85%}.cursor-pointer{cursor:pointer}.details{background:#19a6c6;border-radius:10px;padding:10px;margin:15px}.left-right{gap:10px;margin-bottom:10px}.logo{background:#e6f0ff;border-radius:50%;font-size:14px;text-align:center;font-weight:600;line-height:24px;padding:3px;color:#405071!important}.name{font-size:14px;font-weight:600;line-height:24px;color:#fff!important}.f-18{font-size:18px}.gap-10{gap:10px}.left{color:#fffc}.right{font-weight:500;font-size:14px;line-height:24px;color:#fffc}.tab-section{margin-top:15px}.tabs{margin-bottom:25px;font-weight:500;font-size:16px;line-height:24px;color:#01161e;margin-left:8px}.activeTab{border-left:8px solid rgba(248,169,56,1);font-weight:700!important;color:#219ebc;margin-right:15px;background:#f1f3f7;padding:10px;border-radius:0 6px 6px 0;margin-left:unset}\n"] }]
49
- }], ctorParameters: () => [{ type: i1.RestService }], propDecorators: { data: [{
50
- type: Input
51
- }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvcHJvZmlsZS1zZWN0aW9uL3Byb2ZpbGUtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3Byb2ZpbGUtc2VjdGlvbi9wcm9maWxlLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDakYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQWEzRSxNQUFNLE9BQU8sdUJBQXVCO0lBR2hDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUTVDLGtCQUFhLEdBQVksV0FBVyxDQUFBO1FBRXBDLGtCQUFhLEdBQVc7WUFDdEIsRUFBQyxLQUFLLEVBQUcsV0FBVyxFQUFHLFNBQVMsRUFBRyxjQUFjLEVBQUM7WUFDbEQsRUFBQyxLQUFLLEVBQUcsWUFBWSxFQUFHLFNBQVMsRUFBRyxlQUFlLEVBQUM7WUFDcEQsZ0RBQWdEO1lBQ2hELHNEQUFzRDtZQUN0RCx1REFBdUQ7WUFDdkQsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUM7WUFDaEMsOENBQThDO1NBQy9DLENBQUE7SUFoQkQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBZUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0QsTUFBTSxRQUFRLEdBQUcsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzhHQWxDUSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwyR0N2QnBDLGcxRUE2Q0EsK29DRDVCWSxrQkFBa0IsNERBQUMsbUJBQW1CLDZEQUFDLG9CQUFvQiwrREFBQyxpQkFBaUIsNERBQUMsb0JBQW9CLCtEQUFDLGlCQUFpQiw0REFBQyxPQUFPLDBJQUFDLFlBQVksZ1FBQ2pKLG1CQUFtQjs7MkZBS1YsdUJBQXVCO2tCQVRuQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBQyxtQkFBbUIsRUFBQyxvQkFBb0IsRUFBQyxpQkFBaUIsRUFBQyxvQkFBb0IsRUFBQyxpQkFBaUIsRUFBQyxPQUFPLEVBQUMsWUFBWTt3QkFDakosbUJBQW1CO3FCQUNwQjtnRkFLVSxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBvcnRmb2xpb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3BvcnRmb2xpby9wb3J0Zm9saW8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvcGVydGllc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3Byb3BlcnRpZXMvcHJvcGVydGllcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNeURvY3VtZW50c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL215LWRvY3VtZW50cy9teS1kb2N1bWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXlPcmRlcnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9teS1vcmRlcnMvbXktb3JkZXJzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE15U3RhdGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvbXktc3RhdGVtZW50L215LXN0YXRlbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZWVkSGVscENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL25lZWQtaGVscC9uZWVkLWhlbHAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZmlsZVNlY3Rpb25Nb2RlbCB9IGZyb20gJy4vcHJvZmlsZS1zZWN0aW9uLm1vZGFsJztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBLeWNEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi4va3ljLWRldGFpbHMva3ljLWRldGFpbHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tcHJvZmlsZS1zZWN0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtQb3J0Zm9saW9Db21wb25lbnQsUHJvcGVydGllc0NvbXBvbmVudCxNeURvY3VtZW50c0NvbXBvbmVudCxNeU9yZGVyc0NvbXBvbmVudCxNeVN0YXRlbWVudENvbXBvbmVudCxOZWVkSGVscENvbXBvbmVudCxNYXRJY29uLENvbW1vbk1vZHVsZSxcclxuICAgIEt5Y0RldGFpbHNDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9maWxlLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wcm9maWxlLXNlY3Rpb24uY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2ZpbGVTZWN0aW9uQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIGRhdGE/OlByb2ZpbGVTZWN0aW9uTW9kZWw7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2Upe1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpe1xyXG4gICAgICB0aGlzLmdldEludmVzdG9yRGV0YWlscygpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdGVkUGFuZWwgOiBzdHJpbmcgPSBcIlBPUlRGT0xJT1wiXHJcblxyXG4gICAgc2lkZVBhbmVsVGFicyA6IGFueVtdID0gW1xyXG4gICAgICB7dmFsdWUgOiBcIlBPUlRGT0xJT1wiICwgdmlld1ZhbHVlIDogXCJNeSBQb3J0Zm9saW9cIn0sXHJcbiAgICAgIHt2YWx1ZSA6IFwiUFJPUEVSVElFU1wiICwgdmlld1ZhbHVlIDogXCJNeSBQcm9wZXJ0aWVzXCJ9LFxyXG4gICAgICAvLyB7dmFsdWUgOiBcIk9SREVSU1wiICwgdmlld1ZhbHVlIDogXCJNeSBPcmRlcnNcIn0sXHJcbiAgICAgIC8vIHt2YWx1ZSA6IFwiRE9DVU1FTlRTXCIgLCB2aWV3VmFsdWUgOiBcIk15IERvY3VtZW50c1wifSxcclxuICAgICAgLy8ge3ZhbHVlIDogXCJTVEFURU1FTlRcIiAsIHZpZXdWYWx1ZSA6IFwiTXkgU3RhdGVtZW50c1wifSxcclxuICAgICAge3ZhbHVlOiBcIktZQ1wiLCB2aWV3VmFsdWU6IFwiS1lDXCJ9LFxyXG4gICAgICAvLyB7dmFsdWUgOiBcIkhFTFBcIiAsIHZpZXdWYWx1ZSA6IFwiTmVlZCBIZWxwXCJ9LFxyXG4gICAgXVxyXG4gICAgaW52ZXN0b3JEZXRhaWxzOiBhbnk7XHJcblxyXG4gICAgZ2V0SW52ZXN0b3JEZXRhaWxzKCkge1xyXG4gICAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEludmVzdGVyQnlJZCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmludmVzdG9yRGV0YWlscyA9IHJlcy5tZXNzYWdlO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGdldEluaXRpYWxzKCk6IHN0cmluZyB7XHJcbiAgICAgIGNvbnN0IG5hbWVQYXJ0cyA9IHRoaXMuaW52ZXN0b3JEZXRhaWxzPy5mdWxsTmFtZT8uc3BsaXQoJyAnKTtcclxuICAgICAgY29uc3QgaW5pdGlhbHMgPSBuYW1lUGFydHM/Lm1hcCgocGFydDogYW55KSA9PiBwYXJ0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpKS5qb2luKCcnKTtcclxuICAgICAgcmV0dXJuIGluaXRpYWxzO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cIm1haW4tY29udGFpbmVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2lkZS1wYW5lbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXJpZ2h0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9nbyBsZWZ0IHctMTVcIj57eyBnZXRJbml0aWFscygpIH19PC9kaXY+PGRpdiBjbGFzcz1cInJpZ2h0IG5hbWUgdy04NVwiPnt7aW52ZXN0b3JEZXRhaWxzPy5mdWxsTmFtZSB8fCAnTi9BJ319PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdC1yaWdodCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQgdy0xNVwiPjxtYXQtaWNvbiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmLTE4XCI+IHBob25lPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9XCJyaWdodCB3LTgwXCI+e3tpbnZlc3RvckRldGFpbHM/LnBob25lTnVtYmVyIHx8ICdOL0EnfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXJpZ2h0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdCB3LTE1XCI+PG1hdC1pY29uIGNsYXNzPVwiIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmLTE4XCI+IGVtYWlsPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9XCJyaWdodCB3LTgwXCI+e3tpbnZlc3RvckRldGFpbHM/LmVtYWlsSWQgfHwgJ04vQSd9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYnMgY3Vyc29yLXBvaW50ZXJcIiAqbmdGb3I9XCJsZXQgZWxlIG9mIHNpZGVQYW5lbFRhYnNcIiAoY2xpY2spPVwic2VsZWN0ZWRQYW5lbCA9IGVsZS52YWx1ZVwiIFtjbGFzcy5hY3RpdmVUYWJdPVwic2VsZWN0ZWRQYW5lbCA9PSBlbGUudmFsdWVcIj5cclxuICAgICAgICAgICAgICB7e2VsZS52aWV3VmFsdWV9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImRpc3BsYXktc2VjdGlvblwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRQYW5lbCA9PSAnS1lDJ1wiPlxyXG4gICAgICAgIDxzaW1wby1reWMtZGV0YWlscz48L3NpbXBvLWt5Yy1kZXRhaWxzPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkUGFuZWwgPT0gJ1BPUlRGT0xJTydcIj5cclxuICAgICAgICA8c2ltcG8tcG9ydGZvbGlvPjwvc2ltcG8tcG9ydGZvbGlvPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkUGFuZWwgPT0gJ1BST1BFUlRJRVMnXCI+XHJcbiAgICAgICAgPHNpbXBvLXByb3BlcnRpZXM+PC9zaW1wby1wcm9wZXJ0aWVzPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkUGFuZWwgPT0gJ09SREVSUydcIj5cclxuICAgICAgICA8c2ltcG8tbXktb3JkZXJzPjwvc2ltcG8tbXktb3JkZXJzPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkUGFuZWwgPT0gJ0RPQ1VNRU5UUydcIj5cclxuICAgICAgICA8c2ltcG8tbXktZG9jdW1lbnRzPjwvc2ltcG8tbXktZG9jdW1lbnRzPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkUGFuZWwgPT0gJ1NUQVRFTUVOVCdcIj5cclxuICAgICAgICA8c2ltcG8tbXktc3RhdGVtZW50Pjwvc2ltcG8tbXktc3RhdGVtZW50PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkUGFuZWwgPT0gJ0hFTFAnXCI+XHJcbiAgICAgICAgPHNpbXBvLW5lZWQtaGVscD48L3NpbXBvLW5lZWQtaGVscD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1zZWN0aW9uLm1vZGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9wcm9maWxlLXNlY3Rpb24vcHJvZmlsZS1zZWN0aW9uLm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVTZWN0aW9uTW9kZWwge1xyXG4gICAgaWQ6IHN0cmluZyxcclxuICAgIHNlY3Rpb25UeXBlOiBzdHJpbmcsXHJcbiAgICBzZWN0aW9uTmFtZTogc3RyaW5nXHJcbn0iXX0=
@@ -1,121 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { NgFor, NgIf } from '@angular/common';
3
- import { MatIcon } from '@angular/material/icon';
4
- import { FormsModule } from '@angular/forms';
5
- import { StorageKeys } from '../../styles/index';
6
- import { MatDialogModule } from '@angular/material/dialog';
7
- import { PaymentConfirmationComponent } from '../../elements/payment-confirmation/payment-confirmation.component';
8
- import { KycDetailsComponent } from '../kyc-details/kyc-details.component';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../../services/rest.service";
11
- import * as i2 from "@angular/router";
12
- import * as i3 from "@angular/material/dialog";
13
- import * as i4 from "@angular/forms";
14
- export class PropertyDetailComponent {
15
- constructor(restService, activatedRoute, router, matDialog) {
16
- this.restService = restService;
17
- this.activatedRoute = activatedRoute;
18
- this.router = router;
19
- this.matDialog = matDialog;
20
- this.propertyId = '';
21
- this.propertyDetails = {
22
- "propertyId": 10,
23
- "name": "Ananta One",
24
- "minimumInvestment": 100,
25
- "propertyType": "Coliving",
26
- "description": null,
27
- "location": "samta colony Chhattisgarh",
28
- "documents": [],
29
- "financeDetails": {
30
- "id": 11,
31
- "propertyId": 10,
32
- "guaranteedROI": 10,
33
- "pricePerSqFeet": 10,
34
- "indicativeMarketValue": 10,
35
- "annualReturn": 10,
36
- "guaranteedAnnualCapitalGrowth": 10,
37
- "createdTimeStamp": "2025-02-15T05:30:00",
38
- "irr": 10
39
- },
40
- "year": 2020,
41
- "totalAreaSqFeet": 10,
42
- "soldOutArea": 0,
43
- "blockingPrice": 0,
44
- "blockingDuration": 0,
45
- "benefits": [],
46
- "imgUrl": [
47
- "https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/815921c1739254843186image%20%285%29.png",
48
- "https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/815921c1739254843186image%20%285%29.png"
49
- ],
50
- "createdTimeStamp": "2025-02-15T05:30:00",
51
- "createdById": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
52
- "createdByName": "string",
53
- "active": true,
54
- "updatedTimeStamp": "2025-02-15T05:30:00",
55
- "deleted": false
56
- };
57
- this.index = 0;
58
- this.propertyNumbers = [
59
- { icon: "", number: "₹3230", text: "Price/Sq.ft" },
60
- { icon: "", number: "₹4830", text: "Indicative Market Value" },
61
- { icon: "", number: "18%", text: "Internal Returns Rate" },
62
- { icon: "", number: "12%", text: "Annual Returns" },
63
- { icon: "https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/273918c1739173355725checked%201.png", number: "5%", text: "Guaranteed annual capital growth" },
64
- ];
65
- this.aboutText = "Ananta one Apartments is a premium residential development located in the bustling heart of hyderabad. It offers modern amenities and a luxurious lifestyle designed to meet the needs of urban families and professionals.";
66
- this.keyValue = [
67
- { key: "Property Type:", value: "Rental" },
68
- { key: "Property Size:", value: "12 Acre" },
69
- { key: "Year:", value: "2023" }
70
- ];
71
- this.investmentCards = [
72
- { img: "https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/697943c1739176853348fi_12875395.png", head: "Reduce risk", text: " Zero Risk with High Returns" },
73
- { img: "https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/718819c1739177134935shield%201.png", head: "Gurantee Growth", text: "Guaranteed Annual Capital Appreciation" },
74
- { img: "https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/421883c1739177144880fi_12875395%20%281%29.png", head: "Free Holiday stay", text: "Get 3 days 2 nights free holiday stay" }
75
- ];
76
- this.pdfCards = ["Title deed", "Property Registration Certificate"];
77
- this.sqft = 3230;
78
- this.noOfSqft = 1;
79
- }
80
- ngOnInit() {
81
- this.activatedRoute.queryParams.subscribe((param) => {
82
- this.propertyId = param['id'];
83
- if (this.propertyId)
84
- this.getPropertyDetails();
85
- });
86
- }
87
- ngOnDestroy() {
88
- this.kycDetailsSubscription?.unsubscribe();
89
- }
90
- getPropertyDetails() {
91
- this.restService.getPropertyDetails(this.propertyId).subscribe((res) => {
92
- this.propertyDetails = res;
93
- });
94
- }
95
- purchaseProperty() {
96
- if (!localStorage.getItem(StorageKeys.INVESTOR_ID)) {
97
- this.router.navigate(['login-signup'], { queryParams: { id: this.propertyDetails.propertyId } });
98
- return;
99
- }
100
- this.getKycDetails();
101
- }
102
- getKycDetails() {
103
- this.kycDetailsSubscription = this.restService.getKycDetails().subscribe((res) => {
104
- if (res?.message?.panVerified === 'VALID' && res?.message?.aadhaarVerified === 'VALID') {
105
- this.matDialog.open(PaymentConfirmationComponent, { panelClass: 'payment-confirmation', data: { details: this.propertyDetails, totalArea: this.noOfSqft } });
106
- }
107
- else {
108
- this.matDialog.open(KycDetailsComponent, { panelClass: "login-signup" });
109
- }
110
- });
111
- }
112
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: PropertyDetailComponent, deps: [{ token: i1.RestService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
113
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: PropertyDetailComponent, isStandalone: true, selector: "simpo-property-detail", inputs: { data: "data" }, ngImport: i0, template: "<section class=\"main-container\">\r\n <div id=\"carouselExampleInterval\" class=\"carousel slide p-relative\" data-bs-ride=\"carousel\">\r\n <div class=\"carousel-inner\">\r\n <div class=\"carousel-item active\" data-bs-interval=\"2000\" *ngFor=\"let img of propertyDetails.imgUrl\">\r\n <img [src]=\"img\" class=\"d-block w-100 height-30 h-50\" alt=\"property-image\">\r\n </div>\r\n <!-- <div class=\"carousel-item\" data-bs-interval=\"3000\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/815921c1739254843186image%20%285%29.png\"\r\n class=\"d-block w-100 height-30\" alt=\"property-image\">\r\n </div>\r\n <div class=\"carousel-item\" data-bs-interval=\"3000\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/815921c1739254843186image%20%285%29.png\"\r\n class=\"d-block w-100 height-30\" alt=\"property-image\">\r\n </div> -->\r\n </div>\r\n <div class=\"propertyName d-flex justify-content-between\">\r\n <div class=\"property-details\">\r\n <p class=\"pname\">{{propertyDetails.name}}</p>\r\n <span class=\"plocation d-flex align-items-center gap-5\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/384275c1737629729545location_on.png\"\r\n alt=\"location image\"> {{propertyDetails.location}}</span>\r\n </div>\r\n <div class=\"carousel d-flex justify-content-end align-items-end\">\r\n <!-- d-flex justify-content-end align-items-end -->\r\n <div class=\"carousel-indicators additional-properties-1\">\r\n <!-- additional-properties-1 -->\r\n <button type=\"button\" data-bs-target=\"#carouselExampleInterval\" [attr.data-bs-slide-to]=\"i\"\r\n class=\"active additional-properties\" aria-current=\"true\" aria-label=\"Slide 1\"\r\n *ngFor=\"let slide of propertyDetails.imgUrl;let i = index\"></button>\r\n <!-- class=\"additional-properties\" -->\r\n <!-- <button type=\"button\" data-bs-target=\"#carouselExampleInterval\" data-bs-slide-to=\"1\" aria-label=\"Slide 2\" class=\"additional-properties\"></button>\r\n <button type=\"button\" data-bs-target=\"#carouselExampleInterval\" data-bs-slide-to=\"2\" aria-label=\"Slide 3\" class=\"additional-properties\"></button> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"property-numbers d-flex justify-content-between\">\r\n <ng-container>\r\n <div class=\"icon-text w-18\">\r\n <div class=\"text text-center d-flex align-items-center justify-content-center gap-10\">\r\n <!-- <ng-container *ngIf=\"ele.icon.length > 1\">\r\n <img [src]=\"ele.icon\" alt=\"Icon\" class=\"tick-img\">\r\n </ng-container> -->\r\n <p class=\"number-text mb-0\">\u20B9{{ propertyDetails?.financeDetails?.pricePerSqFeet || 0 }}</p>\r\n </div>\r\n <div class=\"text-1 text-center\">\r\n <p class=\"property-text\">Price/Sq.ft</p>\r\n </div>\r\n </div>\r\n <div class=\"icon-text w-18\">\r\n <div class=\"text text-center d-flex align-items-center justify-content-center gap-10\">\r\n <!-- <ng-container *ngIf=\"ele.icon.length > 1\">\r\n <img [src]=\"ele.icon\" alt=\"Icon\" class=\"tick-img\">\r\n </ng-container> -->\r\n <p class=\"number-text mb-0\">\u20B9{{ propertyDetails?.financeDetails?.indicativeMarketValue || 0 }}</p>\r\n </div>\r\n <div class=\"text-1 text-center\">\r\n <p class=\"property-text\">Indicative Market Value</p>\r\n </div>\r\n </div>\r\n <div class=\"icon-text w-18\">\r\n <div class=\"text text-center d-flex align-items-center justify-content-center gap-10\">\r\n <!-- <ng-container *ngIf=\"ele.icon.length > 1\">\r\n <img [src]=\"ele.icon\" alt=\"Icon\" class=\"tick-img\">\r\n </ng-container> -->\r\n <p class=\"number-text mb-0\">{{ propertyDetails?.financeDetails?.irr || 0 }}%</p>\r\n </div>\r\n <div class=\"text-1 text-center\">\r\n <p class=\"property-text\">Internal Returns Rate</p>\r\n </div>\r\n </div>\r\n <div class=\"icon-text w-18\">\r\n <div class=\"text text-center d-flex align-items-center justify-content-center gap-10\">\r\n <!-- <ng-container *ngIf=\"ele.icon.length > 1\">\r\n <img [src]=\"ele.icon\" alt=\"Icon\" class=\"tick-img\">\r\n </ng-container> -->\r\n <p class=\"number-text mb-0\">{{ propertyDetails?.financeDetails?.annualReturn || 0 }}%</p>\r\n </div>\r\n <div class=\"text-1 text-center\">\r\n <p class=\"property-text\">Annual Returns</p>\r\n </div>\r\n </div>\r\n <div class=\"icon-text w-18\">\r\n <div class=\"text text-center d-flex align-items-center justify-content-center gap-10\">\r\n <ng-container>\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/273918c1739173355725checked%201.png\" alt=\"Icon\" class=\"tick-img\">\r\n </ng-container>\r\n <p class=\"number-text mb-0\">{{ propertyDetails?.financeDetails?.annualReturn || 0}}%</p>\r\n </div>\r\n <div class=\"text-1 text-center\">\r\n <p class=\"property-text\">Guaranteed annual capital growth</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"about-section w-70 d-flex g-40\">\r\n <div class=\"right w-60 \">\r\n <div class=\"about-property\">\r\n <div class=\"head-about-property\">About Property</div>\r\n <div class=\"about-property-text\">{{propertyDetails.description}}</div>\r\n <div class=\"about-property-details d-flex gap-10\">\r\n <ng-container>\r\n <div class=\"gap-10 d-flex\">\r\n <div class=\"right-text\">Property Type: </div>\r\n <div class=\"left-text\">{{propertyDetails.propertyType}}</div>\r\n </div>\r\n <div class=\"gap-10 d-flex\">\r\n <div class=\"right-text\">Property Size:</div>\r\n <div class=\"left-text\">{{propertyDetails.totalAreaSqFeet}}</div>\r\n </div>\r\n <div class=\"gap-10 d-flex\">\r\n <div class=\"right-text\">year:</div>\r\n <div class=\"left-text\">{{propertyDetails.year}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"about-property\" *ngIf=\"(propertyDetails?.benefits?.length || 0) > 0\">\r\n <div class=\"head-about-property\">Investment Benefit</div>\r\n <div class=\"card-container d-flex gap-10\">\r\n <ng-container *ngFor=\"let benefits of propertyDetails.benefits\">\r\n <div class=\"cards\">\r\n <div class=\"image-container w-100 d-flex justify-content-center\">\r\n <img [src]=\"benefits.imgUrl\" alt=\"\">\r\n </div>\r\n <div class=\"card-head\">{{benefits.title}}</div>\r\n <div class=\"card-text\">{{benefits.description}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"about-property\">\r\n <div class=\"head-about-property\">Documents & Reports</div>\r\n <div class=\"file-container d-flex justify-content-between gap-10\">\r\n <div class=\"file d-flex justify-content-between\" *ngFor=\"let ele of pdfCards\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/678394c1739183726107image%209.png\"\r\n alt=\"pdf\">\r\n <div class=\"doc-text w-75 d-flex align-items-center\"> {{ele.length > 15 ?\r\n ele.substring(0,15)+'...' : ele }}</div>\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/195414c1739183779845fi_3502477.png\"\r\n alt=\"download\" class=\"download-img\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"left w-40\">\r\n <div class=\"sqft\">\r\n <div class=\"head-about-property\">Buy SQFT</div>\r\n <div class=\"price justify-content-between d-flex\">\r\n <div class=\"left-price\">Price/Sq.ft</div>\r\n <div class=\"right-price\">\u20B9{{propertyDetails.financeDetails.pricePerSqFeet}}</div>\r\n </div>\r\n <div class=\"sqft-quantity d-flex justify-content-between w-100 align-items-center\">\r\n <div class=\"left-sqft\">SQFT Quantity</div>\r\n <div class=\"right-sqft d-flex align-items-center\">\r\n <mat-icon (click)=\"noOfSqft > 0 ? noOfSqft = noOfSqft - 1 : noOfSqft = 0\"\r\n class=\"d-flex align-items-center justify-content-center icon\">remove</mat-icon>\r\n <div class=\"sqft-number d-flex justify-content-center\"><input type=\"number\" [(ngModel)]=\"noOfSqft\"\r\n class=\"sqft-number additional-properties-2 text-center p-0 \"></div>\r\n <mat-icon (click)=\"noOfSqft = noOfSqft + 1\"\r\n class=\"d-flex align-items-center justify-content-center icon\">add</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"payable d-flex justify-content-between align-items-center w-100\">\r\n <div class=\"payable-left\">\r\n <p class=\"pay-text\">Payable Amount</p><span class=\"pay-subtext\">(Incl. Fees & Other\r\n Levies)</span>\r\n </div>\r\n <div class=\"payable-right\">\r\n \u20B9{{ noOfSqft * propertyDetails.financeDetails.pricePerSqFeet}}\r\n </div>\r\n </div>\r\n <div class=\"buy\" (click)=\"purchaseProperty()\">\r\n Buy SQFT\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: ["*{font-family:DM Sans!important}.main-container{overflow-x:hidden}mat-icon{font-family:Material Icons!important}.property-numbers{padding:40px 60px 10px;background:#f2910b}.number-text{font-weight:700;font-size:35px;line-height:40px;color:#102031;font-family:DM Sans}.property-text{font-size:20px;font-weight:600;line-height:28px;color:#ffffffe6}.w-18{width:18%}.last-card{width:21%}.w-70{width:70%}.about-section{margin:30px auto}.about-property{background:#fff;border:1px solid rgba(0,0,0,.03);border-radius:10px;padding:10px;margin-bottom:15px}.head-about-property{font-weight:600;font-size:16px;line-height:26px;margin-bottom:10px}.about-property-text{font-weight:400;font-size:16px;line-height:29px;color:#01161eb3}.gap-10{gap:10px}.w-60{width:60%}.about-property-details{width:100%;justify-content:space-between;padding:13px 10px;background:#f6f5f5;border-radius:7px;margin-top:15px;margin-bottom:5px}.right-text{font-weight:500;font-size:16px;line-height:20px;color:#01161ecc}.left-text{font-weight:600;font-size:16px;line-height:20px;color:#01161e}.cards{width:30%;background:#f9fbff;border-radius:10px;padding:15px}.card-head{font-weight:600;font-size:16px;line-height:25px;text-align:center;overflow:hidden;text-overflow:ellipsis}.card-text{font-size:14px;font-weight:500;line-height:25px;text-align:center;overflow:hidden;text-overflow:ellipsis}.image-container img{height:8vh}.file{background:#f7f7f7;border-radius:5px;padding:12px;width:50%}.w-75{width:75%}.doc-text{font-size:16px;font-weight:500;line-height:26px;color:#000}.download-image{width:28px}.g-40{gap:40px}.w-40{width:40%}.sqft{background:linear-gradient(180deg,#0d1b2a,#172b40);color:#fff;width:85%;border-radius:8px;padding:15px}.right-price{width:50%;color:#fc9a11;font-size:28px;font-weight:700;line-height:32px;text-align:end}.left-price{width:50%;font-size:18px;font-weight:600;line-height:32px}.price{display:flex;background:#263f5a;border-radius:8px;padding:15px 10px}.buy{background:#36b37e;color:#fff;padding:15px;border-radius:8px;font-size:15px;font-weight:700;line-height:20px;text-align:center;cursor:pointer}.payable{padding:10px;background:#ffffffb3;border-radius:8px;margin-bottom:10px}.pay-text{font-size:14px;line-height:20px;font-weight:600;color:#000;margin-bottom:unset;border-radius:8px}.pay-subtext{font-size:10px;font-weight:500;color:#0006}.payable-right{font-weight:700;font-size:22px;line-height:32px;color:#fff}.card-container{overflow-x:scroll}.sqft-quantity{padding:15px 2px}.left-sqft{font-weight:600;font-size:16px;line-height:32px;color:#fff}.right-sqft{padding:4px;background:#f8a938;border-radius:4px;width:50%}.icon{font-size:16px;font-weight:700;color:#000;line-height:19px;width:30%;margin:0 2px}.sqft-number{background:#fff;width:70%;border-radius:4px;font-weight:700;font-size:20px;line-height:19px;color:#000;padding:10px;outline:unset}.tick-img{width:30px}.p-relative{position:relative}.propertyName{position:absolute;bottom:0;width:100%;padding:30px}.pname{font-weight:600;font-size:34px;line-height:44px;color:#fff}.plocation{font-size:16px;font-weight:500;line-height:12px;color:#fff9}.additional-properties{border-radius:50%;height:1vh;width:8px!important}.additional-properties-1{position:unset!important;padding:unset!important;margin:unset!important;width:100%}.additional-properties-2{border:unset}.gap-5{gap:5px!important}.h-50{height:70vh!important}@media screen and (max-width : 475px){.property-numbers{flex-wrap:wrap;width:100%;padding:15px!important;margin-bottom:15px}.icon-text{width:50%}.last-card{width:100%!important}.right-text,.left-text{white-space:nowrap}.card-container{flex-direction:column;gap:10px;align-items:center}.cards{width:70%}.about-section{flex-direction:column;width:100%!important;margin:unset!important}.right{width:100%!important}.about-property{width:100%;border:none!important}.left{width:100%;margin:10px}.file-container{flex-direction:column}.file{width:100%!important}.sqft{width:95%}.height-30{height:30vh}.about-property-details{display:grid!important;width:100%}.propertyName{padding:10px!important}.pname{font-size:21px;line-height:10px}.additional-properties{height:1vh;width:8px!important}.number-text{font-size:26px}.property-text{font-size:18px}.head-about-property{text-align:center}}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatDialogModule }] }); }
114
- }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: PropertyDetailComponent, decorators: [{
116
- type: Component,
117
- args: [{ selector: 'simpo-property-detail', standalone: true, imports: [NgFor, MatIcon, NgIf, FormsModule, MatDialogModule], template: "<section class=\"main-container\">\r\n <div id=\"carouselExampleInterval\" class=\"carousel slide p-relative\" data-bs-ride=\"carousel\">\r\n <div class=\"carousel-inner\">\r\n <div class=\"carousel-item active\" data-bs-interval=\"2000\" *ngFor=\"let img of propertyDetails.imgUrl\">\r\n <img [src]=\"img\" class=\"d-block w-100 height-30 h-50\" alt=\"property-image\">\r\n </div>\r\n <!-- <div class=\"carousel-item\" data-bs-interval=\"3000\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/815921c1739254843186image%20%285%29.png\"\r\n class=\"d-block w-100 height-30\" alt=\"property-image\">\r\n </div>\r\n <div class=\"carousel-item\" data-bs-interval=\"3000\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/815921c1739254843186image%20%285%29.png\"\r\n class=\"d-block w-100 height-30\" alt=\"property-image\">\r\n </div> -->\r\n </div>\r\n <div class=\"propertyName d-flex justify-content-between\">\r\n <div class=\"property-details\">\r\n <p class=\"pname\">{{propertyDetails.name}}</p>\r\n <span class=\"plocation d-flex align-items-center gap-5\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/384275c1737629729545location_on.png\"\r\n alt=\"location image\"> {{propertyDetails.location}}</span>\r\n </div>\r\n <div class=\"carousel d-flex justify-content-end align-items-end\">\r\n <!-- d-flex justify-content-end align-items-end -->\r\n <div class=\"carousel-indicators additional-properties-1\">\r\n <!-- additional-properties-1 -->\r\n <button type=\"button\" data-bs-target=\"#carouselExampleInterval\" [attr.data-bs-slide-to]=\"i\"\r\n class=\"active additional-properties\" aria-current=\"true\" aria-label=\"Slide 1\"\r\n *ngFor=\"let slide of propertyDetails.imgUrl;let i = index\"></button>\r\n <!-- class=\"additional-properties\" -->\r\n <!-- <button type=\"button\" data-bs-target=\"#carouselExampleInterval\" data-bs-slide-to=\"1\" aria-label=\"Slide 2\" class=\"additional-properties\"></button>\r\n <button type=\"button\" data-bs-target=\"#carouselExampleInterval\" data-bs-slide-to=\"2\" aria-label=\"Slide 3\" class=\"additional-properties\"></button> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"property-numbers d-flex justify-content-between\">\r\n <ng-container>\r\n <div class=\"icon-text w-18\">\r\n <div class=\"text text-center d-flex align-items-center justify-content-center gap-10\">\r\n <!-- <ng-container *ngIf=\"ele.icon.length > 1\">\r\n <img [src]=\"ele.icon\" alt=\"Icon\" class=\"tick-img\">\r\n </ng-container> -->\r\n <p class=\"number-text mb-0\">\u20B9{{ propertyDetails?.financeDetails?.pricePerSqFeet || 0 }}</p>\r\n </div>\r\n <div class=\"text-1 text-center\">\r\n <p class=\"property-text\">Price/Sq.ft</p>\r\n </div>\r\n </div>\r\n <div class=\"icon-text w-18\">\r\n <div class=\"text text-center d-flex align-items-center justify-content-center gap-10\">\r\n <!-- <ng-container *ngIf=\"ele.icon.length > 1\">\r\n <img [src]=\"ele.icon\" alt=\"Icon\" class=\"tick-img\">\r\n </ng-container> -->\r\n <p class=\"number-text mb-0\">\u20B9{{ propertyDetails?.financeDetails?.indicativeMarketValue || 0 }}</p>\r\n </div>\r\n <div class=\"text-1 text-center\">\r\n <p class=\"property-text\">Indicative Market Value</p>\r\n </div>\r\n </div>\r\n <div class=\"icon-text w-18\">\r\n <div class=\"text text-center d-flex align-items-center justify-content-center gap-10\">\r\n <!-- <ng-container *ngIf=\"ele.icon.length > 1\">\r\n <img [src]=\"ele.icon\" alt=\"Icon\" class=\"tick-img\">\r\n </ng-container> -->\r\n <p class=\"number-text mb-0\">{{ propertyDetails?.financeDetails?.irr || 0 }}%</p>\r\n </div>\r\n <div class=\"text-1 text-center\">\r\n <p class=\"property-text\">Internal Returns Rate</p>\r\n </div>\r\n </div>\r\n <div class=\"icon-text w-18\">\r\n <div class=\"text text-center d-flex align-items-center justify-content-center gap-10\">\r\n <!-- <ng-container *ngIf=\"ele.icon.length > 1\">\r\n <img [src]=\"ele.icon\" alt=\"Icon\" class=\"tick-img\">\r\n </ng-container> -->\r\n <p class=\"number-text mb-0\">{{ propertyDetails?.financeDetails?.annualReturn || 0 }}%</p>\r\n </div>\r\n <div class=\"text-1 text-center\">\r\n <p class=\"property-text\">Annual Returns</p>\r\n </div>\r\n </div>\r\n <div class=\"icon-text w-18\">\r\n <div class=\"text text-center d-flex align-items-center justify-content-center gap-10\">\r\n <ng-container>\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/273918c1739173355725checked%201.png\" alt=\"Icon\" class=\"tick-img\">\r\n </ng-container>\r\n <p class=\"number-text mb-0\">{{ propertyDetails?.financeDetails?.annualReturn || 0}}%</p>\r\n </div>\r\n <div class=\"text-1 text-center\">\r\n <p class=\"property-text\">Guaranteed annual capital growth</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"about-section w-70 d-flex g-40\">\r\n <div class=\"right w-60 \">\r\n <div class=\"about-property\">\r\n <div class=\"head-about-property\">About Property</div>\r\n <div class=\"about-property-text\">{{propertyDetails.description}}</div>\r\n <div class=\"about-property-details d-flex gap-10\">\r\n <ng-container>\r\n <div class=\"gap-10 d-flex\">\r\n <div class=\"right-text\">Property Type: </div>\r\n <div class=\"left-text\">{{propertyDetails.propertyType}}</div>\r\n </div>\r\n <div class=\"gap-10 d-flex\">\r\n <div class=\"right-text\">Property Size:</div>\r\n <div class=\"left-text\">{{propertyDetails.totalAreaSqFeet}}</div>\r\n </div>\r\n <div class=\"gap-10 d-flex\">\r\n <div class=\"right-text\">year:</div>\r\n <div class=\"left-text\">{{propertyDetails.year}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"about-property\" *ngIf=\"(propertyDetails?.benefits?.length || 0) > 0\">\r\n <div class=\"head-about-property\">Investment Benefit</div>\r\n <div class=\"card-container d-flex gap-10\">\r\n <ng-container *ngFor=\"let benefits of propertyDetails.benefits\">\r\n <div class=\"cards\">\r\n <div class=\"image-container w-100 d-flex justify-content-center\">\r\n <img [src]=\"benefits.imgUrl\" alt=\"\">\r\n </div>\r\n <div class=\"card-head\">{{benefits.title}}</div>\r\n <div class=\"card-text\">{{benefits.description}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"about-property\">\r\n <div class=\"head-about-property\">Documents & Reports</div>\r\n <div class=\"file-container d-flex justify-content-between gap-10\">\r\n <div class=\"file d-flex justify-content-between\" *ngFor=\"let ele of pdfCards\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/678394c1739183726107image%209.png\"\r\n alt=\"pdf\">\r\n <div class=\"doc-text w-75 d-flex align-items-center\"> {{ele.length > 15 ?\r\n ele.substring(0,15)+'...' : ele }}</div>\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/195414c1739183779845fi_3502477.png\"\r\n alt=\"download\" class=\"download-img\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"left w-40\">\r\n <div class=\"sqft\">\r\n <div class=\"head-about-property\">Buy SQFT</div>\r\n <div class=\"price justify-content-between d-flex\">\r\n <div class=\"left-price\">Price/Sq.ft</div>\r\n <div class=\"right-price\">\u20B9{{propertyDetails.financeDetails.pricePerSqFeet}}</div>\r\n </div>\r\n <div class=\"sqft-quantity d-flex justify-content-between w-100 align-items-center\">\r\n <div class=\"left-sqft\">SQFT Quantity</div>\r\n <div class=\"right-sqft d-flex align-items-center\">\r\n <mat-icon (click)=\"noOfSqft > 0 ? noOfSqft = noOfSqft - 1 : noOfSqft = 0\"\r\n class=\"d-flex align-items-center justify-content-center icon\">remove</mat-icon>\r\n <div class=\"sqft-number d-flex justify-content-center\"><input type=\"number\" [(ngModel)]=\"noOfSqft\"\r\n class=\"sqft-number additional-properties-2 text-center p-0 \"></div>\r\n <mat-icon (click)=\"noOfSqft = noOfSqft + 1\"\r\n class=\"d-flex align-items-center justify-content-center icon\">add</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"payable d-flex justify-content-between align-items-center w-100\">\r\n <div class=\"payable-left\">\r\n <p class=\"pay-text\">Payable Amount</p><span class=\"pay-subtext\">(Incl. Fees & Other\r\n Levies)</span>\r\n </div>\r\n <div class=\"payable-right\">\r\n \u20B9{{ noOfSqft * propertyDetails.financeDetails.pricePerSqFeet}}\r\n </div>\r\n </div>\r\n <div class=\"buy\" (click)=\"purchaseProperty()\">\r\n Buy SQFT\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: ["*{font-family:DM Sans!important}.main-container{overflow-x:hidden}mat-icon{font-family:Material Icons!important}.property-numbers{padding:40px 60px 10px;background:#f2910b}.number-text{font-weight:700;font-size:35px;line-height:40px;color:#102031;font-family:DM Sans}.property-text{font-size:20px;font-weight:600;line-height:28px;color:#ffffffe6}.w-18{width:18%}.last-card{width:21%}.w-70{width:70%}.about-section{margin:30px auto}.about-property{background:#fff;border:1px solid rgba(0,0,0,.03);border-radius:10px;padding:10px;margin-bottom:15px}.head-about-property{font-weight:600;font-size:16px;line-height:26px;margin-bottom:10px}.about-property-text{font-weight:400;font-size:16px;line-height:29px;color:#01161eb3}.gap-10{gap:10px}.w-60{width:60%}.about-property-details{width:100%;justify-content:space-between;padding:13px 10px;background:#f6f5f5;border-radius:7px;margin-top:15px;margin-bottom:5px}.right-text{font-weight:500;font-size:16px;line-height:20px;color:#01161ecc}.left-text{font-weight:600;font-size:16px;line-height:20px;color:#01161e}.cards{width:30%;background:#f9fbff;border-radius:10px;padding:15px}.card-head{font-weight:600;font-size:16px;line-height:25px;text-align:center;overflow:hidden;text-overflow:ellipsis}.card-text{font-size:14px;font-weight:500;line-height:25px;text-align:center;overflow:hidden;text-overflow:ellipsis}.image-container img{height:8vh}.file{background:#f7f7f7;border-radius:5px;padding:12px;width:50%}.w-75{width:75%}.doc-text{font-size:16px;font-weight:500;line-height:26px;color:#000}.download-image{width:28px}.g-40{gap:40px}.w-40{width:40%}.sqft{background:linear-gradient(180deg,#0d1b2a,#172b40);color:#fff;width:85%;border-radius:8px;padding:15px}.right-price{width:50%;color:#fc9a11;font-size:28px;font-weight:700;line-height:32px;text-align:end}.left-price{width:50%;font-size:18px;font-weight:600;line-height:32px}.price{display:flex;background:#263f5a;border-radius:8px;padding:15px 10px}.buy{background:#36b37e;color:#fff;padding:15px;border-radius:8px;font-size:15px;font-weight:700;line-height:20px;text-align:center;cursor:pointer}.payable{padding:10px;background:#ffffffb3;border-radius:8px;margin-bottom:10px}.pay-text{font-size:14px;line-height:20px;font-weight:600;color:#000;margin-bottom:unset;border-radius:8px}.pay-subtext{font-size:10px;font-weight:500;color:#0006}.payable-right{font-weight:700;font-size:22px;line-height:32px;color:#fff}.card-container{overflow-x:scroll}.sqft-quantity{padding:15px 2px}.left-sqft{font-weight:600;font-size:16px;line-height:32px;color:#fff}.right-sqft{padding:4px;background:#f8a938;border-radius:4px;width:50%}.icon{font-size:16px;font-weight:700;color:#000;line-height:19px;width:30%;margin:0 2px}.sqft-number{background:#fff;width:70%;border-radius:4px;font-weight:700;font-size:20px;line-height:19px;color:#000;padding:10px;outline:unset}.tick-img{width:30px}.p-relative{position:relative}.propertyName{position:absolute;bottom:0;width:100%;padding:30px}.pname{font-weight:600;font-size:34px;line-height:44px;color:#fff}.plocation{font-size:16px;font-weight:500;line-height:12px;color:#fff9}.additional-properties{border-radius:50%;height:1vh;width:8px!important}.additional-properties-1{position:unset!important;padding:unset!important;margin:unset!important;width:100%}.additional-properties-2{border:unset}.gap-5{gap:5px!important}.h-50{height:70vh!important}@media screen and (max-width : 475px){.property-numbers{flex-wrap:wrap;width:100%;padding:15px!important;margin-bottom:15px}.icon-text{width:50%}.last-card{width:100%!important}.right-text,.left-text{white-space:nowrap}.card-container{flex-direction:column;gap:10px;align-items:center}.cards{width:70%}.about-section{flex-direction:column;width:100%!important;margin:unset!important}.right{width:100%!important}.about-property{width:100%;border:none!important}.left{width:100%;margin:10px}.file-container{flex-direction:column}.file{width:100%!important}.sqft{width:95%}.height-30{height:30vh}.about-property-details{display:grid!important;width:100%}.propertyName{padding:10px!important}.pname{font-size:21px;line-height:10px}.additional-properties{height:1vh;width:8px!important}.number-text{font-size:26px}.property-text{font-size:18px}.head-about-property{text-align:center}}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}\n"] }]
118
- }], ctorParameters: () => [{ type: i1.RestService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.MatDialog }], propDecorators: { data: [{
119
- type: Input
120
- }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvcHJvcGVydHktZGV0YWlsL3Byb3BlcnR5LWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3Byb3BlcnR5LWRldGFpbC9wcm9wZXJ0eS1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBVyxNQUFNLGdCQUFnQixDQUFDO0FBR3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFFbEgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7OztBQVMzRSxNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQW9CLFdBQXdCLEVBQ2xDLGNBQThCLEVBQzlCLE1BQWMsRUFDTCxTQUFvQjtRQUhuQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNMLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFHdkMsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixvQkFBZSxHQUFRO1lB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RSxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQzNKLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7OEdBakhVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDJHQ3BCcEMsdzBUQW1MQSw0MklEbktZLEtBQUssbUhBQUMsT0FBTywySUFBQyxJQUFJLDRGQUFDLFdBQVcsZ3hCQUFFLGVBQWU7OzJGQUk5Qyx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLFdBQVcsRUFBRSxlQUFlLENBQUU7MEpBTWxELElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJvcGVydHlEZXRhaWxNb2RlbCB9IGZyb20gJy4vcHJvcGVydHktZGV0YWlsLm1vZGVsJztcclxuaW1wb3J0IHsgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdG9yYWdlS2V5cyB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgUGF5bWVudENvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3BheW1lbnQtY29uZmlybWF0aW9uL3BheW1lbnQtY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBLeWNEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi4va3ljLWRldGFpbHMva3ljLWRldGFpbHMuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tcHJvcGVydHktZGV0YWlsJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtOZ0ZvcixNYXRJY29uLE5nSWYsRm9ybXNNb2R1bGUsIE1hdERpYWxvZ01vZHVsZSBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1kZXRhaWwuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RGV0YWlsQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgZGF0YT86IFByb3BlcnR5RGV0YWlsTW9kZWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZ1xyXG4gICkge31cclxuXHJcbiAgcHJvcGVydHlJZDogc3RyaW5nID0gJyc7XHJcbiAgcHJvcGVydHlEZXRhaWxzOiBhbnkgPSB7XHJcbiAgICBcInByb3BlcnR5SWRcIjogMTAsXHJcbiAgICBcIm5hbWVcIjogXCJBbmFudGEgT25lXCIsXHJcbiAgICBcIm1pbmltdW1JbnZlc3RtZW50XCI6IDEwMCxcclxuICAgIFwicHJvcGVydHlUeXBlXCI6IFwiQ29saXZpbmdcIixcclxuICAgIFwiZGVzY3JpcHRpb25cIjogbnVsbCxcclxuICAgIFwibG9jYXRpb25cIjogXCJzYW10YSBjb2xvbnkgQ2hoYXR0aXNnYXJoXCIsXHJcbiAgICBcImRvY3VtZW50c1wiOiBbXSxcclxuICAgIFwiZmluYW5jZURldGFpbHNcIjoge1xyXG4gICAgICBcImlkXCI6IDExLFxyXG4gICAgICBcInByb3BlcnR5SWRcIjogMTAsXHJcbiAgICAgIFwiZ3VhcmFudGVlZFJPSVwiOiAxMCxcclxuICAgICAgXCJwcmljZVBlclNxRmVldFwiOiAxMCxcclxuICAgICAgXCJpbmRpY2F0aXZlTWFya2V0VmFsdWVcIjogMTAsXHJcbiAgICAgIFwiYW5udWFsUmV0dXJuXCI6IDEwLFxyXG4gICAgICBcImd1YXJhbnRlZWRBbm51YWxDYXBpdGFsR3Jvd3RoXCI6IDEwLFxyXG4gICAgICBcImNyZWF0ZWRUaW1lU3RhbXBcIjogXCIyMDI1LTAyLTE1VDA1OjMwOjAwXCIsXHJcbiAgICAgIFwiaXJyXCI6IDEwXHJcbiAgICB9LFxyXG4gICAgXCJ5ZWFyXCI6IDIwMjAsXHJcbiAgICBcInRvdGFsQXJlYVNxRmVldFwiOiAxMCxcclxuICAgIFwic29sZE91dEFyZWFcIjogMCxcclxuICAgIFwiYmxvY2tpbmdQcmljZVwiOiAwLFxyXG4gICAgXCJibG9ja2luZ0R1cmF0aW9uXCI6IDAsXHJcbiAgICBcImJlbmVmaXRzXCI6IFtdLFxyXG4gICAgXCJpbWdVcmxcIjogW1xyXG4gICAgICBcImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvODE1OTIxYzE3MzkyNTQ4NDMxODZpbWFnZSUyMCUyODUlMjkucG5nXCIsXHJcbiAgICAgIFwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy84MTU5MjFjMTczOTI1NDg0MzE4NmltYWdlJTIwJTI4NSUyOS5wbmdcIlxyXG4gICAgXSxcclxuICAgIFwiY3JlYXRlZFRpbWVTdGFtcFwiOiBcIjIwMjUtMDItMTVUMDU6MzA6MDBcIixcclxuICAgIFwiY3JlYXRlZEJ5SWRcIjogXCIzZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTZcIixcclxuICAgIFwiY3JlYXRlZEJ5TmFtZVwiOiBcInN0cmluZ1wiLFxyXG4gICAgXCJhY3RpdmVcIjogdHJ1ZSxcclxuICAgIFwidXBkYXRlZFRpbWVTdGFtcFwiOiBcIjIwMjUtMDItMTVUMDU6MzA6MDBcIixcclxuICAgIFwiZGVsZXRlZFwiOiBmYWxzZVxyXG5cclxuICB9O1xyXG4gIGt5Y0RldGFpbHNTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5wcm9wZXJ0eUlkID0gcGFyYW1bJ2lkJ107XHJcbiAgICAgIGlmKHRoaXMucHJvcGVydHlJZClcclxuICAgICAgICB0aGlzLmdldFByb3BlcnR5RGV0YWlscygpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5reWNEZXRhaWxzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJvcGVydHlEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRQcm9wZXJ0eURldGFpbHModGhpcy5wcm9wZXJ0eUlkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMucHJvcGVydHlEZXRhaWxzID0gcmVzO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGluZGV4ID0gMFxyXG5cclxuICBwcm9wZXJ0eU51bWJlcnM6IGFueSA9IFtcclxuICAgIHsgaWNvbjogXCJcIiwgbnVtYmVyOiBcIuKCuTMyMzBcIiwgdGV4dDogXCJQcmljZS9TcS5mdFwiIH0sXHJcbiAgICB7IGljb246IFwiXCIsIG51bWJlcjogXCLigrk0ODMwXCIsIHRleHQ6IFwiSW5kaWNhdGl2ZSBNYXJrZXQgVmFsdWVcIiB9LFxyXG4gICAgeyBpY29uOiBcIlwiLCBudW1iZXI6IFwiMTglXCIsIHRleHQ6IFwiSW50ZXJuYWwgUmV0dXJucyBSYXRlXCIgfSxcclxuICAgIHsgaWNvbjogXCJcIiwgbnVtYmVyOiBcIjEyJVwiLCB0ZXh0OiBcIkFubnVhbCBSZXR1cm5zXCIgfSxcclxuICAgIHsgaWNvbjogXCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzI3MzkxOGMxNzM5MTczMzU1NzI1Y2hlY2tlZCUyMDEucG5nXCIsIG51bWJlcjogXCI1JVwiLCB0ZXh0OiBcIkd1YXJhbnRlZWQgYW5udWFsIGNhcGl0YWwgZ3Jvd3RoXCIgfSxcclxuICBdXHJcblxyXG4gIGFib3V0VGV4dDogc3RyaW5nID0gXCJBbmFudGEgb25lIEFwYXJ0bWVudHMgaXMgYSBwcmVtaXVtIHJlc2lkZW50aWFsIGRldmVsb3BtZW50IGxvY2F0ZWQgaW4gdGhlIGJ1c3RsaW5nIGhlYXJ0IG9mIGh5ZGVyYWJhZC4gSXQgb2ZmZXJzIG1vZGVybiBhbWVuaXRpZXMgYW5kIGEgbHV4dXJpb3VzIGxpZmVzdHlsZSBkZXNpZ25lZCB0byBtZWV0IHRoZSBuZWVkcyBvZiB1cmJhbiBmYW1pbGllcyBhbmQgcHJvZmVzc2lvbmFscy5cIlxyXG5cclxuICBrZXlWYWx1ZSA6IGFueSA9IFtcclxuICAgIHtrZXkgIDogXCJQcm9wZXJ0eSBUeXBlOlwiICwgdmFsdWUgOiBcIlJlbnRhbFwifSxcclxuICAgIHtrZXkgIDogXCJQcm9wZXJ0eSBTaXplOlwiICwgdmFsdWUgOiBcIjEyIEFjcmVcIn0sXHJcbiAgICB7a2V5ICA6IFwiWWVhcjpcIiAsIHZhbHVlIDogXCIyMDIzXCJ9XHJcbiAgXVxyXG5cclxuICBpbnZlc3RtZW50Q2FyZHMgOiBhbnkgPSBbXHJcbiAgICB7IGltZyA6IFwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy82OTc5NDNjMTczOTE3Njg1MzM0OGZpXzEyODc1Mzk1LnBuZ1wiICwgaGVhZCA6IFwiUmVkdWNlIHJpc2tcIiAsIHRleHQgOiBcIsKgWmVybyBSaXNrIHdpdGggSGlnaCBSZXR1cm5zXCJ9LFxyXG4gICAgeyBpbWcgOiBcImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvNzE4ODE5YzE3MzkxNzcxMzQ5MzVzaGllbGQlMjAxLnBuZ1wiICwgaGVhZCA6IFwiR3VyYW50ZWUgR3Jvd3RoXCIgLCB0ZXh0IDogXCJHdWFyYW50ZWVkIEFubnVhbCBDYXBpdGFsIEFwcHJlY2lhdGlvblwifSxcclxuICAgIHsgaW1nIDogXCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzQyMTg4M2MxNzM5MTc3MTQ0ODgwZmlfMTI4NzUzOTUlMjAlMjgxJTI5LnBuZ1wiICwgaGVhZCA6IFwiRnJlZSBIb2xpZGF5IHN0YXlcIiAsIHRleHQgOiBcIkdldCAzIGRheXMgMiBuaWdodHMgZnJlZSBob2xpZGF5IHN0YXlcIn1cclxuICBdXHJcblxyXG4gIHBkZkNhcmRzIDogYW55ID0gW1wiVGl0bGUgZGVlZFwiLFwiUHJvcGVydHkgUmVnaXN0cmF0aW9uIENlcnRpZmljYXRlXCJdXHJcblxyXG4gIHNxZnQgOiBudW1iZXIgPSAzMjMwO1xyXG4gIG5vT2ZTcWZ0IDogbnVtYmVyID0gMVxyXG5cclxuICBwdXJjaGFzZVByb3BlcnR5KCkge1xyXG4gICAgaWYoIWxvY2FsU3RvcmFnZS5nZXRJdGVtKFN0b3JhZ2VLZXlzLklOVkVTVE9SX0lEKSl7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbG9naW4tc2lnbnVwJ10sIHtxdWVyeVBhcmFtczoge2lkOiB0aGlzLnByb3BlcnR5RGV0YWlscy5wcm9wZXJ0eUlkfX0pXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0S3ljRGV0YWlscygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0S3ljRGV0YWlscygpIHtcclxuICAgIHRoaXMua3ljRGV0YWlsc1N1YnNjcmlwdGlvbiA9IHRoaXMucmVzdFNlcnZpY2UuZ2V0S3ljRGV0YWlscygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYocmVzPy5tZXNzYWdlPy5wYW5WZXJpZmllZCA9PT0gJ1ZBTElEJyAmJiByZXM/Lm1lc3NhZ2U/LmFhZGhhYXJWZXJpZmllZCA9PT0gJ1ZBTElEJykge1xyXG4gICAgICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oUGF5bWVudENvbmZpcm1hdGlvbkNvbXBvbmVudCwge3BhbmVsQ2xhc3M6ICdwYXltZW50LWNvbmZpcm1hdGlvbicsIGRhdGE6IHtkZXRhaWxzOiB0aGlzLnByb3BlcnR5RGV0YWlscywgdG90YWxBcmVhOiB0aGlzLm5vT2ZTcWZ0fX0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oS3ljRGV0YWlsc0NvbXBvbmVudCwgeyBwYW5lbENsYXNzOiBcImxvZ2luLXNpZ251cFwiIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XHJcbiAgPGRpdiBpZD1cImNhcm91c2VsRXhhbXBsZUludGVydmFsXCIgY2xhc3M9XCJjYXJvdXNlbCBzbGlkZSBwLXJlbGF0aXZlXCIgZGF0YS1icy1yaWRlPVwiY2Fyb3VzZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pbm5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbSBhY3RpdmVcIiBkYXRhLWJzLWludGVydmFsPVwiMjAwMFwiICpuZ0Zvcj1cImxldCBpbWcgb2YgcHJvcGVydHlEZXRhaWxzLmltZ1VybFwiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJpbWdcIiBjbGFzcz1cImQtYmxvY2sgdy0xMDAgaGVpZ2h0LTMwIGgtNTBcIiBhbHQ9XCJwcm9wZXJ0eS1pbWFnZVwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbVwiIGRhdGEtYnMtaW50ZXJ2YWw9XCIzMDAwXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvODE1OTIxYzE3MzkyNTQ4NDMxODZpbWFnZSUyMCUyODUlMjkucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtYmxvY2sgdy0xMDAgaGVpZ2h0LTMwXCIgYWx0PVwicHJvcGVydHktaW1hZ2VcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCIgZGF0YS1icy1pbnRlcnZhbD1cIjMwMDBcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy84MTU5MjFjMTczOTI1NDg0MzE4NmltYWdlJTIwJTI4NSUyOS5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1ibG9jayB3LTEwMCBoZWlnaHQtMzBcIiBhbHQ9XCJwcm9wZXJ0eS1pbWFnZVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwcm9wZXJ0eU5hbWUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9wZXJ0eS1kZXRhaWxzXCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJwbmFtZVwiPnt7cHJvcGVydHlEZXRhaWxzLm5hbWV9fTwvcD5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInBsb2NhdGlvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC01XCI+PGltZ1xyXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzM4NDI3NWMxNzM3NjI5NzI5NTQ1bG9jYXRpb25fb24ucG5nXCJcclxuICAgICAgICAgICAgYWx0PVwibG9jYXRpb24gaW1hZ2VcIj4ge3twcm9wZXJ0eURldGFpbHMubG9jYXRpb259fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1lbmRcIj5cclxuICAgICAgICA8IS0tIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWVuZCAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaW5kaWNhdG9ycyBhZGRpdGlvbmFsLXByb3BlcnRpZXMtMVwiPlxyXG4gICAgICAgICAgPCEtLSBhZGRpdGlvbmFsLXByb3BlcnRpZXMtMSAtLT5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtYnMtdGFyZ2V0PVwiI2Nhcm91c2VsRXhhbXBsZUludGVydmFsXCIgW2F0dHIuZGF0YS1icy1zbGlkZS10b109XCJpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJhY3RpdmUgYWRkaXRpb25hbC1wcm9wZXJ0aWVzXCIgYXJpYS1jdXJyZW50PVwidHJ1ZVwiIGFyaWEtbGFiZWw9XCJTbGlkZSAxXCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNsaWRlIG9mIHByb3BlcnR5RGV0YWlscy5pbWdVcmw7bGV0IGkgPSBpbmRleFwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPCEtLSBjbGFzcz1cImFkZGl0aW9uYWwtcHJvcGVydGllc1wiIC0tPlxyXG4gICAgICAgICAgPCEtLSA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWJzLXRhcmdldD1cIiNjYXJvdXNlbEV4YW1wbGVJbnRlcnZhbFwiIGRhdGEtYnMtc2xpZGUtdG89XCIxXCIgYXJpYS1sYWJlbD1cIlNsaWRlIDJcIiBjbGFzcz1cImFkZGl0aW9uYWwtcHJvcGVydGllc1wiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtYnMtdGFyZ2V0PVwiI2Nhcm91c2VsRXhhbXBsZUludGVydmFsXCIgZGF0YS1icy1zbGlkZS10bz1cIjJcIiBhcmlhLWxhYmVsPVwiU2xpZGUgM1wiIGNsYXNzPVwiYWRkaXRpb25hbC1wcm9wZXJ0aWVzXCI+PC9idXR0b24+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJwcm9wZXJ0eS1udW1iZXJzIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgPGRpdiBjbGFzcz1cImljb24tdGV4dCB3LTE4XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQgdGV4dC1jZW50ZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGdhcC0xMFwiPlxyXG4gICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlLmljb24ubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZWxlLmljb25cIiBhbHQ9XCJJY29uXCIgY2xhc3M9XCJ0aWNrLWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAtLT5cclxuICAgICAgICAgIDxwIGNsYXNzPVwibnVtYmVyLXRleHQgbWItMFwiPuKCuXt7IHByb3BlcnR5RGV0YWlscz8uZmluYW5jZURldGFpbHM/LnByaWNlUGVyU3FGZWV0IHx8IDAgfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtMSB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJwcm9wZXJ0eS10ZXh0XCI+UHJpY2UvU3EuZnQ8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvbi10ZXh0IHctMThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dCB0ZXh0LWNlbnRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZ2FwLTEwXCI+XHJcbiAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGUuaWNvbi5sZW5ndGggPiAxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZWxlLmljb25cIiBhbHQ9XCJJY29uXCIgY2xhc3M9XCJ0aWNrLWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cIm51bWJlci10ZXh0IG1iLTBcIj7igrl7eyBwcm9wZXJ0eURldGFpbHM/LmZpbmFuY2VEZXRhaWxzPy5pbmRpY2F0aXZlTWFya2V0VmFsdWUgfHwgMCB9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC0xIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInByb3BlcnR5LXRleHRcIj5JbmRpY2F0aXZlIE1hcmtldCBWYWx1ZTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXRleHQgdy0xOFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0IHRleHQtY2VudGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBnYXAtMTBcIj5cclxuICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZS5pY29uLmxlbmd0aCA+IDFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZWxlLmljb25cIiBhbHQ9XCJJY29uXCIgY2xhc3M9XCJ0aWNrLWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJudW1iZXItdGV4dCBtYi0wXCI+e3sgcHJvcGVydHlEZXRhaWxzPy5maW5hbmNlRGV0YWlscz8uaXJyIHx8IDAgfX0lPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LTEgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwicHJvcGVydHktdGV4dFwiPkludGVybmFsIFJldHVybnMgUmF0ZTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXRleHQgdy0xOFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0IHRleHQtY2VudGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBnYXAtMTBcIj5cclxuICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZS5pY29uLmxlbmd0aCA+IDFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZWxlLmljb25cIiBhbHQ9XCJJY29uXCIgY2xhc3M9XCJ0aWNrLWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJudW1iZXItdGV4dCBtYi0wXCI+e3sgcHJvcGVydHlEZXRhaWxzPy5maW5hbmNlRGV0YWlscz8uYW5udWFsUmV0dXJuIHx8IDAgfX0lPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LTEgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwicHJvcGVydHktdGV4dFwiPkFubnVhbCBSZXR1cm5zPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImljb24tdGV4dCB3LTE4XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQgdGV4dC1jZW50ZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGdhcC0xMFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzI3MzkxOGMxNzM5MTczMzU1NzI1Y2hlY2tlZCUyMDEucG5nXCIgYWx0PVwiSWNvblwiIGNsYXNzPVwidGljay1pbWdcIj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJudW1iZXItdGV4dCBtYi0wXCI+e3sgcHJvcGVydHlEZXRhaWxzPy5maW5hbmNlRGV0YWlscz8uYW5udWFsUmV0dXJuIHx8IDB9fSU8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtMSB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJwcm9wZXJ0eS10ZXh0XCI+R3VhcmFudGVlZCBhbm51YWwgY2FwaXRhbCBncm93dGg8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImFib3V0LXNlY3Rpb24gdy03MCBkLWZsZXggZy00MFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0IHctNjAgXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhYm91dC1wcm9wZXJ0eVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkLWFib3V0LXByb3BlcnR5XCI+QWJvdXQgUHJvcGVydHk8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJvdXQtcHJvcGVydHktdGV4dFwiPnt7cHJvcGVydHlEZXRhaWxzLmRlc2NyaXB0aW9ufX08L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJvdXQtcHJvcGVydHktZGV0YWlscyBkLWZsZXggZ2FwLTEwXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2FwLTEwIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC10ZXh0XCI+UHJvcGVydHkgVHlwZTogPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtdGV4dFwiPnt7cHJvcGVydHlEZXRhaWxzLnByb3BlcnR5VHlwZX19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2FwLTEwIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC10ZXh0XCI+UHJvcGVydHkgU2l6ZTo8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdC10ZXh0XCI+e3twcm9wZXJ0eURldGFpbHMudG90YWxBcmVhU3FGZWV0fX08L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnYXAtMTAgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LXRleHRcIj55ZWFyOjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXRleHRcIj57e3Byb3BlcnR5RGV0YWlscy55ZWFyfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhYm91dC1wcm9wZXJ0eVwiICpuZ0lmPVwiKHByb3BlcnR5RGV0YWlscz8uYmVuZWZpdHM/Lmxlbmd0aCB8fCAwKSA+IDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZC1hYm91dC1wcm9wZXJ0eVwiPkludmVzdG1lbnQgQmVuZWZpdDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWNvbnRhaW5lciBkLWZsZXggZ2FwLTEwXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBiZW5lZml0cyBvZiBwcm9wZXJ0eURldGFpbHMuYmVuZWZpdHNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRzXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lciB3LTEwMCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImJlbmVmaXRzLmltZ1VybFwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRcIj57e2JlbmVmaXRzLnRpdGxlfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10ZXh0XCI+e3tiZW5lZml0cy5kZXNjcmlwdGlvbn19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWJvdXQtcHJvcGVydHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZC1hYm91dC1wcm9wZXJ0eVwiPkRvY3VtZW50cyAmIFJlcG9ydHM8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0xMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgKm5nRm9yPVwibGV0IGVsZSBvZiBwZGZDYXJkc1wiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvNjc4Mzk0YzE3MzkxODM3MjYxMDdpbWFnZSUyMDkucG5nXCJcclxuICAgICAgICAgICAgICBhbHQ9XCJwZGZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy10ZXh0IHctNzUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPiB7e2VsZS5sZW5ndGggPiAxNSA/XHJcbiAgICAgICAgICAgICAgZWxlLnN1YnN0cmluZygwLDE1KSsnLi4uJyA6IGVsZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMTk1NDE0YzE3MzkxODM3Nzk4NDVmaV8zNTAyNDc3LnBuZ1wiXHJcbiAgICAgICAgICAgICAgYWx0PVwiZG93bmxvYWRcIiBjbGFzcz1cImRvd25sb2FkLWltZ1wiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdCB3LTQwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzcWZ0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWQtYWJvdXQtcHJvcGVydHlcIj5CdXkgU1FGVDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZSBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBkLWZsZXhcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXByaWNlXCI+UHJpY2UvU3EuZnQ8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1wcmljZVwiPuKCuXt7cHJvcGVydHlEZXRhaWxzLmZpbmFuY2VEZXRhaWxzLnByaWNlUGVyU3FGZWV0fX08L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3FmdC1xdWFudGl0eSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy0xMDAgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdC1zcWZ0XCI+U1FGVCBRdWFudGl0eTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LXNxZnQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cIm5vT2ZTcWZ0ID4gMCA/IG5vT2ZTcWZ0ID0gbm9PZlNxZnQgLSAxIDogbm9PZlNxZnQgPSAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBpY29uXCI+cmVtb3ZlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNxZnQtbnVtYmVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+PGlucHV0IHR5cGU9XCJudW1iZXJcIiBbKG5nTW9kZWwpXT1cIm5vT2ZTcWZ0XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3FmdC1udW1iZXIgYWRkaXRpb25hbC1wcm9wZXJ0aWVzLTIgdGV4dC1jZW50ZXIgcC0wIFwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cIm5vT2ZTcWZ0ID0gbm9PZlNxZnQgKyAxXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBpY29uXCI+YWRkPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYXlhYmxlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXlhYmxlLWxlZnRcIj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJwYXktdGV4dFwiPlBheWFibGUgQW1vdW50PC9wPjxzcGFuIGNsYXNzPVwicGF5LXN1YnRleHRcIj4oSW5jbC4gRmVlcyAmIE90aGVyXHJcbiAgICAgICAgICAgICAgTGV2aWVzKTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBheWFibGUtcmlnaHRcIj5cclxuICAgICAgICAgICAg4oK5e3sgbm9PZlNxZnQgKiBwcm9wZXJ0eURldGFpbHMuZmluYW5jZURldGFpbHMucHJpY2VQZXJTcUZlZXR9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1eVwiIChjbGljayk9XCJwdXJjaGFzZVByb3BlcnR5KClcIj5cclxuICAgICAgICAgIEJ1eSBTUUZUXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuIl19