monkey-style-guide-v2 0.0.27 → 0.0.29

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 (143) hide show
  1. package/assets/scss/directives/_index.scss +3 -3
  2. package/assets/scss/input/_index.scss +1 -1
  3. package/assets/scss/partials/_breakpoints.scss +145 -0
  4. package/assets/scss/partials/_grid-system.scss +5069 -0
  5. package/assets/scss/partials/_helper-classes.scss +335 -0
  6. package/assets/scss/partials/_index.scss +8 -3
  7. package/assets/scss/partials/_scrollbars.scss +30 -0
  8. package/assets/scss/partials/_skeleton-loading.scss +67 -0
  9. package/assets/scss/partials/_style-reset.scss +11 -9
  10. package/assets/scss/partials/_variables.scss +49 -111
  11. package/assets/scss/table/_index.scss +1 -1
  12. package/assets/scss/theme.scss +12 -18
  13. package/assets/scss/typography/_index.scss +1 -3
  14. package/assets/scss/typography/_styles.scss +103 -103
  15. package/fesm2022/monkey-style-guide-v2.mjs +288 -279
  16. package/fesm2022/monkey-style-guide-v2.mjs.map +1 -1
  17. package/lib/components/form-field/form-field-control.d.ts +1 -1
  18. package/lib/components/input-phone/input-phone.component.d.ts +0 -2
  19. package/monkey-style-guide-v2-0.0.29.tgz +0 -0
  20. package/package.json +8 -10
  21. package/assets/scss/typography/_function.scss +0 -23
  22. package/assets/scss/typography/_mixins.scss +0 -111
  23. package/esm2022/lib/components/accordion/accordion.component.mjs +0 -93
  24. package/esm2022/lib/components/accordion/index.mjs +0 -7
  25. package/esm2022/lib/components/action-bar/action-bar.component.mjs +0 -46
  26. package/esm2022/lib/components/action-bar/index.mjs +0 -7
  27. package/esm2022/lib/components/alert/alert.component.mjs +0 -50
  28. package/esm2022/lib/components/alert/index.mjs +0 -7
  29. package/esm2022/lib/components/avatar/avatar.component.mjs +0 -55
  30. package/esm2022/lib/components/avatar/index.mjs +0 -7
  31. package/esm2022/lib/components/badge/badge.component.mjs +0 -74
  32. package/esm2022/lib/components/badge/index.mjs +0 -7
  33. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +0 -56
  34. package/esm2022/lib/components/breadcrumb/index.mjs +0 -7
  35. package/esm2022/lib/components/button/button.component.mjs +0 -59
  36. package/esm2022/lib/components/button/index.mjs +0 -7
  37. package/esm2022/lib/components/checkbox/checkbox.component.mjs +0 -215
  38. package/esm2022/lib/components/checkbox/index.mjs +0 -7
  39. package/esm2022/lib/components/date-range/date-range.component.mjs +0 -239
  40. package/esm2022/lib/components/date-range/index.mjs +0 -7
  41. package/esm2022/lib/components/date-range/month/index.mjs +0 -7
  42. package/esm2022/lib/components/date-range/month/month.component.mjs +0 -148
  43. package/esm2022/lib/components/date-range/quick-actions/index.mjs +0 -7
  44. package/esm2022/lib/components/date-range/quick-actions/quick-actions.component.mjs +0 -48
  45. package/esm2022/lib/components/date-range/utils.mjs +0 -102
  46. package/esm2022/lib/components/divider/divider.component.mjs +0 -44
  47. package/esm2022/lib/components/divider/index.mjs +0 -7
  48. package/esm2022/lib/components/form-field/form-field-control.mjs +0 -15
  49. package/esm2022/lib/components/form-field/form-field.component.mjs +0 -265
  50. package/esm2022/lib/components/form-field/form-field.module.mjs +0 -23
  51. package/esm2022/lib/components/form-field/index.mjs +0 -10
  52. package/esm2022/lib/components/form-field/utils.mjs +0 -16
  53. package/esm2022/lib/components/icon/icon.component.mjs +0 -51
  54. package/esm2022/lib/components/icon/index.mjs +0 -7
  55. package/esm2022/lib/components/icon-button/icon-button.component.mjs +0 -59
  56. package/esm2022/lib/components/icon-button/index.mjs +0 -7
  57. package/esm2022/lib/components/index.mjs +0 -34
  58. package/esm2022/lib/components/input/index.mjs +0 -9
  59. package/esm2022/lib/components/input/input-currency.directive.mjs +0 -185
  60. package/esm2022/lib/components/input/input.directive.mjs +0 -185
  61. package/esm2022/lib/components/input/input.module.mjs +0 -24
  62. package/esm2022/lib/components/input/validators.mjs +0 -22
  63. package/esm2022/lib/components/input-code/index.mjs +0 -7
  64. package/esm2022/lib/components/input-code/input-code.component.mjs +0 -232
  65. package/esm2022/lib/components/input-phone/index.mjs +0 -7
  66. package/esm2022/lib/components/input-phone/input-phone.component.mjs +0 -324
  67. package/esm2022/lib/components/input-upload/index.mjs +0 -7
  68. package/esm2022/lib/components/input-upload/input-upload.component.mjs +0 -238
  69. package/esm2022/lib/components/modal/components/confirmation.component.mjs +0 -73
  70. package/esm2022/lib/components/modal/components/default.mjs +0 -65
  71. package/esm2022/lib/components/modal/directives/actions.mjs +0 -29
  72. package/esm2022/lib/components/modal/directives/content.mjs +0 -26
  73. package/esm2022/lib/components/modal/directives/subtitle.mjs +0 -26
  74. package/esm2022/lib/components/modal/directives/title.mjs +0 -26
  75. package/esm2022/lib/components/modal/index.mjs +0 -16
  76. package/esm2022/lib/components/modal/modal-config.mjs +0 -19
  77. package/esm2022/lib/components/modal/modal-ref.mjs +0 -56
  78. package/esm2022/lib/components/modal/modal.component.mjs +0 -119
  79. package/esm2022/lib/components/modal/modal.module.mjs +0 -56
  80. package/esm2022/lib/components/modal/modal.service.mjs +0 -150
  81. package/esm2022/lib/components/modal/utils.mjs +0 -24
  82. package/esm2022/lib/components/option/index.mjs +0 -7
  83. package/esm2022/lib/components/option/option.component.mjs +0 -70
  84. package/esm2022/lib/components/radio-button/index.mjs +0 -7
  85. package/esm2022/lib/components/radio-button/radio-button.component.mjs +0 -190
  86. package/esm2022/lib/components/security-level/index.mjs +0 -7
  87. package/esm2022/lib/components/security-level/security-level.component.mjs +0 -57
  88. package/esm2022/lib/components/select/index.mjs +0 -7
  89. package/esm2022/lib/components/select/select.component.mjs +0 -444
  90. package/esm2022/lib/components/status/index.mjs +0 -7
  91. package/esm2022/lib/components/status/status.component.mjs +0 -45
  92. package/esm2022/lib/components/table/components/pagination-action/pagination-action.mjs +0 -53
  93. package/esm2022/lib/components/table/components/pagination-label/pagination-label.mjs +0 -34
  94. package/esm2022/lib/components/table/components/pagination-size/pagination-size.mjs +0 -57
  95. package/esm2022/lib/components/table/directives/column-checked.mjs +0 -109
  96. package/esm2022/lib/components/table/directives/column-expansible.mjs +0 -134
  97. package/esm2022/lib/components/table/directives/column-sortable.mjs +0 -97
  98. package/esm2022/lib/components/table/directives/column-stick.mjs +0 -28
  99. package/esm2022/lib/components/table/index.mjs +0 -15
  100. package/esm2022/lib/components/table/table.component.mjs +0 -133
  101. package/esm2022/lib/components/table/table.module.mjs +0 -63
  102. package/esm2022/lib/components/toast/index.mjs +0 -7
  103. package/esm2022/lib/components/toast/toast.component.mjs +0 -79
  104. package/esm2022/lib/components/toggle/index.mjs +0 -7
  105. package/esm2022/lib/components/toggle/toggle.component.mjs +0 -74
  106. package/esm2022/lib/components/toggle-line/index.mjs +0 -8
  107. package/esm2022/lib/components/toggle-line/toggle-line-button/index.mjs +0 -7
  108. package/esm2022/lib/components/toggle-line/toggle-line-button/toggle-line-button.component.mjs +0 -24
  109. package/esm2022/lib/components/toggle-line/toggle-line.component.mjs +0 -85
  110. package/esm2022/lib/components/tooltip/index.mjs +0 -8
  111. package/esm2022/lib/components/tooltip/tooltip/index.mjs +0 -7
  112. package/esm2022/lib/components/tooltip/tooltip/tooltip.component.mjs +0 -58
  113. package/esm2022/lib/components/tooltip/tooltip.directive.mjs +0 -189
  114. package/esm2022/lib/directives/badge.mjs +0 -74
  115. package/esm2022/lib/directives/error.mjs +0 -18
  116. package/esm2022/lib/directives/helper.mjs +0 -18
  117. package/esm2022/lib/directives/index.mjs +0 -15
  118. package/esm2022/lib/directives/info.mjs +0 -18
  119. package/esm2022/lib/directives/label.mjs +0 -18
  120. package/esm2022/lib/directives/module.mjs +0 -61
  121. package/esm2022/lib/directives/popover.mjs +0 -385
  122. package/esm2022/lib/directives/prefix.mjs +0 -18
  123. package/esm2022/lib/directives/suffix.mjs +0 -43
  124. package/esm2022/lib/interfaces/alert.mjs +0 -2
  125. package/esm2022/lib/interfaces/breadcrumb.mjs +0 -2
  126. package/esm2022/lib/interfaces/button.mjs +0 -2
  127. package/esm2022/lib/interfaces/index.mjs +0 -13
  128. package/esm2022/lib/interfaces/popover.mjs +0 -2
  129. package/esm2022/lib/interfaces/sizes.mjs +0 -2
  130. package/esm2022/lib/interfaces/table.mjs +0 -2
  131. package/esm2022/lib/interfaces/toast.mjs +0 -10
  132. package/esm2022/lib/services/dictionary.service.mjs +0 -224
  133. package/esm2022/lib/services/index.mjs +0 -7
  134. package/esm2022/lib/services/toast.service.mjs +0 -79
  135. package/esm2022/lib/tokens/index.mjs +0 -10
  136. package/esm2022/monkey-style-guide-v2.mjs +0 -5
  137. package/esm2022/public-api.mjs +0 -11
  138. package/esm2022/utils/icon.mjs +0 -277
  139. package/esm2022/utils/id-generator.mjs +0 -20
  140. package/esm2022/utils/index.mjs +0 -5
  141. package/esm2022/utils/tests-utils.mjs +0 -4
  142. package/esm2022/utils/utils.mjs +0 -41
  143. package/monkey-style-guide-v2-0.0.27.tgz +0 -0
