ecabs-components 0.0.16 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/esm2022/lib/base/directives/date-mask.directive.mjs +67 -0
  2. package/{esm2020 → esm2022}/lib/base/directives/date-mask.directive.module.mjs +5 -5
  3. package/esm2022/lib/base/directives/digits-only.directive.mjs +133 -0
  4. package/{esm2020 → esm2022}/lib/base/directives/digits-only.directive.module.mjs +5 -5
  5. package/esm2022/lib/base/directives/number-border.directive.mjs +58 -0
  6. package/{esm2020 → esm2022}/lib/base/directives/number-border.directive.module.mjs +5 -5
  7. package/esm2022/lib/base/element-base.mjs +105 -0
  8. package/esm2022/lib/base/element-wrapper/element-wrapper.component.mjs +56 -0
  9. package/esm2022/lib/base/element-wrapper/element-wrapper.module.mjs +52 -0
  10. package/esm2022/lib/base/hint/hint.component.mjs +21 -0
  11. package/esm2022/lib/base/hint/hint.module.mjs +20 -0
  12. package/esm2022/lib/base/validation/validation.component.mjs +75 -0
  13. package/esm2022/lib/base/validation/validation.module.mjs +20 -0
  14. package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +17 -0
  15. package/{esm2020 → esm2022}/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.mjs +5 -5
  16. package/esm2022/lib/ecabs-buttons/ecabs-buttons.component.mjs +67 -0
  17. package/esm2022/lib/ecabs-buttons/ecabs-buttons.module.mjs +21 -0
  18. package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +90 -0
  19. package/{esm2020 → esm2022}/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +15 -15
  20. package/esm2022/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +15 -0
  21. package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +89 -0
  22. package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +48 -0
  23. package/esm2022/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +15 -0
  24. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +186 -0
  25. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +64 -0
  26. package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +32 -0
  27. package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +20 -0
  28. package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +29 -0
  29. package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +20 -0
  30. package/{esm2020 → esm2022}/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.mjs +7 -4
  31. package/{esm2020 → esm2022}/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.mjs +5 -5
  32. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +85 -0
  33. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +24 -0
  34. package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +83 -0
  35. package/esm2022/lib/ecabs-increment/ecabs-increment.module.mjs +23 -0
  36. package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +88 -0
  37. package/esm2022/lib/ecabs-input/ecabs-input.module.mjs +22 -0
  38. package/esm2022/lib/ecabs-loading/ecabs-loading.component.mjs +22 -0
  39. package/{esm2020 → esm2022}/lib/ecabs-loading/ecabs-loading.module.mjs +5 -5
  40. package/esm2022/lib/ecabs-loading/spinner/spinner.component.mjs +14 -0
  41. package/esm2022/lib/ecabs-note/ecabs-note.component.mjs +28 -0
  42. package/{esm2020 → esm2022}/lib/ecabs-note/ecabs-note.module.mjs +5 -5
  43. package/esm2022/lib/ecabs-phone/ecabs-phone.component.mjs +111 -0
  44. package/{esm2020 → esm2022}/lib/ecabs-phone/ecabs-phone.module.mjs +6 -6
  45. package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +53 -0
  46. package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +22 -0
  47. package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +68 -0
  48. package/{esm2020 → esm2022}/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +12 -12
  49. package/esm2022/lib/ecabs-select/ecabs-select.component.mjs +227 -0
  50. package/esm2022/lib/ecabs-select/ecabs-select.module.mjs +60 -0
  51. package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +19 -0
  52. package/{esm2020 → esm2022}/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.mjs +7 -7
  53. package/esm2022/lib/ecabs-table/ecabs-table.component.mjs +48 -0
  54. package/{esm2020 → esm2022}/lib/ecabs-table/ecabs-table.module.mjs +12 -12
  55. package/esm2022/lib/ecabs-textarea/ecabs-textarea.component.mjs +65 -0
  56. package/{esm2020 → esm2022}/lib/ecabs-textarea/ecabs-textarea.module.mjs +5 -5
  57. package/esm2022/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +144 -0
  58. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +322 -0
  59. package/{esm2020 → esm2022}/lib/ecabs-timepicker/ecabs-timepicker.module.mjs +5 -5
  60. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +29 -0
  61. package/esm2022/lib/services/ecabs-components.service.mjs +31 -0
  62. package/fesm2022/ecabs-components.mjs +2975 -0
  63. package/fesm2022/ecabs-components.mjs.map +1 -0
  64. package/lib/base/directives/date-mask.directive.d.ts +1 -1
  65. package/lib/base/directives/digits-only.directive.d.ts +1 -1
  66. package/lib/base/directives/number-border.directive.d.ts +1 -1
  67. package/lib/base/element-base.d.ts +1 -1
  68. package/lib/base/element-wrapper/element-wrapper.component.d.ts +1 -1
  69. package/lib/base/element-wrapper/element-wrapper.module.d.ts +4 -4
  70. package/lib/base/hint/hint.component.d.ts +1 -1
  71. package/lib/base/hint/hint.module.d.ts +2 -2
  72. package/lib/base/validation/validation.component.d.ts +1 -1
  73. package/lib/base/validation/validation.module.d.ts +2 -2
  74. package/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.d.ts +1 -1
  75. package/lib/ecabs-buttons/ecabs-buttons.component.d.ts +1 -1
  76. package/lib/ecabs-buttons/ecabs-buttons.module.d.ts +2 -2
  77. package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.d.ts +1 -1
  78. package/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.d.ts +1 -1
  79. package/lib/ecabs-date-picker/ecabs-date-picker.component.d.ts +1 -1
  80. package/lib/ecabs-date-picker/ecabs-date-picker.module.d.ts +2 -2
  81. package/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.d.ts +1 -1
  82. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +1 -1
  83. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.d.ts +2 -2
  84. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.d.ts +1 -1
  85. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.d.ts +2 -2
  86. package/lib/ecabs-dialog-message/ecabs-dialog-message.component.d.ts +1 -1
  87. package/lib/ecabs-dialog-message/ecabs-dialog-message.module.d.ts +2 -2
  88. package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.d.ts +1 -1
  89. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +1 -1
  90. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.d.ts +3 -3
  91. package/lib/ecabs-increment/ecabs-increment.component.d.ts +1 -1
  92. package/lib/ecabs-increment/ecabs-increment.module.d.ts +2 -2
  93. package/lib/ecabs-input/ecabs-input.component.d.ts +1 -1
  94. package/lib/ecabs-input/ecabs-input.module.d.ts +2 -2
  95. package/lib/ecabs-loading/ecabs-loading.component.d.ts +1 -1
  96. package/lib/ecabs-loading/spinner/spinner.component.d.ts +1 -1
  97. package/lib/ecabs-note/ecabs-note.component.d.ts +1 -1
  98. package/lib/ecabs-phone/ecabs-phone.component.d.ts +1 -1
  99. package/lib/ecabs-picker-header/ecabs-picker-header.component.d.ts +1 -1
  100. package/lib/ecabs-picker-header/ecabs-picker-header.module.d.ts +2 -2
  101. package/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.d.ts +1 -1
  102. package/lib/ecabs-select/ecabs-select.component.d.ts +1 -1
  103. package/lib/ecabs-select/ecabs-select.module.d.ts +4 -4
  104. package/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.d.ts +1 -1
  105. package/lib/ecabs-table/ecabs-table.component.d.ts +1 -1
  106. package/lib/ecabs-textarea/ecabs-textarea.component.d.ts +1 -1
  107. package/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.d.ts +1 -1
  108. package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +1 -1
  109. package/lib/models/timepicker.models.d.ts +1 -1
  110. package/package.json +12 -17
  111. package/styles/material/overrides/_form.scss +97 -0
  112. package/styles/material/overrides/_phone.scss +1 -1
  113. package/styles/material/overrides/_select.scss +12 -6
  114. package/styles/material/overrides/_table.scss +2 -2
  115. package/styles/material/overrides/_toggle.scss +3 -3
  116. package/styles/scss/modules/_form.scss +12 -0
  117. package/styles/scss/modules/_select.scss +6 -2
  118. package/esm2020/lib/base/directives/date-mask.directive.mjs +0 -65
  119. package/esm2020/lib/base/directives/digits-only.directive.mjs +0 -130
  120. package/esm2020/lib/base/directives/number-border.directive.mjs +0 -54
  121. package/esm2020/lib/base/element-base.mjs +0 -100
  122. package/esm2020/lib/base/element-wrapper/element-wrapper.component.mjs +0 -53
  123. package/esm2020/lib/base/element-wrapper/element-wrapper.module.mjs +0 -52
  124. package/esm2020/lib/base/hint/hint.component.mjs +0 -21
  125. package/esm2020/lib/base/hint/hint.module.mjs +0 -20
  126. package/esm2020/lib/base/validation/validation.component.mjs +0 -70
  127. package/esm2020/lib/base/validation/validation.module.mjs +0 -20
  128. package/esm2020/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +0 -16
  129. package/esm2020/lib/ecabs-buttons/ecabs-buttons.component.mjs +0 -65
  130. package/esm2020/lib/ecabs-buttons/ecabs-buttons.module.mjs +0 -21
  131. package/esm2020/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +0 -85
  132. package/esm2020/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +0 -17
  133. package/esm2020/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +0 -85
  134. package/esm2020/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +0 -48
  135. package/esm2020/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +0 -17
  136. package/esm2020/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +0 -179
  137. package/esm2020/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +0 -64
  138. package/esm2020/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +0 -28
  139. package/esm2020/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +0 -20
  140. package/esm2020/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +0 -25
  141. package/esm2020/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +0 -20
  142. package/esm2020/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +0 -76
  143. package/esm2020/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +0 -24
  144. package/esm2020/lib/ecabs-increment/ecabs-increment.component.mjs +0 -78
  145. package/esm2020/lib/ecabs-increment/ecabs-increment.module.mjs +0 -23
  146. package/esm2020/lib/ecabs-input/ecabs-input.component.mjs +0 -81
  147. package/esm2020/lib/ecabs-input/ecabs-input.module.mjs +0 -22
  148. package/esm2020/lib/ecabs-loading/ecabs-loading.component.mjs +0 -24
  149. package/esm2020/lib/ecabs-loading/spinner/spinner.component.mjs +0 -16
  150. package/esm2020/lib/ecabs-note/ecabs-note.component.mjs +0 -30
  151. package/esm2020/lib/ecabs-phone/ecabs-phone.component.mjs +0 -104
  152. package/esm2020/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +0 -50
  153. package/esm2020/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +0 -22
  154. package/esm2020/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +0 -65
  155. package/esm2020/lib/ecabs-select/ecabs-select.component.mjs +0 -222
  156. package/esm2020/lib/ecabs-select/ecabs-select.module.mjs +0 -60
  157. package/esm2020/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +0 -17
  158. package/esm2020/lib/ecabs-table/ecabs-table.component.mjs +0 -43
  159. package/esm2020/lib/ecabs-textarea/ecabs-textarea.component.mjs +0 -62
  160. package/esm2020/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +0 -137
  161. package/esm2020/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +0 -312
  162. package/esm2020/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +0 -31
  163. package/esm2020/lib/services/ecabs-components.service.mjs +0 -32
  164. package/fesm2015/ecabs-components.mjs +0 -2881
  165. package/fesm2015/ecabs-components.mjs.map +0 -1
  166. package/fesm2020/ecabs-components.mjs +0 -2868
  167. package/fesm2020/ecabs-components.mjs.map +0 -1
  168. /package/{esm2020 → esm2022}/ecabs-components.mjs +0 -0
  169. /package/{esm2020 → esm2022}/lib/base/consts/date-mask.consts.mjs +0 -0
  170. /package/{esm2020 → esm2022}/lib/ecabs-timepicker/config.model.mjs +0 -0
  171. /package/{esm2020 → esm2022}/lib/models/bread-crumb.mjs +0 -0
  172. /package/{esm2020 → esm2022}/lib/models/timepicker.models.mjs +0 -0
  173. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
