bpm-core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +30 -0
  2. package/esm2022/bpm-core.mjs +5 -0
  3. package/esm2022/lib/classes/form-validation.mjs +80 -0
  4. package/esm2022/lib/classes/index.mjs +2 -0
  5. package/esm2022/lib/components/app-component-sections/activities/activities.component.mjs +51 -0
  6. package/esm2022/lib/components/app-component-sections/comment-section/comment-section.component.mjs +66 -0
  7. package/esm2022/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.mjs +29 -0
  8. package/esm2022/lib/components/app-component-sections/faqs/faqs.component.mjs +32 -0
  9. package/esm2022/lib/components/app-component-sections/faqs/index.mjs +2 -0
  10. package/esm2022/lib/components/app-component-sections/feedback-section/feedback-section.component.mjs +236 -0
  11. package/esm2022/lib/components/app-component-sections/form-section/form-section.component.mjs +270 -0
  12. package/esm2022/lib/components/app-component-sections/index.mjs +9 -0
  13. package/esm2022/lib/components/app-component-sections/main-request-details/main-request-details.component.mjs +34 -0
  14. package/esm2022/lib/components/app-component-sections/profile-section/profile-section.component.mjs +45 -0
  15. package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +162 -0
  16. package/esm2022/lib/components/app-component-sections/status/status.component.mjs +38 -0
  17. package/esm2022/lib/components/app-component-sections/workflow-section/workflow-section.component.mjs +162 -0
  18. package/esm2022/lib/components/shared-components/confirmation-popup/confirmation-popup.component.mjs +39 -0
  19. package/esm2022/lib/components/shared-components/delete-popup/delete-popup.component.mjs +19 -0
  20. package/esm2022/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.mjs +30 -0
  21. package/esm2022/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.mjs +28 -0
  22. package/esm2022/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.mjs +72 -0
  23. package/esm2022/lib/components/shared-components/doc-uploader/docs-uploader.component.mjs +686 -0
  24. package/esm2022/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.mjs +77 -0
  25. package/esm2022/lib/components/shared-components/form-field/attachment-section/attachment-section.component.mjs +181 -0
  26. package/esm2022/lib/components/shared-components/form-field/base-component/base-component.component.mjs +198 -0
  27. package/esm2022/lib/components/shared-components/form-field/checkbox/checkbox.component.mjs +69 -0
  28. package/esm2022/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.mjs +201 -0
  29. package/esm2022/lib/components/shared-components/form-field/date-picker/date-format.mjs +31 -0
  30. package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +244 -0
  31. package/esm2022/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.mjs +26 -0
  32. package/esm2022/lib/components/shared-components/form-field/form-label/form-label.component.mjs +31 -0
  33. package/esm2022/lib/components/shared-components/form-field/index.mjs +25 -0
  34. package/esm2022/lib/components/shared-components/form-field/info-item/info-item.component.mjs +72 -0
  35. package/esm2022/lib/components/shared-components/form-field/input/input.component.mjs +155 -0
  36. package/esm2022/lib/components/shared-components/form-field/input-autocomplete/index.mjs +3 -0
  37. package/esm2022/lib/components/shared-components/form-field/input-autocomplete/input-autocomplete.model.mjs +2 -0
  38. package/esm2022/lib/components/shared-components/form-field/input-currency/input-currency.component.mjs +157 -0
  39. package/esm2022/lib/components/shared-components/form-field/input-email/input-email.component.mjs +114 -0
  40. package/esm2022/lib/components/shared-components/form-field/input-mask/input-mask.component.mjs +111 -0
  41. package/esm2022/lib/components/shared-components/form-field/input-number/input-number.component.mjs +153 -0
  42. package/esm2022/lib/components/shared-components/form-field/input-telephone/input-telephone.component.mjs +176 -0
  43. package/esm2022/lib/components/shared-components/form-field/radio/radio.component.mjs +38 -0
  44. package/esm2022/lib/components/shared-components/form-field/repeated-list/repeated-list.component.mjs +32 -0
  45. package/esm2022/lib/components/shared-components/form-field/search-employee/search-employee.component.mjs +228 -0
  46. package/esm2022/lib/components/shared-components/form-field/select/select.component.mjs +191 -0
  47. package/esm2022/lib/components/shared-components/form-field/table-list/table-list.component.mjs +116 -0
  48. package/esm2022/lib/components/shared-components/form-field/textarea/special-chars.directive.mjs +39 -0
  49. package/esm2022/lib/components/shared-components/form-field/textarea/textarea.component.mjs +88 -0
  50. package/esm2022/lib/components/shared-components/form-field/toggle-button/toggle-button.component.mjs +75 -0
  51. package/esm2022/lib/components/shared-components/index.mjs +10 -0
  52. package/esm2022/lib/components/shared-components/terms-conditions/terms-conditions.component.mjs +31 -0
  53. package/esm2022/lib/components/shared-components/title-section/title-section.component.mjs +31 -0
  54. package/esm2022/lib/constants/constants.mjs +144 -0
  55. package/esm2022/lib/constants/index.mjs +2 -0
  56. package/esm2022/lib/environments/environment.local.mjs +27 -0
  57. package/esm2022/lib/functions/data-to-blob.mjs +12 -0
  58. package/esm2022/lib/functions/encode-password.mjs +14 -0
  59. package/esm2022/lib/functions/handel-error-response.mjs +12 -0
  60. package/esm2022/lib/functions/index.mjs +5 -0
  61. package/esm2022/lib/functions/is-valid-data.mjs +42 -0
  62. package/esm2022/lib/hooks/index.mjs +3 -0
  63. package/esm2022/lib/hooks/load-form.mjs +13 -0
  64. package/esm2022/lib/hooks/save-form.mjs +18 -0
  65. package/esm2022/lib/i18n/ar.mjs +183 -0
  66. package/esm2022/lib/i18n/en.mjs +187 -0
  67. package/esm2022/lib/i18n/index.mjs +3 -0
  68. package/esm2022/lib/interfaces/api-response.interface.mjs +2 -0
  69. package/esm2022/lib/interfaces/document-file.interface.mjs +2 -0
  70. package/esm2022/lib/interfaces/form-items.interface.mjs +2 -0
  71. package/esm2022/lib/interfaces/form.interface.mjs +150 -0
  72. package/esm2022/lib/interfaces/igate-user.interface.mjs +2 -0
  73. package/esm2022/lib/interfaces/index.mjs +8 -0
  74. package/esm2022/lib/interfaces/lov-list.interface.mjs +2 -0
  75. package/esm2022/lib/interfaces/lov.interface.mjs +2 -0
  76. package/esm2022/lib/interfaces/shared.interface.mjs +2 -0
  77. package/esm2022/lib/pipes/currency.pipe.mjs +66 -0
  78. package/esm2022/lib/pipes/format-as-password.pipe.mjs +19 -0
  79. package/esm2022/lib/pipes/index.mjs +3 -0
  80. package/esm2022/lib/services/feedBack.service.mjs +80 -0
  81. package/esm2022/lib/services/i18n.service.mjs +36 -0
  82. package/esm2022/lib/services/index.mjs +3 -0
  83. package/esm2022/lib/services/sidenav.service.mjs +69 -0
  84. package/esm2022/lib/validators/ar.directive.mjs +53 -0
  85. package/esm2022/lib/validators/currency.directive.mjs +74 -0
  86. package/esm2022/lib/validators/en.directive.mjs +50 -0
  87. package/esm2022/lib/validators/id.validator.mjs +66 -0
  88. package/esm2022/lib/validators/index.mjs +8 -0
  89. package/esm2022/lib/validators/string-to-boolean.pipe.mjs +16 -0
  90. package/esm2022/lib/validators/text.directive.mjs +50 -0
  91. package/esm2022/lib/validators/timer.pipe.mjs +19 -0
  92. package/esm2022/public-api.mjs +16 -0
  93. package/fesm2022/bpm-core.mjs +6005 -0
  94. package/fesm2022/bpm-core.mjs.map +1 -0
  95. package/index.d.ts +5 -0
  96. package/lib/classes/form-validation.d.ts +19 -0
  97. package/lib/classes/index.d.ts +1 -0
  98. package/lib/components/app-component-sections/activities/activities.component.d.ts +22 -0
  99. package/lib/components/app-component-sections/comment-section/comment-section.component.d.ts +19 -0
  100. package/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.d.ts +13 -0
  101. package/lib/components/app-component-sections/faqs/faqs.component.d.ts +17 -0
  102. package/lib/components/app-component-sections/faqs/index.d.ts +1 -0
  103. package/lib/components/app-component-sections/feedback-section/feedback-section.component.d.ts +38 -0
  104. package/lib/components/app-component-sections/form-section/form-section.component.d.ts +58 -0
  105. package/lib/components/app-component-sections/index.d.ts +8 -0
  106. package/lib/components/app-component-sections/main-request-details/main-request-details.component.d.ts +13 -0
  107. package/lib/components/app-component-sections/profile-section/profile-section.component.d.ts +17 -0
  108. package/lib/components/app-component-sections/service-header/service-header.component.d.ts +35 -0
  109. package/lib/components/app-component-sections/status/status.component.d.ts +23 -0
  110. package/lib/components/app-component-sections/workflow-section/workflow-section.component.d.ts +29 -0
  111. package/lib/components/shared-components/confirmation-popup/confirmation-popup.component.d.ts +25 -0
  112. package/lib/components/shared-components/delete-popup/delete-popup.component.d.ts +6 -0
  113. package/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +11 -0
  114. package/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.d.ts +11 -0
  115. package/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.d.ts +15 -0
  116. package/lib/components/shared-components/doc-uploader/docs-uploader.component.d.ts +144 -0
  117. package/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.d.ts +16 -0
  118. package/lib/components/shared-components/form-field/attachment-section/attachment-section.component.d.ts +30 -0
  119. package/lib/components/shared-components/form-field/base-component/base-component.component.d.ts +63 -0
  120. package/lib/components/shared-components/form-field/checkbox/checkbox.component.d.ts +18 -0
  121. package/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.d.ts +29 -0
  122. package/lib/components/shared-components/form-field/date-picker/date-format.d.ts +17 -0
  123. package/lib/components/shared-components/form-field/date-picker/date-picker.component.d.ts +41 -0
  124. package/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.d.ts +10 -0
  125. package/lib/components/shared-components/form-field/form-label/form-label.component.d.ts +12 -0
  126. package/lib/components/shared-components/form-field/index.d.ts +24 -0
  127. package/lib/components/shared-components/form-field/info-item/info-item.component.d.ts +23 -0
  128. package/lib/components/shared-components/form-field/input/input.component.d.ts +32 -0
  129. package/lib/components/shared-components/form-field/input-autocomplete/index.d.ts +1 -0
  130. package/lib/components/shared-components/form-field/input-autocomplete/input-autocomplete.model.d.ts +6 -0
  131. package/lib/components/shared-components/form-field/input-currency/input-currency.component.d.ts +31 -0
  132. package/lib/components/shared-components/form-field/input-email/input-email.component.d.ts +27 -0
  133. package/lib/components/shared-components/form-field/input-mask/input-mask.component.d.ts +27 -0
  134. package/lib/components/shared-components/form-field/input-number/input-number.component.d.ts +30 -0
  135. package/lib/components/shared-components/form-field/input-telephone/input-telephone.component.d.ts +45 -0
  136. package/lib/components/shared-components/form-field/radio/radio.component.d.ts +10 -0
  137. package/lib/components/shared-components/form-field/repeated-list/repeated-list.component.d.ts +9 -0
  138. package/lib/components/shared-components/form-field/search-employee/search-employee.component.d.ts +44 -0
  139. package/lib/components/shared-components/form-field/select/select.component.d.ts +36 -0
  140. package/lib/components/shared-components/form-field/table-list/table-list.component.d.ts +26 -0
  141. package/lib/components/shared-components/form-field/textarea/special-chars.directive.d.ts +10 -0
  142. package/lib/components/shared-components/form-field/textarea/textarea.component.d.ts +20 -0
  143. package/lib/components/shared-components/form-field/toggle-button/toggle-button.component.d.ts +20 -0
  144. package/lib/components/shared-components/index.d.ts +9 -0
  145. package/lib/components/shared-components/terms-conditions/terms-conditions.component.d.ts +12 -0
  146. package/lib/components/shared-components/title-section/title-section.component.d.ts +13 -0
  147. package/lib/constants/constants.d.ts +122 -0
  148. package/lib/constants/index.d.ts +1 -0
  149. package/lib/environments/environment.local.d.ts +26 -0
  150. package/lib/functions/data-to-blob.d.ts +1 -0
  151. package/lib/functions/encode-password.d.ts +1 -0
  152. package/lib/functions/handel-error-response.d.ts +4 -0
  153. package/lib/functions/index.d.ts +4 -0
  154. package/lib/functions/is-valid-data.d.ts +1 -0
  155. package/lib/hooks/index.d.ts +2 -0
  156. package/lib/hooks/load-form.d.ts +10 -0
  157. package/lib/hooks/save-form.d.ts +15 -0
  158. package/lib/i18n/ar.d.ts +170 -0
  159. package/lib/i18n/en.d.ts +174 -0
  160. package/lib/i18n/index.d.ts +2 -0
  161. package/lib/interfaces/api-response.interface.d.ts +5 -0
  162. package/lib/interfaces/document-file.interface.d.ts +12 -0
  163. package/lib/interfaces/form-items.interface.d.ts +14 -0
  164. package/lib/interfaces/form.interface.d.ts +95 -0
  165. package/lib/interfaces/igate-user.interface.d.ts +16 -0
  166. package/lib/interfaces/index.d.ts +7 -0
  167. package/lib/interfaces/lov-list.interface.d.ts +10 -0
  168. package/lib/interfaces/lov.interface.d.ts +19 -0
  169. package/lib/interfaces/shared.interface.d.ts +21 -0
  170. package/lib/pipes/currency.pipe.d.ts +13 -0
  171. package/lib/pipes/format-as-password.pipe.d.ts +7 -0
  172. package/lib/pipes/index.d.ts +2 -0
  173. package/lib/services/feedBack.service.d.ts +21 -0
  174. package/lib/services/i18n.service.d.ts +10 -0
  175. package/lib/services/index.d.ts +2 -0
  176. package/lib/services/sidenav.service.d.ts +28 -0
  177. package/lib/validators/ar.directive.d.ts +11 -0
  178. package/lib/validators/currency.directive.d.ts +16 -0
  179. package/lib/validators/en.directive.d.ts +11 -0
  180. package/lib/validators/id.validator.d.ts +3 -0
  181. package/lib/validators/index.d.ts +7 -0
  182. package/lib/validators/string-to-boolean.pipe.d.ts +7 -0
  183. package/lib/validators/text.directive.d.ts +12 -0
  184. package/lib/validators/timer.pipe.d.ts +7 -0
  185. package/package.json +26 -0
  186. package/public-api.d.ts +13 -0
