bpm-core 0.0.104 → 0.0.105

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 (131) hide show
  1. package/esm2022/bpm-core.mjs +5 -0
  2. package/esm2022/lib/app/app.component.mjs +79 -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 +44 -0
  6. package/esm2022/lib/components/app-component-sections/approvals/approvals.component.mjs +23 -0
  7. package/esm2022/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.mjs +113 -0
  8. package/esm2022/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.mjs +25 -0
  9. package/esm2022/lib/components/app-component-sections/faqs/faqs.component.mjs +27 -0
  10. package/esm2022/lib/components/app-component-sections/faqs/index.mjs +2 -0
  11. package/esm2022/lib/components/app-component-sections/feedback-section/feedback-section.component.mjs +237 -0
  12. package/esm2022/lib/components/app-component-sections/form-section/form-section.component.mjs +255 -0
  13. package/esm2022/lib/components/app-component-sections/index.mjs +9 -0
  14. package/esm2022/lib/components/app-component-sections/layout/header/header.component.mjs +79 -0
  15. package/esm2022/lib/components/app-component-sections/layout/layout.component.mjs +89 -0
  16. package/esm2022/lib/components/app-component-sections/layout/side-nav/side-nav.component.mjs +158 -0
  17. package/esm2022/lib/components/app-component-sections/main-request-details/main-request-details.component.mjs +34 -0
  18. package/esm2022/lib/components/app-component-sections/previous-requests/previous-requests.component.mjs +345 -0
  19. package/esm2022/lib/components/app-component-sections/profile-section/profile-section.component.mjs +45 -0
  20. package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +271 -0
  21. package/esm2022/lib/components/app-component-sections/status/status.component.mjs +38 -0
  22. package/esm2022/lib/components/app-component-sections/workflow-section/workflow-section.component.mjs +164 -0
  23. package/esm2022/lib/components/shared-components/action-buttons/action-buttons.component.mjs +138 -0
  24. package/esm2022/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.mjs +30 -0
  25. package/esm2022/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.mjs +29 -0
  26. package/esm2022/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.mjs +67 -0
  27. package/esm2022/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.mjs +138 -0
  28. package/esm2022/lib/components/shared-components/form-field/attachment-section/attachment-section.component.mjs +234 -0
  29. package/esm2022/lib/components/shared-components/form-field/base-component/base-component.component.mjs +198 -0
  30. package/esm2022/lib/components/shared-components/form-field/checkbox/checkbox.component.mjs +91 -0
  31. package/esm2022/lib/components/shared-components/form-field/control-value-accessor.directive.mjs +185 -0
  32. package/esm2022/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.mjs +131 -0
  33. package/esm2022/lib/components/shared-components/form-field/date-picker/date-format.mjs +31 -0
  34. package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +175 -0
  35. package/esm2022/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.mjs +186 -0
  36. package/esm2022/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.mjs +525 -0
  37. package/esm2022/lib/components/shared-components/form-field/form-label/form-label.component.mjs +33 -0
  38. package/esm2022/lib/components/shared-components/form-field/index.mjs +26 -0
  39. package/esm2022/lib/components/shared-components/form-field/info-item/info-item.component.mjs +76 -0
  40. package/esm2022/lib/components/shared-components/form-field/input/input.component.mjs +71 -0
  41. package/esm2022/lib/components/shared-components/form-field/input-autocomplete/index.mjs +3 -0
  42. package/esm2022/lib/components/shared-components/form-field/input-autocomplete/input-autocomplete.model.mjs +2 -0
  43. package/esm2022/lib/components/shared-components/form-field/input-currency/input-currency.component.mjs +73 -0
  44. package/esm2022/lib/components/shared-components/form-field/input-email/input-email.component.mjs +69 -0
  45. package/esm2022/lib/components/shared-components/form-field/input-mask/input-mask.component.mjs +61 -0
  46. package/esm2022/lib/components/shared-components/form-field/input-number/input-number.component.mjs +74 -0
  47. package/esm2022/lib/components/shared-components/form-field/input-telephone/input-telephone.component.mjs +85 -0
  48. package/esm2022/lib/components/shared-components/form-field/radio/radio.component.mjs +52 -0
  49. package/esm2022/lib/components/shared-components/form-field/repeated-list/repeated-list.component.mjs +32 -0
  50. package/esm2022/lib/components/shared-components/form-field/search-employee/search-employee.component.mjs +192 -0
  51. package/esm2022/lib/components/shared-components/form-field/select/select.component.mjs +191 -0
  52. package/esm2022/lib/components/shared-components/form-field/shared-imports.mjs +36 -0
  53. package/esm2022/lib/components/shared-components/form-field/table-list/table-list.component.mjs +116 -0
  54. package/esm2022/lib/components/shared-components/form-field/textarea/special-chars.directive.mjs +39 -0
  55. package/esm2022/lib/components/shared-components/form-field/textarea/textarea.component.mjs +57 -0
  56. package/esm2022/lib/components/shared-components/form-field/toggle-button/toggle-button.component.mjs +90 -0
  57. package/esm2022/lib/components/shared-components/form-field/validation-errors/validation-errors.component.mjs +43 -0
  58. package/esm2022/lib/components/shared-components/index.mjs +9 -0
  59. package/esm2022/lib/components/shared-components/table/table.component.mjs +243 -0
  60. package/esm2022/lib/components/shared-components/terms-conditions/terms-conditions.component.mjs +31 -0
  61. package/esm2022/lib/components/shared-components/title-section/title-section.component.mjs +31 -0
  62. package/esm2022/lib/constants/constants.mjs +149 -0
  63. package/esm2022/lib/constants/index.mjs +2 -0
  64. package/esm2022/lib/directives/ar.directive.mjs +54 -0
  65. package/esm2022/lib/directives/currency.directive.mjs +92 -0
  66. package/esm2022/lib/directives/en.directive.mjs +51 -0
  67. package/esm2022/lib/directives/number.directive.mjs +68 -0
  68. package/esm2022/lib/directives/skip-location.directive.mjs +28 -0
  69. package/esm2022/lib/enums/actions.enum.mjs +22 -0
  70. package/esm2022/lib/enums/colors.enum.mjs +6 -0
  71. package/esm2022/lib/enums/events.enum.mjs +6 -0
  72. package/esm2022/lib/functions/data-to-blob.mjs +12 -0
  73. package/esm2022/lib/functions/encode-password.mjs +14 -0
  74. package/esm2022/lib/functions/handel-error-response.mjs +12 -0
  75. package/esm2022/lib/functions/index.mjs +5 -0
  76. package/esm2022/lib/functions/is-valid-data.mjs +42 -0
  77. package/esm2022/lib/helpers/shared.helper.mjs +26 -0
  78. package/esm2022/lib/hooks/index.mjs +3 -0
  79. package/esm2022/lib/hooks/load-form.mjs +13 -0
  80. package/esm2022/lib/hooks/save-form.mjs +18 -0
  81. package/esm2022/lib/i18n/ar.mjs +200 -0
  82. package/esm2022/lib/i18n/en.mjs +204 -0
  83. package/esm2022/lib/i18n/index.mjs +3 -0
  84. package/esm2022/lib/interfaces/action.interface.mjs +2 -0
  85. package/esm2022/lib/interfaces/api-response.interface.mjs +2 -0
  86. package/esm2022/lib/interfaces/document-file.interface.mjs +2 -0
  87. package/esm2022/lib/interfaces/form-items.interface.mjs +2 -0
  88. package/esm2022/lib/interfaces/form.interface.mjs +150 -0
  89. package/esm2022/lib/interfaces/igate-user.interface.mjs +2 -0
  90. package/esm2022/lib/interfaces/index.mjs +8 -0
  91. package/esm2022/lib/interfaces/lov-list.interface.mjs +2 -0
  92. package/esm2022/lib/interfaces/lov.interface.mjs +2 -0
  93. package/esm2022/lib/interfaces/shared.interface.mjs +2 -0
  94. package/esm2022/lib/pipes/currency.pipe.mjs +66 -0
  95. package/esm2022/lib/pipes/format-as-password.pipe.mjs +19 -0
  96. package/esm2022/lib/pipes/index.mjs +3 -0
  97. package/esm2022/lib/pipes/status-style.pipe.mjs +57 -0
  98. package/esm2022/lib/pipes/translate.pipe.mjs +36 -0
  99. package/esm2022/lib/regex/index.mjs +2 -0
  100. package/esm2022/lib/regex/regex-patterns.mjs +4 -0
  101. package/esm2022/lib/services/action.service.ts.mjs +25 -0
  102. package/esm2022/lib/services/core.service.ts.mjs +527 -0
  103. package/esm2022/lib/services/feedBack.service.mjs +81 -0
  104. package/esm2022/lib/services/i18n.service.mjs +36 -0
  105. package/esm2022/lib/services/index.mjs +6 -0
  106. package/esm2022/lib/services/sidenav.service.mjs +36 -0
  107. package/esm2022/lib/testComponent/config/segment-dynamic-loader.config.mjs +8 -0
  108. package/esm2022/lib/testComponent/general-approver-section/general-approver-section.component.mjs +90 -0
  109. package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +482 -0
  110. package/esm2022/lib/testComponent/services/i18n.service.mjs +39 -0
  111. package/esm2022/lib/testComponent/services/segment-dynamic-loader.service.mjs +54 -0
  112. package/esm2022/lib/validators/id.validator.mjs +66 -0
  113. package/esm2022/lib/validators/index.mjs +8 -0
  114. package/esm2022/lib/validators/string-to-boolean.pipe.mjs +16 -0
  115. package/esm2022/lib/validators/text.directive.mjs +50 -0
  116. package/esm2022/lib/validators/timer.pipe.mjs +19 -0
  117. package/esm2022/public-api.mjs +19 -0
  118. package/fesm2022/bpm-core.mjs +244 -226
  119. package/fesm2022/bpm-core.mjs.map +1 -1
  120. package/lib/components/shared-components/form-field/checkbox/checkbox.component.d.ts +1 -2
  121. package/lib/components/shared-components/form-field/control-value-accessor.directive.d.ts +1 -1
  122. package/lib/components/shared-components/form-field/shared-imports.d.ts +2 -2
  123. package/lib/components/shared-components/form-field/textarea/special-chars.directive.d.ts +1 -1
  124. package/lib/components/shared-components/title-section/title-section.component.d.ts +1 -1
  125. package/lib/directives/currency.directive.d.ts +1 -0
  126. package/lib/pipes/currency.pipe.d.ts +1 -1
  127. package/lib/pipes/format-as-password.pipe.d.ts +1 -1
  128. package/lib/validators/string-to-boolean.pipe.d.ts +1 -1
  129. package/lib/validators/text.directive.d.ts +1 -1
  130. package/lib/validators/timer.pipe.d.ts +1 -1
  131. package/package.json +4 -2