package/package.json CHANGED
@@ -1,26 +1,23 @@
1
1
  {
2
2
  "name": "ecabs-components",
3
- "version": "0.0.16",
3
+ "version": "1.0.0",
4
4
  "peerDependencies": {
5
- "@angular/common": "^14.2.0",
6
- "@angular/core": "^14.2.0",
7
- "@angular/cdk": "~13.0.0-next.7+89.sha-a662737",
8
- "@angular/material": "~13.0.0-next.7+89.sha-a662737",
5
+ "@angular/common": "^16.0.4",
6
+ "@angular/core": "^16.0.4",
7
+ "@angular/cdk": "^16.0.3",
8
+ "@angular/material": "~16.0.3",
9
+ "flag-icons": "^6.7.0",
9
10
  "ngx-mat-intl-tel-input": "^5.0.0",
10
- "ngx-mat-select-search": "^4.2.1"
11
+ "ngx-mat-select-search": "^7.0.2"
11
12
  },
12
13
  "dependencies": {
13
14
  "tslib": "^2.3.0"
14
15
  },
15
16
  "allowedNonPeerDependencies": {
16
- "tailwindcss": "^3.0.23",
17
+ "tailwindcss": "^3.3.2",
17
18
  "vanilla-text-mask": "^5.1.1"
18
19
  },
19
- "module": "fesm2015/ecabs-components.mjs",
20
- "es2020": "fesm2020/ecabs-components.mjs",
21
- "esm2020": "esm2020/ecabs-components.mjs",
22
- "fesm2020": "fesm2020/ecabs-components.mjs",
23
- "fesm2015": "fesm2015/ecabs-components.mjs",
20
+ "module": "fesm2022/ecabs-components.mjs",
24
21
  "typings": "index.d.ts",
25
22
  "exports": {
26
23
  "./package.json": {
@@ -28,11 +25,9 @@
28
25
  },
29
26
  ".": {
30
27
  "types": "./index.d.ts",
31
- "esm2020": "./esm2020/ecabs-components.mjs",
32
- "es2020": "./fesm2020/ecabs-components.mjs",
33
- "es2015": "./fesm2015/ecabs-components.mjs",
34
- "node": "./fesm2015/ecabs-components.mjs",
35
- "default": "./fesm2020/ecabs-components.mjs"
28
+ "esm2022": "./esm2022/ecabs-components.mjs",
29
+ "esm": "./esm2022/ecabs-components.mjs",
30
+ "default": "./fesm2022/ecabs-components.mjs"
36
31
  }
37
32
  },
38
33
  "sideEffects": false
@@ -45,3 +45,100 @@
45
45
  margin-top: 0;
46
46
  }