@@ -0,0 +1,111 @@
1
+ /* eslint-disable @angular-eslint/use-lifecycle-interface */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ /* eslint-disable @angular-eslint/component-selector */
4
+ import { BaseComponent } from '../base-component/base-component.component';
5
+ // import { Validators } from '@angular/forms';
6
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
7
+ import { MatFormField } from '@angular/material/form-field';
8
+ import { SatPopoverModule } from '@ncstate/sat-popover';
9
+ import { NgxMaskDirective } from "ngx-mask";
10
+ import { NgClass, NgIf } from "@angular/common";
11
+ import { InfoItemComponent } from "../info-item/info-item.component";
12
+ import { ReactiveFormsModule } from "@angular/forms";
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@ncstate/sat-popover";
15
+ import * as i2 from "@angular/forms";
16
+ export class InputMaskComponent extends BaseComponent {
17
+ label;
18
+ displayValue;
19
+ hasError = false;
20
+ error;
21
+ tooltip;
22
+ floatLabel = 'auto';
23
+ className = 'bordered-input';
24
+ showLabel = true;
25
+ matPrefix;
26
+ iconPrefixName;
27
+ matSuffix;
28
+ iconSuffixName;
29
+ numberSuffixName;
30
+ optional = false;
31
+ showArrows = false;
32
+ decimals = 0;
33
+ ngOnInit() {
34
+ // this.resetPropagator.subscribe(this, this.resetData);
35
+ this.field == undefined ? (this.field = '') : this.field;
36
+ // code meaning
37
+ // 0 digits (like 0 to 9 numbers)
38
+ // 9 digits (like 0 to 9 numbers), but optional
39
+ // A letters (uppercase or lowercase) and digits
40
+ // S only letters (uppercase or lowercase)
41
+ // U only letters uppercase
42
+ // L only letters lowercase
43
+ }
44
+ ngAfterViewChecked() {
45
+ this.cdRef.detectChanges();
46
+ }
47
+ ngOnChanges(changes) {
48
+ if (changes?.['field']) {
49
+ if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {
50
+ this.controller.setValue('');
51
+ }
52
+ else {
53
+ this.controller.setValue(changes['field'].currentValue);
54
+ }
55
+ }
56
+ }
57
+ onValueChange(data) {
58
+ let currentValue = data.target.value;
59
+ if (+currentValue.length > +this.maxLength) {
60
+ currentValue = currentValue.substr(0, +this.maxLength).toString();
61
+ }
62
+ if (+currentValue < +this.minValue) {
63
+ currentValue = this.minValue.toString();
64
+ }
65
+ if (+currentValue > +this.maxValue) {
66
+ currentValue = this.maxValue.toString();
67
+ }
68
+ this.field = currentValue;
69
+ this.controller.setValue(this.field);
70
+ this.emitedValue.emit(this.field.trim());
71
+ }
72
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputMaskComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
73
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputMaskComponent, isStandalone: true, selector: "app-input-mask", inputs: { label: "label", displayValue: "displayValue", hasError: "hasError", error: "error", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", optional: "optional", showArrows: "showArrows", decimals: "decimals" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required && ! hideOption\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [attr.disabled]=\"disabled\" [mask]=\"mask\"\r\n [showMaskTyped]=\"false\" oninput=\"validity.valid || (value='');\" [formControl]=\"controller\"\r\n (input)=\"onValueChange($event)\" [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n <!-- <span class=\"sfi sfi-minus p-2 bc-light-gray fc-black\"></span>\r\n <span class=\"sfi sfi-plus p-2 bc-light-gray fc-black\"></span> -->\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(type !=='email' && !controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-error *ngIf=\"(type ==='email' && !controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputMaskComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'app-input-mask', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [SatPopoverModule, MatFormField, NgxMaskDirective, NgIf, InfoItemComponent, ReactiveFormsModule, NgClass], template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required && ! hideOption\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [attr.disabled]=\"disabled\" [mask]=\"mask\"\r\n [showMaskTyped]=\"false\" oninput=\"validity.valid || (value='');\" [formControl]=\"controller\"\r\n (input)=\"onValueChange($event)\" [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n <!-- <span class=\"sfi sfi-minus p-2 bc-light-gray fc-black\"></span>\r\n <span class=\"sfi sfi-plus p-2 bc-light-gray fc-black\"></span> -->\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(type !=='email' && !controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-error *ngIf=\"(type ==='email' && !controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}\n"] }]
78
+ }], propDecorators: { label: [{
79
+ type: Input
80
+ }], displayValue: [{
81
+ type: Input
82
+ }], hasError: [{
83
+ type: Input
84
+ }], error: [{
85
+ type: Input
86
+ }], tooltip: [{
87
+ type: Input
88
+ }], floatLabel: [{
89
+ type: Input
90
+ }], className: [{
91
+ type: Input
92
+ }], showLabel: [{
93
+ type: Input
94
+ }], matPrefix: [{
95
+ type: Input
96
+ }], iconPrefixName: [{
97
+ type: Input
98
+ }], matSuffix: [{
99
+ type: Input
100
+ }], iconSuffixName: [{
101
+ type: Input
102
+ }], numberSuffixName: [{
103
+ type: Input
104
+ }], optional: [{
105
+ type: Input
106
+ }], showArrows: [{
107
+ type: Input
108
+ }], decimals: [{
109
+ type: Input
110
+ }] } });
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZm9ybS1maWVsZC9pbnB1dC1tYXNrL2lucHV0LW1hc2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQtbWFzay9pbnB1dC1tYXNrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RDtBQUM1RCx1REFBdUQ7QUFDdkQsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSwrQ0FBK0M7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBaUIsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFVbkQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQWE7SUFDMUMsS0FBSyxDQUFVO0lBQ2YsWUFBWSxDQUFPO0lBQ25CLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsS0FBSyxDQUFVO0lBQ2Ys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RSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE9BQU8sQ0FBQzs4QkFHekcsS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L3VzZS1saWZlY3ljbGUtaW50ZXJmYWNlICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1jb21wb25lbnQvYmFzZS1jb21wb25lbnQuY29tcG9uZW50JztcclxuLy8gaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zsb2F0TGFiZWxUeXBlLCBNYXRGb3JtRmllbGR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBTYXRQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQG5jc3RhdGUvc2F0LXBvcG92ZXInO1xyXG5pbXBvcnQge05neE1hc2tEaXJlY3RpdmV9IGZyb20gXCJuZ3gtbWFza1wiO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtJbmZvSXRlbUNvbXBvbmVudH0gZnJvbSBcIi4uL2luZm8taXRlbS9pbmZvLWl0ZW0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1pbnB1dC1tYXNrJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtbWFzay5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtbWFzay5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtTYXRQb3BvdmVyTW9kdWxlLCBNYXRGb3JtRmllbGQsIE5neE1hc2tEaXJlY3RpdmUsIE5nSWYsIEluZm9JdGVtQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBOZ0NsYXNzXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRNYXNrQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgbGFiZWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzcGxheVZhbHVlITogYW55O1xyXG4gIEBJbnB1dCgpIGhhc0Vycm9yID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZXJyb3IhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdG9vbHRpcCE6IHN0cmluZztcclxuICBASW5wdXQoKSBmbG9hdExhYmVsOiBhbnkgPSAnYXV0byc7XHJcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJ2JvcmRlcmVkLWlucHV0JztcclxuICBASW5wdXQoKSBzaG93TGFiZWwgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG1hdFByZWZpeCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaWNvblByZWZpeE5hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbWF0U3VmZml4ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpY29uU3VmZml4TmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBudW1iZXJTdWZmaXhOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG9wdGlvbmFsID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0Fycm93cyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlY2ltYWxzID0gMDtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMucmVzZXRQcm9wYWdhdG9yLnN1YnNjcmliZSh0aGlzLCB0aGlzLnJlc2V0RGF0YSk7XHJcbiAgICB0aGlzLmZpZWxkID09IHVuZGVmaW5lZCA/ICh0aGlzLmZpZWxkID0gJycpIDogdGhpcy5maWVsZDtcclxuXHJcbiAgICAvLyBjb2RlXHRtZWFuaW5nXHJcbiAgICAvLyAwXHRkaWdpdHMgKGxpa2UgMCB0byA5IG51bWJlcnMpXHJcbiAgICAvLyA5XHRkaWdpdHMgKGxpa2UgMCB0byA5IG51bWJlcnMpLCBidXQgb3B0aW9uYWxcclxuICAgIC8vIEFcdGxldHRlcnMgKHVwcGVyY2FzZSBvciBsb3dlcmNhc2UpIGFuZCBkaWdpdHNcclxuICAgIC8vIFNcdG9ubHkgbGV0dGVycyAodXBwZXJjYXNlIG9yIGxvd2VyY2FzZSlcclxuICAgIC8vIFVcdG9ubHkgbGV0dGVycyB1cHBlcmNhc2VcclxuICAgIC8vIExcdG9ubHkgbGV0dGVycyBsb3dlcmNhc2VcclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzPy5bJ2ZpZWxkJ10pIHtcclxuICAgICAgaWYgKGNoYW5nZXM/LlsnZmllbGQnXS5jdXJyZW50VmFsdWUgPT0gJycgfHwgY2hhbmdlcz8uWydmaWVsZCddLmN1cnJlbnRWYWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLnNldFZhbHVlKCcnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXIuc2V0VmFsdWUoY2hhbmdlc1snZmllbGQnXS5jdXJyZW50VmFsdWUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVmFsdWVDaGFuZ2UoZGF0YTogYW55KSB7XHJcbiAgICBsZXQgY3VycmVudFZhbHVlID0gZGF0YS50YXJnZXQudmFsdWU7XHJcbiAgICBpZiAoK2N1cnJlbnRWYWx1ZS5sZW5ndGggPiArdGhpcy5tYXhMZW5ndGgpIHtcclxuICAgICAgY3VycmVudFZhbHVlID0gY3VycmVudFZhbHVlLnN1YnN0cigwLCArdGhpcy5tYXhMZW5ndGgpLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoK2N1cnJlbnRWYWx1ZSA8ICt0aGlzLm1pblZhbHVlKSB7XHJcbiAgICAgIGN1cnJlbnRWYWx1ZSA9IHRoaXMubWluVmFsdWUudG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIGlmICgrY3VycmVudFZhbHVlID4gK3RoaXMubWF4VmFsdWUpIHtcclxuICAgICAgY3VycmVudFZhbHVlID0gdGhpcy5tYXhWYWx1ZS50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maWVsZCA9IGN1cnJlbnRWYWx1ZTtcclxuICAgIHRoaXMuY29udHJvbGxlci5zZXRWYWx1ZSh0aGlzLmZpZWxkKVxyXG4gICAgdGhpcy5lbWl0ZWRWYWx1ZS5lbWl0KHRoaXMuZmllbGQudHJpbSgpKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1JlYWRPbmx5XCI+XHJcbiAgPCEtLSA8YXBwLWZvcm0tbGFiZWwgW2xhYmVsXT1cImxhYmVsXCIgW29wdGlvbmFsXT1cIiFyZXF1aXJlZFwiIFtoaWRlT3B0aW9uXT1cImhpZGVPcHRpb25cIiBbc2hvd0xhYmVsXT1cInNob3dMYWJlbFwiPjwvYXBwLWZvcm0tbGFiZWw+IC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMVwiICpuZ0lmPVwiaGFzTGFiZWxcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbCBtYi0wXCI+e3tsYWJlbH19PC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nSWY9XCIhcmVxdWlyZWQgJiYgISAgaGlkZU9wdGlvblwiIGNsYXNzPVwiZnMtMTEgZmMtZGFyay1ncmF5XCI+e3tpMThuLnRyYW5zbGF0ZSgnT3B0aW9uYWwnKX19XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwicHJpbWFyeS1mb3JtIHt7Y2xhc3NOYW1lfX1cIiBbbmdDbGFzc109XCJ7J2lucHV0LWRpc2FibGVkJyA6IGRpc2FibGVkIH1cIlxyXG4gICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiPlxyXG5cclxuICAgIDxzcGFuICpuZ0lmPVwiaWNvblByZWZpeE5hbWVcIiBtYXRQcmVmaXggY2xhc3M9XCJzZmkge3tpY29uUHJlZml4TmFtZX19XCI+PC9zcGFuPlxyXG4gICAgPGxhYmVsIGNsYXNzPVwibWF0LWZvcm0tY29udGVudFwiPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW3ZhbHVlXT1cInZhbHVlXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbbWFza109XCJtYXNrXCJcclxuICAgICAgICBbc2hvd01hc2tUeXBlZF09XCJmYWxzZVwiIG9uaW5wdXQ9XCJ2YWxpZGl0eS52YWxpZCB8fCAodmFsdWU9JycpO1wiIFtmb3JtQ29udHJvbF09XCJjb250cm9sbGVyXCJcclxuICAgICAgICAoaW5wdXQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCI+XHJcbiAgICA8L2xhYmVsPlxyXG5cclxuICAgIDxzcGFuICpuZ0lmPVwibWF0U3VmZml4XCIgbWF0U3VmZml4IGNsYXNzPVwic2ZpIHt7aWNvblN1ZmZpeE5hbWV9fVwiPjwvc3Bhbj5cclxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAnbnVtYmVyJ1wiIG1hdFN1ZmZpeCBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xNCBmdy1tZWRpdW1cIiAqbmdJZj1cIm51bWJlclN1ZmZpeE5hbWVcIj57e251bWJlclN1ZmZpeE5hbWV9fTwvc3Bhbj5cclxuICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInNmaSBzZmktbWludXMgcC0yIGJjLWxpZ2h0LWdyYXkgZmMtYmxhY2tcIj48L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic2ZpIHNmaS1wbHVzIHAtMiBiYy1saWdodC1ncmF5IGZjLWJsYWNrXCI+PC9zcGFuPiAtLT5cclxuICAgIDwvZGl2PlxyXG4gICAgPG1hdC1lcnJvciBjbGFzcz1cIm1iLTJcIiAqbmdJZj1cIih0eXBlICE9PSdlbWFpbCcgJiYgIWNvbnRyb2xsZXI/LnZhbGlkKVwiPlxyXG4gICAgICB7e2kxOG4udHJhbnNsYXRlKCd2YWxpZEZpZWxkRXJyb3InKX19e3tsYWJlbH19XHJcbiAgICA8L21hdC1lcnJvcj5cclxuXHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiKHR5cGUgPT09J2VtYWlsJyAmJiAhY29udHJvbGxlcj8udmFsaWQpXCI+XHJcbiAgICAgIHt7aTE4bi50cmFuc2xhdGUoJ3ZhbGlkRW1haWxFcnJvcicpfX1cclxuICAgIDwvbWF0LWVycm9yPlxyXG4gICAgPG1hdC1oaW50ICpuZ0lmPVwic2hvd0hpbnRcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzZmkgc2ZpLWNoZWNrLWNpcmNsZSBmb250LTEwIGZjLWRhcmstZ3JheVwiIFtuZ0NsYXNzXT1cInsnZmMtb2FzaXMtbGlnaHQtaW1wJzp2YWx1ZX1cIj48L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibXgtMVwiPjwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMiBmYy1vbnl4XCI+e3toaW50fX08L3NwYW4+XHJcbiAgICA8L21hdC1oaW50PlxyXG5cclxuXHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8c3BhbiBjbGFzcz1cImZjLWNvcmFsXCIgc3R5bGU9XCJjb2xvcjojZjQ0MzM2XCIgKm5nSWY9XCIoIHNob3dFcnJvck1lc3NhZ2UgJiYgY29udHJvbGxlci52YWx1ZSlcIj5cclxuICAgIHt7ZXJyb3JNZXNzYWdlfX1cclxuICA8L3NwYW4+XHJcblxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1JlYWRPbmx5ICYmIGZpZWxkXCIgY2xhc3M9XCJpbmZvLXNlY3Rpb25cIj5cclxuICA8YXBwLWluZm8taXRlbSBjbGFzcz1cImluZm8taXRlbSB3LTEwMFwiIFtsYWJlbF09XCJsYWJlbFwiIFtpbnNpZGVUYWJsZV09XCJpbnNpZGVUYWJsZVwiIFtoYXNMYWJlbF09XCJoYXNMYWJlbFwiXHJcbiAgICBbdmFsdWVdPVwiZmllbGRcIj48L2FwcC1pbmZvLWl0ZW0+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbjwhLS0gc2VjdGlvbiB0b29sdGlwIC0tPlxyXG48c2F0LXBvcG92ZXIgI3BvcG92ZXIgW2hhc0JhY2tkcm9wXT1cInRydWVcIiB2ZXJ0aWNhbEFsaWduPVwiYmVsb3dcIj5cclxuICA8ZGl2IGNsYXNzPVwiZGVhZnVsdC10b29sdGlwXCI+XHJcbiAgICB7e3Rvb2x0aXB9fVxyXG4gIDwvZGl2PlxyXG48L3NhdC1wb3BvdmVyPlxyXG4iXX0=
@@ -0,0 +1,153 @@
1
+ /* eslint-disable @angular-eslint/use-lifecycle-interface */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ /* eslint-disable @angular-eslint/component-selector */
4
+ import { BaseComponent } from '../base-component/base-component.component';
5
+ import { ReactiveFormsModule, Validators } from '@angular/forms';
6
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';
7
+ import { MatFormField } from '@angular/material/form-field';
8
+ import { NgClass, NgIf } from "@angular/common";
9
+ import { NgxMaskDirective } from "ngx-mask";
10
+ import { InfoItemComponent } from "../info-item/info-item.component";
11
+ import { SatPopoverModule } from "@ncstate/sat-popover";
12
+ import { MatInput } from "@angular/material/input";
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/forms";
15
+ import * as i2 from "@ncstate/sat-popover";
16
+ export class InputNumberComponent extends BaseComponent {
17
+ label;
18
+ displayValue;
19
+ hasError = false;
20
+ error;
21
+ tooltip;
22
+ floatLabel = 'auto';
23
+ className = 'bordered-input';
24
+ showLabel = true;
25
+ matPrefix;
26
+ iconPrefixName;
27
+ matSuffix;
28
+ iconSuffixName;
29
+ numberSuffixName;
30
+ optional = false;
31
+ showArrows = false;
32
+ decimals = 0;
33
+ allowedPattern = '';
34
+ emitedChangedValue = new EventEmitter();
35
+ ngOnInit() {
36
+ // this.resetPropagator.subscribe(this, this.resetData);
37
+ this.field == undefined ? (this.field = '') : this.field;
38
+ this.controller.setValue(this.field);
39
+ if (this.type == 'email') {
40
+ this.controller.setValidators([
41
+ Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$'),
42
+ ]);
43
+ }
44
+ if (this.minLength) {
45
+ this.controller.setValidators([Validators.minLength(+this.minLength)]);
46
+ }
47
+ if (this.maxLength && !this.mask) {
48
+ // this.controller.setValidators([Validators.maxLength(+this.maxLength)]);
49
+ //this.mask = '0'.repeat(+this.maxLength)
50
+ }
51
+ if (this.maxValue) {
52
+ this.controller.setValidators([Validators.max(+this.maxValue)]);
53
+ }
54
+ }
55
+ ngAfterViewChecked() {
56
+ this.cdRef.detectChanges();
57
+ }
58
+ ngOnChanges(changes) {
59
+ console.log("showErrorMessage :", this.showErrorMessage);
60
+ console.log("errorMessage :", this.errorMessage);
61
+ if (changes?.['field']) {
62
+ if (changes['field'].currentValue == '' || changes['field'].currentValue == null) {
63
+ this.controller.setValue('');
64
+ }
65
+ else {
66
+ this.controller.setValue(changes['field'].currentValue);
67
+ }
68
+ }
69
+ }
70
+ onValueChange(data) {
71
+ let currentValue = data.target.value;
72
+ if (+currentValue.length > +this.maxLength) {
73
+ currentValue = currentValue.substr(0, +this.maxLength).toString();
74
+ }
75
+ if (+currentValue < +this.minValue) {
76
+ currentValue = this.minValue.toString();
77
+ }
78
+ if (+currentValue > +this.maxValue) {
79
+ currentValue = this.maxValue.toString();
80
+ }
81
+ this.field = currentValue;
82
+ this.controller.setValue(this.field);
83
+ this.emitedValue.emit(this.field.trim());
84
+ }
85
+ onValueChangeEvent(data) {
86
+ console.log("showErrorMessage :", this.showErrorMessage);
87
+ let currentValue = data.target.value;
88
+ if (+currentValue.length > +this.maxLength) {
89
+ currentValue = currentValue.substr(0, +this.maxLength).toString();
90
+ }
91
+ if (+currentValue < +this.minValue) {
92
+ currentValue = this.minValue.toString();
93
+ }
94
+ if (+currentValue > +this.maxValue) {
95
+ currentValue = this.maxValue.toString();
96
+ }
97
+ this.field = currentValue;
98
+ this.controller.setValue(this.field);
99
+ this.emitedChangedValue.emit(this.field.trim());
100
+ }
101
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputNumberComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
102
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputNumberComponent, isStandalone: true, selector: "app-input-number", inputs: { label: "label", displayValue: "displayValue", hasError: "hasError", error: "error", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", optional: "optional", showArrows: "showArrows", decimals: "decimals", allowedPattern: "allowedPattern" }, outputs: { emitedChangedValue: "emitedChangedValue" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required && ! hideOption\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <!-- pattern=\"\\d*\" -->\r\n <ng-container *ngIf=\"!allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (change)=\"onValueChangeEvent($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (change)=\"onValueChangeEvent($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n </label>\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color: rgb(207 37 67);font-size: 10px;\" *ngIf=\"( showErrorMessage )\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputNumberComponent, decorators: [{
105
+ type: Component,
106
+ args: [{ selector: 'app-input-number', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
107
+ MatFormField,
108
+ NgIf,
109
+ NgClass,
110
+ ReactiveFormsModule,
111
+ NgxMaskDirective,
112
+ InfoItemComponent,
113
+ SatPopoverModule,
114
+ MatInput
115
+ ], template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required && ! hideOption\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <!-- pattern=\"\\d*\" -->\r\n <ng-container *ngIf=\"!allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (change)=\"onValueChangeEvent($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (change)=\"onValueChangeEvent($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n </label>\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color: rgb(207 37 67);font-size: 10px;\" *ngIf=\"( showErrorMessage )\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"] }]
116
+ }], propDecorators: { label: [{
117
+ type: Input
118
+ }], displayValue: [{
119
+ type: Input
120
+ }], hasError: [{
121
+ type: Input
122
+ }], error: [{
123
+ type: Input
124
+ }], tooltip: [{
125
+ type: Input
126
+ }], floatLabel: [{
127
+ type: Input
128
+ }], className: [{
129
+ type: Input
130
+ }], showLabel: [{
131
+ type: Input
132
+ }], matPrefix: [{
133
+ type: Input
134
+ }], iconPrefixName: [{
135
+ type: Input
136
+ }], matSuffix: [{
137
+ type: Input
138
+ }], iconSuffixName: [{
139
+ type: Input
140
+ }], numberSuffixName: [{
141
+ type: Input
142
+ }], optional: [{
143
+ type: Input
144
+ }], showArrows: [{
145
+ type: Input
146
+ }], decimals: [{
147
+ type: Input
148
+ }], allowedPattern: [{
149
+ type: Input
150
+ }], emitedChangedValue: [{
151
+ type: Output
152
+ }] } });
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9mb3JtLWZpZWxkL2lucHV0LW51bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsdURBQXVEO0FBQ3ZELHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBaUIsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7O0FBbUJqRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQUM1QyxL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Q0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L3VzZS1saWZlY3ljbGUtaW50ZXJmYWNlICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1jb21wb25lbnQvYmFzZS1jb21wb25lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RmxvYXRMYWJlbFR5cGUsIE1hdEZvcm1GaWVsZH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdJZn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge05neE1hc2tEaXJlY3RpdmV9IGZyb20gXCJuZ3gtbWFza1wiO1xyXG5pbXBvcnQge0luZm9JdGVtQ29tcG9uZW50fSBmcm9tIFwiLi4vaW5mby1pdGVtL2luZm8taXRlbS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtTYXRQb3BvdmVyTW9kdWxlfSBmcm9tIFwiQG5jc3RhdGUvc2F0LXBvcG92ZXJcIjtcclxuaW1wb3J0IHtNYXRJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1pbnB1dC1udW1iZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LW51bWJlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEZvcm1GaWVsZCxcclxuICAgIE5nSWYsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE5neE1hc2tEaXJlY3RpdmUsXHJcbiAgICBJbmZvSXRlbUNvbXBvbmVudCxcclxuICAgIFNhdFBvcG92ZXJNb2R1bGUsXHJcbiAgICBNYXRJbnB1dFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0TnVtYmVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgbGFiZWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzcGxheVZhbHVlITogYW55O1xyXG4gIEBJbnB1dCgpIGhhc0Vycm9yID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZXJyb3IhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdG9vbHRpcCE6IHN0cmluZztcclxuICBASW5wdXQoKSBmbG9hdExhYmVsOiBhbnkgPSAnYXV0byc7XHJcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJ2JvcmRlcmVkLWlucHV0JztcclxuICBASW5wdXQoKSBzaG93TGFiZWwgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG1hdFByZWZpeCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaWNvblByZWZpeE5hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbWF0U3VmZml4ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpY29uU3VmZml4TmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBudW1iZXJTdWZmaXhOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG9wdGlvbmFsID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0Fycm93cyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlY2ltYWxzID0gMDtcclxuICBASW5wdXQoKSBhbGxvd2VkUGF0dGVybiA9ICcnO1xyXG4gIEBPdXRwdXQoKSBlbWl0ZWRDaGFuZ2VkVmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyB0aGlzLnJlc2V0UHJvcGFnYXRvci5zdWJzY3JpYmUodGhpcywgdGhpcy5yZXNldERhdGEpO1xyXG4gICAgdGhpcy5maWVsZCA9PSB1bmRlZmluZWQgPyAodGhpcy5maWVsZCA9ICcnKSA6IHRoaXMuZmllbGQ7XHJcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2V0VmFsdWUodGhpcy5maWVsZCk7XHJcbiAgICBpZiAodGhpcy50eXBlID09ICdlbWFpbCcpIHtcclxuICAgICAgdGhpcy5jb250cm9sbGVyLnNldFZhbGlkYXRvcnMoW1xyXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXlthLXowLTkuXyUrLV0rQFthLXowLTkuLV0rXFxcXC5bYS16XXsyLDR9JCcpLFxyXG4gICAgICBdKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5taW5MZW5ndGgpIHtcclxuICAgICAgdGhpcy5jb250cm9sbGVyLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWluTGVuZ3RoKCt0aGlzLm1pbkxlbmd0aCldKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tYXhMZW5ndGggJiYgISB0aGlzLm1hc2spIHtcclxuICAgICAgLy8gdGhpcy5jb250cm9sbGVyLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKCt0aGlzLm1heExlbmd0aCldKTtcclxuICAgICAgLy90aGlzLm1hc2sgPSAnMCcucmVwZWF0KCt0aGlzLm1heExlbmd0aClcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tYXhWYWx1ZSkge1xyXG4gICAgICB0aGlzLmNvbnRyb2xsZXIuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5tYXgoK3RoaXMubWF4VmFsdWUpXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnNvbGUubG9nKFwic2hvd0Vycm9yTWVzc2FnZSA6XCIsdGhpcy5zaG93RXJyb3JNZXNzYWdlKVxyXG4gICAgY29uc29sZS5sb2coXCJlcnJvck1lc3NhZ2UgOlwiLHRoaXMuZXJyb3JNZXNzYWdlKVxyXG5cclxuICAgIGlmIChjaGFuZ2VzPy5bJ2ZpZWxkJ10pIHtcclxuICAgICAgaWYgKGNoYW5nZXNbJ2ZpZWxkJ10uY3VycmVudFZhbHVlID09ICcnIHx8IGNoYW5nZXNbJ2ZpZWxkJ10uY3VycmVudFZhbHVlID09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXIuc2V0VmFsdWUoJycpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29udHJvbGxlci5zZXRWYWx1ZShjaGFuZ2VzWydmaWVsZCddLmN1cnJlbnRWYWx1ZSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZShkYXRhOiBhbnkpIHtcclxuICAgIGxldCBjdXJyZW50VmFsdWUgPSBkYXRhLnRhcmdldC52YWx1ZTtcclxuICAgIGlmICgrY3VycmVudFZhbHVlLmxlbmd0aCA+ICt0aGlzLm1heExlbmd0aCkge1xyXG4gICAgICBjdXJyZW50VmFsdWUgPSBjdXJyZW50VmFsdWUuc3Vic3RyKDAsICt0aGlzLm1heExlbmd0aCkudG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIGlmICgrY3VycmVudFZhbHVlIDwgK3RoaXMubWluVmFsdWUpIHtcclxuICAgICAgY3VycmVudFZhbHVlID0gdGhpcy5taW5WYWx1ZS50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgaWYgKCtjdXJyZW50VmFsdWUgPiArdGhpcy5tYXhWYWx1ZSkge1xyXG4gICAgICBjdXJyZW50VmFsdWUgPSB0aGlzLm1heFZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpZWxkID0gY3VycmVudFZhbHVlO1xyXG4gICAgdGhpcy5jb250cm9sbGVyLnNldFZhbHVlKHRoaXMuZmllbGQpXHJcbiAgICB0aGlzLmVtaXRlZFZhbHVlLmVtaXQodGhpcy5maWVsZC50cmltKCkpO1xyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZUV2ZW50KGRhdGE6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJzaG93RXJyb3JNZXNzYWdlIDpcIix0aGlzLnNob3dFcnJvck1lc3NhZ2UpXHJcblxyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZSA9IGRhdGEudGFyZ2V0LnZhbHVlO1xyXG4gICAgaWYgKCtjdXJyZW50VmFsdWUubGVuZ3RoID4gK3RoaXMubWF4TGVuZ3RoKSB7XHJcbiAgICAgIGN1cnJlbnRWYWx1ZSA9IGN1cnJlbnRWYWx1ZS5zdWJzdHIoMCwgK3RoaXMubWF4TGVuZ3RoKS50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgaWYgKCtjdXJyZW50VmFsdWUgPCArdGhpcy5taW5WYWx1ZSkge1xyXG4gICAgICBjdXJyZW50VmFsdWUgPSB0aGlzLm1pblZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoK2N1cnJlbnRWYWx1ZSA+ICt0aGlzLm1heFZhbHVlKSB7XHJcbiAgICAgIGN1cnJlbnRWYWx1ZSA9IHRoaXMubWF4VmFsdWUudG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZmllbGQgPSBjdXJyZW50VmFsdWU7XHJcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2V0VmFsdWUodGhpcy5maWVsZClcclxuICAgIHRoaXMuZW1pdGVkQ2hhbmdlZFZhbHVlLmVtaXQodGhpcy5maWVsZC50cmltKCkpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUmVhZE9ubHlcIj5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG1iLTFcIiAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWwgbWItMFwiPnt7bGFiZWx9fTwvc3Bhbj5cclxuICAgIDxzcGFuICpuZ0lmPVwiIXJlcXVpcmVkICYmICEgIGhpZGVPcHRpb25cIiBjbGFzcz1cImZzLTExIGZjLWRhcmstZ3JheVwiPnt7aTE4bi50cmFuc2xhdGUoJ09wdGlvbmFsJyl9fVxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInByaW1hcnktZm9ybSB7e2NsYXNzTmFtZX19XCIgW25nQ2xhc3NdPVwieydpbnB1dC1kaXNhYmxlZCcgOiBkaXNhYmxlZCB9XCJcclxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIj5cclxuXHJcbiAgICA8c3BhbiAqbmdJZj1cImljb25QcmVmaXhOYW1lXCIgbWF0UHJlZml4IGNsYXNzPVwic2ZpIHt7aWNvblByZWZpeE5hbWV9fVwiPjwvc3Bhbj5cclxuICAgIDxsYWJlbCBjbGFzcz1cIm1hdC1mb3JtLWNvbnRlbnRcIj5cclxuICAgICAgPCEtLSBwYXR0ZXJuPVwiXFxkKlwiIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWFsbG93ZWRQYXR0ZXJuXCI+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFt2YWx1ZV09XCJ2YWx1ZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIG51bWJlck9ubHlcclxuICAgICAgICAgIG9uaW5wdXQ9XCJ2YWxpZGl0eS52YWxpZCB8fCAodmFsdWU9JycpO1wiIFtmb3JtQ29udHJvbF09XCJjb250cm9sbGVyXCIgKGlucHV0KT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiICBbbWFza109XCJtYXNrXCIgPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhbGxvd2VkUGF0dGVyblwiPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbdmFsdWVdPVwidmFsdWVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBudW1iZXJPbmx5XHJcbiAgICAgICAgICAgICAgIG9uaW5wdXQ9XCJ2YWxpZGl0eS52YWxpZCB8fCAodmFsdWU9JycpO1wiIFtmb3JtQ29udHJvbF09XCJjb250cm9sbGVyXCIgKGlucHV0KT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiICBbbWFza109XCJtYXNrXCIgPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbGFiZWw+XHJcbiAgICA8c3BhbiAqbmdJZj1cIm1hdFN1ZmZpeFwiIG1hdFN1ZmZpeCBjbGFzcz1cInNmaSB7e2ljb25TdWZmaXhOYW1lfX1cIj48L3NwYW4+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ251bWJlcidcIiBtYXRTdWZmaXggY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTQgZnctbWVkaXVtXCIgKm5nSWY9XCJudW1iZXJTdWZmaXhOYW1lXCI+e3tudW1iZXJTdWZmaXhOYW1lfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtZXJyb3IgY2xhc3M9XCJtYi0yXCIgKm5nSWY9XCIoIWNvbnRyb2xsZXI/LnZhbGlkKVwiPlxyXG4gICAgICB7e2kxOG4udHJhbnNsYXRlKCd2YWxpZEZpZWxkRXJyb3InKX19e3tsYWJlbH19XHJcbiAgICA8L21hdC1lcnJvcj5cclxuXHJcbiAgICA8bWF0LWhpbnQgKm5nSWY9XCJzaG93SGludFwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInNmaSBzZmktY2hlY2stY2lyY2xlIGZvbnQtMTAgZmMtZGFyay1ncmF5XCIgW25nQ2xhc3NdPVwieydmYy1vYXNpcy1saWdodC1pbXAnOnZhbHVlfVwiPjwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJteC0xXCI+PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZzLTEyIGZjLW9ueXhcIj57e2hpbnR9fTwvc3Bhbj5cclxuICAgIDwvbWF0LWhpbnQ+XHJcblxyXG5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxzcGFuIGNsYXNzPVwiZmMtY29yYWxcIiBzdHlsZT1cImNvbG9yOiByZ2IoMjA3IDM3IDY3KTtmb250LXNpemU6IDEwcHg7XCIgKm5nSWY9XCIoIHNob3dFcnJvck1lc3NhZ2UgKVwiPlxyXG4gICAge3tlcnJvck1lc3NhZ2V9fVxyXG4gIDwvc3Bhbj5cclxuXHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmVhZE9ubHkgJiYgZmllbGRcIiBjbGFzcz1cImluZm8tc2VjdGlvblwiPlxyXG4gIDxhcHAtaW5mby1pdGVtIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCIgW2xhYmVsXT1cImxhYmVsXCIgW2luc2lkZVRhYmxlXT1cImluc2lkZVRhYmxlXCIgW2hhc0xhYmVsXT1cImhhc0xhYmVsXCJcclxuICAgIFt2YWx1ZV09XCJmaWVsZFwiPjwvYXBwLWluZm8taXRlbT5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuPCEtLSBzZWN0aW9uIHRvb2x0aXAgLS0+XHJcbjxzYXQtcG9wb3ZlciAjcG9wb3ZlciBbaGFzQmFja2Ryb3BdPVwidHJ1ZVwiIHZlcnRpY2FsQWxpZ249XCJiZWxvd1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJkZWFmdWx0LXRvb2x0aXBcIj5cclxuICAgIHt7dG9vbHRpcH19XHJcbiAgPC9kaXY+XHJcbjwvc2F0LXBvcG92ZXI+XHJcbiJdfQ==
@@ -0,0 +1,176 @@
1
+ import { FormControl, FormsModule } from '@angular/forms';
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ /* eslint-disable @angular-eslint/component-selector */
4
+ import { Component, Input, Output, EventEmitter, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
5
+ import { MatError, MatFormField } from "@angular/material/form-field";
6
+ import { InfoItemComponent } from "../info-item/info-item.component";
7
+ import { NgIf } from "@angular/common";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../../services";
10
+ export class InputTelephoneComponent {
11
+ i18n;
12
+ label;
13
+ value;
14
+ tooltip;
15
+ floatLabel = 'auto';
16
+ className = 'bordered-input';
17
+ placeholder;
18
+ showLabel = true;
19
+ isReadOnly = false;
20
+ matPrefix;
21
+ iconPrefixName;
22
+ matSuffix;
23
+ iconSuffixName;
24
+ required = true;
25
+ disabled = false;
26
+ field;
27
+ name;
28
+ controller = new FormControl();
29
+ error;
30
+ checkPhoneError = new EventEmitter();
31
+ phoneValue = new EventEmitter();
32
+ totalNumber = new EventEmitter();
33
+ maxLength;
34
+ minLength;
35
+ countryCode = '966';
36
+ showEdit = false;
37
+ inputValue = new EventEmitter();
38
+ emitedValue = new EventEmitter();
39
+ telhasError;
40
+ emitedError = new EventEmitter();
41
+ constructor(i18n) {
42
+ this.i18n = i18n;
43
+ }
44
+ onCountryChange(event) {
45
+ this.countryCode = event.dialCode;
46
+ // console.log(event)
47
+ }
48
+ hasError(event) {
49
+ console.log(event);
50
+ this.telhasError = !event;
51
+ if (this.telhasError) {
52
+ this.emitedError.emit(this.telhasError);
53
+ console.log(" error", this.error);
54
+ this.controller.setErrors({ 'incorrect': true });
55
+ this.error = this.i18n.translate('messageErrorPhoneNumber');
56
+ }
57
+ else {
58
+ this.controller.setErrors({ 'incorrect': false });
59
+ }
60
+ this.emitedValue.emit({
61
+ field: this.field,
62
+ hasError: this.telhasError
63
+ });
64
+ // this.checkPhoneError.emit(event);
65
+ // if (this.controller.value != null) {
66
+ // if (event == false && this.controller.value.length < 0) {
67
+ // // this.phoneHasErrReqiured = true;
68
+ // // this.phoneHasErrValid = false;
69
+ // this.error = this.translate.translate('messageErrorPhoneNumber');
70
+ // } else {
71
+ // if (event == false) {
72
+ // if (this.controller.value.length == 0) {
73
+ // this.error = this.translate.translate('messageErrorPhoneNumber');
74
+ // } else {
75
+ // this.error = this.translate.translate('messageErrorPhoneNumber');
76
+ // }
77
+ // } else {
78
+ // if (this.controller.value.length == 0) {
79
+ // this.error = this.translate.translate('messageErrorPhoneNumber');
80
+ // } else {
81
+ // this.error = '';
82
+ // }
83
+ // }
84
+ // }
85
+ // } else {
86
+ // this.error = this.translate.translate('messageErrorPhoneNumber');
87
+ // }
88
+ // // console.log(" this.error", this.error);
89
+ }
90
+ getNumber(event) {
91
+ console.log('ssssssssssssssssssssssssssssssssssssssssssssssss');
92
+ this.phoneValue.emit(this.countryCode);
93
+ this.totalNumber.emit(event);
94
+ // this.emitedValue.emit(this.field)
95
+ this.emitedError.emit(this.telhasError);
96
+ }
97
+ telInputObject($event) {
98
+ console.log(event);
99
+ }
100
+ editClicked() {
101
+ console.log('xxxxxxxxxxxxxx');
102
+ // this.editPhone.emit()
103
+ }
104
+ onValueChange(data) {
105
+ // console.log('xxxxxxxxxxxxxx',this.countryCode,data.target.value)
106
+ this.inputValue.emit(data.target.value);
107
+ }
108
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputTelephoneComponent, deps: [{ token: i1.CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
109
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputTelephoneComponent, isStandalone: true, selector: "app-input-telephone", inputs: { label: "label", value: "value", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", placeholder: "placeholder", showLabel: "showLabel", isReadOnly: "isReadOnly", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", required: "required", disabled: "disabled", field: "field", name: "name", controller: "controller", error: "error", maxLength: "maxLength", minLength: "minLength", showEdit: "showEdit" }, outputs: { checkPhoneError: "checkPhoneError", phoneValue: "phoneValue", totalNumber: "totalNumber", inputValue: "inputValue", emitedValue: "emitedValue", emitedError: "emitedError" }, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"showLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field style=\"height: 50px;\" class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\r\n <label class=\"mat-form-content\">\r\n <!-- [placeholder]=\"label\" -->\r\n <!-- <input matInput [disabled]=\"disabled\" ng2TelInput numberOnly #phone\r\n [ng2TelInputOptions]=\"{initialCountry: 'sa', utilsScript: 'assets/js/utils.js'}\" (hasError)=\"hasError($event)\"\r\n (ng2TelOutput)=\"getNumber($event)\" (intlTelInputObject)=\"telInputObject($event)\"\r\n (countryChange)=\"onCountryChange($event)\" [(ngModel)]=\"field\" [name]=\"name\"\r\n oninput=\"this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\\..*)\\./g, '$1');\"\r\n [maxlength]=\"maxLength\" [minLength]=\"minLength\" />-->\r\n </label>\r\n\r\n </mat-form-field>\r\n <mat-error class=\"mb-2 fs-14\" *ngIf=\"controller?.errors?.['incorrect']\">\r\n {{error}}\r\n </mat-error>\r\n <!-- <mat-error *ngIf=\"controller?.errors?.incorrect\" class=\"fc-red1-imp\"> {{error}} </mat-error> -->\r\n\r\n\r\n <!-- <span *ngIf=\"telhasError\"> {{error}}</span> -->\r\n</ng-container>\r\n\r\n\r\n<ng-container *ngIf=\"isReadOnly\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'telephone'\" [label]=\"label\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n", styles: ["[dir=rtl] :host .mat-input-element{direction:ltr;text-align:right}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
110
+ }
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputTelephoneComponent, decorators: [{
112
+ type: Component,
113
+ args: [{ selector: 'app-input-telephone', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
114
+ MatFormField,
115
+ MatError,
116
+ InfoItemComponent,
117
+ FormsModule,
118
+ NgIf,
119
+ // Ng2TelInputModule
120
+ ], template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"showLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field style=\"height: 50px;\" class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\r\n <label class=\"mat-form-content\">\r\n <!-- [placeholder]=\"label\" -->\r\n <!-- <input matInput [disabled]=\"disabled\" ng2TelInput numberOnly #phone\r\n [ng2TelInputOptions]=\"{initialCountry: 'sa', utilsScript: 'assets/js/utils.js'}\" (hasError)=\"hasError($event)\"\r\n (ng2TelOutput)=\"getNumber($event)\" (intlTelInputObject)=\"telInputObject($event)\"\r\n (countryChange)=\"onCountryChange($event)\" [(ngModel)]=\"field\" [name]=\"name\"\r\n oninput=\"this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\\..*)\\./g, '$1');\"\r\n [maxlength]=\"maxLength\" [minLength]=\"minLength\" />-->\r\n </label>\r\n\r\n </mat-form-field>\r\n <mat-error class=\"mb-2 fs-14\" *ngIf=\"controller?.errors?.['incorrect']\">\r\n {{error}}\r\n </mat-error>\r\n <!-- <mat-error *ngIf=\"controller?.errors?.incorrect\" class=\"fc-red1-imp\"> {{error}} </mat-error> -->\r\n\r\n\r\n <!-- <span *ngIf=\"telhasError\"> {{error}}</span> -->\r\n</ng-container>\r\n\r\n\r\n<ng-container *ngIf=\"isReadOnly\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'telephone'\" [label]=\"label\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n", styles: ["[dir=rtl] :host .mat-input-element{direction:ltr;text-align:right}\n"] }]
121
+ }], ctorParameters: () => [{ type: i1.CoreI18nService }], propDecorators: { label: [{
122
+ type: Input
123
+ }], value: [{
124
+ type: Input
125
+ }], tooltip: [{
126
+ type: Input
127
+ }], floatLabel: [{
128
+ type: Input
129
+ }], className: [{
130
+ type: Input
131
+ }], placeholder: [{
132
+ type: Input
133
+ }], showLabel: [{
134
+ type: Input
135
+ }], isReadOnly: [{
136
+ type: Input
137
+ }], matPrefix: [{
138
+ type: Input
139
+ }], iconPrefixName: [{
140
+ type: Input
141
+ }], matSuffix: [{
142
+ type: Input
143
+ }], iconSuffixName: [{
144
+ type: Input
145
+ }], required: [{
146
+ type: Input
147
+ }], disabled: [{
148
+ type: Input
149
+ }], field: [{
150
+ type: Input
151
+ }], name: [{
152
+ type: Input
153
+ }], controller: [{
154
+ type: Input
155
+ }], error: [{
156
+ type: Input
157
+ }], checkPhoneError: [{
158
+ type: Output
159
+ }], phoneValue: [{
160
+ type: Output
161
+ }], totalNumber: [{
162
+ type: Output
163
+ }], maxLength: [{
164
+ type: Input
165
+ }], minLength: [{
166
+ type: Input
167
+ }], showEdit: [{
168
+ type: Input
169
+ }], inputValue: [{
170
+ type: Output
171
+ }], emitedValue: [{
172
+ type: Output
173
+ }], emitedError: [{
174
+ type: Output
175
+ }] } });
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGVsZXBob25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9mb3JtLWZpZWxkL2lucHV0LXRlbGVwaG9uZS9pbnB1dC10ZWxlcGhvbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQtdGVsZXBob25lL2lucHV0LXRlbGVwaG9uZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELHVEQUF1RDtBQUN2RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQWlCLFFBQVEsRUFBRSxZQUFZLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUdwRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7OztBQWlCckMsTUFBTSxPQUFPLHVCQUF1QjtJQStCekI7SUE5QkEsS0FBSyxDQUFVO0lBQ2YsS0FBSyxDQUFVO0lBQ2YsT0FBTyxDQUFVO0lBQ2pCLFVBQVUsR0FBUSxNQUFNLENBQUM7SUFDekIsU0FBUyxHQUFHLGdCQUFnQixDQUFDO0lBQzdCLFdBQVcsQ0FBVTtJQUNyQixTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsU0FBUyxDQUFXO0lB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QUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zsb2F0TGFiZWxUeXBlLCBNYXRFcnJvciwgTWF0Rm9ybUZpZWxkfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQgeyBDb3JlSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7TmcyVGVsSW5wdXRNb2R1bGV9IGZyb20gXCJuZzItdGVsLWlucHV0XCI7XHJcbmltcG9ydCB7SW5mb0l0ZW1Db21wb25lbnR9IGZyb20gXCIuLi9pbmZvLWl0ZW0vaW5mby1pdGVtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge05nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWlucHV0LXRlbGVwaG9uZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXRlbGVwaG9uZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtdGVsZXBob25lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0Rm9ybUZpZWxkLFxyXG4gICAgTWF0RXJyb3IsXHJcbiAgICBJbmZvSXRlbUNvbXBvbmVudCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTmdJZixcclxuICAgIC8vIE5nMlRlbElucHV0TW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRUZWxlcGhvbmVDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZhbHVlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXAhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZmxvYXRMYWJlbDogYW55ID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICdib3JkZXJlZC1pbnB1dCc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0xhYmVsID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbWF0UHJlZml4ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpY29uUHJlZml4TmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBtYXRTdWZmaXghOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGljb25TdWZmaXhOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZpZWxkOiBhbnk7XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbnRyb2xsZXI6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgQElucHV0KCkgZXJyb3IhOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGNoZWNrUGhvbmVFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgcGhvbmVWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSB0b3RhbE51bWJlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBJbnB1dCgpIG1heExlbmd0aDogYW55O1xyXG4gIEBJbnB1dCgpIG1pbkxlbmd0aDogYW55O1xyXG4gIGNvdW50cnlDb2RlID0gJzk2Nic7XHJcbiAgQElucHV0KCkgc2hvd0VkaXQgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgaW5wdXRWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZW1pdGVkVmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgdGVsaGFzRXJyb3I6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIGVtaXRlZEVycm9yID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGkxOG46IENvcmVJMThuU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG5cclxuXHJcbiAgb25Db3VudHJ5Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY291bnRyeUNvZGUgPSBldmVudC5kaWFsQ29kZVxyXG4gICAgLy8gY29uc29sZS5sb2coZXZlbnQpXHJcbiAgfVxyXG5cclxuICBoYXNFcnJvcihldmVudDogYm9vbGVhbikge1xyXG4gICAgY29uc29sZS5sb2coZXZlbnQpO1xyXG4gICAgdGhpcy50ZWxoYXNFcnJvciA9ICFldmVudFxyXG4gICAgaWYgKHRoaXMudGVsaGFzRXJyb3IpIHtcclxuICAgICAgdGhpcy5lbWl0ZWRFcnJvci5lbWl0KHRoaXMudGVsaGFzRXJyb3IpXHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcIiBlcnJvclwiLCB0aGlzLmVycm9yKTtcclxuICAgICAgdGhpcy5jb250cm9sbGVyLnNldEVycm9ycyh7ICdpbmNvcnJlY3QnOiB0cnVlIH0pO1xyXG4gICAgICB0aGlzLmVycm9yID0gdGhpcy5pMThuLnRyYW5zbGF0ZSgnbWVzc2FnZUVycm9yUGhvbmVOdW1iZXInKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29udHJvbGxlci5zZXRFcnJvcnMoeyAnaW5jb3JyZWN0JzogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmVtaXRlZFZhbHVlLmVtaXQoXHJcbiAgICAgIHtcclxuICAgICAgICBmaWVsZDp0aGlzLmZpZWxkLFxyXG4gICAgICAgIGhhc0Vycm9yOnRoaXMudGVsaGFzRXJyb3JcclxuICAgICAgfVxyXG4gICAgIClcclxuXHJcbiAgICAvLyB0aGlzLmNoZWNrUGhvbmVFcnJvci5lbWl0KGV2ZW50KTtcclxuXHJcbiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVyLnZhbHVlICE9IG51bGwpIHtcclxuICAgIC8vICAgaWYgKGV2ZW50ID09IGZhbHNlICYmIHRoaXMuY29udHJvbGxlci52YWx1ZS5sZW5ndGggPCAwKSB7XHJcbiAgICAvLyAgICAgLy8gdGhpcy5waG9uZUhhc0VyclJlcWl1cmVkID0gdHJ1ZTtcclxuICAgIC8vICAgICAvLyB0aGlzLnBob25lSGFzRXJyVmFsaWQgPSBmYWxzZTtcclxuXHJcbiAgICAvLyAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlLnRyYW5zbGF0ZSgnbWVzc2FnZUVycm9yUGhvbmVOdW1iZXInKTtcclxuXHJcbiAgICAvLyAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgaWYgKGV2ZW50ID09IGZhbHNlKSB7XHJcbiAgICAvLyAgICAgICBpZiAodGhpcy5jb250cm9sbGVyLnZhbHVlLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZS50cmFuc2xhdGUoJ21lc3NhZ2VFcnJvclBob25lTnVtYmVyJyk7XHJcbiAgICAvLyAgICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGUudHJhbnNsYXRlKCdtZXNzYWdlRXJyb3JQaG9uZU51bWJlcicpO1xyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgICBpZiAodGhpcy5jb250cm9sbGVyLnZhbHVlLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZS50cmFuc2xhdGUoJ21lc3NhZ2VFcnJvclBob25lTnVtYmVyJyk7XHJcbiAgICAvLyAgICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgICB0aGlzLmVycm9yID0gJyc7XHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGUudHJhbnNsYXRlKCdtZXNzYWdlRXJyb3JQaG9uZU51bWJlcicpO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gLy8gY29uc29sZS5sb2coXCIgdGhpcy5lcnJvclwiLCB0aGlzLmVycm9yKTtcclxuICB9XHJcblxyXG4gIGdldE51bWJlcihldmVudDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygnc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzJylcclxuICAgIHRoaXMucGhvbmVWYWx1ZS5lbWl0KHRoaXMuY291bnRyeUNvZGUpXHJcbiAgICB0aGlzLnRvdGFsTnVtYmVyLmVtaXQoZXZlbnQpXHJcbiAgIC8vIHRoaXMuZW1pdGVkVmFsdWUuZW1pdCh0aGlzLmZpZWxkKVxyXG4gICAgdGhpcy5lbWl0ZWRFcnJvci5lbWl0KHRoaXMudGVsaGFzRXJyb3IpXHJcbiAgfVxyXG5cclxuICB0ZWxJbnB1dE9iamVjdCgkZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coZXZlbnQpXHJcbiAgfVxyXG5cclxuICBlZGl0Q2xpY2tlZCgpIHtcclxuICAgIGNvbnNvbGUubG9nKCd4eHh4eHh4eHh4eHh4eCcpXHJcbiAgICAvLyB0aGlzLmVkaXRQaG9uZS5lbWl0KClcclxuICB9XHJcblxyXG4gIG9uVmFsdWVDaGFuZ2UoZGF0YTogYW55KSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygneHh4eHh4eHh4eHh4eHgnLHRoaXMuY291bnRyeUNvZGUsZGF0YS50YXJnZXQudmFsdWUpXHJcbiAgICB0aGlzLmlucHV0VmFsdWUuZW1pdChkYXRhLnRhcmdldC52YWx1ZSlcclxuICB9XHJcblxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNSZWFkT25seVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMVwiICpuZ0lmPVwic2hvd0xhYmVsXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWwgbWItMFwiPnt7bGFiZWx9fTwvc3Bhbj5cclxuICAgIDxzcGFuICpuZ0lmPVwiIXJlcXVpcmVkXCIgY2xhc3M9XCJmcy0xMSBmYy1kYXJrLWdyYXlcIj4ge3tpMThuLnRyYW5zbGF0ZSgnT3B0aW9uYWwnKX19XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwiaGVpZ2h0OiA1MHB4O1wiIGNsYXNzPVwicHJpbWFyeS1mb3JtIGlucHV0LXRlbGVwaG9uZSB7e2NsYXNzTmFtZX19XCIgZmxvYXRMYWJlbD1cImFsd2F5c1wiPlxyXG4gICAgPG1hdC1sYWJlbD5cclxuICAgICAge3tsYWJlbH19XHJcbiAgICA8L21hdC1sYWJlbD5cclxuICAgIDxsYWJlbCBjbGFzcz1cIm1hdC1mb3JtLWNvbnRlbnRcIj5cclxuICAgICAgPCEtLSBbcGxhY2Vob2xkZXJdPVwibGFiZWxcIiAtLT5cclxuICAgIDwhLS0gIDxpbnB1dCBtYXRJbnB1dCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBuZzJUZWxJbnB1dCBudW1iZXJPbmx5ICNwaG9uZVxyXG4gICAgICAgIFtuZzJUZWxJbnB1dE9wdGlvbnNdPVwie2luaXRpYWxDb3VudHJ5OiAnc2EnLCB1dGlsc1NjcmlwdDogJ2Fzc2V0cy9qcy91dGlscy5qcyd9XCIgKGhhc0Vycm9yKT1cImhhc0Vycm9yKCRldmVudClcIlxyXG4gICAgICAgIChuZzJUZWxPdXRwdXQpPVwiZ2V0TnVtYmVyKCRldmVudClcIiAoaW50bFRlbElucHV0T2JqZWN0KT1cInRlbElucHV0T2JqZWN0KCRldmVudClcIlxyXG4gICAgICAgIChjb3VudHJ5Q2hhbmdlKT1cIm9uQ291bnRyeUNoYW5nZSgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJmaWVsZFwiIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlLnJlcGxhY2UoL1teMC05Ll0vZywgJycpOyB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5yZXBsYWNlKC8oXFwuLiopXFwuL2csICckMScpO1wiXHJcbiAgICAgICAgW21heGxlbmd0aF09XCJtYXhMZW5ndGhcIiBbbWluTGVuZ3RoXT1cIm1pbkxlbmd0aFwiIC8+LS0+XHJcbiAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZXJyb3IgY2xhc3M9XCJtYi0yIGZzLTE0XCIgKm5nSWY9XCJjb250cm9sbGVyPy5lcnJvcnM/LlsnaW5jb3JyZWN0J11cIj5cclxuICAgICAge3tlcnJvcn19XHJcbiAgICA8L21hdC1lcnJvcj5cclxuICAgIDwhLS0gPG1hdC1lcnJvciAqbmdJZj1cImNvbnRyb2xsZXI/LmVycm9ycz8uaW5jb3JyZWN0XCIgY2xhc3M9XCJmYy1yZWQxLWltcFwiPiB7e2Vycm9yfX0gPC9tYXQtZXJyb3I+IC0tPlxyXG5cclxuXHJcbiAgICA8IS0tIDxzcGFuICAqbmdJZj1cInRlbGhhc0Vycm9yXCI+IHt7ZXJyb3J9fTwvc3Bhbj4gLS0+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1JlYWRPbmx5XCI+XHJcbiAgPGFwcC1pbmZvLWl0ZW0gY2xhc3M9XCJpbmZvLWl0ZW0gdy0xMDBcIiAgW3R5cGVdPVwiJ3RlbGVwaG9uZSdcIiBbbGFiZWxdPVwibGFiZWxcIlxyXG4gICAgW3ZhbHVlXT1cImZpZWxkXCI+PC9hcHAtaW5mby1pdGVtPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19