@@ -1,24 +0,0 @@
1
- /** ************************
2
- * Copyright Monkey Exchange. All Rights Reserved
3
- * This style guide was developed by Monkey Exchange Team
4
- * MIT Licence
5
- ************************* */
6
- import { CurrencyPipe } from '@angular/common';
7
- import { NgModule } from '@angular/core';
8
- import { MonkeyInputCurrencyDirective } from './input-currency.directive';
9
- import { MonkeyInputDirective } from './input.directive';
10
- import * as i0 from "@angular/core";
11
- export class MonkeyInputModule {
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MonkeyInputModule, declarations: [MonkeyInputDirective, MonkeyInputCurrencyDirective], exports: [MonkeyInputDirective, MonkeyInputCurrencyDirective] }); }
14
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyInputModule, providers: [CurrencyPipe] }); }
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyInputModule, decorators: [{
17
- type: NgModule,
18
- args: [{
19
- providers: [CurrencyPipe],
20
- declarations: [MonkeyInputDirective, MonkeyInputCurrencyDirective],
21
- exports: [MonkeyInputDirective, MonkeyInputCurrencyDirective]
22
- }]
23
- }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlLXYyL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBRTdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU96RCxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFIYixvQkFBb0IsRUFBRSw0QkFBNEIsYUFDdkQsb0JBQW9CLEVBQUUsNEJBQTRCO2dIQUVqRCxpQkFBaUIsYUFKakIsQ0FBQyxZQUFZLENBQUM7OzRGQUlkLGlCQUFpQjtrQkFMN0IsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3pCLFlBQVksRUFBRSxDQUFDLG9CQUFvQixFQUFFLDRCQUE0QixDQUFDO29CQUNsRSxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSw0QkFBNEIsQ0FBQztpQkFDOUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXG4gKiBUaGlzIHN0eWxlIGd1aWRlIHdhcyBkZXZlbG9wZWQgYnkgTW9ua2V5IEV4Y2hhbmdlIFRlYW1cbiAqIE1JVCBMaWNlbmNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuXG5pbXBvcnQgeyBDdXJyZW5jeVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vbmtleUlucHV0Q3VycmVuY3lEaXJlY3RpdmUgfSBmcm9tICcuL2lucHV0LWN1cnJlbmN5LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNb25rZXlJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vaW5wdXQuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbQ3VycmVuY3lQaXBlXSxcbiAgZGVjbGFyYXRpb25zOiBbTW9ua2V5SW5wdXREaXJlY3RpdmUsIE1vbmtleUlucHV0Q3VycmVuY3lEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbTW9ua2V5SW5wdXREaXJlY3RpdmUsIE1vbmtleUlucHV0Q3VycmVuY3lEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleUlucHV0TW9kdWxlIHt9XG4iXX0=
@@ -1,22 +0,0 @@
1
- /** ************************
2
- * Copyright Monkey Exchange. All Rights Reserved
3
- * This style guide was developed by Monkey Exchange Team
4
- * MIT Licence
5
- ************************* */
6
- import { getSupportedInputTypes } from '@angular/cdk/platform';
7
- const INPUT_INVALID_TYPES = [
8
- 'button',
9
- 'checkbox',
10
- 'file',
11
- 'image',
12
- 'radio',
13
- 'range',
14
- 'reset',
15
- 'submit'
16
- ];
17
- export function validateType(type) {
18
- if (INPUT_INVALID_TYPES.indexOf(type) > -1 || !getSupportedInputTypes().has(type)) {
19
- throw Error(`Input type "${type}" isn't supported.`);
20
- }
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS12Mi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs2QkFJNkI7QUFDN0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFL0QsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixRQUFRO0lBQ1IsVUFBVTtJQUNWLE1BQU07SUFDTixPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsUUFBUTtDQUNULENBQUM7QUFFRixNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVk7SUFDdkMsSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xGLE1BQU0sS0FBSyxDQUFDLGVBQWUsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqICoqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IE1vbmtleSBFeGNoYW5nZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZFxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXG4gKiBNSVQgTGljZW5jZVxuICoqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbmltcG9ydCB7IGdldFN1cHBvcnRlZElucHV0VHlwZXMgfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuXG5jb25zdCBJTlBVVF9JTlZBTElEX1RZUEVTID0gW1xuICAnYnV0dG9uJyxcbiAgJ2NoZWNrYm94JyxcbiAgJ2ZpbGUnLFxuICAnaW1hZ2UnLFxuICAncmFkaW8nLFxuICAncmFuZ2UnLFxuICAncmVzZXQnLFxuICAnc3VibWl0J1xuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVHlwZSh0eXBlOiBzdHJpbmcpIHtcbiAgaWYgKElOUFVUX0lOVkFMSURfVFlQRVMuaW5kZXhPZih0eXBlKSA+IC0xIHx8ICFnZXRTdXBwb3J0ZWRJbnB1dFR5cGVzKCkuaGFzKHR5cGUpKSB7XG4gICAgdGhyb3cgRXJyb3IoYElucHV0IHR5cGUgXCIke3R5cGV9XCIgaXNuJ3Qgc3VwcG9ydGVkLmApO1xuICB9XG59XG4iXX0=
@@ -1,7 +0,0 @@
1
- /** ************************
2
- * Copyright Monkey Exchange. All Rights Reserved
3
- * This style guide was developed by Monkey Exchange Team
4
- * MIT Licence
5
- ************************* */
6
- export * from './input-code.component';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0LWNvZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBQzdCLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXG4gKiBUaGlzIHN0eWxlIGd1aWRlIHdhcyBkZXZlbG9wZWQgYnkgTW9ua2V5IEV4Y2hhbmdlIFRlYW1cbiAqIE1JVCBMaWNlbmNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1jb2RlLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,232 +0,0 @@
1
- /** ************************
2
- * Copyright Monkey Exchange. All Rights Reserved
3
- * This style guide was developed by Monkey Exchange Team
4
- * MIT Licence
5
- ************************* */
6
- import { CommonModule } from '@angular/common';
7
- import { Component, Input, Optional, ViewChildren, booleanAttribute, computed, inject, input } from '@angular/core';
8
- import { FormsModule, NgControl } from '@angular/forms';
9
- import { Subject } from 'rxjs';
10
- import { IdGenerator } from '../../../utils';
11
- import { MonkeyFormFieldControl } from '../form-field';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "../form-field";
14
- import * as i2 from "@angular/forms";
15
- export class MonkeyInputCodeComponent {
16
- get disabled() {
17
- if (this.ngControl && this.ngControl.disabled !== null) {
18
- return this.ngControl.disabled;
19
- }
20
- return this._disabled;
21
- }
22
- set disabled(value) {
23
- this._disabled = value;
24
- if (this.focused) {
25
- this.focused = false;
26
- this.stateChanges.next();
27
- }
28
- }
29
- set value(value) {
30
- if (this._value !== value && value !== undefined) {
31
- this._value = value;
32
- this._onChange(value);
33
- this._onTouched();
34
- }
35
- }
36
- get value() {
37
- return this._value;
38
- }
39
- constructor(formField) {
40
- this.formField = formField;
41
- this.stateChanges = new Subject();
42
- this.type = 'input-code';
43
- this.currency = false;
44
- this.percent = false;
45
- this.id = inject(IdGenerator).getId('monkey-input-code-');
46
- this._onChange = () => { };
47
- this._onTouched = () => { };
48
- this._value = null;
49
- this.ngControl = inject(NgControl, { self: true, optional: true });
50
- this.focused = false;
51
- this.length = input(6);
52
- this.inputType = input('numeric');
53
- this.inputIndices = computed(() => {
54
- return Array.from({ length: this.length() }, (_, i) => {
55
- return '';
56
- });
57
- });
58
- this._disabled = false;
59
- if (this.ngControl) {
60
- this.ngControl.valueAccessor = this;
61
- }
62
- if (this.formField) {
63
- this.formField.hideAction = true;
64
- }
65
- }
66
- ngAfterViewInit() {
67
- if (this.formField) {
68
- const input = this.formField.elementRef.nativeElement.querySelector('.mecx-form-field-body');
69
- const height = input.offsetHeight > 40 ? input.offsetHeight : 40;
70
- this.inputs.forEach((inputEl) => {
71
- inputEl.nativeElement.style.height = `${height}px`;
72
- inputEl.nativeElement.style.width = `${height}px`;
73
- });
74
- }
75
- }
76
- _onFocus() {
77
- if (!this.disabled) {
78
- this.focused = true;
79
- this._onTouched();
80
- this.stateChanges.next();
81
- }
82
- }
83
- propagateCode() {
84
- const code = this.inputIndices().join('');
85
- this.writeValue(code);
86
- }
87
- focusNextInput(input) {
88
- const next = input.nextElementSibling;
89
- next?.focus();
90
- }
91
- focusPreviousInput(input) {
92
- const previous = input.previousElementSibling;
93
- previous?.focus();
94
- }
95
- setFullInputValue(value) {
96
- const chars = value?.slice(0, this.length()).split('') || '';
97
- chars.forEach((digit, index) => {
98
- this.inputIndices()[index] = digit;
99
- });
100
- }
101
- isInvalid() {
102
- return this.formField.showInvalid;
103
- }
104
- onContainerClick() {
105
- if (!this._value) {
106
- this.inputs.first.nativeElement.focus();
107
- }
108
- }
109
- onKeyDown(event, index) {
110
- const input = event.target;
111
- this.inputIndices()[index] = input.value;
112
- const { key } = event;
113
- const keys = {
114
- Backspace: () => {
115
- if (input.value === '') {
116
- this.focusPreviousInput(input);
117
- }
118
- },
119
- Delete: () => {
120
- if (input.value === '') {
121
- this.focusNextInput(input);
122
- }
123
- },
124
- ArrowLeft: () => {
125
- if (index > 0) {
126
- this.focusPreviousInput(input);
127
- event.preventDefault();
128
- }
129
- },
130
- ArrowUp: () => {
131
- if (index > 0) {
132
- this.focusPreviousInput(input);
133
- event.preventDefault();
134
- }
135
- },
136
- ArrowRight: () => {
137
- if (index < this.length()) {
138
- this.focusNextInput(input);
139
- event.preventDefault();
140
- }
141
- },
142
- ArrowDown: () => {
143
- if (index < this.length()) {
144
- this.focusNextInput(input);
145
- event.preventDefault();
146
- }
147
- }
148
- };
149
- if (keys[key]) {
150
- keys[key]();
151
- }
152
- }
153
- onInput(event, index) {
154
- const input = event.target;
155
- const { value } = input;
156
- if (value.length > 1) {
157
- this.setFullInputValue(value);
158
- input.value = value.charAt(0);
159
- }
160
- else {
161
- input.value = value;
162
- }
163
- this.inputIndices()[index] = input.value;
164
- if (input.value && index < this.length()) {
165
- this.focusNextInput(input);
166
- }
167
- this.propagateCode();
168
- }
169
- onPaste(event) {
170
- event.preventDefault();
171
- const pastedData = event.clipboardData?.getData('text').trim() ?? '';
172
- const chars = pastedData.slice(0, this.length()).split('');
173
- chars.forEach((digit, index) => {
174
- this.inputIndices()[index] = digit;
175
- });
176
- if (this.inputs.length > chars.length) {
177
- this.inputs.get(chars.length)?.nativeElement.focus();
178
- }
179
- if (this.inputs.length <= chars.length) {
180
- this.onBlur();
181
- }
182
- this.propagateCode();
183
- }
184
- onBlur() {
185
- this.focused = false;
186
- this.stateChanges.next();
187
- }
188
- onFocus(event) {
189
- const input = event.target;
190
- input.select();
191
- this._onFocus();
192
- }
193
- writeValue(value) {
194
- this.value = value;
195
- }
196
- registerOnChange(fn) {
197
- this._onChange = fn;
198
- }
199
- registerOnTouched(fn) {
200
- this._onTouched = fn;
201
- }
202
- setDisabledState(isDisabled) {
203
- this.disabled = isDisabled;
204
- }
205
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyInputCodeComponent, deps: [{ token: i1.MonkeyFormFieldComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
206
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MonkeyInputCodeComponent, isStandalone: true, selector: "monkey-input-code", inputs: { length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null }, inputType: { classPropertyName: "inputType", publicName: "inputType", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, host: { attributes: { "data-testid": "monkey-input-code" }, properties: { "attr.id": "id", "id": "id" } }, providers: [
207
- // eslint-disable-next-line no-use-before-define
208
- { provide: MonkeyFormFieldControl, useExisting: MonkeyInputCodeComponent }
209
- ], viewQueries: [{ propertyName: "inputs", predicate: ["codeInput"], descendants: true }], ngImport: i0, template: "<div class=\"monkey-input-code\">\n @for (idx of inputIndices(); track $index; let i = $index) {\n <input\n #codeInput\n class=\"focus\"\n autocomplete=\"one-time-code\"\n [attr.type]=\"inputType()\"\n [disabled]=\"_disabled\"\n [attr.maxlength]=\"1\"\n [class.invalid]=\"isInvalid()\"\n [(ngModel)]=\"inputIndices()[i]\"\n (focus)=\"onFocus($event)\"\n (input)=\"onInput($event, i)\"\n (keydown)=\"onKeyDown($event, i)\"\n (paste)=\"onPaste($event)\"\n (blur)=\"onBlur()\"\n />\n }\n</div>\n", styles: [".monkey-input-code{display:flex;gap:12px}.monkey-input-code input{box-sizing:border-box;border-radius:4px;border:2px solid var(--mecx-color-gray-400);color:var(--mecx-color-gray-900);font-size:18px;font-style:normal;font-weight:400;letter-spacing:.14px;line-height:24px;text-align:center}.monkey-input-code input:focus{outline:2px solid var(--mecx-color-theme-main);outline-offset:2px}.monkey-input-code input.invalid{border:2px solid var(--mecx-color-error-700)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
210
- }
211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyInputCodeComponent, decorators: [{
212
- type: Component,
213
- args: [{ selector: 'monkey-input-code', standalone: true, imports: [CommonModule, FormsModule], host: {
214
- 'data-testid': 'monkey-input-code',
215
- '[attr.id]': 'id',
216
- '[id]': 'id'
217
- }, providers: [
218
- // eslint-disable-next-line no-use-before-define
219
- { provide: MonkeyFormFieldControl, useExisting: MonkeyInputCodeComponent }
220
- ], template: "<div class=\"monkey-input-code\">\n @for (idx of inputIndices(); track $index; let i = $index) {\n <input\n #codeInput\n class=\"focus\"\n autocomplete=\"one-time-code\"\n [attr.type]=\"inputType()\"\n [disabled]=\"_disabled\"\n [attr.maxlength]=\"1\"\n [class.invalid]=\"isInvalid()\"\n [(ngModel)]=\"inputIndices()[i]\"\n (focus)=\"onFocus($event)\"\n (input)=\"onInput($event, i)\"\n (keydown)=\"onKeyDown($event, i)\"\n (paste)=\"onPaste($event)\"\n (blur)=\"onBlur()\"\n />\n }\n</div>\n", styles: [".monkey-input-code{display:flex;gap:12px}.monkey-input-code input{box-sizing:border-box;border-radius:4px;border:2px solid var(--mecx-color-gray-400);color:var(--mecx-color-gray-900);font-size:18px;font-style:normal;font-weight:400;letter-spacing:.14px;line-height:24px;text-align:center}.monkey-input-code input:focus{outline:2px solid var(--mecx-color-theme-main);outline-offset:2px}.monkey-input-code input.invalid{border:2px solid var(--mecx-color-error-700)}\n"] }]
221
- }], ctorParameters: () => [{ type: i1.MonkeyFormFieldComponent, decorators: [{
222
- type: Optional
223
- }] }], propDecorators: { disabled: [{
224
- type: Input,
225
- args: [{ transform: booleanAttribute }]
226
- }], value: [{
227
- type: Input
228
- }], inputs: [{
229
- type: ViewChildren,
230
- args: ['codeInput']
231
- }] } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0LWNvZGUvaW5wdXQtY29kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0LWNvZGUvaW5wdXQtY29kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs2QkFJNkI7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxFQUVMLFFBQVEsRUFFUixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBNEIsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUE2QmpGLE1BQU0sT0FBTyx3QkFBd0I7SUFpQ25DLElBQ0ksUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN2RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ2pDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQWM7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O3lDQWxDakIsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQXFCbEMsS0FBSztzQkFEUixLQUFLO2dCQWFxQixNQUFNO3NCQUFoQyxZQUFZO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKiogKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXG4gKiBUaGlzIHN0eWxlIGd1aWRlIHdhcyBkZXZlbG9wZWQgYnkgTW9ua2V5IEV4Y2hhbmdlIFRlYW1cbiAqIE1JVCBMaWNlbmNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIElucHV0U2lnbmFsLFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW4sXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIGlucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJZEdlbmVyYXRvciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IE1vbmtleUZvcm1GaWVsZENvbXBvbmVudCwgTW9ua2V5Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJy4uL2Zvcm0tZmllbGQnO1xuXG50eXBlIEtleWJvYXJkS2V5cyA9ICdCYWNrc3BhY2UnIHwgJ0RlbGV0ZScgfCAnQXJyb3dMZWZ0JyB8ICdBcnJvd1VwJyB8ICdBcnJvd1JpZ2h0JyB8ICdBcnJvd0Rvd24nO1xuXG5pbnRlcmZhY2UgQWxsb3dlZEtleWJvYXJkS2V5cyB7XG4gIEJhY2tzcGFjZTogKCkgPT4gdm9pZDtcbiAgRGVsZXRlOiAoKSA9PiB2b2lkO1xuICBBcnJvd0xlZnQ6ICgpID0+IHZvaWQ7XG4gIEFycm93VXA6ICgpID0+IHZvaWQ7XG4gIEFycm93UmlnaHQ6ICgpID0+IHZvaWQ7XG4gIEFycm93RG93bjogKCkgPT4gdm9pZDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9ua2V5LWlucHV0LWNvZGUnLFxuICBzdHlsZVVybDogJy4vaW5wdXQtY29kZS5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1jb2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICBob3N0OiB7XG4gICAgJ2RhdGEtdGVzdGlkJzogJ21vbmtleS1pbnB1dC1jb2RlJyxcbiAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAnW2lkXSc6ICdpZCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgeyBwcm92aWRlOiBNb25rZXlGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogTW9ua2V5SW5wdXRDb2RlQ29tcG9uZW50IH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNb25rZXlJbnB1dENvZGVDb21wb25lbnRcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTW9ua2V5Rm9ybUZpZWxkQ29udHJvbCwgQWZ0ZXJWaWV3SW5pdFxue1xuICByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9ICdpbnB1dC1jb2RlJztcblxuICByZWFkb25seSBjdXJyZW5jeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IHBlcmNlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICByZWFkb25seSBpZDogYW55ID0gaW5qZWN0KElkR2VuZXJhdG9yKS5nZXRJZCgnbW9ua2V5LWlucHV0LWNvZGUtJyk7XG5cbiAgcHJpdmF0ZSBfb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gIHByaXZhdGUgX29uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBfdmFsdWUgPSBudWxsO1xuXG4gIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwgPSBpbmplY3QoTmdDb250cm9sLCB7IHNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH0pITtcblxuICBwdWJsaWMgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBsZW5ndGg6IElucHV0U2lnbmFsPG51bWJlcj4gPSBpbnB1dDxudW1iZXI+KDYpO1xuXG4gIHB1YmxpYyBpbnB1dFR5cGU6IElucHV0U2lnbmFsPHN0cmluZz4gPSBpbnB1dDxzdHJpbmc+KCdudW1lcmljJyk7XG5cbiAgcHVibGljIGlucHV0SW5kaWNlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy5sZW5ndGgoKSB9LCAoXywgaSkgPT4ge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0pO1xuICB9KTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCAmJiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sLmRpc2FibGVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gdmFsdWUgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuX29uQ2hhbmdlKHZhbHVlKTtcbiAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGRyZW4oJ2NvZGVJbnB1dCcpIGlucHV0cyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PjtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIGZvcm1GaWVsZDogTW9ua2V5Rm9ybUZpZWxkQ29tcG9uZW50KSB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mb3JtRmllbGQpIHtcbiAgICAgIHRoaXMuZm9ybUZpZWxkLmhpZGVBY3Rpb24gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtRmllbGQpIHtcbiAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5mb3JtRmllbGQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcubWVjeC1mb3JtLWZpZWxkLWJvZHknXG4gICAgICApIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICBjb25zdCBoZWlnaHQgPSBpbnB1dC5vZmZzZXRIZWlnaHQgPiA0MCA/IGlucHV0Lm9mZnNldEhlaWdodCA6IDQwO1xuXG4gICAgICB0aGlzLmlucHV0cy5mb3JFYWNoKChpbnB1dEVsKSA9PiB7XG4gICAgICAgIGlucHV0RWwubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgICBpbnB1dEVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByb3BhZ2F0ZUNvZGUoKTogdm9pZCB7XG4gICAgY29uc3QgY29kZSA9IHRoaXMuaW5wdXRJbmRpY2VzKCkuam9pbignJyk7XG5cbiAgICB0aGlzLndyaXRlVmFsdWUoY29kZSk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTmV4dElucHV0KGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgbmV4dDogSFRNTElucHV0RWxlbWVudCA9IGlucHV0Lm5leHRFbGVtZW50U2libGluZyBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgbmV4dD8uZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNQcmV2aW91c0lucHV0KGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgcHJldmlvdXM6IEhUTUxJbnB1dEVsZW1lbnQgPSBpbnB1dC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICBwcmV2aW91cz8uZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RnVsbElucHV0VmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNoYXJzOiBzdHJpbmdbXSA9IHZhbHVlPy5zbGljZSgwLCB0aGlzLmxlbmd0aCgpKS5zcGxpdCgnJykgfHwgJyc7XG5cbiAgICBjaGFycy5mb3JFYWNoKChkaWdpdDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLmlucHV0SW5kaWNlcygpW2luZGV4XSA9IGRpZ2l0O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtRmllbGQuc2hvd0ludmFsaWQ7XG4gIH1cblxuICBwdWJsaWMgb25Db250YWluZXJDbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3ZhbHVlKSB7XG4gICAgICB0aGlzLmlucHV0cy5maXJzdC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGhpcy5pbnB1dEluZGljZXMoKVtpbmRleF0gPSBpbnB1dC52YWx1ZTtcblxuICAgIGNvbnN0IHsga2V5IH0gPSBldmVudDtcbiAgICBjb25zdCBrZXlzOiBBbGxvd2VkS2V5Ym9hcmRLZXlzID0ge1xuICAgICAgQmFja3NwYWNlOiAoKTogdm9pZCA9PiB7XG4gICAgICAgIGlmIChpbnB1dC52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICB0aGlzLmZvY3VzUHJldmlvdXNJbnB1dChpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBEZWxldGU6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKGlucHV0LnZhbHVlID09PSAnJykge1xuICAgICAgICAgIHRoaXMuZm9jdXNOZXh0SW5wdXQoaW5wdXQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQXJyb3dMZWZ0OiAoKTogdm9pZCA9PiB7XG4gICAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICB0aGlzLmZvY3VzUHJldmlvdXNJbnB1dChpbnB1dCk7XG5cbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQXJyb3dVcDogKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c1ByZXZpb3VzSW5wdXQoaW5wdXQpO1xuXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIEFycm93UmlnaHQ6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5sZW5ndGgoKSkge1xuICAgICAgICAgIHRoaXMuZm9jdXNOZXh0SW5wdXQoaW5wdXQpO1xuXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIEFycm93RG93bjogKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmxlbmd0aCgpKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c05leHRJbnB1dChpbnB1dCk7XG5cbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChrZXlzW2tleSBhcyBLZXlib2FyZEtleXNdKSB7XG4gICAgICBrZXlzW2tleSBhcyBLZXlib2FyZEtleXNdKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uSW5wdXQoZXZlbnQ6IEV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSBpbnB1dDtcblxuICAgIGlmICh2YWx1ZS5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLnNldEZ1bGxJbnB1dFZhbHVlKHZhbHVlKTtcblxuICAgICAgaW5wdXQudmFsdWUgPSB2YWx1ZS5jaGFyQXQoMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dEluZGljZXMoKVtpbmRleF0gPSBpbnB1dC52YWx1ZTtcblxuICAgIGlmIChpbnB1dC52YWx1ZSAmJiBpbmRleCA8IHRoaXMubGVuZ3RoKCkpIHtcbiAgICAgIHRoaXMuZm9jdXNOZXh0SW5wdXQoaW5wdXQpO1xuICAgIH1cblxuICAgIHRoaXMucHJvcGFnYXRlQ29kZSgpO1xuICB9XG5cbiAgcHVibGljIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IHBhc3RlZERhdGE6IHN0cmluZyA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQnKS50cmltKCkgPz8gJyc7XG4gICAgY29uc3QgY2hhcnM6IHN0cmluZ1tdID0gcGFzdGVkRGF0YS5zbGljZSgwLCB0aGlzLmxlbmd0aCgpKS5zcGxpdCgnJyk7XG5cbiAgICBjaGFycy5mb3JFYWNoKChkaWdpdCwgaW5kZXgpID0+IHtcbiAgICAgIHRoaXMuaW5wdXRJbmRpY2VzKClbaW5kZXhdID0gZGlnaXQ7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5pbnB1dHMubGVuZ3RoID4gY2hhcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmlucHV0cy5nZXQoY2hhcnMubGVuZ3RoKT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlucHV0cy5sZW5ndGggPD0gY2hhcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLm9uQmx1cigpO1xuICAgIH1cblxuICAgIHRoaXMucHJvcGFnYXRlQ29kZSgpO1xuICB9XG5cbiAgcHVibGljIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICBpbnB1dC5zZWxlY3QoKTtcbiAgICB0aGlzLl9vbkZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW9ua2V5LWlucHV0LWNvZGVcIj5cbiAgQGZvciAoaWR4IG9mIGlucHV0SW5kaWNlcygpOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XG4gICAgPGlucHV0XG4gICAgICAjY29kZUlucHV0XG4gICAgICBjbGFzcz1cImZvY3VzXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9uZS10aW1lLWNvZGVcIlxuICAgICAgW2F0dHIudHlwZV09XCJpbnB1dFR5cGUoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCIxXCJcbiAgICAgIFtjbGFzcy5pbnZhbGlkXT1cImlzSW52YWxpZCgpXCJcbiAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRJbmRpY2VzKClbaV1cIlxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQsIGkpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQsIGkpXCJcbiAgICAgIChwYXN0ZSk9XCJvblBhc3RlKCRldmVudClcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgIC8+XG4gIH1cbjwvZGl2PlxuIl19
@@ -1,7 +0,0 @@
1
- /** ************************
2
- * Copyright Monkey Exchange. All Rights Reserved
3
- * This style guide was developed by Monkey Exchange Team
4
- * MIT Licence
5
- ************************* */
6
- export * from './input-phone.component';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0LXBob25lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OzZCQUk2QjtBQUM3QixjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqICoqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IE1vbmtleSBFeGNoYW5nZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZFxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXG4gKiBNSVQgTGljZW5jZVxuICoqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtcGhvbmUuY29tcG9uZW50JztcbiJdfQ==