47
47
  }
48
+
49
+ .mat-mdc-form-field {
50
+ display: block !important;
51
+ .mat-mdc-form-field-wrapper {
52
+ padding: 0;
53
+ .mat-mdc-form-field-flex {
54
+ padding: 0;
55
+ }
56
+ .mat-mdc-form-field-infix {
57
+ padding: 0;
58
+ border: 0;
59
+ }
60
+ }
61
+ &-underline {
62
+ display: none;
63
+ }
64
+
65
+ &-disabled {
66
+ .mat-mdc-input-element {
67
+ @extend .form-field__input--disabled;
68
+ }
69
+ }
70
+
71
+ &-label {
72
+ @extend .form-field__label;
73
+ }
74
+
75
+ &-invalid {
76
+ .mat-mdc-input-element,
77
+ mat-error,
78
+ mat-date-range-input {
79
+ @extend .form-field__input--invalid;
80
+ }
81
+ }
82
+
83
+ &-suffix,
84
+ [matsuffix] {
85
+ @extend .form-field__input--suffix;
86
+ }
87
+
88
+ .mat-mdc-input-element {
89
+ @extend .form-field__input;
90
+ }
91
+
92
+ .mat-mdc-form-field-subscript-wrapper {
93
+ margin-top: 0;
94
+ }
95
+
96
+ .mat-mdc-text-field-wrapper {
97
+ background-color: inherit !important;
98
+ padding-bottom: 0;
99
+ }
100
+
101
+ .mdc-text-field--outlined .mdc-text-field__input,
102
+ .mat-mdc-form-field-input-control.mat-mdc-form-field-input-control {
103
+ // border: 1px solid $color-mono-light !important;
104
+ line-height: inherit;
105
+ }
106
+
107
+ .mat-mdc-form-field-subscript-wrapper {
108
+ display: none;
109
+ }
110
+
111
+ div[class*="mdc-notched-outline__"] {
112
+ border: unset;
113
+ }
114
+
115
+ .mat-mdc-text-field-wrapper {
116
+ padding-left: 0;
117
+ padding-right: 0;
118
+
119
+ .mat-mdc-form-field-flex .mat-mdc-floating-label {
120
+ top: 1.24rem;
121
+ line-height: $base-line-height;
122
+ }
123
+
124
+ &.mdc-text-field--outlined {
125
+ .mat-mdc-form-field-infix {
126
+ border-top: 0.9375em solid transparent;
127
+ padding-top: 0.5rem;
128
+ padding-bottom: 0.5rem;
129
+ }
130
+ }
131
+ }
132
+
133
+ .mdc-line-ripple {
134
+ display: none;
135
+ }
136
+ }
137
+
138
+ .mdc-text-field{
139
+ padding: 0rem !important;
140
+ }
141
+
142
+ .mat-mdc-form-field-focus-overlay {
143
+ background-color: inherit !important;
144
+ }
@@ -1,7 +1,7 @@
1
1
  ecabs-phone {
2
2
  @extend .ecabs-phone;
3
3
  .ngx-mat-tel-input-container {
4
- .mat-input-element {
4
+ .mat-mdc-input-element {
5
5
  @extend .ngx-mat-tel-input-input;
6
6
  }
7
7
  .country-selector {
@@ -1,19 +1,20 @@
1
- .mat-select {
1
+ .mat-mdc-select {
2
2
  @extend .select;
3
3
 
4
- .mat-select-arrow-wrapper {
4
+ .mat-mdc-select-arrow-wrapper {
5
5
  display: unset;
6
6
  vertical-align: auto;
7
7
  transform: none;
8
- padding-top: 0.375rem;
8
+ padding-top: 0.625rem;
9
9
  }
10
10
 
11
11
  &-panel-wrap {
12
- .mat-select-panel,
13
- .mat-select-panel:not([class*='mat-elevation-z']) {
12
+ .mat-mdc-select-panel,
13
+ .mat-mdc-select-panel:not([class*='mat-elevation-z']) {
14
14
  box-shadow: 0 0 15px rgba(#6b6d73, 0.24);
15
15
 
16
16
  min-width: calc(100% + 32px) !important;
17
+ background-color: var(--color-white);
17
18
 
18
19
  &[aria-multiselectable='true'] {
19
20
  transform: translate(1.5rem, 0rem) !important;
@@ -25,8 +26,13 @@
25
26
  .mat-form-field-underline {
26
27
  display: none;
27
28
  }
29
+
30
+ .mat-mdc-form-field-underline {
31
+ display: none;
32
+ }
33
+
28
34
  .form-field.error {
29
- .mat-select {
35
+ .mat-mdc-select {
30
36
  border-color: var(--color-error);
31
37
  }
32
38
  }
@@ -1,8 +1,8 @@
1
- .mat-table {
1
+ .mat-mdc-table {
2
2
  @extend .table-ui;
3
3
  @extend .table-ui__bordered;
4
4
 
5
- td.mat-cell, td.mat-footer-cell {
5
+ td.mat-mdc-cell, td.mat-mdc-footer-cell {
6
6
  padding: .36rem .36rem .36rem 0;
7
7
 
8
8
  &:first-of-type {
@@ -1,10 +1,10 @@
1
1
  /* #Toggle */
2
- .mat-slide-toggle {
3
- .mat-slide-toggle-bar {
2
+ .mat-mdc-slide-toggle {
3
+ .mat-mdc-slide-toggle-bar {
4
4
  background-color: var(--color-gray-300);
5
5
  }
6
6
 
7
- &.mat-checked.mat-accent .mat-slide-toggle-bar {
7
+ &.mat-mdc-checked.mat-accent .mat-mdc-slide-toggle-bar {
8
8
  background-color: rgba(var(--color-brand-dark-rgb), 0.54);
9
9
  }
10
10
  }
@@ -214,8 +214,20 @@ form {
214
214
  .mat-form-field-infix {
215
215
  border-top: 0;
216
216
  }
217
+
218
+ .mat-mdc-form-field .mat-mdc-form-field-flex {
219
+ padding-top: 0;
220
+ }
217
221
  }
218
222
 
219
223
  .mat-form-field-type-mat-date-range-input .mat-form-field-infix {
220
224
  width: auto;
221
225
  }
226
+
227
+ .mat-mdc-form-field-type-mat-date-range-input .mat-mdc-form-field-infix {
228
+ width: auto;
229
+ }
230
+
231
+ .mat-mdc-text-field-wrapper {
232
+ padding-bottom: 0;
233
+ }
@@ -16,7 +16,7 @@ $border-radius: 0.25rem;
16
16
  }
17
17
  }
18
18
 
19
- .mat-select-disabled {
19
+ .mat-mdc-select-disabled {
20
20
  background-color: var(--color-white-opacity-05);
21
21
 
22
22
  mat-select-trigger {
@@ -24,7 +24,7 @@ $border-radius: 0.25rem;
24
24
  }
25
25
  }
26
26
 
27
- .mat-select-placeholder {
27
+ .mat-mdc-select-placeholder {
28
28
  color: rgba(0, 0, 0, 0.42) !important;
29
29
  -webkit-text-fill-color: rgba(0, 0, 0, 0.42) !important;
30
30
  font-size: 18px !important;
@@ -35,3 +35,7 @@ $border-radius: 0.25rem;
35
35
  .mat-form-field-label{
36
36
  display: none !important;
37
37
  }
38
+
39
+ .mat-mdc-form-field-label{
40
+ display: none !important;
41
+ }
@@ -1,65 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import * as textMask from 'vanilla-text-mask/dist/vanillaTextMask';
3
- import { createAutoCorrectedDatePipe } from '../consts/date-mask.consts';
4
- import * as i0 from "@angular/core";
5
- export class MaskDateDirective {
6
- constructor(element) {
7
- this.element = element;
8
- this.isDateTimeMask = false;
9
- this.considerSeconds = false;
10
- this.mask = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/]; // dd/mm/yyyy
11
- this.maskDateTime = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/, ',', ' ', /\d/, /\d/, ':', /\d/, /\d/]; // dd/mm/yyyy, hh:mm
12
- this.maskDateTimeWithSeconds = [
13
- /\d/,
14
- /\d/,
15
- '/',
16
- /\d/,
17
- /\d/,
18
- '/',
19
- /\d/,
20
- /\d/,
21
- /\d/,
22
- /\d/,
23
- ',',
24
- ' ',
25
- /\d/,
26
- /\d/,
27
- ':',
28
- /\d/,
29
- /\d/,
30
- ':',
31
- /\d/,
32
- /\d/,
33
- ]; // dd/mm/yyyy, hh:mm:ss
34
- }
35
- ngOnInit() {
36
- this.maskedInputController = textMask.maskInput({
37
- inputElement: this.element.nativeElement,
38
- guide: true,
39
- showMask: false,
40
- pipe: this.isDateTimeMask
41
- ? this.considerSeconds
42
- ? createAutoCorrectedDatePipe('dd/mm/yyyy, HH:MM:SS')
43
- : createAutoCorrectedDatePipe('dd/mm/yyyy, HH:MM')
44
- : createAutoCorrectedDatePipe('dd/mm/yyyy'),
45
- keepCharPositions: true,
46
- mask: this.isDateTimeMask ? (this.considerSeconds ? this.maskDateTimeWithSeconds : this.maskDateTime) : this.mask,
47
- });
48
- }
49
- ngOnDestroy() {
50
- this.maskedInputController.destroy();
51
- }
52
- }
53
- MaskDateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: MaskDateDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
54
- MaskDateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: MaskDateDirective, selector: "[appMaskDate]", inputs: { isDateTimeMask: "isDateTimeMask", considerSeconds: "considerSeconds" }, ngImport: i0 });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: MaskDateDirective, decorators: [{
56
- type: Directive,
57
- args: [{
58
- selector: '[appMaskDate]',
59
- }]
60
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { isDateTimeMask: [{
61
- type: Input
62
- }], considerSeconds: [{
63
- type: Input
64
- }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tYXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvZGF0ZS1tYXNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxLQUFLLFFBQVEsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFLekUsTUFBTSxPQUFPLGlCQUFpQjtJQThCNUIsWUFBNkIsT0FBbUI7UUFBbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQTdCdkMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFHakMsU0FBSSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBQ2hGLGlCQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7UUFDdEksNEJBQXVCLEdBQUc7WUFDeEIsSUFBSTtZQUNKLElBQUk7WUFDSixHQUFHO1lBQ0gsSUFBSTtZQUNKLElBQUk7WUFDSixHQUFHO1lBQ0gsSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLEdBQUc7WUFDSCxHQUFHO1lBQ0gsSUFBSTtZQUNKLElBQUk7WUFDSixHQUFHO1lBQ0gsSUFBSTtZQUNKLElBQUk7WUFDSixHQUFHO1lBQ0gsSUFBSTtZQUNKLElBQUk7U0FDTCxDQUFDLENBQUMsdUJBQXVCO0lBRXlCLENBQUM7SUFFcEQsUUFBUTtRQUNOLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1lBQzlDLFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7WUFDeEMsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlO29CQUNwQixDQUFDLENBQUMsMkJBQTJCLENBQUMsc0JBQXNCLENBQUM7b0JBQ3JELENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDcEQsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLFlBQVksQ0FBQztZQUM3QyxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSTtTQUNsSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2QyxDQUFDOzsrR0FqRFUsaUJBQWlCO21HQUFqQixpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFIN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUI7aUdBRVUsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgdGV4dE1hc2sgZnJvbSAndmFuaWxsYS10ZXh0LW1hc2svZGlzdC92YW5pbGxhVGV4dE1hc2snO1xyXG5pbXBvcnQgeyBjcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGUgfSBmcm9tICcuLi9jb25zdHMvZGF0ZS1tYXNrLmNvbnN0cyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHBNYXNrRGF0ZV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFza0RhdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgaXNEYXRlVGltZU1hc2sgPSBmYWxzZTtcclxuICBASW5wdXQoKSBjb25zaWRlclNlY29uZHMgPSBmYWxzZTtcclxuXHJcbiAgbWFza2VkSW5wdXRDb250cm9sbGVyO1xyXG4gIG1hc2sgPSBbL1xcZC8sIC9cXGQvLCAnLycsIC9cXGQvLCAvXFxkLywgJy8nLCAvXFxkLywgL1xcZC8sIC9cXGQvLCAvXFxkL107IC8vIGRkL21tL3l5eXlcclxuICBtYXNrRGF0ZVRpbWUgPSBbL1xcZC8sIC9cXGQvLCAnLycsIC9cXGQvLCAvXFxkLywgJy8nLCAvXFxkLywgL1xcZC8sIC9cXGQvLCAvXFxkLywgJywnLCAnICcsIC9cXGQvLCAvXFxkLywgJzonLCAvXFxkLywgL1xcZC9dOyAvLyBkZC9tbS95eXl5LCBoaDptbVxyXG4gIG1hc2tEYXRlVGltZVdpdGhTZWNvbmRzID0gW1xyXG4gICAgL1xcZC8sXHJcbiAgICAvXFxkLyxcclxuICAgICcvJyxcclxuICAgIC9cXGQvLFxyXG4gICAgL1xcZC8sXHJcbiAgICAnLycsXHJcbiAgICAvXFxkLyxcclxuICAgIC9cXGQvLFxyXG4gICAgL1xcZC8sXHJcbiAgICAvXFxkLyxcclxuICAgICcsJyxcclxuICAgICcgJyxcclxuICAgIC9cXGQvLFxyXG4gICAgL1xcZC8sXHJcbiAgICAnOicsXHJcbiAgICAvXFxkLyxcclxuICAgIC9cXGQvLFxyXG4gICAgJzonLFxyXG4gICAgL1xcZC8sXHJcbiAgICAvXFxkLyxcclxuICBdOyAvLyBkZC9tbS95eXl5LCBoaDptbTpzc1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYXNrZWRJbnB1dENvbnRyb2xsZXIgPSB0ZXh0TWFzay5tYXNrSW5wdXQoe1xyXG4gICAgICBpbnB1dEVsZW1lbnQ6IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxyXG4gICAgICBndWlkZTogdHJ1ZSxcclxuICAgICAgc2hvd01hc2s6IGZhbHNlLFxyXG4gICAgICBwaXBlOiB0aGlzLmlzRGF0ZVRpbWVNYXNrXHJcbiAgICAgICAgPyB0aGlzLmNvbnNpZGVyU2Vjb25kc1xyXG4gICAgICAgICAgPyBjcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGUoJ2RkL21tL3l5eXksIEhIOk1NOlNTJylcclxuICAgICAgICAgIDogY3JlYXRlQXV0b0NvcnJlY3RlZERhdGVQaXBlKCdkZC9tbS95eXl5LCBISDpNTScpXHJcbiAgICAgICAgOiBjcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGUoJ2RkL21tL3l5eXknKSxcclxuICAgICAga2VlcENoYXJQb3NpdGlvbnM6IHRydWUsXHJcbiAgICAgIG1hc2s6IHRoaXMuaXNEYXRlVGltZU1hc2sgPyAodGhpcy5jb25zaWRlclNlY29uZHMgPyB0aGlzLm1hc2tEYXRlVGltZVdpdGhTZWNvbmRzIDogdGhpcy5tYXNrRGF0ZVRpbWUpIDogdGhpcy5tYXNrLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubWFza2VkSW5wdXRDb250cm9sbGVyLmRlc3Ryb3koKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,130 +0,0 @@
1
- import { Directive, HostListener, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class DigitsOnlyDirective {
4
- constructor(el) {
5
- this.el = el;
6
- this.digitsOnly = false;
7
- this.allowHyphen = false;
8
- this.decimal = false;
9
- this.decimalSeparator = '.';
10
- this.unit = 0;
11
- this.minus = '-';
12
- this.minusCounter = 0;
13
- this.decimalCounter = 0;
14
- this.navigationKeys = [
15
- 'Backspace',
16
- 'Delete',
17
- 'Tab',
18
- 'Escape',
19
- 'Enter',
20
- 'Home',
21
- 'End',
22
- 'ArrowLeft',
23
- 'ArrowRight',
24
- 'Clear',
25
- 'Copy',
26
- 'Paste',
27
- ];
28
- this.inputElement = el.nativeElement;
29
- }
30
- onKeyDown(e) {
31
- if (this.digitsOnly) {
32
- if (this.navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.
33
- (e.key === 'a' && e.ctrlKey) || // Allow: Ctrl+A
34
- (e.key === 'c' && e.ctrlKey) || // Allow: Ctrl+C
35
- (e.key === 'v' && e.ctrlKey) || // Allow: Ctrl+V
36
- (e.key === 'x' && e.ctrlKey) || // Allow: Ctrl+X
37
- (e.key === 'a' && e.metaKey) || // Allow: Cmd+A (Mac)
38
- (e.key === 'c' && e.metaKey) || // Allow: Cmd+C (Mac)
39
- (e.key === 'v' && e.metaKey) || // Allow: Cmd+V (Mac)
40
- (e.key === 'x' && e.metaKey) || // Allow: Cmd+X (Mac)
41
- (this.decimal && e.key === this.decimalSeparator && this.decimalCounter < 1) || // Allow: only one decimal point
42
- (this.decimal && e.key === this.minus && this.minusCounter < 1) // Allow: only one minus
43
- ) {
44
- return;
45
- }
46
- // Ensure that it is a number and stop the keypress
47
- if (e.key === ' ' || !this.regex.test(e.key)) {
48
- e.preventDefault();
49
- }
50
- }
51
- }
52
- onKeyUp() {
53
- if (this.digitsOnly) {
54
- if (!this.decimal) {
55
- return;
56
- }
57
- this.decimalCounter = this.el.nativeElement.value.split(this.decimalSeparator).length - 1;
58
- this.minusCounter = this.el.nativeElement.value.split(this.minus).length - 1;
59
- if (isNaN(+this.inputElement.value)) {
60
- this.inputElement.value = this.sanitizeInput(this.inputElement.value);
61
- }
62
- }
63
- }
64
- onPaste(event) {
65
- if (this.digitsOnly) {
66
- const pastedInput = event.clipboardData?.getData('text/plain');
67
- this.pasteData(pastedInput);
68
- event.preventDefault();
69
- }
70
- }
71
- ngOnInit() {
72
- this.regex = new RegExp(this.allowHyphen ? '^[\\d -]+$' : '\\d');
73
- }
74
- pasteData(pastedContent) {
75
- const sanitizedContent = isNaN(+pastedContent) ? this.sanitizeInput(pastedContent) : pastedContent;
76
- const pasted = document.execCommand('insertText', false, sanitizedContent);
77
- if (!pasted) {
78
- const { selectionStart: start, selectionEnd: end } = this.inputElement;
79
- this.inputElement.setRangeText(sanitizedContent, start, end, 'end');
80
- }
81
- }
82
- sanitizeInput(input) {
83
- let result = '';
84
- if (this.decimal && this.isValidDecimal(input)) {
85
- const regex = new RegExp(`^[\d -${this.decimalSeparator}]+$`, 'g');
86
- result = input.replace(regex, '');
87
- }
88
- else {
89
- result = input.replace(`/${this.regex}/g`, '');
90
- }
91
- const maxLength = this.inputElement.maxLength;
92
- if (maxLength > 0) {
93
- // the input element has maxLength limit
94
- const allowedLength = maxLength - this.inputElement.value.length;
95
- result = allowedLength > 0 ? result.substring(0, allowedLength) : '';
96
- }
97
- return result;
98
- }
99
- isValidDecimal(inputString) {
100
- return inputString.split(this.decimalSeparator).length <= 2;
101
- }
102
- }
103
- DigitsOnlyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DigitsOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
104
- DigitsOnlyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DigitsOnlyDirective, selector: "[appDigitsOnly]", inputs: { digitsOnly: "digitsOnly", allowHyphen: "allowHyphen", decimal: "decimal", decimalSeparator: "decimalSeparator", unit: "unit" }, host: { listeners: { "keydown": "onKeyDown($event)", "keyup": "onKeyUp($event)", "paste": "onPaste($event)" } }, ngImport: i0 });
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DigitsOnlyDirective, decorators: [{
106
- type: Directive,
107
- args: [{
108
- selector: '[appDigitsOnly]',
109
- }]
110
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { digitsOnly: [{
111
- type: Input
112
- }], allowHyphen: [{
113
- type: Input
114
- }], decimal: [{
115
- type: Input
116
- }], decimalSeparator: [{
117
- type: Input
118
- }], unit: [{
119
- type: Input
120
- }], onKeyDown: [{
121
- type: HostListener,
122
- args: ['keydown', ['$event']]
123
- }], onKeyUp: [{
124
- type: HostListener,
125
- args: ['keyup', ['$event']]
126
- }], onPaste: [{
127
- type: HostListener,
128
- args: ['paste', ['$event']]
129
- }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZGlyZWN0aXZlcy9kaWdpdHMtb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQUtuRixNQUFNLE9BQU8sbUJBQW1CO0lBZ0M5QixZQUFtQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTlCakMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUduQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVYLFlBQU8sR0FBSSxLQUFLLENBQUM7UUFDakIscUJBQWdCLEdBQUksR0FBRyxDQUFDO1FBQ3hCLFNBQUksR0FBSSxDQUFDLENBQUM7UUFHbkIsVUFBSyxHQUFHLEdBQUcsQ0FBQztRQUNaLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBR1QsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDVixtQkFBYyxHQUFHO1lBQ2hDLFdBQVc7WUFDWCxRQUFRO1lBQ1IsS0FBSztZQUNMLFFBQVE7WUFDUixPQUFPO1lBQ1AsTUFBTTtZQUNOLEtBQUs7WUFDTCxXQUFXO1lBQ1gsWUFBWTtZQUNaLE9BQU87WUFDUCxNQUFNO1lBQ04sT0FBTztTQUNSLENBQUM7UUFHQSxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDdkMsQ0FBQztJQUdELFNBQVMsQ0FBQyxDQUFnQjtRQUN4QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUkseURBQXlEO2dCQUNwRyxDQUFDLENBQUMsQ0FBQyxHQUFH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WUFDeEMsTUFBTSxhQUFhLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNqRSxNQUFNLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUN0RTtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxjQUFjLENBQUMsV0FBbUI7UUFDeEMsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBMEIsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQzs7aUhBMUhVLG1CQUFtQjtxR0FBbkIsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBSC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7aUdBR0MsVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkE0Qk4sU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkEyQm5DLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUJqQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FwcERpZ2l0c09ubHldJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERpZ2l0c09ubHlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlnaXRzT25seSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGFsbG93SHlwaGVuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGRlY2ltYWw/ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGVjaW1hbFNlcGFyYXRvcj8gPSAnLic7XHJcbiAgQElucHV0KCkgdW5pdD8gPSAwO1xyXG5cclxuICBpbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgbWludXMgPSAnLSc7XHJcbiAgbWludXNDb3VudGVyID0gMDtcclxuICByZWdleCE6IFJlZ0V4cDtcclxuXHJcbiAgcHJpdmF0ZSBkZWNpbWFsQ291bnRlciA9IDA7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBuYXZpZ2F0aW9uS2V5cyA9IFtcclxuICAgICdCYWNrc3BhY2UnLFxyXG4gICAgJ0RlbGV0ZScsXHJcbiAgICAnVGFiJyxcclxuICAgICdFc2NhcGUnLFxyXG4gICAgJ0VudGVyJyxcclxuICAgICdIb21lJyxcclxuICAgICdFbmQnLFxyXG4gICAgJ0Fycm93TGVmdCcsXHJcbiAgICAnQXJyb3dSaWdodCcsXHJcbiAgICAnQ2xlYXInLFxyXG4gICAgJ0NvcHknLFxyXG4gICAgJ1Bhc3RlJyxcclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgIHRoaXMuaW5wdXRFbGVtZW50ID0gZWwubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaWdpdHNPbmx5KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLm5hdmlnYXRpb25LZXlzLmluZGV4T2YoZS5rZXkpID4gLTEgfHwgLy8gQWxsb3c6IG5hdmlnYXRpb24ga2V5czogYmFja3NwYWNlLCBkZWxldGUsIGFycm93cyBldGMuXHJcbiAgICAgICAgKGUua2V5ID09PSAnYScgJiYgZS5jdHJsS2V5KSB8fCAvLyBBbGxvdzogQ3RybCtBXHJcbiAgICAgICAgKGUua2V5ID09PSAnYycgJiYgZS5jdHJsS2V5KSB8fCAvLyBBbGxvdzogQ3RybCtDXHJcbiAgICAgICAgKGUua2V5ID09PSAndicgJiYgZS5jdHJsS2V5KSB8fCAvLyBBbGxvdzogQ3RybCtWXHJcbiAgICAgICAgKGUua2V5ID09PSAneCcgJiYgZS5jdHJsS2V5KSB8fCAvLyBBbGxvdzogQ3RybCtYXHJcbiAgICAgICAgKGUua2V5ID09PSAnYScgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK0EgKE1hYylcclxuICAgICAgICAoZS5rZXkgPT09ICdjJyAmJiBlLm1ldGFLZXkpIHx8IC8vIEFsbG93OiBDbWQrQyAoTWFjKVxyXG4gICAgICAgIChlLmtleSA9PT0gJ3YnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtWIChNYWMpXHJcbiAgICAgICAgKGUua2V5ID09PSAneCcgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK1ggKE1hYylcclxuICAgICAgICAodGhpcy5kZWNpbWFsICYmIGUua2V5ID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgJiYgdGhpcy5kZWNpbWFsQ291bnRlciA8IDEpIHx8IC8vIEFsbG93OiBvbmx5IG9uZSBkZWNpbWFsIHBvaW50XHJcbiAgICAgICAgKHRoaXMuZGVjaW1hbCAmJiBlLmtleSA9PT0gdGhpcy5taW51cyAmJiB0aGlzLm1pbnVzQ291bnRlciA8IDEpIC8vIEFsbG93OiBvbmx5IG9uZSBtaW51c1xyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIGEgbnVtYmVyIGFuZCBzdG9wIHRoZSBrZXlwcmVzc1xyXG4gICAgICBpZiAoZS5rZXkgPT09ICcgJyB8fCAhdGhpcy5yZWdleC50ZXN0KGUua2V5KSkge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxyXG4gIG9uS2V5VXAoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaWdpdHNPbmx5KSB7XHJcbiAgICAgIGlmICghdGhpcy5kZWNpbWFsKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmRlY2ltYWxDb3VudGVyID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoIC0gMTtcclxuICAgICAgdGhpcy5taW51c0NvdW50ZXIgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUuc3BsaXQodGhpcy5taW51cykubGVuZ3RoIC0gMTtcclxuXHJcbiAgICAgIGlmIChpc05hTigrdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUpKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSB0aGlzLnNhbml0aXplSW5wdXQodGhpcy5pbnB1dEVsZW1lbnQudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdwYXN0ZScsIFsnJGV2ZW50J10pXHJcbiAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpZ2l0c09ubHkpIHtcclxuICAgICAgY29uc3QgcGFzdGVkSW5wdXQgPSBldmVudC5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0L3BsYWluJykgYXMgc3RyaW5nO1xyXG4gICAgICB0aGlzLnBhc3RlRGF0YShwYXN0ZWRJbnB1dCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVnZXggPSBuZXcgUmVnRXhwKHRoaXMuYWxsb3dIeXBoZW4gPyAnXltcXFxcZCAtXSskJyA6ICdcXFxcZCcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXN0ZURhdGEocGFzdGVkQ29udGVudDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBzYW5pdGl6ZWRDb250ZW50ID0gaXNOYU4oK3Bhc3RlZENvbnRlbnQpID8gdGhpcy5zYW5pdGl6ZUlucHV0KHBhc3RlZENvbnRlbnQpIDogcGFzdGVkQ29udGVudDtcclxuICAgIGNvbnN0IHBhc3RlZCA9IGRvY3VtZW50LmV4ZWNDb21tYW5kKCdpbnNlcnRUZXh0JywgZmFsc2UsIHNhbml0aXplZENvbnRlbnQpO1xyXG4gICAgaWYgKCFwYXN0ZWQpIHtcclxuICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydDogc3RhcnQsIHNlbGVjdGlvbkVuZDogZW5kIH0gPSB0aGlzLmlucHV0RWxlbWVudDtcclxuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuc2V0UmFuZ2VUZXh0KHNhbml0aXplZENvbnRlbnQsIHN0YXJ0IGFzIG51bWJlciwgZW5kIGFzIG51bWJlciwgJ2VuZCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzYW5pdGl6ZUlucHV0KGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgaWYgKHRoaXMuZGVjaW1hbCAmJiB0aGlzLmlzVmFsaWREZWNpbWFsKGlucHV0KSkge1xyXG4gICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF5bXFxkIC0ke3RoaXMuZGVjaW1hbFNlcGFyYXRvcn1dKyRgLCAnZycpO1xyXG4gICAgICByZXN1bHQgPSBpbnB1dC5yZXBsYWNlKHJlZ2V4LCAnJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHQgPSBpbnB1dC5yZXBsYWNlKGAvJHt0aGlzLnJlZ2V4fS9nYCwgJycpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMuaW5wdXRFbGVtZW50Lm1heExlbmd0aDtcclxuXHJcbiAgICBpZiAobWF4TGVuZ3RoID4gMCkge1xyXG4gICAgICAvLyB0aGUgaW5wdXQgZWxlbWVudCBoYXMgbWF4TGVuZ3RoIGxpbWl0XHJcbiAgICAgIGNvbnN0IGFsbG93ZWRMZW5ndGggPSBtYXhMZW5ndGggLSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XHJcbiAgICAgIHJlc3VsdCA9IGFsbG93ZWRMZW5ndGggPiAwID8gcmVzdWx0LnN1YnN0cmluZygwLCBhbGxvd2VkTGVuZ3RoKSA6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVmFsaWREZWNpbWFsKGlucHV0U3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpbnB1dFN0cmluZy5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IgYXMgc3RyaW5nKS5sZW5ndGggPD0gMjtcclxuICB9XHJcbn1cclxuIl19
@@ -1,54 +0,0 @@
1
- import { Directive, HostListener, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class NumberBorderDirective {
4
- constructor(el) {
5
- this.el = el;
6
- this.inputElement = el.nativeElement;
7
- }
8
- onKeyUp(e) {
9
- const value = +e.target.value;
10
- if (isNaN(value)) {
11
- this.inputElement.value = this.sanitizeInput(e.target.value);
12
- return;
13
- }
14
- if (this.maxValue) {
15
- if (value > this.maxValue) {
16
- this.inputElement.value = this.sanitizeInput(this.maxValue.toString());
17
- return;
18
- }
19
- }
20
- if (this.minValue && this.minValue !== value) {
21
- if (value < this.minValue) {
22
- this.inputElement.value = this.sanitizeInput(this.minValue.toString());
23
- return;
24
- }
25
- }
26
- }
27
- sanitizeInput(input) {
28
- let result = '';
29
- const regex = new RegExp(`/\d+/g`);
30
- result = input.replace(regex, '');
31
- const maxLength = this.inputElement.maxLength;
32
- if (maxLength > 0) {
33
- const allowedLength = maxLength - this.inputElement.value.length;
34
- result = allowedLength > 0 ? result.substring(0, allowedLength) : '';
35
- }
36
- return result;
37
- }
38
- }
39
- NumberBorderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NumberBorderDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
40
- NumberBorderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: NumberBorderDirective, selector: "[appNumberBorder]", inputs: { maxValue: "maxValue", minValue: "minValue" }, host: { listeners: { "keyup": "onKeyUp($event)" } }, ngImport: i0 });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NumberBorderDirective, decorators: [{
42
- type: Directive,
43
- args: [{
44
- selector: '[appNumberBorder]',
45
- }]
46
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { maxValue: [{
47
- type: Input
48
- }], minValue: [{
49
- type: Input
50
- }], onKeyUp: [{
51
- type: HostListener,
52
- args: ['keyup', ['$event']]
53
- }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJvcmRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS9kaXJlY3RpdmVzL251bWJlci1ib3JkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0UsTUFBTSxPQUFPLHFCQUFxQjtJQU1oQyxZQUFtQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDdkMsQ0FBQztJQUdELE9BQU8sQ0FBQyxDQUFDO1FBQ1AsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUU5QixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFN0QsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUV2RSxPQUFPO2FBQ1I7U0FDRjtRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUM1QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFFdkUsT0FBTzthQUNSO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQWE7UUFDakMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVsQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztRQUU5QyxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDakIsTUFBTSxhQUFhLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNqRSxNQUFNLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUN0RTtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O21IQWxEVSxxQkFBcUI7dUdBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCO2lHQUVVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFTTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHBOdW1iZXJCb3JkZXJdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE51bWJlckJvcmRlckRpcmVjdGl2ZSB7XHJcbiAgQElucHV0KCkgbWF4VmFsdWU6IG51bWJlcjtcclxuICBASW5wdXQoKSBtaW5WYWx1ZTogbnVtYmVyO1xyXG5cclxuICBpbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQgPSBlbC5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxyXG4gIG9uS2V5VXAoZSk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsdWUgPSArZS50YXJnZXQudmFsdWU7XHJcblxyXG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuc2FuaXRpemVJbnB1dChlLnRhcmdldC52YWx1ZSk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubWF4VmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlID4gdGhpcy5tYXhWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5zYW5pdGl6ZUlucHV0KHRoaXMubWF4VmFsdWUudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm1pblZhbHVlICYmIHRoaXMubWluVmFsdWUgIT09IHZhbHVlKSB7XHJcbiAgICAgIGlmICh2YWx1ZSA8IHRoaXMubWluVmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuc2FuaXRpemVJbnB1dCh0aGlzLm1pblZhbHVlLnRvU3RyaW5nKCkpO1xyXG5cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2FuaXRpemVJbnB1dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCByZXN1bHQgPSAnJztcclxuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgL1xcZCsvZ2ApO1xyXG4gICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShyZWdleCwgJycpO1xyXG5cclxuICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMuaW5wdXRFbGVtZW50Lm1heExlbmd0aDtcclxuXHJcbiAgICBpZiAobWF4TGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBhbGxvd2VkTGVuZ3RoID0gbWF4TGVuZ3RoIC0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoO1xyXG4gICAgICByZXN1bHQgPSBhbGxvd2VkTGVuZ3RoID4gMCA/IHJlc3VsdC5zdWJzdHJpbmcoMCwgYWxsb3dlZExlbmd0aCkgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG4iXX0=