@@ -0,0 +1,31 @@
1
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, Inject } from '@angular/core';
2
+ import { MAT_DIALOG_DATA, MatDialogClose, MatDialogContent, MatDialogTitle } from '@angular/material/dialog';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/dialog";
5
+ import * as i2 from "../../../services";
6
+ export class TermsConditionsComponent {
7
+ dialogRef;
8
+ i18n;
9
+ data;
10
+ termsBody = null;
11
+ constructor(dialogRef, i18n, data) {
12
+ this.dialogRef = dialogRef;
13
+ this.i18n = i18n;
14
+ this.data = data;
15
+ this.termsBody = data;
16
+ }
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TermsConditionsComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.CoreI18nService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TermsConditionsComponent, isStandalone: true, selector: "app-terms-conditions", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\" >{{i18n.translate('termsAndConditions')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4\">\r\n <p class=\"fs-15 fw-normal bg-color-light-gray p-3 text-break\" [innerHTML]='termsBody' > </p>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 800px;--popup-width: 800px}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }] });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TermsConditionsComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'app-terms-conditions', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
23
+ MatDialogContent,
24
+ MatDialogClose,
25
+ MatDialogTitle
26
+ ], standalone: true, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\" >{{i18n.translate('termsAndConditions')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4\">\r\n <p class=\"fs-15 fw-normal bg-color-light-gray p-3 text-break\" [innerHTML]='termsBody' > </p>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 800px;--popup-width: 800px}\n"] }]
27
+ }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: i2.CoreI18nService }, { type: undefined, decorators: [{
28
+ type: Inject,
29
+ args: [MAT_DIALOG_DATA]
30
+ }] }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybXMtY29uZGl0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvdGVybXMtY29uZGl0aW9ucy90ZXJtcy1jb25kaXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy90ZXJtcy1jb25kaXRpb25zL3Rlcm1zLWNvbmRpdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQWdCLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBZXpILE1BQU0sT0FBTyx3QkFBd0I7SUFJMUI7SUFDQTtJQUN5QjtJQUxsQyxTQUFTLEdBQVcsSUFBSSxDQUFDO0lBRXpCLFlBQ1MsU0FBaUQsRUFDakQsSUFBcUIsRUFDSSxJQUFTO1FBRmxDLGNBQVMsR0FBVCxTQUFTLENBQXdDO1FBQ2pELFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ0ksU0FBSSxHQUFKLElBQUksQ0FBSztRQUV6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO3VHQVRVLHdCQUF3Qiw2RUFNekIsZUFBZTsyRkFOZCx3QkFBd0IsZ0ZDaEJyQyx3akJBYUEsZ0lESEksZ0JBQWdCLHlHQUNoQixjQUFjLHFMQUNkLGNBQWM7OzJGQUlMLHdCQUF3QjtrQkFacEMsU0FBUzsrQkFDRSxzQkFBc0IsV0FHdkIsQ0FBQyxzQkFBc0IsQ0FBQyxXQUN4Qjt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsY0FBYztxQkFDZixjQUNXLElBQUk7OzBCQVFiLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQ2xvc2UsIE1hdERpYWxvZ0NvbnRlbnQsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nVGl0bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7Q29yZUkxOG5TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10ZXJtcy1jb25kaXRpb25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGVybXMtY29uZGl0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGVybXMtY29uZGl0aW9ucy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXREaWFsb2dDb250ZW50LFxyXG4gICAgTWF0RGlhbG9nQ2xvc2UsXHJcbiAgICBNYXREaWFsb2dUaXRsZVxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVybXNDb25kaXRpb25zQ29tcG9uZW50IHtcclxuICB0ZXJtc0JvZHk6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRlcm1zQ29uZGl0aW9uc0NvbXBvbmVudD4sXHJcbiAgICBwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnlcclxuICApIHtcclxuICAgIHRoaXMudGVybXNCb2R5ID0gZGF0YTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgbWF0LWRpYWxvZy10aXRsZT5cclxuICAgIDxoMyBjbGFzcz1cIm1iLTAgZm9udC0xNiBmdy1tZWRpdW1cIiA+e3tpMThuLnRyYW5zbGF0ZSgndGVybXNBbmRDb25kaXRpb25zJyl9fTwvaDM+XHJcbiAgICA8ZHMtYnV0dG9uIG1hdERpYWxvZ0Nsb3NlIGljb24+XHJcbiAgICAgIDxkcy1pY29uIGljb249XCJjbG9zZVwiIGNsYXNzPVwiZnMtMjAgZmMtYmxhY2tcIj48L2RzLWljb24+XHJcbiAgICA8L2RzLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPGRpdiBjbGFzcz1cInB4LW1kLTRcIj5cclxuICAgICAgPHAgY2xhc3M9XCJmcy0xNSBmdy1ub3JtYWwgYmctY29sb3ItbGlnaHQtZ3JheSBwLTMgdGV4dC1icmVha1wiIFtpbm5lckhUTUxdPSd0ZXJtc0JvZHknID4gPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,31 @@
1
+ /* eslint-disable @angular-eslint/component-selector */
2
+ import { Component, Input } from '@angular/core';
3
+ import { FaqSidenavComponent } from "../../app-component-sections/faq-sidenav/faq-sidenav.component";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../services";
6
+ import * as i2 from "@angular/material/dialog";
7
+ export class TitleSectionComponent {
8
+ sidenavService;
9
+ dialog;
10
+ title = '';
11
+ tooltip = true;
12
+ // introJS = introJs();
13
+ constructor(sidenavService, dialog) {
14
+ this.sidenavService = sidenavService;
15
+ this.dialog = dialog;
16
+ }
17
+ openFaq() {
18
+ this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over');
19
+ }
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TitleSectionComponent, deps: [{ token: i1.SidenavService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TitleSectionComponent, selector: "app-title-section", inputs: { title: "title", tooltip: "tooltip" }, ngImport: i0, template: "<header class=\"section-title\">\r\n <div class=\"d-flex align-items-center\">\r\n <h1 class=\"main-title mb-0\" >{{title}}</h1>\r\n <!-- <span class=\"mx-1\"></span>\r\n <button mat-icon-button class=\"btn button-transparent square\" *ngIf=\"tooltip\" (click)=\"openFaq()\">\r\n <span class=\"sfi sfi-info fc-dark-gray font-20-imp\" id=\"step1\"></span>\r\n </button>\r\n <span class=\"mx-1\"></span> -->\r\n </div>\r\n <div class=\"filter-actions\">\r\n <div class=\"filter-section\">\r\n <ng-content select=\"[filter]\"></ng-content>\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <ng-content select=\"[action]\"></ng-content>\r\n <ng-content select=\"[search]\"></ng-content>\r\n </div>\r\n</header>\r\n", styles: [":host ::ng-deep .section-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}:host ::ng-deep .section-title .filter-actions{display:flex;align-items:center;justify-content:space-between;flex-grow:1}:host ::ng-deep .section-title .filter-actions .filter-section{width:140px}:host ::ng-deep .section-title .filter-actions .filter-section .mat-form-field .mat-form-field-wrapper{padding-bottom:0}\n"] });
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TitleSectionComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'app-title-section', template: "<header class=\"section-title\">\r\n <div class=\"d-flex align-items-center\">\r\n <h1 class=\"main-title mb-0\" >{{title}}</h1>\r\n <!-- <span class=\"mx-1\"></span>\r\n <button mat-icon-button class=\"btn button-transparent square\" *ngIf=\"tooltip\" (click)=\"openFaq()\">\r\n <span class=\"sfi sfi-info fc-dark-gray font-20-imp\" id=\"step1\"></span>\r\n </button>\r\n <span class=\"mx-1\"></span> -->\r\n </div>\r\n <div class=\"filter-actions\">\r\n <div class=\"filter-section\">\r\n <ng-content select=\"[filter]\"></ng-content>\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <ng-content select=\"[action]\"></ng-content>\r\n <ng-content select=\"[search]\"></ng-content>\r\n </div>\r\n</header>\r\n", styles: [":host ::ng-deep .section-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}:host ::ng-deep .section-title .filter-actions{display:flex;align-items:center;justify-content:space-between;flex-grow:1}:host ::ng-deep .section-title .filter-actions .filter-section{width:140px}:host ::ng-deep .section-title .filter-actions .filter-section .mat-form-field .mat-form-field-wrapper{padding-bottom:0}\n"] }]
26
+ }], ctorParameters: () => [{ type: i1.SidenavService }, { type: i2.MatDialog }], propDecorators: { title: [{
27
+ type: Input
28
+ }], tooltip: [{
29
+ type: Input
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvdGl0bGUtc2VjdGlvbi90aXRsZS1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy90aXRsZS1zZWN0aW9uL3RpdGxlLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDOzs7O0FBTW5HLE1BQU0sT0FBTyxxQkFBcUI7SUFLWjtJQUF3QztJQUhuRCxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN4Qix1QkFBdUI7SUFDdkIsWUFBb0IsY0FBOEIsRUFBVSxNQUFpQjtRQUF6RCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFXO0lBQUssQ0FBQztJQUduRixPQUFPO1FBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRSxDQUFDO3VHQVZVLHFCQUFxQjsyRkFBckIscUJBQXFCLHlHQ1ZsQyxtdkJBa0JBOzsyRkRSYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1COzJHQU1wQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG5pbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTaWRlbmF2U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtGYXFTaWRlbmF2Q29tcG9uZW50fSBmcm9tIFwiLi4vLi4vYXBwLWNvbXBvbmVudC1zZWN0aW9ucy9mYXEtc2lkZW5hdi9mYXEtc2lkZW5hdi5jb21wb25lbnRcIjtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGl0bGUtc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpdGxlLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RpdGxlLXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGl0bGVTZWN0aW9uQ29tcG9uZW50ICB7XHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XHJcbiAgQElucHV0KCkgdG9vbHRpcCA9IHRydWU7XHJcbiAgLy8gaW50cm9KUyA9IGludHJvSnMoKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNpZGVuYXZTZXJ2aWNlOiBTaWRlbmF2U2VydmljZSwgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyApIHsgfVxyXG5cclxuXHJcbiAgb3BlbkZhcSgpe1xyXG4gICAgdGhpcy5zaWRlbmF2U2VydmljZS5wdWJsaXNoKCdvcGVuJywgRmFxU2lkZW5hdkNvbXBvbmVudCwgJ2VuZCcsICdvdmVyJyk7XHJcbiAgfVxyXG5cclxuICAvLyBhZGQoKTogdm9pZCB7XHJcbiAgLy8gICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvblBvcHVwQ29tcG9uZW50LCB7XHJcbiAgLy8gICAgIHdpZHRoOiAnNzAwcHgnLFxyXG4gIC8vICAgICBwYW5lbENsYXNzOiBbJ2NvbmZpcm0tcG9wdXAnLCAnbWFpbi1wb3B1cCddLFxyXG4gIC8vICAgICBkYXRhOiB7XHJcbiAgLy8gICAgICAgdGl0bGU6ICdZb3VyIHJlcXVlc3QgaGFzIGJlZW4gc3VibWl0dGVkIFN1Y2Nlc3NmdWxseScsXHJcbiAgLy8gICAgICAgaWQ6ICc4NjI0NTYnLFxyXG4gIC8vICAgICAgIHR5cGU6ICd2aWV3JyxcclxuICAvLyAgICAgICBpY29uOiAnZG9uZScsXHJcbiAgLy8gICAgIH0sXHJcbiAgLy8gICB9KTtcclxuXHJcbiAgLy8gICAvLyBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gIC8vICAgLy8gICBsb2NhdGlvbi5yZWxvYWQoKVxyXG4gIC8vICAgLy8gfSk7XHJcbiAgLy8gfVxyXG5cclxufVxyXG4iLCI8aGVhZGVyIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8aDEgY2xhc3M9XCJtYWluLXRpdGxlIG1iLTBcIiA+e3t0aXRsZX19PC9oMT5cclxuICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJteC0xXCI+PC9zcGFuPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJidG4gYnV0dG9uLXRyYW5zcGFyZW50IHNxdWFyZVwiICAqbmdJZj1cInRvb2x0aXBcIiAoY2xpY2spPVwib3BlbkZhcSgpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic2ZpIHNmaS1pbmZvIGZjLWRhcmstZ3JheSBmb250LTIwLWltcFwiIGlkPVwic3RlcDFcIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxzcGFuIGNsYXNzPVwibXgtMVwiPjwvc3Bhbj4gLS0+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZpbHRlci1hY3Rpb25zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXNlY3Rpb25cIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZpbHRlcl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzcGFuIGNsYXNzPVwibXgtMVwiPjwvc3Bhbj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthY3Rpb25dXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NlYXJjaF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbjwvaGVhZGVyPlxyXG4iXX0=
@@ -0,0 +1,149 @@
1
+ // Constant for basic validations
2
+ export const DONT_SHOW = null;
3
+ export const NO_COMMENTS = false;
4
+ export const HAS_COMMENTS = true;
5
+ export const URL_SEPARATOR = '/';
6
+ export const READ_ONLY = true;
7
+ export const WRITE_MODE = false;
8
+ export const NO_VALUE = null;
9
+ export const TRUE_STRING = 'TRUE';
10
+ export const FALSE_STRING = 'FALSE';
11
+ export const TRUE_BOOL = true;
12
+ export const FALSE_BOOL = false;
13
+ // State Machine statuses
14
+ export const STATE_MACHINE_STATUS_IDLE = 'idle';
15
+ export const STATE_MACHINE_STATUS_FETCHING = 'fetching';
16
+ export const STATE_MACHINE_STATUS_SENDING = 'sending';
17
+ export const STATE_MACHINE_STATUS_RESULT = 'result';
18
+ export const STATE_MACHINE_STATUS_ERROR = 'error';
19
+ // State Machine actions
20
+ export const STATE_MACHINE_ACTION_LOAD_FORM = 'loadForm';
21
+ export const STATE_MACHINE_ACTION_SUBMIT_FORM = 'submitForm';
22
+ export const STATE_MACHINE_ACTION_SEARCH_EMPLOYEE = 'searchEmployee';
23
+ export const STATE_MACHINE_ACTION_EMPLOYEE_PROFILE = 'employeeProfile';
24
+ export const STATE_MACHINE_ACTION_SUCCESS_WM = 'successWm';
25
+ export const STATE_MACHINE_ACTION_SUCCESS_RESPONSE = 'serviceResponce';
26
+ export const STATE_MACHINE_ACTION_SUCCESS_USERS = 'successUsers';
27
+ export const STATE_MACHINE_ACTION_CONVERT = 'convert';
28
+ export const STATE_MACHINE_ACTION_SUCCESS = 'success';
29
+ export const STATE_MACHINE_ACTION_FAILURE = 'failure';
30
+ export const STATE_MACHINE_ACTION_HANDLE_ERROR = 'handleError';
31
+ export const STATE_MACHINE_ACTION_LOAD_FILE = 'loadFile';
32
+ export const STATE_MACHINE_ACTION_USER_MAF = 'userDetails';
33
+ export const STATE_MACHINE_ACTION_USER_CEP = 'user';
34
+ export const STATE_MACHINE_ACTION_CALC = 'calc';
35
+ export const STATE_MACHINE_ACTION_SHOW_PRINT = 'showPrint';
36
+ export const STATE_MACHINE_ACTION_SUCCESS_PRINT = 'successPrint';
37
+ export const SERVICE_NAME_WM_HTML_GENERATOR = 'htmlGenerator';
38
+ // Process name code
39
+ export const PROCESS_NAME_CODE = 'SCR';
40
+ // HTTP protocols that are available
41
+ export const HTTP_PROTOCOL_HTTP = 'http://';
42
+ export const HTTP_PROTOCOL_HTTPS = 'https://';
43
+ // Liferay constants
44
+ // export const LR_AUTH_SERVICE_URL_PATH = '/group/i-gate/wm-bpm/forms/-/proxy/authenticate';
45
+ // export const LR_SERVICE_URL_PATH = '/group/i-gate/wm-bpm/forms/-/proxy/execute';
46
+ // export const LR_SERVICE_URL_HOST = '10.0.0.48';
47
+ // export const LR_SERVICE_URL_HOST_DEV = '10.0.0.156';
48
+ // export const LR_SERVICE_URL_PORT_DEV = '8000';
49
+ // export const LR_SERVICE_URL_PATH_DEV = '/new.json';
50
+ // export const LR_SERVICE_URL_PORT = '17899';
51
+ // HTTP methods that are available are
52
+ export const HTTP_METHOD_GET = 'GET';
53
+ export const HTTP_METHOD_POST = 'POST';
54
+ export const HTTP_METHOD_PUT = 'PUT';
55
+ // Available servers to the UI
56
+ export const TARGET_SERVER_WM = 'WM';
57
+ export const TARGET_SERVER_DP = 'DP';
58
+ // Service Names that are available
59
+ export const SERVICE_NAME_WM_FORM = 'form';
60
+ export const SERVICE_NAME_WM_CHILD_FORM = '';
61
+ export const SERVICE_NAME_DP_SEARCH_EMPLOYEE = 'igate.users.search.v3';
62
+ // Languages codes available in the application
63
+ export const LANGUAGE_CODE_EN = 'en';
64
+ export const LANGUAGE_CODE_AR = 'ar';
65
+ // URLs form static assets
66
+ export const IGATE_STATIC_ASSET_PROFILE_PHOTO_URL = '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=';
67
+ export const HEADER_CONTENT_TYPE_FORM = 'application/x-www-form-urlencoded';
68
+ // Roles constants
69
+ export const ROLE_REQUESTER = 'R';
70
+ // Section IDs
71
+ export const SECTION_ID_REQUEST_DETAILS = 'requestDetails';
72
+ export const SECTION_ID_GM_PARTIAL_ROLE = 'GM';
73
+ export const SECTION_ID_SM_PARTIAL_ROLE = 'SM';
74
+ export const SECTION_ID_DM_PARTIAL_ROLE = 'DM';
75
+ export const SECTION_ID_VP_PARTIAL_ROLE = 'VP';
76
+ export const SECTION_ID_SVP_PARTIAL_ROLE = 'SVP';
77
+ export const SECTION_ID_EXECUTE_PARTIAL_ROLE = 'GovtRelationsLead';
78
+ export const SECTION_ID_PERFORM_PARTIAL_ROLE = 'GovtRelationsMember';
79
+ export const SECTION_ID_EMP_INFO_APPROVAL_PARTIAL_ROLE = 'EmpInfo';
80
+ export const SECTION_ID_PAYROLL_APPROVAL_PARTIAL_ROLE = 'Payroll';
81
+ export const SECTION_ID_REQUESTER_PARTIAL_NAME = 'Requester';
82
+ export const SECTION_ID_APPROVAL_PARTIAL_NAME = 'Approval';
83
+ export const SECTION_ID_NOTHING_PARTIAL_NAME = '';
84
+ export const SECTION_STATUS_PENDING = 'PENDING';
85
+ export const SECTION_STATUS_APPROVED = 'APPROVED';
86
+ export const SECTION_STATUS_UNSATISFIED = 'UNSATISFIED';
87
+ export const WM_ACTION_SAVE = 'SAVE';
88
+ export const WM_ACTION_SUBMIT = 'SUBMIT';
89
+ export const FORM_STATUS_NEW = 'NEW';
90
+ export const FORM_STATUS_PENDING = 'PENDING';
91
+ export const FORM_STATUS_APPROVED = 'APPROVED';
92
+ export const FORM_STATUS_APPROVE = 'APPROVE';
93
+ export const FORM_STATUS_REJECTED = 'REJECTED';
94
+ export const FORM_STATUS_REJECT = 'REJECT';
95
+ export const FORM_STATUS_SEND_BACK = 'SENDBACK';
96
+ export const FORM_STATUS_CANCELLED = 'CANCELLED';
97
+ export const FORM_STATUS_CANCEL = 'CANCEL';
98
+ export const FORM_STATUS_COMPLETED = 'COMPLETED';
99
+ export const STATE_MACHINE_ACTION_LOAD_HISTORY = 'loadHistory';
100
+ export const STATE_MACHINE_ACTION_SUCCESS_HISTORY = 'successHistory';
101
+ export const SERVICE_NAME_DP_LOAD_HISTORY = 'igate.get.inbox.item.workflow';
102
+ export const WM_ACTION_SAVE_CHANGES = 'SAVE_CHANGES';
103
+ export const SERVICE_NAME_WM_DRAFT_FORM = 'draft';
104
+ // feedback and flag
105
+ export const STATE_MACHINE_ACTION_GET_INBOX_ITEM = 'getInboxItem';
106
+ export const SERVICE_NAME_DP_INBOX_ITEM = 'igate.get.inbox.item';
107
+ export const STATE_MACHINE_ACTION_SUCCESS_INBOX_ITEM = 'successInboxItem';
108
+ export const STATE_MACHINE_ACTION_SET_FLAG = 'setFlagPriority';
109
+ export const SERVICE_NAME_DP_UPDATE_INBOX_ITEM = 'igate.update.inbox.item';
110
+ export const STATE_MACHINE_ACTION_INBOX_ITEM_RESPONSE = 'inboxItemResponse';
111
+ export const FEEDBACK_STATUS_REQUEST = 'requestFeedback';
112
+ export const FEEDBACK_STATUS_RESPOND = 'respondToFeedback';
113
+ export const FEEDBACK_STATUS_WAITING = 'waitingFeedback';
114
+ export const FEEDBACK_STATUS_RESPONDED = 'feedbackResponded';
115
+ export const STATE_MACHINE_ACTION_SUBMIT_FEEDBACK = 'submitFeedback';
116
+ export const STATE_MACHINE_ACTION_GET_FEEDBACK = 'getFeedback';
117
+ export const STATE_MACHINE_ACTION_UPDATE_FEEDBACK = 'submitFeedbackResponse';
118
+ export const SERVICE_NAME_DP_CREATE_FEEDBACK = 'igate.create.inbox.item.feedback';
119
+ export const STATE_NAME_DP_GET_FEEDBACK = 'igate.get.inbox.item.feedback';
120
+ export const SERVICE_NAME_DP_UPDATE_FEEDBACK = 'igate.update.inbox.item.feedback';
121
+ export const PROFILE_CONTAINER = '#profileFormContent';
122
+ export const COMMENT_CONTAINER = '#commentsFormContent';
123
+ export const FEEDBACK_CONTAINER = '#feedbackFormContent';
124
+ export const INBOX_STATUS_PENDING = 'pending';
125
+ export const INBOX_STATUS_PROCESSED = 'processed';
126
+ export const INBOX_STATUS_SENT = 'sent';
127
+ export const REPORT = 'report';
128
+ export const DATE_TIME = 'DD/MM/YYYY HH:mm:ss';
129
+ export const DATE_DASH = 'DD-MMM-YYYY';
130
+ export const DATE_SLASH = 'DD/MM/YYYY';
131
+ export const SERVICE_NAME_WM_GET_APPROVED_REQUEST = 'requests';
132
+ export const SERVICE_NAME_WM_GET_MY_APPROVED_REQUEST = 'myRequests';
133
+ export const STATE_MACHINE_ACTION_GET_APPROVED_REQUEST = 'getApprovedRequest';
134
+ export const STATE_MACHINE_ACTION_GET_APPROVED_REQUEST_RESPONSE = 'getApprovedRequestResponse';
135
+ export const STATE_MACHINE_ACTION_PROJECT_MAF = 'projectDetails';
136
+ export const STATE_MACHINE_ACTION_PROJECT_CEP = 'project';
137
+ export const STATE_MACHINE_ACTION_COMMONAPI = 'commonApi';
138
+ export const STATE_MACHINE_ACTION_SEARCH = 'search';
139
+ export const STATE_MACHINE_ACTION_PPROVED_REQUESTS = 'approvedRequests';
140
+ export const GETSIPORTENTRYGROUPS = 'getSiportEntryGroups';
141
+ export const GETSIPORTENTRYLOCATIONS = 'getSiportEntryLocations';
142
+ export const STATE_MACHINE_ACTION_SUCCESS_SERVICES = 'serviceResponce';
143
+ export const SERVICE_NAME_MAF = 'MAF';
144
+ export const SERVICE_NAME_CEP = 'CEP';
145
+ export const STATE_MACHINE_ACTION_PDF = 'pdfAttachments';
146
+ export const LOGOUT_URL = '/c/portal/logout';
147
+ export const WORKFLOW_ITEMS = 'workflowItems';
148
+ export const APPROVERS = 'approvers';
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb25zdGFudHMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQztBQUNqQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQzlCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUM7QUFDOUIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQztBQUNwQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQzlCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUM7QUFFaEMseUJBQXlCO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLE1BQU0sQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxVQUFVLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsU0FBUyxDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLFFBQVEsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxPQUFPLENBQUM7QUFFbEQsd0JBQXdCO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLFVBQVUsQ0FBQztB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LENBQUMsTUFBTSw4QkFBOEIsR0FBRyxXQUFXLENBQUM7QUFDMUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsUUFBUSxDQUFDO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFHLGtCQUFrQixDQUFDO0FBQ3hFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLHNCQUFzQixDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLHlCQUF5QixDQUFDO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFFLGlCQUFpQixDQUFDO0FBQ3RFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQztBQUN0QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFDdEMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsZ0JBQWdCLENBQUM7QUFFekQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvbnN0YW50IGZvciBiYXNpYyB2YWxpZGF0aW9uc1xyXG5leHBvcnQgY29uc3QgRE9OVF9TSE9XID0gbnVsbDtcclxuZXhwb3J0IGNvbnN0IE5PX0NPTU1FTlRTID0gZmFsc2U7XHJcbmV4cG9ydCBjb25zdCBIQVNfQ09NTUVOVFMgPSB0cnVlO1xyXG5leHBvcnQgY29uc3QgVVJMX1NFUEFSQVRPUiA9ICcvJztcclxuZXhwb3J0IGNvbnN0IFJFQURfT05MWSA9IHRydWU7XHJcbmV4cG9ydCBjb25zdCBXUklURV9NT0RFID0gZmFsc2U7XHJcbmV4cG9ydCBjb25zdCBOT19WQUxVRSA9IG51bGw7XHJcbmV4cG9ydCBjb25zdCBUUlVFX1NUUklORyA9ICdUUlVFJztcclxuZXhwb3J0IGNvbnN0IEZBTFNFX1NUUklORyA9ICdGQUxTRSc7XHJcbmV4cG9ydCBjb25zdCBUUlVFX0JPT0wgPSB0cnVlO1xyXG5leHBvcnQgY29uc3QgRkFMU0VfQk9PTCA9IGZhbHNlO1xyXG5cclxuLy8gU3RhdGUgTWFjaGluZSBzdGF0dXNlc1xyXG5leHBvcnQgY29uc3QgU1RBVEVfTUFDSElORV9TVEFUVVNfSURMRSA9ICdpZGxlJztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfU1RBVFVTX0ZFVENISU5HID0gJ2ZldGNoaW5nJztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfU1RBVFVTX1NFTkRJTkcgPSAnc2VuZGluZyc7XHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX1NUQVRVU19SRVNVTFQgPSAncmVzdWx0JztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfU1RBVFVTX0VSUk9SID0gJ2Vycm9yJztcclxuXHJcbi8vIFN0YXRlIE1hY2hpbmUgYWN0aW9uc1xyXG5leHBvcnQgY29uc3QgU1RBVEVfTUFDSElORV9BQ1RJT05fTE9BRF9GT1JNID0gJ2xvYWRGb3JtJztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX1NVQk1JVF9GT1JNID0gJ3N1Ym1pdEZvcm0nO1xyXG5leHBvcnQgY29uc3QgU1RBVEVfTUFDSElORV9BQ1RJT05fU0VBUkNIX0VNUExPWUVFID0gJ3NlYXJjaEVtcGxveWVlJztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX0VNUExPWUVFX1BST0ZJTEUgPSAnZW1wbG95ZWVQcm9maWxlJztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX1NVQ0NFU1NfV00gPSAnc3VjY2Vzc1dtJztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX1NVQ0NFU1NfUkVTUE9OU0UgPSAnc2VydmljZVJlc3BvbmNlJztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX1NVQ0NFU1NfVVNFUlMgPSAnc3VjY2Vzc1VzZXJzJztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX0NPTlZFUlQgPSAnY29udmVydCc7XHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9TVUNDRVNTID0gJ3N1Y2Nlc3MnO1xyXG5leHBvcnQgY29uc3QgU1RBVEVfTUFDSElORV9BQ1RJT05fRkFJTFVSRSA9ICdmYWlsdXJlJztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX0hBTkRMRV9FUlJPUiA9ICdoYW5kbGVFcnJvcic7XHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9MT0FEX0ZJTEUgPSAnbG9hZEZpbGUnO1xyXG5leHBvcnQgY29uc3QgU1RBVEVfTUFDSElORV9BQ1RJT05fVVNFUl9NQUYgPSAndXNlckRldGFpbHMnO1xyXG5leHBvcnQgY29uc3QgU1RBVEVfTUFDSElORV9BQ1RJT05fVVNFUl9DRVAgPSAndXNlcic7XHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9DQUxDID0gJ2NhbGMnO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9TSE9XX1BSSU5UID0gJ3Nob3dQcmludCc7XHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9TVUNDRVNTX1BSSU5UID0gJ3N1Y2Nlc3NQcmludCc7XHJcbmV4cG9ydCBjb25zdCBTRVJWSUNFX05BTUVfV01fSFRNTF9HRU5FUkFUT1IgPSAnaHRtbEdlbmVyYXRvcic7XHJcblxyXG4vLyBQcm9jZXNzIG5hbWUgY29kZVxyXG5leHBvcnQgY29uc3QgUFJPQ0VTU19OQU1FX0NPREUgPSAnU0NSJztcclxuXHJcbi8vIEhUVFAgcHJvdG9jb2xzIHRoYXQgYXJlIGF2YWlsYWJsZVxyXG5leHBvcnQgY29uc3QgSFRUUF9QUk9UT0NPTF9IVFRQID0gJ2h0dHA6Ly8nO1xyXG5leHBvcnQgY29uc3QgSFRUUF9QUk9UT0NPTF9IVFRQUyA9ICdodHRwczovLyc7XHJcblxyXG4vLyBMaWZlcmF5IGNvbnN0YW50c1xyXG4vLyBleHBvcnQgY29uc3QgTFJfQVVUSF9TRVJWSUNFX1VSTF9QQVRIID0gJy9ncm91cC9pLWdhdGUvd20tYnBtL2Zvcm1zLy0vcHJveHkvYXV0aGVudGljYXRlJztcclxuLy8gZXhwb3J0IGNvbnN0IExSX1NFUlZJQ0VfVVJMX1BBVEggPSAnL2dyb3VwL2ktZ2F0ZS93bS1icG0vZm9ybXMvLS9wcm94eS9leGVjdXRlJztcclxuLy8gZXhwb3J0IGNvbnN0IExSX1NFUlZJQ0VfVVJMX0hPU1QgPSAnMTAuMC4wLjQ4JztcclxuLy8gZXhwb3J0IGNvbnN0IExSX1NFUlZJQ0VfVVJMX0hPU1RfREVWID0gJzEwLjAuMC4xNTYnO1xyXG4vLyBleHBvcnQgY29uc3QgTFJfU0VSVklDRV9VUkxfUE9SVF9ERVYgPSAnODAwMCc7XHJcbi8vIGV4cG9ydCBjb25zdCBMUl9TRVJWSUNFX1VSTF9QQVRIX0RFViA9ICcvbmV3Lmpzb24nO1xyXG4vLyBleHBvcnQgY29uc3QgTFJfU0VSVklDRV9VUkxfUE9SVCA9ICcxNzg5OSc7XHJcblxyXG4vLyBIVFRQIG1ldGhvZHMgdGhhdCBhcmUgYXZhaWxhYmxlIGFyZVxyXG5leHBvcnQgY29uc3QgSFRUUF9NRVRIT0RfR0VUID0gJ0dFVCc7XHJcbmV4cG9ydCBjb25zdCBIVFRQX01FVEhPRF9QT1NUID0gJ1BPU1QnO1xyXG5leHBvcnQgY29uc3QgSFRUUF9NRVRIT0RfUFVUID0gJ1BVVCc7XHJcblxyXG4vLyBBdmFpbGFibGUgc2VydmVycyB0byB0aGUgVUlcclxuZXhwb3J0IGNvbnN0IFRBUkdFVF9TRVJWRVJfV00gPSAnV00nO1xyXG5leHBvcnQgY29uc3QgVEFSR0VUX1NFUlZFUl9EUCA9ICdEUCc7XHJcblxyXG4vLyBTZXJ2aWNlIE5hbWVzIHRoYXQgYXJlIGF2YWlsYWJsZVxyXG5leHBvcnQgY29uc3QgU0VSVklDRV9OQU1FX1dNX0ZPUk0gPSAnZm9ybSc7XHJcbmV4cG9ydCBjb25zdCBTRVJWSUNFX05BTUVfV01fQ0hJTERfRk9STSA9ICcnO1xyXG5leHBvcnQgY29uc3QgU0VSVklDRV9OQU1FX0RQX1NFQVJDSF9FTVBMT1lFRSA9ICdpZ2F0ZS51c2Vycy5zZWFyY2gudjMnO1xyXG5cclxuLy8gTGFuZ3VhZ2VzIGNvZGVzIGF2YWlsYWJsZSBpbiB0aGUgYXBwbGljYXRpb25cclxuZXhwb3J0IGNvbnN0IExBTkdVQUdFX0NPREVfRU4gPSAnZW4nO1xyXG5leHBvcnQgY29uc3QgTEFOR1VBR0VfQ09ERV9BUiA9ICdhcic7XHJcblxyXG4vLyBVUkxzIGZvcm0gc3RhdGljIGFzc2V0c1xyXG5leHBvcnQgY29uc3QgSUdBVEVfU1RBVElDX0FTU0VUX1BST0ZJTEVfUEhPVE9fVVJMID0gJy9ncm91cC9pLWdhdGUvd20tYnBtL2Zvcm1zLy0vcHJveHkvcG9ydHJhaXQ/ZW1haWw9JztcclxuZXhwb3J0IGNvbnN0IEhFQURFUl9DT05URU5UX1RZUEVfRk9STSA9ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnO1xyXG5cclxuLy8gUm9sZXMgY29uc3RhbnRzXHJcbmV4cG9ydCBjb25zdCBST0xFX1JFUVVFU1RFUiA9ICdSJztcclxuXHJcbi8vIFNlY3Rpb24gSURzXHJcbmV4cG9ydCBjb25zdCBTRUNUSU9OX0lEX1JFUVVFU1RfREVUQUlMUyA9ICdyZXF1ZXN0RGV0YWlscyc7XHJcbmV4cG9ydCBjb25zdCBTRUNUSU9OX0lEX0dNX1BBUlRJQUxfUk9MRSA9ICdHTSc7XHJcbmV4cG9ydCBjb25zdCBTRUNUSU9OX0lEX1NNX1BBUlRJQUxfUk9MRSA9ICdTTSc7XHJcbmV4cG9ydCBjb25zdCBTRUNUSU9OX0lEX0RNX1BBUlRJQUxfUk9MRSA9ICdETSc7XHJcbmV4cG9ydCBjb25zdCBTRUNUSU9OX0lEX1ZQX1BBUlRJQUxfUk9MRSA9ICdWUCc7XHJcbmV4cG9ydCBjb25zdCBTRUNUSU9OX0lEX1NWUF9QQVJUSUFMX1JPTEUgPSAnU1ZQJztcclxuZXhwb3J0IGNvbnN0IFNFQ1RJT05fSURfRVhFQ1VURV9QQVJUSUFMX1JPTEUgPSAnR292dFJlbGF0aW9uc0xlYWQnO1xyXG5leHBvcnQgY29uc3QgU0VDVElPTl9JRF9QRVJGT1JNX1BBUlRJQUxfUk9MRSA9ICdHb3Z0UmVsYXRpb25zTWVtYmVyJztcclxuZXhwb3J0IGNvbnN0IFNFQ1RJT05fSURfRU1QX0lORk9fQVBQUk9WQUxfUEFSVElBTF9ST0xFID0gJ0VtcEluZm8nO1xyXG5leHBvcnQgY29uc3QgU0VDVElPTl9JRF9QQVlST0xMX0FQUFJPVkFMX1BBUlRJQUxfUk9MRSA9ICdQYXlyb2xsJztcclxuXHJcbmV4cG9ydCBjb25zdCBTRUNUSU9OX0lEX1JFUVVFU1RFUl9QQVJUSUFMX05BTUUgPSAnUmVxdWVzdGVyJztcclxuZXhwb3J0IGNvbnN0IFNFQ1RJT05fSURfQVBQUk9WQUxfUEFSVElBTF9OQU1FID0gJ0FwcHJvdmFsJztcclxuZXhwb3J0IGNvbnN0IFNFQ1RJT05fSURfTk9USElOR19QQVJUSUFMX05BTUUgPSAnJztcclxuXHJcbmV4cG9ydCBjb25zdCBTRUNUSU9OX1NUQVRVU19QRU5ESU5HID0gJ1BFTkRJTkcnO1xyXG5leHBvcnQgY29uc3QgU0VDVElPTl9TVEFUVVNfQVBQUk9WRUQgPSAnQVBQUk9WRUQnO1xyXG5leHBvcnQgY29uc3QgU0VDVElPTl9TVEFUVVNfVU5TQVRJU0ZJRUQgPSAnVU5TQVRJU0ZJRUQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFdNX0FDVElPTl9TQVZFID0gJ1NBVkUnO1xyXG5leHBvcnQgY29uc3QgV01fQUNUSU9OX1NVQk1JVCA9ICdTVUJNSVQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEZPUk1fU1RBVFVTX05FVyA9ICdORVcnO1xyXG5leHBvcnQgY29uc3QgRk9STV9TVEFUVVNfUEVORElORyA9ICdQRU5ESU5HJztcclxuZXhwb3J0IGNvbnN0IEZPUk1fU1RBVFVTX0FQUFJPVkVEID0gJ0FQUFJPVkVEJztcclxuZXhwb3J0IGNvbnN0IEZPUk1fU1RBVFVTX0FQUFJPVkUgPSAnQVBQUk9WRSc7XHJcbmV4cG9ydCBjb25zdCBGT1JNX1NUQVRVU19SRUpFQ1RFRCA9ICdSRUpFQ1RFRCc7XHJcbmV4cG9ydCBjb25zdCBGT1JNX1NUQVRVU19SRUpFQ1QgPSAnUkVKRUNUJztcclxuZXhwb3J0IGNvbnN0IEZPUk1fU1RBVFVTX1NFTkRfQkFDSyA9ICdTRU5EQkFDSyc7XHJcbmV4cG9ydCBjb25zdCBGT1JNX1NUQVRVU19DQU5DRUxMRUQ9ICdDQU5DRUxMRUQnO1xyXG5leHBvcnQgY29uc3QgRk9STV9TVEFUVVNfQ0FOQ0VMPSAnQ0FOQ0VMJztcclxuZXhwb3J0IGNvbnN0IEZPUk1fU1RBVFVTX0NPTVBMRVRFRCA9ICdDT01QTEVURUQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX0xPQURfSElTVE9SWSA9ICdsb2FkSGlzdG9yeSc7XHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9TVUNDRVNTX0hJU1RPUlkgPSAnc3VjY2Vzc0hpc3RvcnknO1xyXG5leHBvcnQgY29uc3QgU0VSVklDRV9OQU1FX0RQX0xPQURfSElTVE9SWSA9ICdpZ2F0ZS5nZXQuaW5ib3guaXRlbS53b3JrZmxvdyc7XHJcbmV4cG9ydCBjb25zdCBXTV9BQ1RJT05fU0FWRV9DSEFOR0VTID0gJ1NBVkVfQ0hBTkdFUyc7XHJcbmV4cG9ydCBjb25zdCBTRVJWSUNFX05BTUVfV01fRFJBRlRfRk9STSA9ICdkcmFmdCc7XHJcblxyXG4vLyBmZWVkYmFjayBhbmQgZmxhZ1xyXG5leHBvcnQgY29uc3QgU1RBVEVfTUFDSElORV9BQ1RJT05fR0VUX0lOQk9YX0lURU0gPSAnZ2V0SW5ib3hJdGVtJztcclxuZXhwb3J0IGNvbnN0IFNFUlZJQ0VfTkFNRV9EUF9JTkJPWF9JVEVNID0gJ2lnYXRlLmdldC5pbmJveC5pdGVtJztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX1NVQ0NFU1NfSU5CT1hfSVRFTSA9ICdzdWNjZXNzSW5ib3hJdGVtJztcclxuXHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9TRVRfRkxBRyA9ICdzZXRGbGFnUHJpb3JpdHknO1xyXG5leHBvcnQgY29uc3QgU0VSVklDRV9OQU1FX0RQX1VQREFURV9JTkJPWF9JVEVNID0gJ2lnYXRlLnVwZGF0ZS5pbmJveC5pdGVtJztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX0lOQk9YX0lURU1fUkVTUE9OU0UgPSAnaW5ib3hJdGVtUmVzcG9uc2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEZFRURCQUNLX1NUQVRVU19SRVFVRVNUID0gJ3JlcXVlc3RGZWVkYmFjayc7XHJcbmV4cG9ydCBjb25zdCBGRUVEQkFDS19TVEFUVVNfUkVTUE9ORCA9ICdyZXNwb25kVG9GZWVkYmFjayc7XHJcbmV4cG9ydCBjb25zdCBGRUVEQkFDS19TVEFUVVNfV0FJVElORyA9ICd3YWl0aW5nRmVlZGJhY2snO1xyXG5leHBvcnQgY29uc3QgRkVFREJBQ0tfU1RBVFVTX1JFU1BPTkRFRCA9ICdmZWVkYmFja1Jlc3BvbmRlZCc7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX1NVQk1JVF9GRUVEQkFDSyA9ICdzdWJtaXRGZWVkYmFjayc7XHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9HRVRfRkVFREJBQ0sgPSAnZ2V0RmVlZGJhY2snO1xyXG5leHBvcnQgY29uc3QgU1RBVEVfTUFDSElORV9BQ1RJT05fVVBEQVRFX0ZFRURCQUNLID0gJ3N1Ym1pdEZlZWRiYWNrUmVzcG9uc2UnO1xyXG5leHBvcnQgY29uc3QgU0VSVklDRV9OQU1FX0RQX0NSRUFURV9GRUVEQkFDSyA9ICdpZ2F0ZS5jcmVhdGUuaW5ib3guaXRlbS5mZWVkYmFjayc7XHJcbmV4cG9ydCBjb25zdCBTVEFURV9OQU1FX0RQX0dFVF9GRUVEQkFDSyA9ICdpZ2F0ZS5nZXQuaW5ib3guaXRlbS5mZWVkYmFjayc7XHJcbmV4cG9ydCBjb25zdCBTRVJWSUNFX05BTUVfRFBfVVBEQVRFX0ZFRURCQUNLID0gJ2lnYXRlLnVwZGF0ZS5pbmJveC5pdGVtLmZlZWRiYWNrJztcclxuXHJcblxyXG5leHBvcnQgY29uc3QgUFJPRklMRV9DT05UQUlORVIgPSAnI3Byb2ZpbGVGb3JtQ29udGVudCc7XHJcbmV4cG9ydCBjb25zdCBDT01NRU5UX0NPTlRBSU5FUiA9ICcjY29tbWVudHNGb3JtQ29udGVudCc7XHJcbmV4cG9ydCBjb25zdCBGRUVEQkFDS19DT05UQUlORVIgPSAnI2ZlZWRiYWNrRm9ybUNvbnRlbnQnO1xyXG5leHBvcnQgY29uc3QgSU5CT1hfU1RBVFVTX1BFTkRJTkcgPSAncGVuZGluZyc7XHJcbmV4cG9ydCBjb25zdCBJTkJPWF9TVEFUVVNfUFJPQ0VTU0VEID0gJ3Byb2Nlc3NlZCc7XHJcbmV4cG9ydCBjb25zdCBJTkJPWF9TVEFUVVNfU0VOVCA9ICdzZW50JztcclxuZXhwb3J0IGNvbnN0IFJFUE9SVCA9ICdyZXBvcnQnO1xyXG5leHBvcnQgY29uc3QgREFURV9USU1FID0gJ0REL01NL1lZWVkgSEg6bW06c3MnO1xyXG5leHBvcnQgY29uc3QgREFURV9EQVNIID0gJ0RELU1NTS1ZWVlZJztcclxuZXhwb3J0IGNvbnN0IERBVEVfU0xBU0ggPSAnREQvTU0vWVlZWSc7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IFNFUlZJQ0VfTkFNRV9XTV9HRVRfQVBQUk9WRURfUkVRVUVTVCA9ICdyZXF1ZXN0cycgO1xyXG5leHBvcnQgY29uc3QgU0VSVklDRV9OQU1FX1dNX0dFVF9NWV9BUFBST1ZFRF9SRVFVRVNUID0gJ215UmVxdWVzdHMnIDtcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX0dFVF9BUFBST1ZFRF9SRVFVRVNUID0gJ2dldEFwcHJvdmVkUmVxdWVzdCc7XHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9HRVRfQVBQUk9WRURfUkVRVUVTVF9SRVNQT05TRSA9ICdnZXRBcHByb3ZlZFJlcXVlc3RSZXNwb25zZScgO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9QUk9KRUNUX01BRiA9ICdwcm9qZWN0RGV0YWlscyc7XHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9QUk9KRUNUX0NFUCA9ICdwcm9qZWN0JztcclxuZXhwb3J0IGNvbnN0IFNUQVRFX01BQ0hJTkVfQUNUSU9OX0NPTU1PTkFQSSA9ICdjb21tb25BcGknO1xyXG5leHBvcnQgY29uc3QgU1RBVEVfTUFDSElORV9BQ1RJT05fU0VBUkNIID0gJ3NlYXJjaCc7XHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9QUFJPVkVEX1JFUVVFU1RTID0gJ2FwcHJvdmVkUmVxdWVzdHMnO1xyXG5leHBvcnQgY29uc3QgR0VUU0lQT1JURU5UUllHUk9VUFMgPSAnZ2V0U2lwb3J0RW50cnlHcm91cHMnO1xyXG5leHBvcnQgY29uc3QgR0VUU0lQT1JURU5UUllMT0NBVElPTlMgPSAnZ2V0U2lwb3J0RW50cnlMb2NhdGlvbnMnO1xyXG5leHBvcnQgY29uc3QgU1RBVEVfTUFDSElORV9BQ1RJT05fU1VDQ0VTU19TRVJWSUNFUz0gJ3NlcnZpY2VSZXNwb25jZSc7XHJcbmV4cG9ydCBjb25zdCBTRVJWSUNFX05BTUVfTUFGID0gJ01BRic7XHJcbmV4cG9ydCBjb25zdCBTRVJWSUNFX05BTUVfQ0VQID0gJ0NFUCc7XHJcbmV4cG9ydCBjb25zdCBTVEFURV9NQUNISU5FX0FDVElPTl9QREYgPSAncGRmQXR0YWNobWVudHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IExPR09VVF9VUkwgPSAnL2MvcG9ydGFsL2xvZ291dCc7XHJcblxyXG5leHBvcnQgY29uc3QgV09SS0ZMT1dfSVRFTVMgPSAnd29ya2Zsb3dJdGVtcyc7XHJcbmV4cG9ydCBjb25zdCBBUFBST1ZFUlMgPSAnYXBwcm92ZXJzJztcclxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './constants';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbnN0YW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcclxuIl19
@@ -0,0 +1,54 @@
1
+ /* eslint-disable @typescript-eslint/no-empty-function */
2
+ /* eslint-disable @angular-eslint/directive-selector */
3
+ import { Directive, HostListener } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ export class ArOnlyDirective {
6
+ specialKeys = ['Backspace', 'ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown', 'Control'];
7
+ constructor() {
8
+ }
9
+ regex = /^[~`!@#$%^&*()_+=[\]\{}|;':",.\/<>?0-9-]+$/;
10
+ onKeyDown(event) {
11
+ const text = event.key;
12
+ if (event.ctrlKey && (text == 'c' || text == 'v' || text == 'x' || text == 'a' || text == 'z')) {
13
+ return;
14
+ }
15
+ const arabicAlphabetDigits = /[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]|[\u0200]|[\u00A0]/g;
16
+ if (arabicAlphabetDigits.test(text) || text == " " || text == 'Backspace' || this.regex.test(text)) {
17
+ return;
18
+ }
19
+ else {
20
+ event.preventDefault();
21
+ }
22
+ }
23
+ onPaste(event) {
24
+ const data = event.clipboardData.getData('text/plain');
25
+ if (!(/[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]|[\u0200]|[\u00A0]/g.test(data))) {
26
+ event.preventDefault();
27
+ }
28
+ }
29
+ onDrop(event) {
30
+ const data = event.dataTransfer.getData("text/plain");
31
+ if (!(/[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]|[\u0200]|[\u00A0]/g.test(data))) {
32
+ event.preventDefault();
33
+ }
34
+ }
35
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ArOnlyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
36
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ArOnlyDirective, isStandalone: true, selector: "[arOnly]", host: { listeners: { "keydown": "onKeyDown($event)", "paste": "onPaste($event)", "drop": "onDrop($event)" } }, ngImport: i0 });
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ArOnlyDirective, decorators: [{
39
+ type: Directive,
40
+ args: [{
41
+ selector: '[arOnly]',
42
+ standalone: true
43
+ }]
44
+ }], ctorParameters: () => [], propDecorators: { onKeyDown: [{
45
+ type: HostListener,
46
+ args: ['keydown', ['$event']]
47
+ }], onPaste: [{
48
+ type: HostListener,
49
+ args: ['paste', ['$event']]
50
+ }], onDrop: [{
51
+ type: HostListener,
52
+ args: ['drop', ['$event']]
53
+ }] } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2FyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU12RCxNQUFNLE9BQU8sZUFBZTtJQUNsQixXQUFXLEdBQUcsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBRWpHO0lBRUEsQ0FBQztJQUVELEtBQUssR0FBRyw0Q0FBNEMsQ0FBQztJQUdyRCxTQUFTLENBQUMsS0FBSztRQUNiLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdkIsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFFLEVBQUUsQ0FBQztZQUNoRyxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sb0JBQW9CLEdBQUcsb0ZBQW9GLENBQUM7UUFDbEgsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUssSUFBSSxJQUFJLEdBQUcsSUFBSyxJQUFJLElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckcsT0FBTztRQUNULENBQUM7YUFDSSxDQUFDO1lBQ0osS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFFSCxDQUFDO0lBR0QsT0FBTyxDQUFDLEtBQUs7UUFDWCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsQ0FBQyxvRkFBb0YsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZHLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBRUgsQ0FBQztJQUdELE1BQU0sQ0FBQyxLQUFLO1FBQ1YsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLENBQUMsb0ZBQW9GLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2RyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7dUdBeENVLGVBQWU7MkZBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3dEQVdDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUJuQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVqQyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3IgKi9cclxuaW1wb3J0IHsgRGlyZWN0aXZlLEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXJPbmx5XScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJPbmx5RGlyZWN0aXZlIHtcclxuICBwcml2YXRlIHNwZWNpYWxLZXlzID0gWydCYWNrc3BhY2UnLCAnQXJyb3dSaWdodCcsICdBcnJvd0xlZnQnLCAnQXJyb3dVcCcsICdBcnJvd0Rvd24nLCAnQ29udHJvbCddXHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICB9XHJcblxyXG4gIHJlZ2V4ID0gL15bfmAhQCMkJV4mKigpXys9W1xcXVxce318Oyc6XCIsLlxcLzw+PzAtOS1dKyQvO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBvbktleURvd24oZXZlbnQpIHtcclxuICAgIGNvbnN0IHRleHQgPSBldmVudC5rZXk7XHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAodGV4dCA9PSAnYycgfHwgdGV4dCA9PSAndicgfHwgdGV4dCA9PSAneCcgfHwgdGV4dCA9PSAnYScgfHwgdGV4dCA9PSAneicgKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBhcmFiaWNBbHBoYWJldERpZ2l0cyA9IC9bXFx1MDYwMC1cXHUwNmZmXXxbXFx1MDc1MC1cXHUwNzdmXXxbXFx1ZmI1MC1cXHVmYzNmXXxbXFx1ZmU3MC1cXHVmZWZjXXxbXFx1MDIwMF18W1xcdTAwQTBdL2c7XHJcbiAgICBpZiAoYXJhYmljQWxwaGFiZXREaWdpdHMudGVzdCh0ZXh0KSB8fCAgdGV4dCA9PSBcIiBcIiB8fCAgdGV4dCA9PSAnQmFja3NwYWNlJyB8fCB0aGlzLnJlZ2V4LnRlc3QodGV4dCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiBcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3Bhc3RlJywgWyckZXZlbnQnXSlcclxuICBvblBhc3RlKGV2ZW50KSB7XHJcbiAgICBjb25zdCBkYXRhID0gZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XHJcbiAgICBpZiAoISgvW1xcdTA2MDAtXFx1MDZmZl18W1xcdTA3NTAtXFx1MDc3Zl18W1xcdWZiNTAtXFx1ZmMzZl18W1xcdWZlNzAtXFx1ZmVmY118W1xcdTAyMDBdfFtcXHUwMEEwXS9nLnRlc3QoZGF0YSkpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXHJcbiAgb25Ecm9wKGV2ZW50KSB7XHJcbiAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoXCJ0ZXh0L3BsYWluXCIpO1xyXG4gICAgaWYgKCEoL1tcXHUwNjAwLVxcdTA2ZmZdfFtcXHUwNzUwLVxcdTA3N2ZdfFtcXHVmYjUwLVxcdWZjM2ZdfFtcXHVmZTcwLVxcdWZlZmNdfFtcXHUwMjAwXXxbXFx1MDBBMF0vZy50ZXN0KGRhdGEpKSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,92 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ /* eslint-disable @angular-eslint/directive-selector */
3
+ import { Directive, HostListener, Input } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../pipes";
6
+ export class MycurrencyDirective {
7
+ elementRef;
8
+ formatcurrencypipe;
9
+ el;
10
+ decimals;
11
+ constructor(elementRef, formatcurrencypipe) {
12
+ this.elementRef = elementRef;
13
+ this.formatcurrencypipe = formatcurrencypipe;
14
+ this.el = this.elementRef.nativeElement;
15
+ }
16
+ ngOnInit() {
17
+ setTimeout(() => {
18
+ this.el.value = this.formatcurrencypipe.transform(this.el.value);
19
+ });
20
+ }
21
+ onFocus(value, event) {
22
+ this.el.value = this.formatcurrencypipe.parse(value); // opossite of transform
23
+ if (event.which == 9) {
24
+ return false;
25
+ }
26
+ return this.el.select();
27
+ }
28
+ onBlur(value) {
29
+ this.el.value = this.formatcurrencypipe.transform(value);
30
+ }
31
+ onKeyDown(event) {
32
+ const e = event;
33
+ if (e.key == 'و' || e.key == 'ز') {
34
+ e.preventDefault();
35
+ }
36
+ if ([46, 8, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||
37
+ // Allow: Ctrl+A
38
+ (e.keyCode === 65 && (e.ctrlKey || e.metaKey)) ||
39
+ // Allow: Ctrl+C
40
+ (e.keyCode === 67 && (e.ctrlKey || e.metaKey)) ||
41
+ // Allow: Ctrl+V
42
+ (e.keyCode === 86 && (e.ctrlKey || e.metaKey)) ||
43
+ // Allow: Ctrl+X
44
+ (e.keyCode === 88 && (e.ctrlKey || e.metaKey)) ||
45
+ (e.keyCode === 188) ||
46
+ // Allow: home, end, left, right
47
+ (e.keyCode >= 35 && e.keyCode <= 39)) {
48
+ // let it happen, don't do anything
49
+ return;
50
+ }
51
+ // Ensure that it is a number and stop the keypress
52
+ if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
53
+ e.preventDefault();
54
+ }
55
+ }
56
+ onPaste(event) {
57
+ const clipboardData = event.clipboardData;
58
+ const pastedText = clipboardData.getData('text');
59
+ // Example: block pasting if pasted text contains forbidden characters
60
+ if (pastedText.includes('و') || pastedText.includes('ز')) {
61
+ event.preventDefault();
62
+ }
63
+ // Or only allow digits (example)
64
+ if (!/^\d+$/.test(pastedText)) {
65
+ event.preventDefault();
66
+ }
67
+ }
68
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MycurrencyDirective, deps: [{ token: i0.ElementRef }, { token: i1.MycurrencyPipe }], target: i0.ɵɵFactoryTarget.Directive });
69
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: MycurrencyDirective, isStandalone: true, selector: "[appMycurrency]", inputs: { decimals: "decimals" }, host: { listeners: { "focus": "onFocus($event.target.value,$event)", "blur": "onBlur($event.target.value)", "keydown": "onKeyDown($event)", "paste": "onPaste($event)" } }, ngImport: i0 });
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MycurrencyDirective, decorators: [{
72
+ type: Directive,
73
+ args: [{
74
+ selector: '[appMycurrency]',
75
+ standalone: true
76
+ }]
77
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.MycurrencyPipe }], propDecorators: { decimals: [{
78
+ type: Input
79
+ }], onFocus: [{
80
+ type: HostListener,
81
+ args: ["focus", ["$event.target.value", "$event"]]
82
+ }], onBlur: [{
83
+ type: HostListener,
84
+ args: ["blur", ["$event.target.value"]]
85
+ }], onKeyDown: [{
86
+ type: HostListener,
87
+ args: ['keydown', ['$event']]
88
+ }], onPaste: [{
89
+ type: HostListener,
90
+ args: ['paste', ['$event']]
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2N1cnJlbmN5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsdURBQXVEO0FBQ3ZELE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQzs7O0FBT2pGLE1BQU0sT0FBTyxtQkFBbUI7SUFLcEI7SUFDQTtJQUxGLEVBQUUsQ0FBTTtJQUNQLFFBQVEsQ0FBVTtJQUUzQixZQUNVLFVBQXFCLEVBQ3JCLGtCQUFpQztRQURqQyxlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBZTtRQUV6QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQzFDLENBQUM7SUFDRCxRQUFRO1FBQ04sVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBSyxFQUFDLEtBQUs7UUFDakIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHdCQUF3QjtRQUM5RSxJQUFHLEtBQUssQ0FBQyxLQUFLLElBQUcsQ0FBQyxFQUNsQixDQUFDO1lBQ0csT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUUxQixD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LE9BQU8sRUFBQyxDQUFDLHFCQUFxQixFQUFDLFFBQVEsQ0FBQztnQkFZdEQsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dCQUlSLFNBQVM7c0JBQTdDLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTJCbkMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvciAqL1xyXG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNeWN1cnJlbmN5UGlwZX0gZnJvbSBcIi4uL3BpcGVzXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHBNeWN1cnJlbmN5XScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXljdXJyZW5jeURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBwcml2YXRlIGVsOiBhbnk7XHJcbiAgQElucHV0KCkgZGVjaW1hbHMhOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOkVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGZvcm1hdGN1cnJlbmN5cGlwZTpNeWN1cnJlbmN5UGlwZVxyXG4gICkge1xyXG4gICAgdGhpcy5lbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZWwudmFsdWUgPSB0aGlzLmZvcm1hdGN1cnJlbmN5cGlwZS50cmFuc2Zvcm0odGhpcy5lbC52YWx1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcihcImZvY3VzXCIsW1wiJGV2ZW50LnRhcmdldC52YWx1ZVwiLFwiJGV2ZW50XCJdKVxyXG4gIG9uRm9jdXModmFsdWUsZXZlbnQpIHtcclxuICAgIHRoaXMuZWwudmFsdWUgPSB0aGlzLmZvcm1hdGN1cnJlbmN5cGlwZS5wYXJzZSh2YWx1ZSk7IC8vIG9wb3NzaXRlIG9mIHRyYW5zZm9ybVxyXG4gICAgaWYoZXZlbnQud2hpY2g9PSA5KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmVsLnNlbGVjdCgpO1xyXG5cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJibHVyXCIsIFtcIiRldmVudC50YXJnZXQudmFsdWVcIl0pXHJcbiAgb25CbHVyKHZhbHVlKSB7XHJcbiAgICB0aGlzLmVsLnZhbHVlID0gdGhpcy5mb3JtYXRjdXJyZW5jeXBpcGUudHJhbnNmb3JtKHZhbHVlKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pIG9uS2V5RG93bihldmVudCkge1xyXG4gICAgY29uc3QgZSA9IDxLZXlib2FyZEV2ZW50PiBldmVudDtcclxuICAgICAgaWYoZS5rZXkgPT0gJ9mIJyB8fCBlLmtleSA9PSAn2LInKXtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChbNDYsIDgsIDksIDI3LCAxMywgMTEwLCAxOTBdLmluZGV4T2YoZS5rZXlDb2RlKSAhPT0gLTEgfHxcclxuICAgICAgICAvLyBBbGxvdzogQ3RybCtBXHJcbiAgICAgICAgKGUua2V5Q29kZSA9PT0gNjUgJiYgKGUuY3RybEtleSB8fCBlLm1ldGFLZXkpKSB8fFxyXG4gICAgICAgIC8vIEFsbG93OiBDdHJsK0NcclxuICAgICAgICAoZS5rZXlDb2RlID09PSA2NyAmJiAoZS5jdHJsS2V5IHx8IGUubWV0YUtleSkpIHx8XHJcbiAgICAgICAgLy8gQWxsb3c6IEN0cmwrVlxyXG4gICAgICAgIChlLmtleUNvZGUgPT09IDg2ICYmIChlLmN0cmxLZXkgfHwgZS5tZXRhS2V5KSkgfHxcclxuICAgICAgICAvLyBBbGxvdzogQ3RybCtYXHJcbiAgICAgICAgKGUua2V5Q29kZSA9PT0gODggJiYgKGUuY3RybEtleSB8fCBlLm1ldGFLZXkpKSB8fFxyXG4gICAgICAgIChlLmtleUNvZGUgPT09IDE4OCApIHx8XHJcbiAgICAgICAgLy8gQWxsb3c6IGhvbWUsIGVuZCwgbGVmdCwgcmlnaHRcclxuICAgICAgICAoZS5rZXlDb2RlID49IDM1ICYmIGUua2V5Q29kZSA8PSAzOSkpIHtcclxuICAgICAgICAgIC8vIGxldCBpdCBoYXBwZW4sIGRvbid0IGRvIGFueXRoaW5nXHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIGEgbnVtYmVyIGFuZCBzdG9wIHRoZSBrZXlwcmVzc1xyXG4gICAgICAgIGlmICgoZS5zaGlmdEtleSB8fCAoZS5rZXlDb2RlIDwgNDggfHwgZS5rZXlDb2RlID4gNTcpKSAmJiAoZS5rZXlDb2RlIDwgOTYgfHwgZS5rZXlDb2RlID4gMTA1ICkpIHtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdwYXN0ZScsIFsnJGV2ZW50J10pXHJcbiAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IGNsaXBib2FyZERhdGEgPSBldmVudC5jbGlwYm9hcmREYXRhIDtcclxuICAgIGNvbnN0IHBhc3RlZFRleHQgPSBjbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQnKTtcclxuXHJcbiAgICAvLyBFeGFtcGxlOiBibG9jayBwYXN0aW5nIGlmIHBhc3RlZCB0ZXh0IGNvbnRhaW5zIGZvcmJpZGRlbiBjaGFyYWN0ZXJzXHJcbiAgICBpZiAocGFzdGVkVGV4dC5pbmNsdWRlcygn2YgnKSB8fCBwYXN0ZWRUZXh0LmluY2x1ZGVzKCfYsicpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gT3Igb25seSBhbGxvdyBkaWdpdHMgKGV4YW1wbGUpXHJcbiAgICBpZiAoIS9eXFxkKyQvLnRlc3QocGFzdGVkVGV4dCkpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,51 @@
1
+ /* eslint-disable @angular-eslint/directive-selector */
2
+ /* eslint-disable @typescript-eslint/no-empty-function */
3
+ import { Directive, HostListener } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ export class EnOnlyDirective {
6
+ specialKeys = ['Backspace', 'ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown', 'Control'];
7
+ constructor() {
8
+ }
9
+ regex = /^[~`!@#$%^&*()_+=[\]\{}|;':",.\/<>?a-zA-Z0-9- ]+$/;
10
+ onKeyDown(event) {
11
+ const text = event.key;
12
+ const english = /^[a-zA-Z ]*$/;
13
+ if (this.regex.test(text) || text == " " || text == 'Backspace' || (event.ctrlKey && (text == 'c' || text == 'ؤ' || text == 'v' || text == 'ر' || text == 'x' || text == 'ء' || text == 'a' || text == 'ش' || text == 'z' || text == 'ئ'))) {
14
+ return;
15
+ }
16
+ else {
17
+ event.preventDefault();
18
+ }
19
+ }
20
+ onPaste(event) {
21
+ const data = event.clipboardData.getData('text/plain');
22
+ if (!(this.regex.test(data))) {
23
+ event.preventDefault();
24
+ }
25
+ }
26
+ onDrop(event) {
27
+ const data = event.dataTransfer.getData("text/plain");
28
+ if (!(this.regex.test(data))) {
29
+ event.preventDefault();
30
+ }
31
+ }
32
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: EnOnlyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
33
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: EnOnlyDirective, isStandalone: true, selector: "[enOnly]", host: { listeners: { "keydown": "onKeyDown($event)", "paste": "onPaste($event)", "drop": "onDrop($event)" } }, ngImport: i0 });
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: EnOnlyDirective, decorators: [{
36
+ type: Directive,
37
+ args: [{
38
+ selector: '[enOnly]',
39
+ standalone: true
40
+ }]
41
+ }], ctorParameters: () => [], propDecorators: { onKeyDown: [{
42
+ type: HostListener,
43
+ args: ['keydown', ['$event']]
44
+ }], onPaste: [{
45
+ type: HostListener,
46
+ args: ['paste', ['$event']]
47
+ }], onDrop: [{
48
+ type: HostListener,
49
+ args: ['drop', ['$event']]
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2VuLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQseURBQXlEO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU14RCxNQUFNLE9BQU8sZUFBZTtJQUNsQixXQUFXLEdBQUcsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBRWpHO0lBRUEsQ0FBQztJQUVBLEtBQUssR0FBRyxtREFBbUQsQ0FBQztJQUc3RCxTQUFTLENBQUMsS0FBSztRQUNiLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUssSUFBSSxJQUFJLEdBQUcsSUFBSyxJQUFJLElBQUksV0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFLLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFLLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDaFAsT0FBTztRQUNULENBQUM7YUFDSSxDQUFDO1lBQ0osS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFFSCxDQUFDO0lBTUQsT0FBTyxDQUFDLEtBQUs7UUFDWCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2RCxJQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFHLENBQUM7WUFDbEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFFSCxDQUFDO0lBT0QsTUFBTSxDQUFDLEtBQUs7UUFDVixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO3VHQTVDVSxlQUFlOzJGQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjt3REFXQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlCbkMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFjakMsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3IgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tlbk9ubHldJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbk9ubHlEaXJlY3RpdmUge1xyXG4gIHByaXZhdGUgc3BlY2lhbEtleXMgPSBbJ0JhY2tzcGFjZScsICdBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCcsICdBcnJvd1VwJywgJ0Fycm93RG93bicsICdDb250cm9sJ11cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgIHJlZ2V4ID0gL15bfmAhQCMkJV4mKigpXys9W1xcXVxce318Oyc6XCIsLlxcLzw+P2EtekEtWjAtOS0gXSskLztcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlEb3duKGV2ZW50KSB7XHJcbiAgICBjb25zdCB0ZXh0ID0gZXZlbnQua2V5OyBcclxuICAgIGNvbnN0IGVuZ2xpc2ggPSAvXlthLXpBLVogXSokLztcclxuICAgIGlmICh0aGlzLnJlZ2V4LnRlc3QodGV4dCkgfHwgIHRleHQgPT0gXCIgXCIgfHwgIHRleHQgPT0gJ0JhY2tzcGFjZScgfHwgKGV2ZW50LmN0cmxLZXkgJiYgKHRleHQgPT0gJ2MnIHx8IHRleHQgPT0gJ9ikJyAgfHwgdGV4dCA9PSAndicgfHwgdGV4dCA9PSAn2LEnIHx8IHRleHQgPT0gJ3gnIHx8IHRleHQgPT0gJ9ihJyAgfHwgdGV4dCA9PSAnYScgfHwgdGV4dCA9PSAn2LQnIHx8IHRleHQgPT0gJ3onICB8fCB0ZXh0ID09ICfYpicpKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuIFxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKVxyXG4gIG9uUGFzdGUoZXZlbnQpIHtcclxuICAgIGNvbnN0IGRhdGEgPSBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQvcGxhaW4nKTtcclxuICAgIGlmICggICAgISh0aGlzLnJlZ2V4LnRlc3QoZGF0YSkpICkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcclxuICBvbkRyb3AoZXZlbnQpIHtcclxuICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YShcInRleHQvcGxhaW5cIik7XHJcbiAgICBpZiAoISh0aGlzLnJlZ2V4LnRlc3QoZGF0YSkpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,68 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable @angular-eslint/directive-selector */
3
+ import { Directive, HostListener, Input } from "@angular/core";
4
+ import * as i0 from "@angular/core";
5
+ export class NumberDirective {
6
+ el;
7
+ decimals = 0;
8
+ constructor(el) {
9
+ this.el = el;
10
+ }
11
+ check(value) {
12
+ if (this.decimals <= 0) {
13
+ // Updated RegExp to allow for decimal
14
+ return String(value).match(new RegExp(/^\d*\.?\d*$/));
15
+ }
16
+ else {
17
+ const regExpString = "^\\s*((\\d+(\\.\\d{0," +
18
+ this.decimals +
19
+ "})?)|((\\d*(\\.\\d{1," +
20
+ this.decimals +
21
+ "}))))\\s*$";
22
+ return String(value).match(new RegExp(regExpString));
23
+ }
24
+ }
25
+ onKeyPress(event) {
26
+ const char = event.key;
27
+ const currentValue = this.el.nativeElement.value;
28
+ const nextValue = currentValue + char;
29
+ if (nextValue !== '' && !this.check(nextValue)) {
30
+ event.preventDefault();
31
+ }
32
+ }
33
+ run(oldValue) {
34
+ setTimeout(() => {
35
+ const currentValue = this.el.nativeElement.value;
36
+ if (currentValue !== '' && !this.check(currentValue)) {
37
+ this.el.nativeElement.value = oldValue;
38
+ }
39
+ });
40
+ }
41
+ onKeyDown() {
42
+ this.run(this.el.nativeElement.value);
43
+ }
44
+ onPaste() {
45
+ this.run(this.el.nativeElement.value);
46
+ }
47
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NumberDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
48
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NumberDirective, isStandalone: true, selector: "[numberOnly]", inputs: { decimals: "decimals" }, host: { listeners: { "keypress": "onKeyPress($event)", "keydown": "onKeyDown($event)", "paste": "onPaste($event)" } }, ngImport: i0 });
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NumberDirective, decorators: [{
51
+ type: Directive,
52
+ args: [{
53
+ selector: "[numberOnly]",
54
+ standalone: true
55
+ }]
56
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { decimals: [{
57
+ type: Input
58
+ }], onKeyPress: [{
59
+ type: HostListener,
60
+ args: ['keypress', ['$event']]
61
+ }], onKeyDown: [{
62
+ type: HostListener,
63
+ args: ["keydown", ["$event"]]
64
+ }], onPaste: [{
65
+ type: HostListener,
66
+ args: ["paste", ["$event"]]
67
+ }] } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9udW1iZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQU16RSxNQUFNLE9BQU8sZUFBZTtJQUdOO0lBRlgsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUV0QixZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUFJLENBQUM7SUFFakMsS0FBSyxDQUFDLEtBQWE7UUFDekIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLHNDQUFzQztZQUN0QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sWUFBWSxHQUNoQix1QkFBdUI7Z0JBQ3ZCLElBQUksQ0FBQyxRQUFRO2dCQUNiLHVCQUF1QjtnQkFDdkIsSUFBSSxDQUFDLFFBQVE7Z0JBQ2IsWUFBWSxDQUFDO1lBQ2YsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNILENBQUM7SUFHQyxVQUFVLENBQUMsS0FBb0I7UUFDN0IsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUN2QixNQUFNLFlBQVksR0FBVyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDekQsTUFBTSxTQUFTLEdBQVcsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM5QyxJQUFJLFNBQVMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDL0MsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRU8sR0FBRyxDQUFDLFFBQWE7UUFDdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sWUFBWSxHQUFXLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUN6RCxJQUFJLFlBQVksS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELFNBQVM7UUFDUCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFHRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO3VHQWhEVSxlQUFlOzJGQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjsrRUFFVSxRQUFRO3NCQUFoQixLQUFLO2dCQW9CTixVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXFCcEMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNbkMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yICovXHJcblxyXG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBcIltudW1iZXJPbmx5XVwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIE51bWJlckRpcmVjdGl2ZSB7XHJcbiAgQElucHV0KCkgZGVjaW1hbHMgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7IH1cclxuXHJcbnByaXZhdGUgY2hlY2sodmFsdWU6IHN0cmluZykge1xyXG4gIGlmICh0aGlzLmRlY2ltYWxzIDw9IDApIHtcclxuICAgIC8vIFVwZGF0ZWQgUmVnRXhwIHRvIGFsbG93IGZvciBkZWNpbWFsXHJcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKS5tYXRjaChuZXcgUmVnRXhwKC9eXFxkKlxcLj9cXGQqJC8pKTtcclxuICB9IGVsc2Uge1xyXG4gICAgY29uc3QgcmVnRXhwU3RyaW5nID1cclxuICAgICAgXCJeXFxcXHMqKChcXFxcZCsoXFxcXC5cXFxcZHswLFwiICtcclxuICAgICAgdGhpcy5kZWNpbWFscyArXHJcbiAgICAgIFwifSk/KXwoKFxcXFxkKihcXFxcLlxcXFxkezEsXCIgK1xyXG4gICAgICB0aGlzLmRlY2ltYWxzICtcclxuICAgICAgXCJ9KSkpKVxcXFxzKiRcIjtcclxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpLm1hdGNoKG5ldyBSZWdFeHAocmVnRXhwU3RyaW5nKSk7XHJcbiAgfVxyXG59XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXByZXNzJywgWyckZXZlbnQnXSlcclxuICBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBjaGFyID0gZXZlbnQua2V5O1xyXG4gICAgY29uc3QgY3VycmVudFZhbHVlOiBzdHJpbmcgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICBjb25zdCBuZXh0VmFsdWU6IHN0cmluZyA9IGN1cnJlbnRWYWx1ZSArIGNoYXI7XHJcbiAgICBpZiAobmV4dFZhbHVlICE9PSAnJyAmJiAhdGhpcy5jaGVjayhuZXh0VmFsdWUpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJ1bihvbGRWYWx1ZTogYW55KSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgY3VycmVudFZhbHVlOiBzdHJpbmcgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICAgIGlmIChjdXJyZW50VmFsdWUgIT09ICcnICYmICF0aGlzLmNoZWNrKGN1cnJlbnRWYWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBvbGRWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uS2V5RG93bigpIHtcclxuICAgIHRoaXMucnVuKHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwicGFzdGVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uUGFzdGUoKSB7XHJcbiAgICB0aGlzLnJ1bih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ export class SkipLocationDirective {
5
+ router;
6
+ appSkipLocation;
7
+ constructor(router) {
8
+ this.router = router;
9
+ }
10
+ onClick() {
11
+ this.router.navigate([this.appSkipLocation], { skipLocationChange: true });
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkipLocationDirective, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Directive });
14
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: SkipLocationDirective, isStandalone: true, selector: "[appSkipLocation]", inputs: { appSkipLocation: "appSkipLocation" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkipLocationDirective, decorators: [{
17
+ type: Directive,
18
+ args: [{
19
+ standalone: true,
20
+ selector: '[appSkipLocation]'
21
+ }]
22
+ }], ctorParameters: () => [{ type: i1.Router }], propDecorators: { appSkipLocation: [{
23
+ type: Input
24
+ }], onClick: [{
25
+ type: HostListener,
26
+ args: ['click']
27
+ }] } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpcC1sb2NhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvc2tpcC1sb2NhdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFPN0QsTUFBTSxPQUFPLHFCQUFxQjtJQUdWO0lBRlgsZUFBZSxDQUFNO0lBRTlCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ2xDLENBQUM7SUFHRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7dUdBVFEscUJBQXFCOzJGQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxtQkFBbUI7aUJBQ2hDOzJFQUVZLGVBQWU7c0JBQXZCLEtBQUs7Z0JBTU4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgc2VsZWN0b3I6ICdbYXBwU2tpcExvY2F0aW9uXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNraXBMb2NhdGlvbkRpcmVjdGl2ZSB7XHJcbiAgICBASW5wdXQoKSBhcHBTa2lwTG9jYXRpb246IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gICAgb25DbGljaygpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5hcHBTa2lwTG9jYXRpb25dLCB7c2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlfSk7XHJcbiAgICB9XHJcbn1cclxuIl19