ecabs-components 1.1.56 → 1.1.62
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.
- package/README.md +8 -0
- package/esm2022/lib/base/consts/error-messages.consts.mjs +13 -1
- package/esm2022/lib/base/directives/date-mask.directive.mjs +56 -80
- package/esm2022/lib/base/directives/time-mask.directive.mjs +12 -35
- package/esm2022/lib/base/directives/time-range.directive.mjs +6 -32
- package/esm2022/lib/base/element-wrapper/element-wrapper.component.mjs +3 -3
- package/esm2022/lib/base/models/phone.models.mjs +1 -1
- package/esm2022/lib/base/models/select.models.mjs +1 -1
- package/esm2022/lib/base/models/sidebar.models.mjs +1 -1
- package/esm2022/lib/base/pipes/phone-number-country-code.pipe.mjs +31 -0
- package/esm2022/lib/base/pipes/truncate.pipe.mjs +14 -4
- package/esm2022/lib/base/utils/object-utils.mjs +9 -1
- package/esm2022/lib/base/utils/time-mask.util.mjs +87 -0
- package/esm2022/lib/ecabs-button-toggle/ecabs-button-toggle.component.mjs +4 -4
- package/esm2022/lib/ecabs-buttons-v2/ecabs-buttons-v2.component.mjs +5 -5
- package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +2 -2
- package/esm2022/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.component.mjs +105 -0
- package/esm2022/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.module.mjs +22 -0
- package/esm2022/lib/ecabs-chip-autocomplete/ecabs-chip-autocomplete.component.mjs +197 -0
- package/esm2022/lib/ecabs-chip-group/ecabs-chip-group.component.mjs +61 -0
- package/esm2022/lib/ecabs-chip-group/ecabs-chip-group.module.mjs +20 -0
- package/esm2022/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.mjs +2 -2
- package/esm2022/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.component.mjs +9 -8
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +31 -11
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +3 -3
- package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +2 -2
- package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +2 -2
- package/esm2022/lib/ecabs-input-range/ecabs-input-range.component.mjs +188 -0
- package/esm2022/lib/ecabs-input-range/ecabs-input-range.module.mjs +40 -0
- package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +2 -2
- package/esm2022/lib/ecabs-menu-items/ecabs-menu-items.component.mjs +3 -3
- package/esm2022/lib/ecabs-multiple-dates-picker/ecabs-multiple-dates-picker.component.mjs +2 -2
- package/esm2022/lib/ecabs-note/ecabs-note.component.mjs +2 -2
- package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +2 -2
- package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +2 -2
- package/esm2022/lib/ecabs-time-range-input-v2/config.model.mjs +2 -0
- package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.component.mjs +167 -0
- package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.module.mjs +32 -0
- package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.service.mjs +29 -0
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +3 -55
- package/esm2022/public-api.mjs +12 -1
- package/fesm2022/ecabs-components.mjs +1064 -329
- package/fesm2022/ecabs-components.mjs.map +1 -1
- package/lib/base/directives/date-mask.directive.d.ts +6 -7
- package/lib/base/directives/time-mask.directive.d.ts +2 -3
- package/lib/base/directives/time-range.directive.d.ts +1 -2
- package/lib/base/models/phone.models.d.ts +1 -0
- package/lib/base/models/select.models.d.ts +2 -2
- package/lib/base/models/sidebar.models.d.ts +1 -1
- package/lib/base/pipes/phone-number-country-code.pipe.d.ts +8 -0
- package/lib/base/utils/object-utils.d.ts +1 -0
- package/lib/base/utils/time-mask.util.d.ts +3 -0
- package/lib/ecabs-button-toggle/ecabs-button-toggle.component.d.ts +9 -10
- package/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.component.d.ts +29 -0
- package/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.module.d.ts +12 -0
- package/lib/ecabs-chip-autocomplete/ecabs-chip-autocomplete.component.d.ts +50 -0
- package/lib/ecabs-chip-group/ecabs-chip-group.component.d.ts +21 -0
- package/lib/ecabs-chip-group/ecabs-chip-group.module.d.ts +10 -0
- package/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.component.d.ts +1 -0
- package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +4 -2
- package/lib/ecabs-input-range/ecabs-input-range.component.d.ts +44 -0
- package/lib/ecabs-input-range/ecabs-input-range.module.d.ts +13 -0
- package/lib/ecabs-time-range-input-v2/config.model.d.ts +5 -0
- package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.component.d.ts +51 -0
- package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.module.d.ts +11 -0
- package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.service.d.ts +12 -0
- package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +0 -5
- package/package.json +4 -2
- package/public-api.d.ts +11 -0
- package/src/assets/styles/material/overrides/_autocomplete.scss +19 -0
- package/src/assets/styles/material/overrides/_chip.scss +80 -0
- package/src/assets/styles/material/overrides/_datepicker.scss +22 -0
- package/src/assets/styles/scss/modules/_autocomplete.scss +1 -1
- package/src/assets/styles/scss/modules/_chip.scss +7 -1
- package/src/assets/styles/scss/modules/_form.scss +6 -6
- package/src/assets/styles/scss/utilities/_colors.scss +3 -5
- package/src/assets/styles/scss/utilities/_fonts.scss +4 -0
- package/src/assets/styles/scss/utilities/_variables.scss +2 -0
- package/src/assets/styles/tailwind/index.scss +1 -1
- package/esm2022/lib/base/consts/date-mask.consts.mjs +0 -76
- package/lib/base/consts/date-mask.consts.d.ts +0 -7
package/README.md
CHANGED
|
@@ -116,3 +116,11 @@ To get more help on the Angular CLI use `ng help` or go check out the [Angular C
|
|
|
116
116
|
- **v1.1.54** — Implement `EcabsButtonToggleComponent` with support for small, medium, and large sizes.
|
|
117
117
|
- **v1.1.55** — `EcabsButtonsV2Component`: Added version 2 of `EcabsButtonsComponent` with support for small, medium, and large sizes.
|
|
118
118
|
- **v1.1.56** — Implement `EcabsDateRangePickerComponentV2`.
|
|
119
|
+
- **v1.1.57** — Implement `EcabsChipGroup`and `EcabsAutocompleteChipGroup` components with demo.
|
|
120
|
+
- **v1.1.58** — Add `EcabsInputRangeComponent` with support for minimum and maximum values.
|
|
121
|
+
- **v1.1.59** — `EcabsCheckboxV2Component`: Implement version 2 of `EcabsCheckboxComponent`.
|
|
122
|
+
- **v1.1.60** — Migrate input mask library from `vanilla-text-mask` to `maskito`.
|
|
123
|
+
- **Affected components**: `EcabsDateTimePicker`, `EcabsTimepicker`, `EcabsDateTimeRangePicker`.
|
|
124
|
+
- **v1.1.61** — Added support for 12-hour time input for `maskito` library.
|
|
125
|
+
- **Affected components**: `EcabsDateTimePicker`, `EcabsTimepicker`, `EcabsDateTimeRangePicker`.
|
|
126
|
+
- **v1.1.62** — Add `EcabsTimeRangeInputV2Component`.
|
|
@@ -103,5 +103,17 @@ export const errorMessages = [
|
|
|
103
103
|
type: 'dateFromMoreThanDateTo',
|
|
104
104
|
message: 'FORMS.VALIDATION.DATE_FROM_MORE_THAN_DATE_TO',
|
|
105
105
|
},
|
|
106
|
+
{
|
|
107
|
+
type: 'timeFromRangeRequired',
|
|
108
|
+
message: 'FORMS.VALIDATION.TIME_FROM_RANGE_REQUIRED',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'timeToRangeRequired',
|
|
112
|
+
message: 'FORMS.VALIDATION.TIME_TO_RANGE_REQUIRED',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'timeFromMoreThanDateTo',
|
|
116
|
+
message: 'FORMS.VALIDATION.TIME_FROM_MORE_THAN_TIME_TO',
|
|
117
|
+
},
|
|
106
118
|
];
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbWVzc2FnZXMuY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvY29uc3RzL2Vycm9yLW1lc3NhZ2VzLmNvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQW1CO0lBQzNDO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsT0FBTyxFQUFFLGlDQUFpQztLQUMzQztJQUNEO1FBQ0UsSUFBSSxFQUFFLFdBQVc7UUFDakIsT0FBTyxFQUFFLDZCQUE2QjtLQUN2QztJQUNEO1FBQ0UsSUFBSSxFQUFFLFdBQVc7UUFDakIsT0FBTyxFQUFFLDZCQUE2QjtLQUN2QztJQUNEO1FBQ0UsSUFBSSxFQUFFLEtBQUs7UUFDWCxPQUFPLEVBQUUsc0JBQXNCO0tBQ2hDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsS0FBSztRQUNYLE9BQU8sRUFBRSxzQkFBc0I7S0FDaEM7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE9BQU8sRUFBRSw0QkFBNEI7S0FDdEM7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE9BQU8sRUFBRSw0QkFBNEI7S0FDdEM7SUFDRDtRQUNFLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsT0FBTyxFQUFFLHdDQUF3QztLQUNsRDtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsT0FBTyxFQUFFLDRCQUE0QjtLQUN0QztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsT0FBTyxFQUFFLGdDQUFnQztLQUMxQztJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsT0FBTyxFQUFFLDRCQUE0QjtLQUN0QztJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsT0FBTyxFQUFFLDRCQUE0QjtLQUN0QztJQUNEO1FBQ0UsSUFBSSxFQUFFLE9BQU87UUFDYixPQUFPLEVBQUUsd0JBQXdCO0tBQ2xDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLE9BQU8sRUFBRSxrQ0FBa0M7S0FDNUM7SUFDRDtRQUNFLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsT0FBTyxFQUFFLGtDQUFrQztLQUM1QztJQUNEO1FBQ0UsSUFBSSxFQUFFLFlBQVk7UUFDbEIsT0FBTyxFQUFFLCtCQUErQjtLQUN6QztJQUNEO1FBQ0UsSUFBSSxFQUFFLE1BQU07UUFDWixPQUFPLEVBQUUsdUJBQXVCO0tBQ2pDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPLEVBQUUsaUNBQWlDO0tBQzNDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPLEVBQUUsOEJBQThCO0tBQ3hDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLE9BQU8sRUFBRSxvQ0FBb0M7S0FDOUM7SUFDRDtRQUNFLElBQUksRUFBRSx1QkFBdUI7UUFDN0IsT0FBTyxFQUFFLDRDQUE0QztLQUN0RDtJQUNEO1FBQ0UsSUFBSSxFQUFFLFlBQVk7UUFDbEIsT0FBTyxFQUFFLDZCQUE2QjtLQUN2QztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsT0FBTyxFQUFFLCtCQUErQjtLQUN6QztJQUNEO1FBQ0UsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixPQUFPLEVBQUUsMkNBQTJDO0tBQ3JEO0lBQ0Q7UUFDRSxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLE9BQU8sRUFBRSx5Q0FBeUM7S0FDbkQ7SUFDRDtRQUNFLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsT0FBTyxFQUFFLDhDQUE4QztLQUN4RDtJQUNDO1FBQ0EsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixPQUFPLEVBQUUsMkNBQTJDO0tBQ3JEO0lBQ0Q7UUFDRSxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLE9BQU8sRUFBRSx5Q0FBeUM7S0FDbkQ7SUFDRDtRQUNFLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsT0FBTyxFQUFFLDhDQUE4QztLQUN4RDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9lY2Ficy1jb21wb25lbnRzLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdID0gW1xyXG4gIHtcclxuICAgIHR5cGU6ICdyZXF1aXJlZCcsXHJcbiAgICBtZXNzYWdlOiAnRk9STVMuVkFMSURBVElPTi5MQUJFTF9SRVFVSVJFRCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiAnbWlubGVuZ3RoJyxcclxuICAgIG1lc3NhZ2U6ICdGT1JNUy5WQUxJREFUSU9OLk1JTl9MRU5HVEgnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogJ21heGxlbmd0aCcsXHJcbiAgICBtZXNzYWdlOiAnRk9STVMuVkFMSURBVElPTi5NQVhfTEVOR1RIJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6ICdtaW4nLFxyXG4gICAgbWVzc2FnZTogJ0ZPUk1TLlZBTElEQVRJT04uTUlOJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6ICdtYXgnLFxyXG4gICAgbWVzc2FnZTogJ0ZPUk1TLlZBTElEQVRJT04uTUFYJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6ICdtaW5WYWx1ZScsXHJcbiAgICBtZXNzYWdlOiAnRk9STVMuVkFMSURBVElPTi5NSU5fVkFMVUUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogJ21heFZhbHVlJyxcclxuICAgIG1lc3NhZ2U6ICdGT1JNUy5WQUxJREFUSU9OLk1BWF9WQUxVRScsXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiAndmFsaWRhdGVQaG9uZU51bWJlcicsXHJcbiAgICBtZXNzYWdlOiAnRk9STVMuVkFMSURBVElPTi5WQUxJREFURV9QSE9ORV9OVU1CRVInLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogJ3Bhc3REYXRlJyxcclxuICAgIG1lc3NhZ2U6ICdGT1JNUy5WQUxJREFUSU9OLlBBU1RfREFURScsXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiAnYWZmZWN0c0Vycm9yJyxcclxuICAgIG1lc3NhZ2U6ICdGT1JNUy5WQUxJREFUSU9OLkFGRkVDVFNfRVJST1InLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogJ21vcmVUaGFuJyxcclxuICAgIG1lc3NhZ2U6ICdGT1JNUy5WQUxJREFUSU9OLk1PUkVfVEhBTicsXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiAnbGVzc1RoYW4nLFxyXG4gICAgbWVzc2FnZTogJ0ZPUk1TLlZBTElEQVRJT04uTEVTU19USEFOJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6ICdlbWFpbCcsXHJcbiAgICBtZXNzYWdlOiAnRk9STVMuVkFMSURBVElPTi5FTUFJTCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiAnbnVtYmVyTW9yZVRoYW4nLFxyXG4gICAgbWVzc2FnZTogJ0ZPUk1TLlZBTElEQVRJT04uVkFMVUVfTU9SRV9USEFOJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6ICdudW1iZXJMZXNzVGhhbicsXHJcbiAgICBtZXNzYWdlOiAnRk9STVMuVkFMSURBVElPTi5WQUxVRV9MRVNTX1RIQU4nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogJ291dE9mUmFuZ2UnLFxyXG4gICAgbWVzc2FnZTogJ0ZPUk1TLlZBTElEQVRJT04uT1VUX09GX1JBTkdFJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6ICdpYmFuJyxcclxuICAgIG1lc3NhZ2U6ICdGT1JNUy5WQUxJREFUSU9OLklCQU4nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogJ3RpbWVJc0FmdGVyJyxcclxuICAgIG1lc3NhZ2U6ICdGT1JNUy5WQUxJREFUSU9OLkxFU1NfVEhBTl9USU1FJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6ICdibGFja2xpc3RlZCcsXHJcbiAgICBtZXNzYWdlOiAnRk9STVMuVkFMSURBVElPTi5CTEFDS0xJU1RFRCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiAnZnJvbVRvTm90Rm91bmQnLFxyXG4gICAgbWVzc2FnZTogJ0ZPUk1TLlZBTElEQVRJT04uRlJPTV9UT19OT1RfRk9VTkQnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogJ2Zyb21Ub05vdENvcnJlY3RDb3VudCcsXHJcbiAgICBtZXNzYWdlOiAnRk9STVMuVkFMSURBVElPTi5GUk9NX1RPX05PVF9DT1JSRUNUX0NPVU5UJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6ICd3aGl0ZXNwYWNlJyxcclxuICAgIG1lc3NhZ2U6ICdGT1JNUy5WQUxJREFUSU9OLldISVRFU1BBQ0UnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogJ2FscGhhbnVtZXJpYycsXHJcbiAgICBtZXNzYWdlOiAnRk9STVMuVkFMSURBVElPTi5BTFBIQU5VTUVSSUMnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogJ2RhdGVGcm9tUmFuZ2VSZXF1aXJlZCcsXHJcbiAgICBtZXNzYWdlOiAnRk9STVMuVkFMSURBVElPTi5EQVRFX0ZST01fUkFOR0VfUkVRVUlSRUQnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdHlwZTogJ2RhdGVUb1JhbmdlUmVxdWlyZWQnLFxyXG4gICAgbWVzc2FnZTogJ0ZPUk1TLlZBTElEQVRJT04uREFURV9UT19SQU5HRV9SRVFVSVJFRCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiAnZGF0ZUZyb21Nb3JlVGhhbkRhdGVUbycsXHJcbiAgICBtZXNzYWdlOiAnRk9STVMuVkFMSURBVElPTi5EQVRFX0ZST01fTU9SRV9USEFOX0RBVEVfVE8nLFxyXG4gIH0sXHJcbiAgICB7XHJcbiAgICB0eXBlOiAndGltZUZyb21SYW5nZVJlcXVpcmVkJyxcclxuICAgIG1lc3NhZ2U6ICdGT1JNUy5WQUxJREFUSU9OLlRJTUVfRlJPTV9SQU5HRV9SRVFVSVJFRCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB0eXBlOiAndGltZVRvUmFuZ2VSZXF1aXJlZCcsXHJcbiAgICBtZXNzYWdlOiAnRk9STVMuVkFMSURBVElPTi5USU1FX1RPX1JBTkdFX1JFUVVJUkVEJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHR5cGU6ICd0aW1lRnJvbU1vcmVUaGFuRGF0ZVRvJyxcclxuICAgIG1lc3NhZ2U6ICdGT1JNUy5WQUxJREFUSU9OLlRJTUVfRlJPTV9NT1JFX1RIQU5fVElNRV9UTycsXHJcbiAgfSxcclxuXTtcclxuIl19
|
|
@@ -1,93 +1,72 @@
|
|
|
1
|
-
import { Directive,
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { Maskito } from '@maskito/core';
|
|
3
|
+
import { createTimeMaskOptions } from '../utils/time-mask.util';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class EcabsMaskDateDirective {
|
|
6
6
|
element;
|
|
7
7
|
isDateTimeMask = false;
|
|
8
8
|
considerSeconds = false;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
maskDateTime = [
|
|
12
|
-
/\d/,
|
|
13
|
-
/\d/,
|
|
14
|
-
'/',
|
|
15
|
-
/\d/,
|
|
16
|
-
/\d/,
|
|
17
|
-
'/',
|
|
18
|
-
/\d/,
|
|
19
|
-
/\d/,
|
|
20
|
-
/\d/,
|
|
21
|
-
/\d/,
|
|
22
|
-
',',
|
|
23
|
-
' ',
|
|
24
|
-
/\d/,
|
|
25
|
-
/\d/,
|
|
26
|
-
':',
|
|
27
|
-
/\d/,
|
|
28
|
-
/\d/,
|
|
29
|
-
]; // dd/mm/yyyy, hh:mm
|
|
30
|
-
maskDateTimeWithSeconds = [
|
|
31
|
-
/\d/,
|
|
32
|
-
/\d/,
|
|
33
|
-
'/',
|
|
34
|
-
/\d/,
|
|
35
|
-
/\d/,
|
|
36
|
-
'/',
|
|
37
|
-
/\d/,
|
|
38
|
-
/\d/,
|
|
39
|
-
/\d/,
|
|
40
|
-
/\d/,
|
|
41
|
-
',',
|
|
42
|
-
' ',
|
|
43
|
-
/\d/,
|
|
44
|
-
/\d/,
|
|
45
|
-
':',
|
|
46
|
-
/\d/,
|
|
47
|
-
/\d/,
|
|
48
|
-
':',
|
|
49
|
-
/\d/,
|
|
50
|
-
/\d/,
|
|
51
|
-
]; // dd/mm/yyyy, hh:mm:ss
|
|
52
|
-
config;
|
|
9
|
+
maskedInput = null;
|
|
10
|
+
timeMaskOptions = createTimeMaskOptions();
|
|
53
11
|
constructor(element) {
|
|
54
12
|
this.element = element;
|
|
55
13
|
}
|
|
56
|
-
onNgModelChange(value) {
|
|
57
|
-
this.config.showMask = true;
|
|
58
|
-
if (!this.containsNumber(value.toString())) {
|
|
59
|
-
this.config.showMask = false;
|
|
60
|
-
this.maskedInputController.textMaskInputElement.update('');
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
14
|
ngOnInit() {
|
|
64
|
-
this.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
showMask: true,
|
|
68
|
-
pipe: this.isDateTimeMask
|
|
69
|
-
? this.considerSeconds
|
|
70
|
-
? createAutoCorrectedDatePipe('dd/mm/yyyy, HH:MM:SS')
|
|
71
|
-
: createAutoCorrectedDatePipe('dd/mm/yyyy, HH:MM')
|
|
72
|
-
: createAutoCorrectedDatePipe('dd/mm/yyyy'),
|
|
73
|
-
keepCharPositions: true,
|
|
74
|
-
mask: this.isDateTimeMask
|
|
75
|
-
? this.considerSeconds
|
|
76
|
-
? this.maskDateTimeWithSeconds
|
|
77
|
-
: this.maskDateTime
|
|
78
|
-
: this.mask,
|
|
79
|
-
};
|
|
80
|
-
this.maskedInputController = textMask.maskInput(this.config);
|
|
15
|
+
this.maskedInput = new Maskito(this.element.nativeElement, {
|
|
16
|
+
mask: ({ value }) => this.buildDynamicMask(value),
|
|
17
|
+
});
|
|
81
18
|
}
|
|
82
19
|
ngOnDestroy() {
|
|
83
|
-
this.
|
|
20
|
+
this.maskedInput?.destroy();
|
|
21
|
+
}
|
|
22
|
+
buildDynamicMask(value) {
|
|
23
|
+
const digits = value.replace(/\D/g, '');
|
|
24
|
+
const result = [];
|
|
25
|
+
result.push(...this.getDaySegment(digits));
|
|
26
|
+
result.push('/');
|
|
27
|
+
result.push(...this.getMonthSegment(digits));
|
|
28
|
+
result.push('/');
|
|
29
|
+
result.push(/\d/, /\d/, /\d/, /\d/);
|
|
30
|
+
if (!this.isDateTimeMask) {
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
const timeValue = this.extractTimeValue(value);
|
|
34
|
+
const timeMaskOption = this.timeMaskOptions.mask;
|
|
35
|
+
const timeMaskRaw = typeof timeMaskOption === 'function'
|
|
36
|
+
? timeMaskOption({
|
|
37
|
+
value: timeValue,
|
|
38
|
+
selection: [timeValue.length, timeValue.length],
|
|
39
|
+
})
|
|
40
|
+
: timeMaskOption;
|
|
41
|
+
const timeMask = Array.isArray(timeMaskRaw) ? timeMaskRaw : [timeMaskRaw];
|
|
42
|
+
result.push(',', ' ');
|
|
43
|
+
result.push(...timeMask);
|
|
44
|
+
if (this.considerSeconds) {
|
|
45
|
+
result.push(':');
|
|
46
|
+
result.push(/[0-5]/, /\d/);
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
getDaySegment(digits) {
|
|
51
|
+
const d1 = digits[0];
|
|
52
|
+
if (d1 === '3') {
|
|
53
|
+
return [/[0-3]/, /[0-1]/];
|
|
54
|
+
}
|
|
55
|
+
return [/[0-3]/, /\d/];
|
|
56
|
+
}
|
|
57
|
+
getMonthSegment(digits) {
|
|
58
|
+
const m1 = digits[2];
|
|
59
|
+
if (m1 === '1') {
|
|
60
|
+
return [/[0-1]/, /[0-2]/];
|
|
61
|
+
}
|
|
62
|
+
return [/[0-1]/, /\d/];
|
|
84
63
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return
|
|
64
|
+
extractTimeValue(value) {
|
|
65
|
+
const [, timePart = ''] = value.split(',');
|
|
66
|
+
return timePart.trimStart();
|
|
88
67
|
}
|
|
89
68
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsMaskDateDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
90
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EcabsMaskDateDirective, selector: "[ecabsMaskDate]", inputs: { isDateTimeMask: "isDateTimeMask", considerSeconds: "considerSeconds" },
|
|
69
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EcabsMaskDateDirective, selector: "[ecabsMaskDate]", inputs: { isDateTimeMask: "isDateTimeMask", considerSeconds: "considerSeconds" }, ngImport: i0 });
|
|
91
70
|
}
|
|
92
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsMaskDateDirective, decorators: [{
|
|
93
72
|
type: Directive,
|
|
@@ -98,8 +77,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
98
77
|
type: Input
|
|
99
78
|
}], considerSeconds: [{
|
|
100
79
|
type: Input
|
|
101
|
-
}], onNgModelChange: [{
|
|
102
|
-
type: HostListener,
|
|
103
|
-
args: ['ngModelChange', ['$event']]
|
|
104
80
|
}] } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tYXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvZGF0ZS1tYXNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFLaEUsTUFBTSxPQUFPLHNCQUFzQjtJQU9KO0lBTnBCLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDdkIsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUV6QixXQUFXLEdBQW1CLElBQUksQ0FBQztJQUMxQixlQUFlLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztJQUUzRCxZQUE2QixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO0lBQUcsQ0FBQztJQUVwRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUN6RCxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1NBQ2xELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FBYTtRQUNwQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxNQUFNLE1BQU0sR0FBd0IsRUFBRSxDQUFDO1FBRXZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QixPQUFPLE1BQU0sQ0FBQztTQUNmO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1FBQ2pELE1BQU0sV0FBVyxHQUNmLE9BQU8sY0FBYyxLQUFLLFVBQVU7WUFDbEMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztnQkFDYixLQUFLLEVBQUUsU0FBUztnQkFDaEIsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDO2FBQ2hELENBQUM7WUFDSixDQUFDLENBQUMsY0FBYyxDQUFDO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUxRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDNUI7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sYUFBYSxDQUFDLE1BQWM7UUFDbEMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksRUFBRSxLQUFLLEdBQUcsRUFBRTtZQUNkLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDM0I7UUFFRCxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlLENBQUMsTUFBYztRQUNwQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBSSxFQUFFLEtBQUssR0FBRyxFQUFFO1lBQ2QsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMzQjtRQUVELE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsTUFBTSxDQUFDLEVBQUUsUUFBUSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0MsT0FBTyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDOUIsQ0FBQzt3R0EvRVUsc0JBQXNCOzRGQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7aUdBRVUsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWFza2l0byB9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xyXG5pbXBvcnQgeyBjcmVhdGVUaW1lTWFza09wdGlvbnMgfSBmcm9tICcuLi91dGlscy90aW1lLW1hc2sudXRpbCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tlY2Fic01hc2tEYXRlXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic01hc2tEYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGlzRGF0ZVRpbWVNYXNrID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY29uc2lkZXJTZWNvbmRzID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgbWFza2VkSW5wdXQ6IE1hc2tpdG8gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHJlYWRvbmx5IHRpbWVNYXNrT3B0aW9ucyA9IGNyZWF0ZVRpbWVNYXNrT3B0aW9ucygpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYXNrZWRJbnB1dCA9IG5ldyBNYXNraXRvKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCB7XHJcbiAgICAgIG1hc2s6ICh7IHZhbHVlIH0pID0+IHRoaXMuYnVpbGREeW5hbWljTWFzayh2YWx1ZSksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYXNrZWRJbnB1dD8uZGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZER5bmFtaWNNYXNrKHZhbHVlOiBzdHJpbmcpOiAoc3RyaW5nIHwgUmVnRXhwKVtdIHtcclxuICAgIGNvbnN0IGRpZ2l0cyA9IHZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcbiAgICBjb25zdCByZXN1bHQ6IChzdHJpbmcgfCBSZWdFeHApW10gPSBbXTtcclxuXHJcbiAgICByZXN1bHQucHVzaCguLi50aGlzLmdldERheVNlZ21lbnQoZGlnaXRzKSk7XHJcbiAgICByZXN1bHQucHVzaCgnLycpO1xyXG5cclxuICAgIHJlc3VsdC5wdXNoKC4uLnRoaXMuZ2V0TW9udGhTZWdtZW50KGRpZ2l0cykpO1xyXG4gICAgcmVzdWx0LnB1c2goJy8nKTtcclxuXHJcbiAgICByZXN1bHQucHVzaCgvXFxkLywgL1xcZC8sIC9cXGQvLCAvXFxkLyk7XHJcblxyXG4gICAgaWYgKCF0aGlzLmlzRGF0ZVRpbWVNYXNrKSB7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGltZVZhbHVlID0gdGhpcy5leHRyYWN0VGltZVZhbHVlKHZhbHVlKTtcclxuICAgIGNvbnN0IHRpbWVNYXNrT3B0aW9uID0gdGhpcy50aW1lTWFza09wdGlvbnMubWFzaztcclxuICAgIGNvbnN0IHRpbWVNYXNrUmF3ID1cclxuICAgICAgdHlwZW9mIHRpbWVNYXNrT3B0aW9uID09PSAnZnVuY3Rpb24nXHJcbiAgICAgICAgPyB0aW1lTWFza09wdGlvbih7XHJcbiAgICAgICAgICAgIHZhbHVlOiB0aW1lVmFsdWUsXHJcbiAgICAgICAgICAgIHNlbGVjdGlvbjogW3RpbWVWYWx1ZS5sZW5ndGgsIHRpbWVWYWx1ZS5sZW5ndGhdLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICA6IHRpbWVNYXNrT3B0aW9uO1xyXG4gICAgY29uc3QgdGltZU1hc2sgPSBBcnJheS5pc0FycmF5KHRpbWVNYXNrUmF3KSA/IHRpbWVNYXNrUmF3IDogW3RpbWVNYXNrUmF3XTtcclxuXHJcbiAgICByZXN1bHQucHVzaCgnLCcsICcgJyk7XHJcbiAgICByZXN1bHQucHVzaCguLi50aW1lTWFzayk7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uc2lkZXJTZWNvbmRzKSB7XHJcbiAgICAgIHJlc3VsdC5wdXNoKCc6Jyk7XHJcbiAgICAgIHJlc3VsdC5wdXNoKC9bMC01XS8sIC9cXGQvKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXlTZWdtZW50KGRpZ2l0czogc3RyaW5nKTogKHN0cmluZyB8IFJlZ0V4cClbXSB7XHJcbiAgICBjb25zdCBkMSA9IGRpZ2l0c1swXTtcclxuICAgIGlmIChkMSA9PT0gJzMnKSB7XHJcbiAgICAgIHJldHVybiBbL1swLTNdLywgL1swLTFdL107XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFsvWzAtM10vLCAvXFxkL107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1vbnRoU2VnbWVudChkaWdpdHM6IHN0cmluZyk6IChzdHJpbmcgfCBSZWdFeHApW10ge1xyXG4gICAgY29uc3QgbTEgPSBkaWdpdHNbMl07XHJcbiAgICBpZiAobTEgPT09ICcxJykge1xyXG4gICAgICByZXR1cm4gWy9bMC0xXS8sIC9bMC0yXS9dO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBbL1swLTFdLywgL1xcZC9dO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHRyYWN0VGltZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgWywgdGltZVBhcnQgPSAnJ10gPSB2YWx1ZS5zcGxpdCgnLCcpO1xyXG5cclxuICAgIHJldHVybiB0aW1lUGFydC50cmltU3RhcnQoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,49 +1,26 @@
|
|
|
1
1
|
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import
|
|
2
|
+
import { Maskito } from '@maskito/core';
|
|
3
|
+
import { createTimeMaskOptions, createTimeRangeMaskOptions, } from '../utils/time-mask.util';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export class EcabsMaskTimeDirective {
|
|
5
6
|
element;
|
|
6
7
|
timeRange = false;
|
|
7
8
|
all;
|
|
8
|
-
|
|
9
|
-
maskTimeRange = [
|
|
10
|
-
/\d/,
|
|
11
|
-
/\d/,
|
|
12
|
-
':',
|
|
13
|
-
/\d/,
|
|
14
|
-
/\d/,
|
|
15
|
-
' ',
|
|
16
|
-
'-',
|
|
17
|
-
' ',
|
|
18
|
-
/\d/,
|
|
19
|
-
/\d/,
|
|
20
|
-
':',
|
|
21
|
-
/\d/,
|
|
22
|
-
/\d/,
|
|
23
|
-
];
|
|
24
|
-
maskTime = [/\d/, /\d/, ':', /\d/, /\d/];
|
|
9
|
+
maskedInput = null;
|
|
25
10
|
constructor(element) {
|
|
26
11
|
this.element = element;
|
|
27
12
|
}
|
|
28
13
|
ngOnInit() {
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
this.maskedInputController = textMask.maskInput({
|
|
32
|
-
inputElement: this.element.nativeElement,
|
|
33
|
-
guide: true,
|
|
34
|
-
showMask: false,
|
|
35
|
-
keepCharPositions: true,
|
|
36
|
-
mask: timeRange ? this.maskTimeRange : this.maskTime,
|
|
37
|
-
pipe: function (conformedValue) {
|
|
38
|
-
if (conformedValue === (timeRange ? '__:__ - __:__' : '__:__')) {
|
|
39
|
-
return all;
|
|
40
|
-
}
|
|
41
|
-
return conformedValue;
|
|
42
|
-
},
|
|
43
|
-
});
|
|
14
|
+
const options = this.getMaskOptions();
|
|
15
|
+
this.maskedInput = new Maskito(this.element.nativeElement, options);
|
|
44
16
|
}
|
|
45
17
|
ngOnDestroy() {
|
|
46
|
-
this.
|
|
18
|
+
this.maskedInput?.destroy();
|
|
19
|
+
}
|
|
20
|
+
getMaskOptions() {
|
|
21
|
+
return this.timeRange
|
|
22
|
+
? createTimeRangeMaskOptions()
|
|
23
|
+
: createTimeMaskOptions();
|
|
47
24
|
}
|
|
48
25
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsMaskTimeDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
49
26
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EcabsMaskTimeDirective, selector: "[ecabsTime]", inputs: { timeRange: "timeRange", all: "all" }, ngImport: i0 });
|
|
@@ -58,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
58
35
|
}], all: [{
|
|
59
36
|
type: Input
|
|
60
37
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1tYXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvdGltZS1tYXNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQiwwQkFBMEIsR0FDM0IsTUFBTSx5QkFBeUIsQ0FBQzs7QUFLakMsTUFBTSxPQUFPLHNCQUFzQjtJQU1KO0lBTHBCLFNBQVMsR0FBYSxLQUFLLENBQUM7SUFDNUIsR0FBRyxDQUFTO0lBRWIsV0FBVyxHQUFtQixJQUFJLENBQUM7SUFFM0MsWUFBNkIsT0FBbUI7UUFBbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtJQUFHLENBQUM7SUFFcEQsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sY0FBYztRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTO1lBQ25CLENBQUMsQ0FBQywwQkFBMEIsRUFBRTtZQUM5QixDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUM5QixDQUFDO3dHQXJCVSxzQkFBc0I7NEZBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7aUdBRVUsU0FBUztzQkFBakIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXNraXRvLCBNYXNraXRvT3B0aW9ucyB9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZVRpbWVNYXNrT3B0aW9ucyxcclxuICBjcmVhdGVUaW1lUmFuZ2VNYXNrT3B0aW9ucyxcclxufSBmcm9tICcuLi91dGlscy90aW1lLW1hc2sudXRpbCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tlY2Fic1RpbWVdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzTWFza1RpbWVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgdGltZVJhbmdlPzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFsbDogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIG1hc2tlZElucHV0OiBNYXNraXRvIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5nZXRNYXNrT3B0aW9ucygpO1xyXG4gICAgdGhpcy5tYXNrZWRJbnB1dCA9IG5ldyBNYXNraXRvKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYXNrZWRJbnB1dD8uZGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRNYXNrT3B0aW9ucygpOiBNYXNraXRvT3B0aW9ucyB7XHJcbiAgICByZXR1cm4gdGhpcy50aW1lUmFuZ2VcclxuICAgICAgPyBjcmVhdGVUaW1lUmFuZ2VNYXNrT3B0aW9ucygpXHJcbiAgICAgIDogY3JlYXRlVGltZU1hc2tPcHRpb25zKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,47 +1,21 @@
|
|
|
1
1
|
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import
|
|
2
|
+
import { Maskito } from '@maskito/core';
|
|
3
|
+
import { createTimeRangeMaskOptions } from '../utils/time-mask.util';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export class EcabsTimeRangeDirective {
|
|
5
6
|
element;
|
|
6
7
|
isDateTimeMask = false;
|
|
7
8
|
considerSeconds = false;
|
|
8
9
|
all = 'All';
|
|
9
|
-
|
|
10
|
-
maskDateTime = [
|
|
11
|
-
/\d/,
|
|
12
|
-
/\d/,
|
|
13
|
-
':',
|
|
14
|
-
/\d/,
|
|
15
|
-
/\d/,
|
|
16
|
-
' ',
|
|
17
|
-
'-',
|
|
18
|
-
' ',
|
|
19
|
-
/\d/,
|
|
20
|
-
/\d/,
|
|
21
|
-
':',
|
|
22
|
-
/\d/,
|
|
23
|
-
/\d/,
|
|
24
|
-
];
|
|
10
|
+
maskedInput = null;
|
|
25
11
|
constructor(element) {
|
|
26
12
|
this.element = element;
|
|
27
13
|
}
|
|
28
14
|
ngOnInit() {
|
|
29
|
-
this.
|
|
30
|
-
inputElement: this.element.nativeElement,
|
|
31
|
-
guide: true,
|
|
32
|
-
showMask: false,
|
|
33
|
-
keepCharPositions: true,
|
|
34
|
-
mask: this.maskDateTime,
|
|
35
|
-
pipe: function (conformedValue) {
|
|
36
|
-
if (conformedValue === '__:__ - __:__') {
|
|
37
|
-
return this.all;
|
|
38
|
-
}
|
|
39
|
-
return conformedValue;
|
|
40
|
-
},
|
|
41
|
-
});
|
|
15
|
+
this.maskedInput = new Maskito(this.element.nativeElement, createTimeRangeMaskOptions());
|
|
42
16
|
}
|
|
43
17
|
ngOnDestroy() {
|
|
44
|
-
this.
|
|
18
|
+
this.maskedInput?.destroy();
|
|
45
19
|
}
|
|
46
20
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsTimeRangeDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
47
21
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EcabsTimeRangeDirective, selector: "[ecabsTimeRange]", inputs: { isDateTimeMask: "isDateTimeMask", considerSeconds: "considerSeconds", all: "all" }, ngImport: i0 });
|
|
@@ -58,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
58
32
|
}], all: [{
|
|
59
33
|
type: Input
|
|
60
34
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1yYW5nZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS9kaXJlY3RpdmVzL3RpbWUtcmFuZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUtyRSxNQUFNLE9BQU8sdUJBQXVCO0lBT0w7SUFOcEIsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2QixlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFFYixXQUFXLEdBQW1CLElBQUksQ0FBQztJQUUzQyxZQUE2QixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO0lBQUcsQ0FBQztJQUVwRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQzFCLDBCQUEwQixFQUFFLENBQzdCLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDOUIsQ0FBQzt3R0FsQlUsdUJBQXVCOzRGQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7aUdBRVUsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hc2tpdG8gfSBmcm9tICdAbWFza2l0by9jb3JlJztcclxuaW1wb3J0IHsgY3JlYXRlVGltZVJhbmdlTWFza09wdGlvbnMgfSBmcm9tICcuLi91dGlscy90aW1lLW1hc2sudXRpbCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tlY2Fic1RpbWVSYW5nZV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNUaW1lUmFuZ2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgaXNEYXRlVGltZU1hc2sgPSBmYWxzZTtcclxuICBASW5wdXQoKSBjb25zaWRlclNlY29uZHMgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhbGwgPSAnQWxsJztcclxuXHJcbiAgcHJpdmF0ZSBtYXNrZWRJbnB1dDogTWFza2l0byB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYXNrZWRJbnB1dCA9IG5ldyBNYXNraXRvKFxyXG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcclxuICAgICAgY3JlYXRlVGltZVJhbmdlTWFza09wdGlvbnMoKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubWFza2VkSW5wdXQ/LmRlc3Ryb3koKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -29,11 +29,11 @@ export class EcabsElementWrapperComponent {
|
|
|
29
29
|
this.decrease.emit();
|
|
30
30
|
}
|
|
31
31
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsElementWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: { data: "data", showCloseIcon: "showCloseIcon", focusedFlag: "focusedFlag", showPassword: "showPassword", control: "control" }, outputs: { showHidePassword: "showHidePassword", clear: "clear", increase: "increase", decrease: "decrease" }, ngImport: i0, template: "<div\r\n class=\"form-field\"\r\n [ngClass]=\"{\r\n 'form-field--invalid':\r\n data?.showValidation && (data?.control?.touched || data?.showValidationOnNotTouched) && data?.control?.invalid,\r\n disabled: data?.disabled,\r\n 'form-field--required': data?.required && data?.showAsterisk\r\n }\"\r\n>\r\n <div class=\"flex\">\r\n <label\r\n
|
|
32
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: { data: "data", showCloseIcon: "showCloseIcon", focusedFlag: "focusedFlag", showPassword: "showPassword", control: "control" }, outputs: { showHidePassword: "showHidePassword", clear: "clear", increase: "increase", decrease: "decrease" }, ngImport: i0, template: "<div\r\n class=\"form-field\"\r\n [ngClass]=\"{\r\n 'form-field--invalid':\r\n data?.showValidation && (data?.control?.touched || data?.showValidationOnNotTouched) && data?.control?.invalid,\r\n disabled: data?.disabled,\r\n 'form-field--required': data?.required && data?.showAsterisk\r\n }\"\r\n>\r\n <div class=\"flex\">\r\n <label *ngIf=\"data?.label && data?.showLabel\"\r\n class=\"form-field__label\"\r\n [attr.for]=\"data?.name || data?.label\">\r\n <span [innerHTML]=\"data?.label\"></span>\r\n </label>\r\n <mat-icon class=\"icon ml-4 mat-icon-input-tooltip\" matTooltipClass=\"break-line-tooltip\" *ngIf=\"data?.tooltip\"\r\n [matTooltip]=\"data?.tooltip\">error_outline\r\n </mat-icon>\r\n </div>\r\n\r\n <div class=\"form-field__label-note\" *ngIf=\"data?.labelNote\" [innerHTML]=\"data?.labelNote\"></div>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ecabs-loading-spinner *ngIf=\"data?.showLocalLoading && data?.loading\"\r\n class=\"spinner\" size=\"tiny\"></ecabs-loading-spinner>\r\n\r\n <ecabs-hint [element]=\"data?.control\" [showHint]=\"data?.showHint\" [maxValue]=\"data?.maxLength\"></ecabs-hint>\r\n\r\n <ecabs-validations-messages\r\n *ngIf=\"data?.showValidation && !data?.hideValidationMessage\"\r\n [element]=\"data?.control\"\r\n [label]=\"data?.label ? data?.label : data?.placeholder ? data.placeholder : data?.validationLabel\"\r\n [showValidationOnNotTouched]=\"data?.showValidationOnNotTouched\"\r\n >\r\n </ecabs-validations-messages>\r\n</div>\r\n", styles: [":host ::ng-deep .break-line-tooltip{white-space:pre-line}:host ::ng-deep .mat-icon-input-tooltip{font-size:18px;height:18px;width:18px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EcabsSpinnerComponent, selector: "ecabs-loading-spinner", inputs: ["size"] }, { kind: "component", type: i3.ValidationComponent, selector: "ecabs-validations-messages", inputs: ["element", "label", "showValidationOnNotTouched", "updatedErrors"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.EcabsHintComponent, selector: "ecabs-hint", inputs: ["element", "maxValue", "showHint"] }] });
|
|
33
33
|
}
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsElementWrapperComponent, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
|
-
args: [{ selector: 'ecabs-element-wrapper', template: "<div\r\n class=\"form-field\"\r\n [ngClass]=\"{\r\n 'form-field--invalid':\r\n data?.showValidation && (data?.control?.touched || data?.showValidationOnNotTouched) && data?.control?.invalid,\r\n disabled: data?.disabled,\r\n 'form-field--required': data?.required && data?.showAsterisk\r\n }\"\r\n>\r\n <div class=\"flex\">\r\n <label\r\n
|
|
36
|
+
args: [{ selector: 'ecabs-element-wrapper', template: "<div\r\n class=\"form-field\"\r\n [ngClass]=\"{\r\n 'form-field--invalid':\r\n data?.showValidation && (data?.control?.touched || data?.showValidationOnNotTouched) && data?.control?.invalid,\r\n disabled: data?.disabled,\r\n 'form-field--required': data?.required && data?.showAsterisk\r\n }\"\r\n>\r\n <div class=\"flex\">\r\n <label *ngIf=\"data?.label && data?.showLabel\"\r\n class=\"form-field__label\"\r\n [attr.for]=\"data?.name || data?.label\">\r\n <span [innerHTML]=\"data?.label\"></span>\r\n </label>\r\n <mat-icon class=\"icon ml-4 mat-icon-input-tooltip\" matTooltipClass=\"break-line-tooltip\" *ngIf=\"data?.tooltip\"\r\n [matTooltip]=\"data?.tooltip\">error_outline\r\n </mat-icon>\r\n </div>\r\n\r\n <div class=\"form-field__label-note\" *ngIf=\"data?.labelNote\" [innerHTML]=\"data?.labelNote\"></div>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ecabs-loading-spinner *ngIf=\"data?.showLocalLoading && data?.loading\"\r\n class=\"spinner\" size=\"tiny\"></ecabs-loading-spinner>\r\n\r\n <ecabs-hint [element]=\"data?.control\" [showHint]=\"data?.showHint\" [maxValue]=\"data?.maxLength\"></ecabs-hint>\r\n\r\n <ecabs-validations-messages\r\n *ngIf=\"data?.showValidation && !data?.hideValidationMessage\"\r\n [element]=\"data?.control\"\r\n [label]=\"data?.label ? data?.label : data?.placeholder ? data.placeholder : data?.validationLabel\"\r\n [showValidationOnNotTouched]=\"data?.showValidationOnNotTouched\"\r\n >\r\n </ecabs-validations-messages>\r\n</div>\r\n", styles: [":host ::ng-deep .break-line-tooltip{white-space:pre-line}:host ::ng-deep .mat-icon-input-tooltip{font-size:18px;height:18px;width:18px}\n"] }]
|
|
37
37
|
}], propDecorators: { data: [{
|
|
38
38
|
type: Input
|
|
39
39
|
}], showCloseIcon: [{
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
53
53
|
}], decrease: [{
|
|
54
54
|
type: Output
|
|
55
55
|
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2VsZW1lbnQtd3JhcHBlci9lbGVtZW50LXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZWxlbWVudC13cmFwcGVyL2VsZW1lbnQtd3JhcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQU92RSxNQUFNLE9BQU8sNEJBQTRCO0lBQzlCLElBQUksQ0FBTztJQUNYLGFBQWEsQ0FBVztJQUN4QixXQUFXLENBQU87SUFDbEIsWUFBWSxDQUFXO0lBQ3ZCLE9BQU8sQ0FBTztJQUNiLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDM0MsS0FBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDaEMsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDbkMsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFN0Msa0JBQWtCLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7d0dBekJVLDRCQUE0Qjs0RkFBNUIsNEJBQTRCLG9UQ1B6Qyw0akRBcUNBOzs0RkQ5QmEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLHVCQUF1Qjs4QkFLeEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLWVsZW1lbnQtd3JhcHBlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZW1lbnQtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWxlbWVudC13cmFwcGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic0VsZW1lbnRXcmFwcGVyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBkYXRhITogYW55O1xyXG4gIEBJbnB1dCgpIHNob3dDbG9zZUljb24hOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGZvY3VzZWRGbGFnITogYW55O1xyXG4gIEBJbnB1dCgpIHNob3dQYXNzd29yZCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY29udHJvbCE6IGFueTtcclxuICBAT3V0cHV0KCkgc2hvd0hpZGVQYXNzd29yZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBjbGVhciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBpbmNyZWFzZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBkZWNyZWFzZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBzaG93SGlkZVBhc3N3b3JkRm4oZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93SGlkZVBhc3N3b3JkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJGbigpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xlYXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgaW5jcmVhc2VGbigpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5jcmVhc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZGVjcmVhc2VGbigpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVjcmVhc2UuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJmb3JtLWZpZWxkXCJcclxuICBbbmdDbGFzc109XCJ7XHJcbiAgICAnZm9ybS1maWVsZC0taW52YWxpZCc6XHJcbiAgICAgIGRhdGE/LnNob3dWYWxpZGF0aW9uICYmIChkYXRhPy5jb250cm9sPy50b3VjaGVkIHx8IGRhdGE/LnNob3dWYWxpZGF0aW9uT25Ob3RUb3VjaGVkKSAmJiBkYXRhPy5jb250cm9sPy5pbnZhbGlkLFxyXG4gICAgZGlzYWJsZWQ6IGRhdGE/LmRpc2FibGVkLFxyXG4gICAgJ2Zvcm0tZmllbGQtLXJlcXVpcmVkJzogZGF0YT8ucmVxdWlyZWQgJiYgZGF0YT8uc2hvd0FzdGVyaXNrXHJcbiAgfVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgPGxhYmVsICpuZ0lmPVwiZGF0YT8ubGFiZWwgJiYgZGF0YT8uc2hvd0xhYmVsXCJcclxuICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2xhYmVsXCJcclxuICAgICAgICAgICBbYXR0ci5mb3JdPVwiZGF0YT8ubmFtZSB8fCBkYXRhPy5sYWJlbFwiPlxyXG4gICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImRhdGE/LmxhYmVsXCI+PC9zcGFuPlxyXG4gICAgPC9sYWJlbD5cclxuICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gbWwtNCBtYXQtaWNvbi1pbnB1dC10b29sdGlwXCIgbWF0VG9vbHRpcENsYXNzPVwiYnJlYWstbGluZS10b29sdGlwXCIgKm5nSWY9XCJkYXRhPy50b29sdGlwXCJcclxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJkYXRhPy50b29sdGlwXCI+ZXJyb3Jfb3V0bGluZVxyXG4gICAgPC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX2xhYmVsLW5vdGVcIiAqbmdJZj1cImRhdGE/LmxhYmVsTm90ZVwiIFtpbm5lckhUTUxdPVwiZGF0YT8ubGFiZWxOb3RlXCI+PC9kaXY+XHJcblxyXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuXHJcbiAgPGVjYWJzLWxvYWRpbmctc3Bpbm5lciAqbmdJZj1cImRhdGE/LnNob3dMb2NhbExvYWRpbmcgJiYgZGF0YT8ubG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwaW5uZXJcIiBzaXplPVwidGlueVwiPjwvZWNhYnMtbG9hZGluZy1zcGlubmVyPlxyXG5cclxuICA8ZWNhYnMtaGludCBbZWxlbWVudF09XCJkYXRhPy5jb250cm9sXCIgW3Nob3dIaW50XT1cImRhdGE/LnNob3dIaW50XCIgW21heFZhbHVlXT1cImRhdGE/Lm1heExlbmd0aFwiPjwvZWNhYnMtaGludD5cclxuXHJcbiAgPGVjYWJzLXZhbGlkYXRpb25zLW1lc3NhZ2VzXHJcbiAgICAqbmdJZj1cImRhdGE/LnNob3dWYWxpZGF0aW9uICYmICFkYXRhPy5oaWRlVmFsaWRhdGlvbk1lc3NhZ2VcIlxyXG4gICAgW2VsZW1lbnRdPVwiZGF0YT8uY29udHJvbFwiXHJcbiAgICBbbGFiZWxdPVwiZGF0YT8ubGFiZWwgPyBkYXRhPy5sYWJlbCA6IGRhdGE/LnBsYWNlaG9sZGVyID8gZGF0YS5wbGFjZWhvbGRlciA6IGRhdGE/LnZhbGlkYXRpb25MYWJlbFwiXHJcbiAgICBbc2hvd1ZhbGlkYXRpb25Pbk5vdFRvdWNoZWRdPVwiZGF0YT8uc2hvd1ZhbGlkYXRpb25Pbk5vdFRvdWNoZWRcIlxyXG4gID5cclxuICA8L2VjYWJzLXZhbGlkYXRpb25zLW1lc3NhZ2VzPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvbW9kZWxzL3Bob25lLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUGhvbmVOdW1iZXJGb3JtYXQgPSAnZGVmYXVsdCcgfCAnbmF0aW9uYWwnIHwgJ2ludGVybmF0aW9uYWwnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ291bnRyeSA9IHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgaXNvMjogc3RyaW5nO1xyXG4gIGRpYWxDb2RlOiBzdHJpbmc7XHJcbiAgcHJpb3JpdHk6IG51bWJlcjtcclxuICBhcmVhQ29kZXM/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvbW9kZWxzL3Bob25lLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUGhvbmVOdW1iZXJGb3JtYXQgPSAnZGVmYXVsdCcgfCAnbmF0aW9uYWwnIHwgJ2ludGVybmF0aW9uYWwnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ291bnRyeSA9IHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgaXNvMjogc3RyaW5nO1xyXG4gIGRpYWxDb2RlOiBzdHJpbmc7XHJcbiAgcHJpb3JpdHk6IG51bWJlcjtcclxuICBhcmVhQ29kZXM/OiBzdHJpbmdbXTtcclxuICBmbGFnQ2xhc3M6IHN0cmluZztcclxuICBwbGFjZUhvbGRlcj86IHN0cmluZztcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFBob25lTnVtYmVyQ29kZVR5cGUgPSAnaXNvJyB8ICdjYWxsaW5nJztcclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL21vZGVscy9zZWxlY3QubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvbjxUID0gdW5rbm93bj4ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdmFsdWU6IFQ7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS9tb2RlbHMvc2lkZWJhci5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2lkZWJhck1lbnVJdGVtIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIGV4cGFuZD86IGJvb2xlYW47XHJcbiAgc3ViSXRlbXM/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS9tb2RlbHMvc2lkZWJhci5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2lkZWJhck1lbnVJdGVtIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIGV4cGFuZD86IGJvb2xlYW47XHJcbiAgc3ViSXRlbXM/OiBTaWRlYmFyTWVudUl0ZW1bXTtcclxuICBwZXJtaXNzaW9ucz86IFBlcm1pc3Npb25WYWx1ZUVudW08c3RyaW5nPltdO1xyXG4gIGljb25SZXNvdXJjZT86IFNpZGViYXJJY29uUmVzb3VyY2U7XHJcbiAgYmFkZ2U/OiBzdHJpbmc7XHJcbn1cclxuXHJcbnR5cGUgUGVybWlzc2lvblZhbHVlRW51bTxUIGV4dGVuZHMgc3RyaW5nPiA9IHtcclxuICB2YWx1ZXM6IFJlY29yZDxULCBzdHJpbmc+O1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaWRlYmFySWNvblJlc291cmNlIHtcclxuICBwYXRoOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { parsePhoneNumberFromString } from 'libphonenumber-js';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NumberToCountryCodePipe {
|
|
5
|
+
transform(phoneNumber, type = 'iso', withFlagClass = false) {
|
|
6
|
+
if (!phoneNumber) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
const parsedPhoneNumber = parsePhoneNumberFromString(phoneNumber);
|
|
10
|
+
if (!parsedPhoneNumber?.isValid()) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const value = type === 'calling'
|
|
14
|
+
? parsedPhoneNumber.countryCallingCode
|
|
15
|
+
: parsedPhoneNumber.country?.toLowerCase();
|
|
16
|
+
if (!value) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return withFlagClass ? `fi fi-${value}` : value;
|
|
20
|
+
}
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberToCountryCodePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
22
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NumberToCountryCodePipe, isStandalone: true, name: "numberToCountryCode" });
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberToCountryCodePipe, decorators: [{
|
|
25
|
+
type: Pipe,
|
|
26
|
+
args: [{
|
|
27
|
+
name: 'numberToCountryCode',
|
|
28
|
+
standalone: true,
|
|
29
|
+
}]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLWNvdW50cnktY29kZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvcGlwZXMvcGhvbmUtbnVtYmVyLWNvdW50cnktY29kZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU8vRCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFNBQVMsQ0FDUCxXQUEwQixFQUMxQixPQUE0QixLQUFLLEVBQ2pDLGFBQWEsR0FBRyxLQUFLO1FBRXJCLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE1BQU0saUJBQWlCLEdBQUcsMEJBQTBCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2pDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLEtBQUssR0FDVCxJQUFJLEtBQUssU0FBUztZQUNoQixDQUFDLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCO1lBQ3RDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFFL0MsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2xELENBQUM7d0dBMUJVLHVCQUF1QjtzR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUpuQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxxQkFBcUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgcGFyc2VQaG9uZU51bWJlckZyb21TdHJpbmcgfSBmcm9tICdsaWJwaG9uZW51bWJlci1qcyc7XHJcbmltcG9ydCB7IFBob25lTnVtYmVyQ29kZVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvcGhvbmUubW9kZWxzJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnbnVtYmVyVG9Db3VudHJ5Q29kZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE51bWJlclRvQ291bnRyeUNvZGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKFxyXG4gICAgcGhvbmVOdW1iZXI6IHN0cmluZyB8IG51bGwsXHJcbiAgICB0eXBlOiBQaG9uZU51bWJlckNvZGVUeXBlID0gJ2lzbycsXHJcbiAgICB3aXRoRmxhZ0NsYXNzID0gZmFsc2UsXHJcbiAgKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAoIXBob25lTnVtYmVyKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcnNlZFBob25lTnVtYmVyID0gcGFyc2VQaG9uZU51bWJlckZyb21TdHJpbmcocGhvbmVOdW1iZXIpO1xyXG5cclxuICAgIGlmICghcGFyc2VkUGhvbmVOdW1iZXI/LmlzVmFsaWQoKSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWx1ZSA9XHJcbiAgICAgIHR5cGUgPT09ICdjYWxsaW5nJ1xyXG4gICAgICAgID8gcGFyc2VkUGhvbmVOdW1iZXIuY291bnRyeUNhbGxpbmdDb2RlXHJcbiAgICAgICAgOiBwYXJzZWRQaG9uZU51bWJlci5jb3VudHJ5Py50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHdpdGhGbGFnQ2xhc3MgPyBgZmkgZmktJHt2YWx1ZX1gIDogdmFsdWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -2,10 +2,20 @@ import { Pipe } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class EcabsTruncatePipe {
|
|
4
4
|
transform(value, limit = 24, trimAtWords = false, trail = '...') {
|
|
5
|
-
if (
|
|
6
|
-
|
|
5
|
+
if (!value) {
|
|
6
|
+
return '';
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
if (value.length <= limit) {
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
let resultLimit = limit;
|
|
12
|
+
if (trimAtWords && value.length > limit) {
|
|
13
|
+
const trimmedAtWord = value.substring(0, limit).lastIndexOf(' ');
|
|
14
|
+
resultLimit = trimmedAtWord > 0 ? trimmedAtWord : limit;
|
|
15
|
+
}
|
|
16
|
+
return value?.length > resultLimit
|
|
17
|
+
? value.substring(0, resultLimit) + trail
|
|
18
|
+
: value;
|
|
9
19
|
}
|
|
10
20
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsTruncatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
11
21
|
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsTruncatePipe, name: "truncate" });
|
|
@@ -16,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
16
26
|
name: 'truncate',
|
|
17
27
|
}]
|
|
18
28
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL3BpcGVzL3RydW5jYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7O0FBS2xELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsU0FBUyxDQUNQLEtBQWEsRUFDYixLQUFLLEdBQUcsRUFBRSxFQUNWLFdBQVcsR0FBRyxLQUFLLEVBQ25CLEtBQUssR0FBRyxLQUFLO1FBRWIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFFeEIsSUFBSSxXQUFXLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUU7WUFDdkMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pFLFdBQVcsR0FBRyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUN6RDtRQUVELE9BQU8sS0FBSyxFQUFFLE1BQU0sR0FBRyxXQUFXO1lBQ2hDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFLO1lBQ3pDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDWixDQUFDO3dHQXpCVSxpQkFBaUI7c0dBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFIN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsVUFBVTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICd0cnVuY2F0ZScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic1RydW5jYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShcclxuICAgIHZhbHVlOiBzdHJpbmcsXHJcbiAgICBsaW1pdCA9IDI0LFxyXG4gICAgdHJpbUF0V29yZHMgPSBmYWxzZSxcclxuICAgIHRyYWlsID0gJy4uLicsXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2YWx1ZS5sZW5ndGggPD0gbGltaXQpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByZXN1bHRMaW1pdCA9IGxpbWl0O1xyXG5cclxuICAgIGlmICh0cmltQXRXb3JkcyAmJiB2YWx1ZS5sZW5ndGggPiBsaW1pdCkge1xyXG4gICAgICBjb25zdCB0cmltbWVkQXRXb3JkID0gdmFsdWUuc3Vic3RyaW5nKDAsIGxpbWl0KS5sYXN0SW5kZXhPZignICcpO1xyXG4gICAgICByZXN1bHRMaW1pdCA9IHRyaW1tZWRBdFdvcmQgPiAwID8gdHJpbW1lZEF0V29yZCA6IGxpbWl0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZT8ubGVuZ3RoID4gcmVzdWx0TGltaXRcclxuICAgICAgPyB2YWx1ZS5zdWJzdHJpbmcoMCwgcmVzdWx0TGltaXQpICsgdHJhaWxcclxuICAgICAgOiB2YWx1ZTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -56,4 +56,12 @@ export const removeEmpty = (o, exceptProperties = []) => {
|
|
|
56
56
|
}
|
|
57
57
|
return o;
|
|
58
58
|
};
|
|
59
|
-
|
|
59
|
+
export function getRandomItems(items, count) {
|
|
60
|
+
const copy = [...items];
|
|
61
|
+
for (let i = copy.length - 1; i > 0; i--) {
|
|
62
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
63
|
+
[copy[i], copy[j]] = [copy[j], copy[i]];
|
|
64
|
+
}
|
|
65
|
+
return copy.slice(0, count);
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvdXRpbHMvb2JqZWN0LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sUUFBUSxHQUFHLENBQUksR0FBTSxFQUFFLFVBQXFCLEVBQU8sRUFBRTtJQUN6RCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXZDLFFBQVEsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUMzQixLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ1gsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBWSxDQUFDLENBQUM7WUFFcEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ25EO1FBRUQsS0FBSyxRQUFRO1lBQ1gsT0FBUSxLQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXpDLEtBQUssUUFBUTtZQUNYLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFZLENBQUMsQ0FBQztRQUV0RTtZQUNFLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQ3pCLElBQU8sRUFDUCxJQUFPLEVBQ1AsVUFBcUIsRUFDYixFQUFFO0lBQ1YsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMxQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRTFDLElBQUksTUFBTSxHQUFHLE1BQU0sRUFBRTtRQUNuQixPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDekM7U0FBTSxJQUFJLE1BQU0sR0FBRyxNQUFNLEVBQUU7UUFDMUIsT0FBTyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3pDO0lBRUQsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxHQUFHLEVBQ0gsbUJBQTZCLEVBQUUsRUFDNUIsRUFBRTtJQUNMLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVsQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQy9CLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNqQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7U0FDaEU7YUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDakMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsNEVBQTRFO0lBQzVFLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDOUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDcEIsNEVBQTRFO1NBQzNFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDaEMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXZELE9BQU8sV0FBVyxDQUNoQixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQzlCLGdCQUFnQixDQUNaLENBQUM7QUFDVCxDQUFDLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBSSxDQUFDLEVBQUUsbUJBQTZCLEVBQUUsRUFBSyxFQUFFO0lBQ3RFLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2pCLElBQ0UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUTtZQUN4QixnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDL0Q7WUFDQSxTQUFTO1NBQ1Y7UUFFRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbEMsZ0VBQWdFO1lBQ2hFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2I7S0FDRjtJQUVELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLGNBQWMsQ0FBSSxLQUFVLEVBQUUsS0FBYTtJQUN6RCxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFFeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDekM7SUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNvcnRlcjxUPiB7XHJcbiAgcHJvcGVydHk6IEV4dHJhY3Q8a2V5b2YgVCwgc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZT47XHJcbiAgaXNEZXNjZW5kaW5nOiBib29sZWFuO1xyXG4gIGRhdGFUeXBlPzogJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdkYXRlJztcclxufVxyXG5cclxuY29uc3QgZ2V0VmFsdWUgPSA8VD4ob2JqOiBULCBzb3J0UGFyYW1zOiBTb3J0ZXI8VD4pOiBhbnkgPT4ge1xyXG4gIGNvbnN0IHZhbHVlID0gb2JqW3NvcnRQYXJhbXMucHJvcGVydHldO1xyXG5cclxuICBzd2l0Y2ggKHNvcnRQYXJhbXMuZGF0YVR5cGUpIHtcclxuICAgIGNhc2UgJ2RhdGUnOiB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSBhcyBhbnkpO1xyXG5cclxuICAgICAgcmV0dXJuIGlzTmFOKGRhdGUuZ2V0VGltZSgpKSA/IDAgOiBkYXRlLmdldFRpbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICByZXR1cm4gKHZhbHVlIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogcGFyc2VGbG9hdCh2YWx1ZSBhcyBhbnkpO1xyXG5cclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3Qgc29ydEdlbmVyaWMgPSA8VD4oXHJcbiAgb2JqWDogVCxcclxuICBvYmpZOiBULFxyXG4gIHNvcnRQYXJhbXM6IFNvcnRlcjxUPixcclxuKTogbnVtYmVyID0+IHtcclxuICBjb25zdCB2YWx1ZVggPSBnZXRWYWx1ZShvYmpYLCBzb3J0UGFyYW1zKTtcclxuICBjb25zdCB2YWx1ZVkgPSBnZXRWYWx1ZShvYmpZLCBzb3J0UGFyYW1zKTtcclxuXHJcbiAgaWYgKHZhbHVlWCA+IHZhbHVlWSkge1xyXG4gICAgcmV0dXJuIHNvcnRQYXJhbXMuaXNEZXNjZW5kaW5nID8gLTEgOiAxO1xyXG4gIH0gZWxzZSBpZiAodmFsdWVYIDwgdmFsdWVZKSB7XHJcbiAgICByZXR1cm4gc29ydFBhcmFtcy5pc0Rlc2NlbmRpbmcgPyAxIDogLTE7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gMDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCByZW1vdmVOdWxsVW5kZWZpbmVkcyA9IDxUPihcclxuICBvYmosXHJcbiAgZXhjZXB0UHJvcGVydGllczogc3RyaW5nW10gPSBbXSxcclxuKTogVCA9PiB7XHJcbiAgY29uc3QgbmV3T2JqID0ge307XHJcblxyXG4gIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICBpZiAob2JqW2tleV0gPT09IE9iamVjdChvYmpba2V5XSkpIHtcclxuICAgICAgbmV3T2JqW2tleV0gPSByZW1vdmVOdWxsVW5kZWZpbmVkcyhvYmpba2V5XSwgZXhjZXB0UHJvcGVydGllcyk7XHJcbiAgICB9IGVsc2UgaWYgKG9ialtrZXldICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1mdW5jdGlvbi1yZXR1cm4tdHlwZVxyXG4gIGNvbnN0IHBpY2tCeSA9IChvYmplY3QsIHByZWRpY2F0ZSA9ICh2KSA9PiB2KSA9PlxyXG4gICAgT2JqZWN0LmVudHJpZXMob2JqZWN0KVxyXG4gICAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIG5vLXVudXNlZC12YXJzXHJcbiAgICAgIC5maWx0ZXIoKFtrLCB2XSkgPT4gcHJlZGljYXRlKHYpKVxyXG4gICAgICAucmVkdWNlKChhY2MsIFtrLCB2XSkgPT4gKHsgLi4uYWNjLCBba106IHYgfSksIHt9KTtcclxuXHJcbiAgcmV0dXJuIHJlbW92ZUVtcHR5KFxyXG4gICAgcGlja0J5KG9iaiwgKHYpID0+IHYgIT09IG51bGwpLFxyXG4gICAgZXhjZXB0UHJvcGVydGllcyxcclxuICApIGFzIFQ7XHJcbn07XHJcbmV4cG9ydCBjb25zdCByZW1vdmVFbXB0eSA9IDxUPihvLCBleGNlcHRQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IFtdKTogVCA9PiB7XHJcbiAgZm9yIChjb25zdCBrIGluIG8pIHtcclxuICAgIGlmIChcclxuICAgICAgIW9ba10gfHxcclxuICAgICAgdHlwZW9mIG9ba10gIT09ICdvYmplY3QnIHx8XHJcbiAgICAgIGV4Y2VwdFByb3BlcnRpZXMuZmluZEluZGV4KChwcm9wZXJ0eSkgPT4gcHJvcGVydHkgPT09IGspICE9PSAtMVxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnRpbnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUVtcHR5KG9ba10pO1xyXG4gICAgaWYgKE9iamVjdC5rZXlzKG9ba10pLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlXHJcbiAgICAgIGRlbGV0ZSBvW2tdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG87XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmFuZG9tSXRlbXM8VT4oaXRlbXM6IFVbXSwgY291bnQ6IG51bWJlcik6IFVbXSB7XHJcbiAgY29uc3QgY29weSA9IFsuLi5pdGVtc107XHJcblxyXG4gIGZvciAobGV0IGkgPSBjb3B5Lmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHtcclxuICAgIGNvbnN0IGogPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoaSArIDEpKTtcclxuICAgIFtjb3B5W2ldLCBjb3B5W2pdXSA9IFtjb3B5W2pdLCBjb3B5W2ldXTtcclxuICB9XHJcblxyXG4gIHJldHVybiBjb3B5LnNsaWNlKDAsIGNvdW50KTtcclxufVxyXG4iXX0=
|