myrta-ui 1.0.65 → 17.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/alert/alert.component.mjs +43 -0
- package/{esm2020 → esm2022}/lib/components/alert/alert.enum.mjs +14 -14
- package/esm2022/lib/components/alert/alert.module.mjs +19 -0
- package/{esm2020 → esm2022}/lib/components/badges/badge.enum.mjs +31 -31
- package/esm2022/lib/components/badges/badges.module.mjs +30 -0
- package/esm2022/lib/components/badges/components/badge/badge.component.mjs +61 -0
- package/{esm2020 → esm2022}/lib/components/badges/components/badge-group/badge-group.component.mjs +11 -11
- package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +28 -0
- package/{esm2020 → esm2022}/lib/components/breadcrumbs/breadcrumbs.enum.mjs +5 -5
- package/esm2022/lib/components/breadcrumbs/breadcrumbs.module.mjs +25 -0
- package/esm2022/lib/components/button/button.component.mjs +100 -0
- package/esm2022/lib/components/button/button.enum.mjs +27 -0
- package/esm2022/lib/components/button/button.module.mjs +21 -0
- package/esm2022/lib/components/cdk-tooltip/cdk-tooltip/tooltip-container.component.mjs +29 -0
- package/esm2022/lib/components/cdk-tooltip/cdk-tooltip.directive.mjs +99 -0
- package/esm2022/lib/components/cdk-tooltip/cdk-tooltip.module.mjs +21 -0
- package/{esm2020 → esm2022}/lib/components/cdk-tooltip/constants/index.mjs +69 -69
- package/{esm2020 → esm2022}/lib/components/cdk-tooltip/models/tooltip-data.mjs +1 -1
- package/esm2022/lib/components/chars-left/chars-left.component.mjs +24 -0
- package/esm2022/lib/components/chars-left/chars-left.module.mjs +19 -0
- package/esm2022/lib/components/dropdown/directives/hide-after-click.directive.mjs +24 -0
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +107 -0
- package/esm2022/lib/components/dropdown/dropdown.module.mjs +21 -0
- package/esm2022/lib/components/error-message/error-message.component.mjs +32 -0
- package/esm2022/lib/components/error-message/error-message.module.mjs +19 -0
- package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +153 -0
- package/{esm2020 → esm2022}/lib/components/form/checkbox/checkbox.enum.mjs +4 -4
- package/esm2022/lib/components/form/checkbox/checkbox.module.mjs +22 -0
- package/esm2022/lib/components/form/checkbox-group/checkbox-group.component.mjs +178 -0
- package/esm2022/lib/components/form/checkbox-group/checkbox-group.module.mjs +47 -0
- package/{esm2020 → esm2022}/lib/components/form/checkbox-group/components/checkbox-group-header/checkbox-group-header.component.mjs +48 -49
- package/esm2022/lib/components/form/checkbox-group/components/checkbox-group-item/checkbox-group-item.component.mjs +106 -0
- package/esm2022/lib/components/form/checkbox-group/helpers/change-group-value.mjs +20 -0
- package/esm2022/lib/components/form/checkbox-group/helpers/change-item-value.mjs +15 -0
- package/esm2022/lib/components/form/checkbox-group/helpers/filter-search-group.mjs +27 -0
- package/esm2022/lib/components/form/checkbox-group/helpers/get-checked-items.mjs +20 -0
- package/{esm2020 → esm2022}/lib/components/form/checkbox-group/helpers/get-item-by-id.mjs +10 -10
- package/esm2022/lib/components/form/checkbox-group/helpers/get-sorted-list.mjs +50 -0
- package/{esm2020 → esm2022}/lib/components/form/checkbox-group/models/checkbox-group.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/components/form/editor/config/default-inline-style.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/form/editor/config/index.mjs +1 -1
- package/{esm2020 → esm2022}/lib/components/form/editor/config/popups-toolbar.mjs +8 -8
- package/{esm2020 → esm2022}/lib/components/form/editor/config/toolbar.mjs +71 -71
- package/esm2022/lib/components/form/editor/editor.component.mjs +261 -0
- package/esm2022/lib/components/form/editor/editor.module.mjs +45 -0
- package/{esm2020 → esm2022}/lib/components/form/editor/models/toolbar.model.mjs +1 -1
- package/esm2022/lib/components/form/editor/modules/change-icon-module.mjs +92 -0
- package/{esm2020 → esm2022}/lib/components/form/input-date-time/constants/value-models.mjs +13 -13
- package/{esm2020 → esm2022}/lib/components/form/input-date-time/enum/timezone.mjs +6 -6
- package/{esm2020 → esm2022}/lib/components/form/input-date-time/helpers/clean-date.mjs +4 -4
- package/esm2022/lib/components/form/input-date-time/helpers/cursor-position.mjs +23 -0
- package/esm2022/lib/components/form/input-date-time/helpers/formatting-from-models.mjs +10 -0
- package/{esm2020 → esm2022}/lib/components/form/input-date-time/helpers/formatting-moscow-timezone.mjs +9 -9
- package/{esm2020 → esm2022}/lib/components/form/input-date-time/helpers/validate-value-models.mjs +60 -60
- package/{esm2020 → esm2022}/lib/components/form/input-date-time/helpers/value-parser.mjs +38 -38
- package/esm2022/lib/components/form/input-date-time/input-date-time.component.mjs +386 -0
- package/{esm2020 → esm2022}/lib/components/form/input-date-time/input-date-time.enum.mjs +6 -6
- package/esm2022/lib/components/form/input-date-time/input-date-time.module.mjs +46 -0
- package/{esm2020 → esm2022}/lib/components/form/input-datepicker/constants/value-models.mjs +14 -14
- package/{esm2020 → esm2022}/lib/components/form/input-datepicker/helpers/clean-date.mjs +4 -4
- package/esm2022/lib/components/form/input-datepicker/helpers/cursor-position.mjs +23 -0
- package/esm2022/lib/components/form/input-datepicker/helpers/get-date-dayjs-object.mjs +10 -0
- package/esm2022/lib/components/form/input-datepicker/helpers/get-date-object.mjs +10 -0
- package/{esm2020 → esm2022}/lib/components/form/input-datepicker/helpers/validate-value-models.mjs +74 -74
- package/{esm2020 → esm2022}/lib/components/form/input-datepicker/helpers/value-parser.mjs +47 -47
- package/esm2022/lib/components/form/input-datepicker/input-datepicker.component.mjs +356 -0
- package/{esm2020 → esm2022}/lib/components/form/input-datepicker/input-datepicker.enum.mjs +6 -6
- package/esm2022/lib/components/form/input-datepicker/input-datepicker.module.mjs +46 -0
- package/{esm2020 → esm2022}/lib/components/form/input-file/enums/error-messages.enum.mjs +7 -7
- package/esm2022/lib/components/form/input-file/input-file.component.mjs +370 -0
- package/{esm2020 → esm2022}/lib/components/form/input-file/input-file.enum.mjs +7 -7
- package/esm2022/lib/components/form/input-file/input-file.module.mjs +26 -0
- package/esm2022/lib/components/form/input-file-image/components/file-image-edit-modal/file-image-edit-modal.component.mjs +88 -0
- package/esm2022/lib/components/form/input-file-image/input-file-image.component.mjs +364 -0
- package/{esm2020 → esm2022}/lib/components/form/input-file-image/input-file-image.enum.mjs +9 -9
- package/esm2022/lib/components/form/input-file-image/input-file-image.module.mjs +51 -0
- package/esm2022/lib/components/form/input-number/input-number.component.mjs +267 -0
- package/{esm2020 → esm2022}/lib/components/form/input-number/input-number.enum.mjs +6 -6
- package/esm2022/lib/components/form/input-number/input-number.module.mjs +55 -0
- package/esm2022/lib/components/form/input-opt/components/input-opt/input-opt.component.mjs +370 -0
- package/{esm2020 → esm2022}/lib/components/form/input-opt/components/input-opt/input-opt.enum.mjs +7 -7
- package/esm2022/lib/components/form/input-opt/directives/opt-pattern.directive.mjs +43 -0
- package/esm2022/lib/components/form/input-opt/input-opt.module.mjs +38 -0
- package/{esm2020 → esm2022}/lib/components/form/input-opt/models/input-opt.model.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/form/input-opt/services/input-opt.service.mjs +33 -33
- package/esm2022/lib/components/form/input-password/input-password.component.mjs +118 -0
- package/{esm2020 → esm2022}/lib/components/form/input-password/input-password.enum.mjs +6 -6
- package/esm2022/lib/components/form/input-password/input-password.module.mjs +36 -0
- package/esm2022/lib/components/form/input-phone/data/country-code.mjs +1331 -0
- package/esm2022/lib/components/form/input-phone/directives/native-element-injector.directive.mjs +35 -0
- package/{esm2020 → esm2022}/lib/components/form/input-phone/enums/country-iso.enum.mjs +246 -246
- package/{esm2020 → esm2022}/lib/components/form/input-phone/enums/input-phone.enum.mjs +6 -6
- package/{esm2020 → esm2022}/lib/components/form/input-phone/enums/mask.enum.mjs +138 -138
- package/{esm2020 → esm2022}/lib/components/form/input-phone/enums/phone-number-format.enum.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/form/input-phone/enums/search-country-field.enum.mjs +7 -7
- package/esm2022/lib/components/form/input-phone/input-phone.component.mjs +679 -0
- package/esm2022/lib/components/form/input-phone/input-phone.module.mjs +50 -0
- package/esm2022/lib/components/form/input-phone/input-phone.validator.mjs +61 -0
- package/{esm2020 → esm2022}/lib/components/form/input-phone/interfaces/change-data.mjs +1 -1
- package/{esm2020 → esm2022}/lib/components/form/input-phone/models/country.model.mjs +1 -1
- package/esm2022/lib/components/form/input-search/input-search.component.mjs +167 -0
- package/{esm2020 → esm2022}/lib/components/form/input-search/input-search.enum.mjs +6 -6
- package/esm2022/lib/components/form/input-search/input-search.module.mjs +41 -0
- package/esm2022/lib/components/form/input-select/input-select.component.mjs +253 -0
- package/{esm2020 → esm2022}/lib/components/form/input-select/input-select.enum.mjs +5 -5
- package/esm2022/lib/components/form/input-select/input-select.module.mjs +45 -0
- package/{esm2020 → esm2022}/lib/components/form/input-tel/assets/base64.mjs +3 -3
- package/{esm2020 → esm2022}/lib/components/form/input-tel/data/all-countries.mjs +1322 -1322
- package/{esm2020 → esm2022}/lib/components/form/input-tel/data/country-iso.enum.mjs +246 -246
- package/{esm2020 → esm2022}/lib/components/form/input-tel/data/phone-number-format.enum.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/form/input-tel/data/search-country-field.enum.mjs +7 -7
- package/esm2022/lib/components/form/input-tel/directives/input-tel.directive.mjs +66 -0
- package/{esm2020 → esm2022}/lib/components/form/input-tel/enums/input-phone.enum.mjs +6 -6
- package/esm2022/lib/components/form/input-tel/input-tel.component.mjs +400 -0
- package/esm2022/lib/components/form/input-tel/input-tel.module.mjs +43 -0
- package/{esm2020 → esm2022}/lib/components/form/input-tel/models/country.model.mjs +1 -1
- package/esm2022/lib/components/form/input-text/input-text.component.mjs +189 -0
- package/{esm2020 → esm2022}/lib/components/form/input-text/input-text.enum.mjs +14 -14
- package/esm2022/lib/components/form/input-text/input-text.module.mjs +49 -0
- package/esm2022/lib/components/form/input-textarea/input-textarea.component.mjs +197 -0
- package/{esm2020 → esm2022}/lib/components/form/input-textarea/input-textarea.enum.mjs +6 -6
- package/esm2022/lib/components/form/input-textarea/input-textarea.module.mjs +49 -0
- package/{esm2020 → esm2022}/lib/components/form/input-timepicker/constants/value-models.mjs +7 -7
- package/{esm2020 → esm2022}/lib/components/form/input-timepicker/helpers/clean-date.mjs +4 -4
- package/esm2022/lib/components/form/input-timepicker/helpers/cursor-position.mjs +14 -0
- package/{esm2020 → esm2022}/lib/components/form/input-timepicker/helpers/get-date-dayjs-object.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/form/input-timepicker/helpers/get-date-object.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/form/input-timepicker/helpers/validate-value-models.mjs +29 -29
- package/{esm2020 → esm2022}/lib/components/form/input-timepicker/helpers/value-parser.mjs +17 -17
- package/esm2022/lib/components/form/input-timepicker/input-timepicker.component.mjs +292 -0
- package/{esm2020 → esm2022}/lib/components/form/input-timepicker/input-timepicker.enum.mjs +6 -6
- package/esm2022/lib/components/form/input-timepicker/input-timepicker.module.mjs +46 -0
- package/esm2022/lib/components/form/radio/radio.component.mjs +91 -0
- package/{esm2020 → esm2022}/lib/components/form/radio/radio.enum.mjs +4 -4
- package/esm2022/lib/components/form/radio/radio.module.mjs +20 -0
- package/esm2022/lib/components/form/radio-group/components/radio-group-header/radio-group-header.component.mjs +45 -0
- package/esm2022/lib/components/form/radio-group/components/radio-group-item/radio-group-item.component.mjs +66 -0
- package/esm2022/lib/components/form/radio-group/helpers/filter-search-group.mjs +27 -0
- package/{esm2020 → esm2022}/lib/components/form/radio-group/helpers/get-item-by-id.mjs +10 -10
- package/esm2022/lib/components/form/radio-group/helpers/move-selected-to-first.mjs +27 -0
- package/{esm2020 → esm2022}/lib/components/form/radio-group/models/radio-group.model.mjs +1 -1
- package/esm2022/lib/components/form/radio-group/radio-group.component.mjs +175 -0
- package/esm2022/lib/components/form/radio-group/radio-group.module.mjs +26 -0
- package/esm2022/lib/components/form/rating/rating.component.mjs +215 -0
- package/{esm2020 → esm2022}/lib/components/form/rating/rating.enum.mjs +15 -15
- package/esm2022/lib/components/form/rating/rating.module.mjs +25 -0
- package/esm2022/lib/components/form/switch/switch.component.mjs +95 -0
- package/{esm2020 → esm2022}/lib/components/form/switch/switch.enum.mjs +10 -10
- package/esm2022/lib/components/form/switch/switch.module.mjs +21 -0
- package/esm2022/lib/components/gallery/components/gallery-confirm-modal/gallery-confirm-modal.component.mjs +39 -0
- package/esm2022/lib/components/gallery/components/gallery-item/gallery-item.component.mjs +112 -0
- package/{esm2020 → esm2022}/lib/components/gallery/constants/custom-buttons-default.mjs +6 -6
- package/{esm2020 → esm2022}/lib/components/gallery/constants/thumbs-config-default.mjs +4 -4
- package/esm2022/lib/components/gallery/gallery.component.mjs +203 -0
- package/esm2022/lib/components/gallery/gallery.module.mjs +54 -0
- package/{esm2020 → esm2022}/lib/components/gallery/models/gallery-item.model.mjs +1 -1
- package/esm2022/lib/components/gallery/services/gallery.service.mjs +33 -0
- package/esm2022/lib/components/hint-error-message/hint-error-message.component.mjs +121 -0
- package/esm2022/lib/components/hint-error-message/hint-error-message.module.mjs +19 -0
- package/esm2022/lib/components/icon-button/icon-button.component.mjs +49 -0
- package/{esm2020 → esm2022}/lib/components/icon-button/icon-button.enum.mjs +15 -15
- package/esm2022/lib/components/icon-button/icon-button.module.mjs +19 -0
- package/esm2022/lib/components/label/label.component.mjs +143 -0
- package/esm2022/lib/components/label/label.module.mjs +25 -0
- package/esm2022/lib/components/link/link.component.mjs +48 -0
- package/{esm2020 → esm2022}/lib/components/link/link.enum.mjs +19 -19
- package/esm2022/lib/components/link/link.module.mjs +19 -0
- package/esm2022/lib/components/loader/loader.component.mjs +24 -0
- package/{esm2020 → esm2022}/lib/components/loader/loader.enum.mjs +19 -19
- package/esm2022/lib/components/loader/loader.module.mjs +19 -0
- package/esm2022/lib/components/modal/modal.component.mjs +137 -0
- package/{esm2020 → esm2022}/lib/components/modal/modal.emun.mjs +20 -20
- package/esm2022/lib/components/modal/modal.module.mjs +20 -0
- package/esm2022/lib/components/pages-nav/pages-nav.component.mjs +31 -0
- package/{esm2020 → esm2022}/lib/components/pages-nav/pages-nav.enum.mjs +5 -5
- package/esm2022/lib/components/pages-nav/pages-nav.module.mjs +24 -0
- package/esm2022/lib/components/paginator/paginator.component.mjs +140 -0
- package/{esm2020 → esm2022}/lib/components/paginator/paginator.enum.mjs +5 -5
- package/esm2022/lib/components/paginator/paginator.module.mjs +31 -0
- package/esm2022/lib/components/progress/progress.component.mjs +24 -0
- package/{esm2020 → esm2022}/lib/components/progress/progress.enum.mjs +7 -7
- package/esm2022/lib/components/progress/progress.module.mjs +19 -0
- package/esm2022/lib/components/save-state/components/save-state-checkbox/save-state-checkbox.component.mjs +16 -0
- package/esm2022/lib/components/save-state/components/save-state-checkbox-group/save-state-checkbox-group.component.mjs +16 -0
- package/esm2022/lib/components/save-state/components/save-state-editor/save-state-editor.component.mjs +16 -0
- package/esm2022/lib/components/save-state/components/save-state-input/save-state-input.component.mjs +16 -0
- package/esm2022/lib/components/save-state/components/save-state-switch/save-state-switch.component.mjs +16 -0
- package/esm2022/lib/components/save-state/save-state.component.mjs +40 -0
- package/{esm2020 → esm2022}/lib/components/save-state/save-state.enum.mjs +1 -1
- package/esm2022/lib/components/save-state/save-state.module.mjs +37 -0
- package/esm2022/lib/components/stepper/stepper.component.mjs +52 -0
- package/{esm2020 → esm2022}/lib/components/stepper/stepper.enum.mjs +5 -5
- package/esm2022/lib/components/stepper/stepper.module.mjs +20 -0
- package/esm2022/lib/components/table/components/column/column.component.mjs +40 -0
- package/{esm2020 → esm2022}/lib/components/table/default/default-pager-settings.mjs +6 -6
- package/{esm2020 → esm2022}/lib/components/table/models/data-state-change.event.mjs +1 -1
- package/{esm2020 → esm2022}/lib/components/table/models/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/components/table/models/pager-settings.mjs +1 -1
- package/esm2022/lib/components/table/table.component.mjs +281 -0
- package/{esm2020 → esm2022}/lib/components/table/table.enum.mjs +7 -7
- package/esm2022/lib/components/table/table.module.mjs +50 -0
- package/esm2022/lib/components/tabs/tab/tab.component.mjs +33 -0
- package/esm2022/lib/components/tabs/tabs-group/tabs-group.component.mjs +27 -0
- package/{esm2020 → esm2022}/lib/components/tabs/tabs.enum.mjs +13 -13
- package/esm2022/lib/components/tabs/tabs.module.mjs +20 -0
- package/esm2022/lib/components/tooltip/services/tooltip.service.mjs +65 -0
- package/esm2022/lib/components/tooltip/tooltip-trigger/tooltip-trigger.component.mjs +36 -0
- package/{esm2020 → esm2022}/lib/components/tooltip/tooltip-trigger/tooltip-trigger.enum.mjs +10 -10
- package/esm2022/lib/components/tooltip/tooltip.component.mjs +59 -0
- package/{esm2020 → esm2022}/lib/components/tooltip/tooltip.enum.mjs +5 -5
- package/esm2022/lib/components/tooltip/tooltip.module.mjs +21 -0
- package/{esm2020 → esm2022}/lib/components/truncate-text/directives/truncate-text.directive.mjs +149 -139
- package/esm2022/lib/components/truncate-text/truncate-text.component.mjs +30 -0
- package/{esm2020 → esm2022}/lib/components/truncate-text/truncate-text.enum.mjs +1 -1
- package/esm2022/lib/components/truncate-text/truncate-text.module.mjs +21 -0
- package/esm2022/lib/components/warning-message/warning-message.component.mjs +29 -0
- package/esm2022/lib/components/warning-message/warning-message.module.mjs +19 -0
- package/esm2022/lib/components/wrappers/content-wrapper/content-wrapper.component.mjs +25 -0
- package/{esm2020 → esm2022}/lib/components/wrappers/content-wrapper/content-wrapper.enum.mjs +5 -5
- package/esm2022/lib/components/wrappers/content-wrapper/content-wrapper.module.mjs +19 -0
- package/esm2022/lib/components/wrappers/controls-wrapper/components/controls-item/controls-item.component.mjs +15 -0
- package/esm2022/lib/components/wrappers/controls-wrapper/controls-wrapper.component.mjs +23 -0
- package/{esm2020 → esm2022}/lib/components/wrappers/controls-wrapper/controls-wrapper.enum.mjs +6 -6
- package/esm2022/lib/components/wrappers/controls-wrapper/controls-wrapper.module.mjs +20 -0
- package/esm2022/lib/components/wrappers/widget-wrapper/widget-wrapper.component.mjs +99 -0
- package/{esm2020 → esm2022}/lib/components/wrappers/widget-wrapper/widget-wrapper.enum.mjs +16 -16
- package/esm2022/lib/components/wrappers/widget-wrapper/widget-wrapper.module.mjs +24 -0
- package/esm2022/lib/directives/autosize/autosize.directive.mjs +57 -0
- package/esm2022/lib/directives/autosize/autosize.module.mjs +24 -0
- package/esm2022/lib/directives/truncate/truncate.directive.mjs +34 -0
- package/esm2022/lib/directives/truncate/truncate.module.mjs +18 -0
- package/{esm2020 → esm2022}/lib/enums/typed.input.state.mjs +7 -7
- package/esm2022/lib/helpers/extension/input-file.extension.mjs +39 -0
- package/esm2022/lib/helpers/formatting-date.mjs +51 -0
- package/{esm2020 → esm2022}/lib/helpers/formatting-dates-from-array.mjs +18 -18
- package/{esm2020 → esm2022}/lib/helpers/formatting-iso-to-string.mjs +12 -12
- package/{esm2020 → esm2022}/lib/helpers/index.mjs +7 -7
- package/{esm2020 → esm2022}/lib/helpers/number-format.mjs +8 -8
- package/esm2022/lib/helpers/string-hash-code.mjs +17 -0
- package/{esm2020 → esm2022}/lib/helpers/word-form.mjs +10 -10
- package/{esm2020 → esm2022}/lib/models/index.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/input-file/input-file.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/typed-input-model.mjs +1 -1
- package/esm2022/lib/pipes/currency/currency.module.mjs +20 -0
- package/esm2022/lib/pipes/currency/currency.pipe.mjs +22 -0
- package/esm2022/lib/pipes/date/date-format.module.mjs +19 -0
- package/esm2022/lib/pipes/date/date-format.pipe.mjs +21 -0
- package/esm2022/lib/pipes/date/date-time-format.pipe.mjs +21 -0
- package/{esm2020 → esm2022}/lib/pipes/date/enums/timezone.mjs +9 -9
- package/{esm2020 → esm2022}/lib/pipes/date/helpers/change-timezone.mjs +22 -22
- package/esm2022/lib/pipes/phone/phone-format.module.mjs +18 -0
- package/esm2022/lib/pipes/phone/phone-format.pipe.mjs +23 -0
- package/esm2022/lib/pipes/safe/safe.module.mjs +20 -0
- package/esm2022/lib/pipes/safe/safe.pipe.mjs +21 -0
- package/esm2022/lib/pipes/truncate/truncate.module.mjs +20 -0
- package/esm2022/lib/pipes/truncate/truncate.pipe.mjs +23 -0
- package/esm2022/lib/services/file-upload/file-upload.service.mjs +27 -0
- package/{esm2020 → esm2022}/lib/services/index.mjs +6 -6
- package/esm2022/lib/services/modal-service/components/alert-modal/alert-modal.component.mjs +46 -0
- package/esm2022/lib/services/modal-service/components/confirm-modal/confirm-modal.component.mjs +50 -0
- package/esm2022/lib/services/modal-service/helpers/modal-default-config.mjs +14 -0
- package/esm2022/lib/services/modal-service/helpers/modal-ref.mjs +29 -0
- package/esm2022/lib/services/modal-service/helpers/modal-tokens.mjs +4 -0
- package/esm2022/lib/services/modal-service/helpers/modal.component.mjs +5 -0
- package/esm2022/lib/services/modal-service/modal-service.service.mjs +84 -0
- package/esm2022/lib/services/modal-service/models/modal-config.model.mjs +2 -0
- package/esm2022/lib/services/mrx-autosave/mrx-autosave.service.mjs +43 -0
- package/esm2022/lib/services/mrx-form-validator/mrx-form-validator.mjs +283 -0
- package/{esm2020 → esm2022}/lib/services/save-store/constants/constants.mjs +1 -1
- package/{esm2020 → esm2022}/lib/services/save-store/models/save-store.model.mjs +1 -1
- package/esm2022/lib/services/save-store/save-store.module.mjs +29 -0
- package/{esm2020 → esm2022}/lib/services/save-store/store/actions.mjs +22 -22
- package/esm2022/lib/services/save-store/store/effect.mjs +61 -0
- package/esm2022/lib/services/save-store/store/reducer.mjs +96 -0
- package/{esm2020 → esm2022}/lib/services/save-store/store/selectors.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/save-store/store/state.mjs +3 -3
- package/{esm2020 → esm2022}/myrta-ui.mjs +4 -4
- package/esm2022/public-api.mjs +176 -0
- package/fesm2022/myrta-ui.mjs +15458 -0
- package/fesm2022/myrta-ui.mjs.map +1 -0
- package/{myrta-ui.d.ts → index.d.ts} +5 -5
- package/lib/components/alert/alert.component.d.ts +17 -17
- package/lib/components/alert/alert.enum.d.ts +13 -13
- package/lib/components/alert/alert.module.d.ts +8 -8
- package/lib/components/badges/badge.enum.d.ts +38 -38
- package/lib/components/badges/badges.module.d.ts +9 -9
- package/lib/components/badges/components/badge/badge.component.d.ts +21 -21
- package/lib/components/badges/components/badge-group/badge-group.component.d.ts +5 -5
- package/lib/components/breadcrumbs/breadcrumbs.component.d.ts +11 -11
- package/lib/components/breadcrumbs/breadcrumbs.enum.d.ts +11 -11
- package/lib/components/breadcrumbs/breadcrumbs.module.d.ts +8 -8
- package/lib/components/button/button.component.d.ts +31 -31
- package/lib/components/button/button.enum.d.ts +27 -29
- package/lib/components/button/button.module.d.ts +10 -10
- package/lib/components/cdk-tooltip/cdk-tooltip/tooltip-container.component.d.ts +13 -13
- package/lib/components/cdk-tooltip/cdk-tooltip.directive.d.ts +24 -24
- package/lib/components/cdk-tooltip/cdk-tooltip.module.d.ts +10 -10
- package/lib/components/cdk-tooltip/constants/index.d.ts +7 -7
- package/lib/components/cdk-tooltip/models/tooltip-data.d.ts +6 -6
- package/lib/components/chars-left/chars-left.component.d.ts +9 -9
- package/lib/components/chars-left/chars-left.module.d.ts +8 -8
- package/lib/components/dropdown/directives/hide-after-click.directive.d.ts +9 -9
- package/lib/components/dropdown/dropdown.component.d.ts +26 -26
- package/lib/components/dropdown/dropdown.module.d.ts +10 -10
- package/lib/components/error-message/error-message.component.d.ts +10 -10
- package/lib/components/error-message/error-message.module.d.ts +8 -8
- package/lib/components/form/checkbox/checkbox.component.d.ts +48 -48
- package/lib/components/form/checkbox/checkbox.enum.d.ts +14 -14
- package/lib/components/form/checkbox/checkbox.module.d.ts +11 -11
- package/lib/components/form/checkbox-group/checkbox-group.component.d.ts +54 -54
- package/lib/components/form/checkbox-group/checkbox-group.module.d.ts +16 -16
- package/lib/components/form/checkbox-group/components/checkbox-group-header/checkbox-group-header.component.d.ts +19 -19
- package/lib/components/form/checkbox-group/components/checkbox-group-item/checkbox-group-item.component.d.ts +26 -26
- package/lib/components/form/checkbox-group/helpers/change-group-value.d.ts +3 -3
- package/lib/components/form/checkbox-group/helpers/change-item-value.d.ts +3 -3
- package/lib/components/form/checkbox-group/helpers/filter-search-group.d.ts +2 -2
- package/lib/components/form/checkbox-group/helpers/get-checked-items.d.ts +2 -2
- package/lib/components/form/checkbox-group/helpers/get-item-by-id.d.ts +2 -2
- package/lib/components/form/checkbox-group/helpers/get-sorted-list.d.ts +2 -2
- package/lib/components/form/checkbox-group/models/checkbox-group.model.d.ts +15 -15
- package/lib/components/form/editor/config/default-inline-style.d.ts +11 -11
- package/lib/components/form/editor/config/index.d.ts +1 -1
- package/lib/components/form/editor/config/popups-toolbar.d.ts +15 -15
- package/lib/components/form/editor/config/toolbar.d.ts +2 -2
- package/lib/components/form/editor/editor.component.d.ts +63 -49
- package/lib/components/form/editor/editor.module.d.ts +14 -14
- package/lib/components/form/editor/models/toolbar.model.d.ts +6 -6
- package/lib/components/form/editor/modules/change-icon-module.d.ts +1 -1
- package/lib/components/form/input-date-time/constants/value-models.d.ts +3 -3
- package/lib/components/form/input-date-time/enum/timezone.d.ts +6 -6
- package/lib/components/form/input-date-time/helpers/clean-date.d.ts +1 -1
- package/lib/components/form/input-date-time/helpers/cursor-position.d.ts +1 -1
- package/lib/components/form/input-date-time/helpers/formatting-from-models.d.ts +3 -3
- package/lib/components/form/input-date-time/helpers/formatting-moscow-timezone.d.ts +2 -2
- package/lib/components/form/input-date-time/helpers/validate-value-models.d.ts +19 -19
- package/lib/components/form/input-date-time/helpers/value-parser.d.ts +4 -4
- package/lib/components/form/input-date-time/input-date-time.component.d.ts +72 -72
- package/lib/components/form/input-date-time/input-date-time.enum.d.ts +21 -21
- package/lib/components/form/input-date-time/input-date-time.module.d.ts +13 -13
- package/lib/components/form/input-datepicker/constants/value-models.d.ts +3 -3
- package/lib/components/form/input-datepicker/helpers/clean-date.d.ts +1 -1
- package/lib/components/form/input-datepicker/helpers/cursor-position.d.ts +1 -1
- package/lib/components/form/input-datepicker/helpers/get-date-dayjs-object.d.ts +3 -3
- package/lib/components/form/input-datepicker/helpers/get-date-object.d.ts +2 -2
- package/lib/components/form/input-datepicker/helpers/validate-value-models.d.ts +20 -20
- package/lib/components/form/input-datepicker/helpers/value-parser.d.ts +3 -3
- package/lib/components/form/input-datepicker/input-datepicker.component.d.ts +69 -69
- package/lib/components/form/input-datepicker/input-datepicker.enum.d.ts +12 -12
- package/lib/components/form/input-datepicker/input-datepicker.module.d.ts +13 -13
- package/lib/components/form/input-file/enums/error-messages.enum.d.ts +6 -6
- package/lib/components/form/input-file/input-file.component.d.ts +72 -72
- package/lib/components/form/input-file/input-file.enum.d.ts +7 -7
- package/lib/components/form/input-file/input-file.module.d.ts +13 -13
- package/lib/components/form/input-file-image/components/file-image-edit-modal/file-image-edit-modal.component.d.ts +42 -39
- package/lib/components/form/input-file-image/input-file-image.component.d.ts +62 -62
- package/lib/components/form/input-file-image/input-file-image.enum.d.ts +8 -8
- package/lib/components/form/input-file-image/input-file-image.module.d.ts +15 -16
- package/lib/components/form/input-number/input-number.component.d.ts +64 -64
- package/lib/components/form/input-number/input-number.enum.d.ts +12 -12
- package/lib/components/form/input-number/input-number.module.d.ts +13 -13
- package/lib/components/form/input-opt/components/input-opt/input-opt.component.d.ts +77 -77
- package/lib/components/form/input-opt/components/input-opt/input-opt.enum.d.ts +7 -7
- package/lib/components/form/input-opt/directives/opt-pattern.directive.d.ts +8 -8
- package/lib/components/form/input-opt/input-opt.module.d.ts +11 -11
- package/lib/components/form/input-opt/models/input-opt.model.d.ts +26 -26
- package/lib/components/form/input-opt/services/input-opt.service.d.ts +11 -11
- package/lib/components/form/input-password/input-password.component.d.ts +38 -38
- package/lib/components/form/input-password/input-password.enum.d.ts +7 -7
- package/lib/components/form/input-password/input-password.module.d.ts +11 -11
- package/lib/components/form/input-phone/data/country-code.d.ts +6 -6
- package/lib/components/form/input-phone/directives/native-element-injector.directive.d.ts +11 -11
- package/lib/components/form/input-phone/enums/country-iso.enum.d.ts +245 -245
- package/lib/components/form/input-phone/enums/input-phone.enum.d.ts +11 -11
- package/lib/components/form/input-phone/enums/mask.enum.d.ts +8 -8
- package/lib/components/form/input-phone/enums/phone-number-format.enum.d.ts +4 -4
- package/lib/components/form/input-phone/enums/search-country-field.enum.d.ts +6 -6
- package/lib/components/form/input-phone/input-phone.component.d.ts +132 -132
- package/lib/components/form/input-phone/input-phone.module.d.ts +14 -14
- package/lib/components/form/input-phone/input-phone.validator.d.ts +5 -5
- package/lib/components/form/input-phone/interfaces/change-data.d.ts +9 -9
- package/lib/components/form/input-phone/models/country.model.d.ts +13 -13
- package/lib/components/form/input-search/input-search.component.d.ts +48 -48
- package/lib/components/form/input-search/input-search.enum.d.ts +6 -6
- package/lib/components/form/input-search/input-search.module.d.ts +12 -12
- package/lib/components/form/input-select/input-select.component.d.ts +84 -84
- package/lib/components/form/input-select/input-select.enum.d.ts +10 -10
- package/lib/components/form/input-select/input-select.module.d.ts +14 -14
- package/lib/components/form/input-tel/assets/base64.d.ts +3 -3
- package/lib/components/form/input-tel/data/all-countries.d.ts +1 -1
- package/lib/components/form/input-tel/data/country-iso.enum.d.ts +245 -245
- package/lib/components/form/input-tel/data/phone-number-format.enum.d.ts +5 -5
- package/lib/components/form/input-tel/data/search-country-field.enum.d.ts +6 -6
- package/lib/components/form/input-tel/directives/input-tel.directive.d.ts +21 -21
- package/lib/components/form/input-tel/enums/input-phone.enum.d.ts +11 -11
- package/lib/components/form/input-tel/input-tel.component.d.ts +89 -89
- package/lib/components/form/input-tel/input-tel.module.d.ts +13 -14
- package/lib/components/form/input-tel/models/country.model.d.ts +18 -18
- package/lib/components/form/input-text/input-text.component.d.ts +54 -54
- package/lib/components/form/input-text/input-text.enum.d.ts +19 -19
- package/lib/components/form/input-text/input-text.module.d.ts +14 -14
- package/lib/components/form/input-textarea/input-textarea.component.d.ts +54 -54
- package/lib/components/form/input-textarea/input-textarea.enum.d.ts +11 -11
- package/lib/components/form/input-textarea/input-textarea.module.d.ts +14 -14
- package/lib/components/form/input-timepicker/constants/value-models.d.ts +2 -2
- package/lib/components/form/input-timepicker/helpers/clean-date.d.ts +1 -1
- package/lib/components/form/input-timepicker/helpers/cursor-position.d.ts +1 -1
- package/lib/components/form/input-timepicker/helpers/get-date-dayjs-object.d.ts +3 -3
- package/lib/components/form/input-timepicker/helpers/get-date-object.d.ts +2 -2
- package/lib/components/form/input-timepicker/helpers/validate-value-models.d.ts +10 -10
- package/lib/components/form/input-timepicker/helpers/value-parser.d.ts +2 -2
- package/lib/components/form/input-timepicker/input-timepicker.component.d.ts +60 -60
- package/lib/components/form/input-timepicker/input-timepicker.enum.d.ts +11 -11
- package/lib/components/form/input-timepicker/input-timepicker.module.d.ts +13 -13
- package/lib/components/form/radio/radio.component.d.ts +29 -29
- package/lib/components/form/radio/radio.enum.d.ts +4 -4
- package/lib/components/form/radio/radio.module.d.ts +9 -9
- package/lib/components/form/radio-group/components/radio-group-header/radio-group-header.component.d.ts +18 -18
- package/lib/components/form/radio-group/components/radio-group-item/radio-group-item.component.d.ts +26 -26
- package/lib/components/form/radio-group/helpers/filter-search-group.d.ts +2 -2
- package/lib/components/form/radio-group/helpers/get-item-by-id.d.ts +2 -2
- package/lib/components/form/radio-group/helpers/move-selected-to-first.d.ts +2 -2
- package/lib/components/form/radio-group/models/radio-group.model.d.ts +8 -8
- package/lib/components/form/radio-group/radio-group.component.d.ts +57 -57
- package/lib/components/form/radio-group/radio-group.module.d.ts +15 -15
- package/lib/components/form/rating/rating.component.d.ts +51 -51
- package/lib/components/form/rating/rating.enum.d.ts +27 -27
- package/lib/components/form/rating/rating.module.d.ts +9 -9
- package/lib/components/form/switch/switch.component.d.ts +32 -32
- package/lib/components/form/switch/switch.enum.d.ts +15 -15
- package/lib/components/form/switch/switch.module.d.ts +10 -10
- package/lib/components/gallery/components/gallery-confirm-modal/gallery-confirm-modal.component.d.ts +21 -17
- package/lib/components/gallery/components/gallery-item/gallery-item.component.d.ts +38 -38
- package/lib/components/gallery/constants/custom-buttons-default.d.ts +3 -3
- package/lib/components/gallery/constants/thumbs-config-default.d.ts +2 -2
- package/lib/components/gallery/gallery.component.d.ts +38 -38
- package/lib/components/gallery/gallery.module.d.ts +16 -16
- package/lib/components/gallery/models/gallery-item.model.d.ts +24 -24
- package/lib/components/gallery/services/gallery.service.d.ts +14 -14
- package/lib/components/hint-error-message/hint-error-message.component.d.ts +21 -21
- package/lib/components/hint-error-message/hint-error-message.module.d.ts +8 -8
- package/lib/components/icon-button/icon-button.component.d.ts +19 -19
- package/lib/components/icon-button/icon-button.enum.d.ts +15 -15
- package/lib/components/icon-button/icon-button.module.d.ts +9 -9
- package/lib/components/label/label.component.d.ts +44 -44
- package/lib/components/label/label.module.d.ts +14 -14
- package/lib/components/link/link.component.d.ts +18 -18
- package/lib/components/link/link.enum.d.ts +19 -19
- package/lib/components/link/link.module.d.ts +8 -8
- package/lib/components/loader/loader.component.d.ts +10 -10
- package/lib/components/loader/loader.enum.d.ts +19 -19
- package/lib/components/loader/loader.module.d.ts +8 -8
- package/lib/components/modal/modal.component.d.ts +36 -37
- package/lib/components/modal/modal.emun.d.ts +20 -20
- package/lib/components/modal/modal.module.d.ts +9 -9
- package/lib/components/pages-nav/pages-nav.component.d.ts +12 -12
- package/lib/components/pages-nav/pages-nav.enum.d.ts +5 -5
- package/lib/components/pages-nav/pages-nav.module.d.ts +8 -8
- package/lib/components/paginator/paginator.component.d.ts +29 -29
- package/lib/components/paginator/paginator.enum.d.ts +10 -10
- package/lib/components/paginator/paginator.module.d.ts +10 -10
- package/lib/components/progress/progress.component.d.ts +10 -10
- package/lib/components/progress/progress.enum.d.ts +7 -7
- package/lib/components/progress/progress.module.d.ts +8 -8
- package/lib/components/save-state/components/save-state-checkbox/save-state-checkbox.component.d.ts +8 -8
- package/lib/components/save-state/components/save-state-checkbox-group/save-state-checkbox-group.component.d.ts +8 -8
- package/lib/components/save-state/components/save-state-editor/save-state-editor.component.d.ts +8 -8
- package/lib/components/save-state/components/save-state-input/save-state-input.component.d.ts +8 -8
- package/lib/components/save-state/components/save-state-switch/save-state-switch.component.d.ts +8 -8
- package/lib/components/save-state/save-state.component.d.ts +13 -13
- package/lib/components/save-state/save-state.enum.d.ts +1 -1
- package/lib/components/save-state/save-state.module.d.ts +13 -13
- package/lib/components/stepper/stepper.component.d.ts +17 -17
- package/lib/components/stepper/stepper.enum.d.ts +5 -5
- package/lib/components/stepper/stepper.module.d.ts +9 -9
- package/lib/components/table/components/column/column.component.d.ts +14 -14
- package/lib/components/table/default/default-pager-settings.d.ts +2 -2
- package/lib/components/table/models/data-state-change.event.d.ts +15 -15
- package/lib/components/table/models/index.d.ts +3 -3
- package/lib/components/table/models/pager-settings.d.ts +22 -22
- package/lib/components/table/table.component.d.ts +55 -55
- package/lib/components/table/table.enum.d.ts +32 -32
- package/lib/components/table/table.module.d.ts +14 -14
- package/lib/components/tabs/tab/tab.component.d.ts +13 -13
- package/lib/components/tabs/tabs-group/tabs-group.component.d.ts +11 -11
- package/lib/components/tabs/tabs.enum.d.ts +11 -11
- package/lib/components/tabs/tabs.module.d.ts +9 -9
- package/lib/components/tooltip/services/tooltip.service.d.ts +18 -18
- package/lib/components/tooltip/tooltip-trigger/tooltip-trigger.component.d.ts +15 -15
- package/lib/components/tooltip/tooltip-trigger/tooltip-trigger.enum.d.ts +10 -10
- package/lib/components/tooltip/tooltip.component.d.ts +18 -18
- package/lib/components/tooltip/tooltip.enum.d.ts +4 -4
- package/lib/components/tooltip/tooltip.module.d.ts +10 -10
- package/lib/components/truncate-text/directives/truncate-text.directive.d.ts +37 -37
- package/lib/components/truncate-text/truncate-text.component.d.ts +12 -12
- package/lib/components/truncate-text/truncate-text.enum.d.ts +2 -2
- package/lib/components/truncate-text/truncate-text.module.d.ts +10 -10
- package/lib/components/warning-message/warning-message.component.d.ts +9 -9
- package/lib/components/warning-message/warning-message.module.d.ts +8 -8
- package/lib/components/wrappers/content-wrapper/content-wrapper.component.d.ts +10 -10
- package/lib/components/wrappers/content-wrapper/content-wrapper.enum.d.ts +5 -5
- package/lib/components/wrappers/content-wrapper/content-wrapper.module.d.ts +8 -8
- package/lib/components/wrappers/controls-wrapper/components/controls-item/controls-item.component.d.ts +6 -6
- package/lib/components/wrappers/controls-wrapper/controls-wrapper.component.d.ts +10 -10
- package/lib/components/wrappers/controls-wrapper/controls-wrapper.enum.d.ts +6 -6
- package/lib/components/wrappers/controls-wrapper/controls-wrapper.module.d.ts +9 -9
- package/lib/components/wrappers/widget-wrapper/widget-wrapper.component.d.ts +26 -26
- package/lib/components/wrappers/widget-wrapper/widget-wrapper.enum.d.ts +15 -15
- package/lib/components/wrappers/widget-wrapper/widget-wrapper.module.d.ts +8 -8
- package/lib/directives/autosize/autosize.directive.d.ts +16 -16
- package/lib/directives/autosize/autosize.module.d.ts +8 -8
- package/lib/directives/truncate/truncate.directive.d.ts +12 -12
- package/lib/directives/truncate/truncate.module.d.ts +8 -8
- package/lib/enums/typed.input.state.d.ts +6 -6
- package/lib/helpers/extension/input-file.extension.d.ts +4 -4
- package/lib/helpers/formatting-date.d.ts +9 -9
- package/lib/helpers/formatting-dates-from-array.d.ts +2 -2
- package/lib/helpers/formatting-iso-to-string.d.ts +2 -2
- package/lib/helpers/index.d.ts +7 -7
- package/lib/helpers/number-format.d.ts +6 -6
- package/lib/helpers/string-hash-code.d.ts +2 -2
- package/lib/helpers/word-form.d.ts +7 -7
- package/lib/models/index.d.ts +2 -2
- package/lib/models/input-file/input-file.model.d.ts +22 -22
- package/lib/models/typed-input-model.d.ts +16 -16
- package/lib/pipes/currency/currency.module.d.ts +8 -8
- package/lib/pipes/currency/currency.pipe.d.ts +7 -7
- package/lib/pipes/date/date-format.module.d.ts +9 -9
- package/lib/pipes/date/date-format.pipe.d.ts +9 -9
- package/lib/pipes/date/date-time-format.pipe.d.ts +9 -9
- package/lib/pipes/date/enums/timezone.d.ts +8 -8
- package/lib/pipes/date/helpers/change-timezone.d.ts +2 -2
- package/lib/pipes/phone/phone-format.module.d.ts +8 -8
- package/lib/pipes/phone/phone-format.pipe.d.ts +8 -8
- package/lib/pipes/safe/safe.module.d.ts +8 -8
- package/lib/pipes/safe/safe.pipe.d.ts +10 -10
- package/lib/pipes/truncate/truncate.module.d.ts +8 -8
- package/lib/pipes/truncate/truncate.pipe.d.ts +7 -7
- package/lib/services/file-upload/file-upload.service.d.ts +12 -12
- package/lib/services/index.d.ts +6 -6
- package/lib/services/modal-service/components/alert-modal/alert-modal.component.d.ts +20 -0
- package/lib/services/modal-service/components/confirm-modal/confirm-modal.component.d.ts +21 -0
- package/lib/services/modal-service/helpers/modal-default-config.d.ts +3 -0
- package/lib/services/modal-service/helpers/modal-ref.d.ts +11 -0
- package/lib/services/modal-service/helpers/modal-tokens.d.ts +3 -0
- package/lib/services/modal-service/helpers/modal.component.d.ts +4 -0
- package/lib/services/modal-service/modal-service.service.d.ts +20 -0
- package/lib/services/modal-service/models/modal-config.model.d.ts +14 -0
- package/lib/services/mrx-autosave/mrx-autosave.service.d.ts +19 -19
- package/lib/services/mrx-form-validator/mrx-form-validator.d.ts +51 -51
- package/lib/services/save-store/constants/constants.d.ts +1 -1
- package/lib/services/save-store/models/save-store.model.d.ts +4 -4
- package/lib/services/save-store/save-store.module.d.ts +9 -9
- package/lib/services/save-store/store/actions.d.ts +21 -21
- package/lib/services/save-store/store/effect.d.ts +10 -16
- package/lib/services/save-store/store/reducer.d.ts +3 -3
- package/lib/services/save-store/store/selectors.d.ts +3 -3
- package/lib/services/save-store/store/state.d.ts +11 -11
- package/package.json +29 -39
- package/public-api.d.ts +162 -175
- package/esm2020/lib/components/alert/alert.component.mjs +0 -45
- package/esm2020/lib/components/alert/alert.module.mjs +0 -19
- package/esm2020/lib/components/badges/badges.module.mjs +0 -32
- package/esm2020/lib/components/badges/components/badge/badge.component.mjs +0 -61
- package/esm2020/lib/components/breadcrumbs/breadcrumbs.component.mjs +0 -29
- package/esm2020/lib/components/breadcrumbs/breadcrumbs.module.mjs +0 -27
- package/esm2020/lib/components/button/button.component.mjs +0 -102
- package/esm2020/lib/components/button/button.enum.mjs +0 -29
- package/esm2020/lib/components/button/button.module.mjs +0 -21
- package/esm2020/lib/components/cdk-tooltip/cdk-tooltip/tooltip-container.component.mjs +0 -28
- package/esm2020/lib/components/cdk-tooltip/cdk-tooltip.directive.mjs +0 -95
- package/esm2020/lib/components/cdk-tooltip/cdk-tooltip.module.mjs +0 -21
- package/esm2020/lib/components/chars-left/chars-left.component.mjs +0 -26
- package/esm2020/lib/components/chars-left/chars-left.module.mjs +0 -19
- package/esm2020/lib/components/context-menu/components/context-menu/context-menu.component.mjs +0 -121
- package/esm2020/lib/components/context-menu/components/context-menu-content/context-menu-content.component.mjs +0 -343
- package/esm2020/lib/components/context-menu/context-menu.module.mjs +0 -51
- package/esm2020/lib/components/context-menu/context-menu.options.mjs +0 -2
- package/esm2020/lib/components/context-menu/context-menu.tokens.mjs +0 -3
- package/esm2020/lib/components/context-menu/directives/context-menu/context-menu.directive.mjs +0 -36
- package/esm2020/lib/components/context-menu/directives/context-menu-item/context-menu-item.directive.mjs +0 -61
- package/esm2020/lib/components/context-menu/models/context-menu.enum.mjs +0 -2
- package/esm2020/lib/components/context-menu/services/context-menu/context-menu-fixed.service.mjs +0 -103
- package/esm2020/lib/components/context-menu/services/context-menu/context-menu.service.mjs +0 -223
- package/esm2020/lib/components/dropdown/directives/hide-after-click.directive.mjs +0 -23
- package/esm2020/lib/components/dropdown/dropdown.component.mjs +0 -104
- package/esm2020/lib/components/dropdown/dropdown.module.mjs +0 -21
- package/esm2020/lib/components/error-message/error-message.component.mjs +0 -34
- package/esm2020/lib/components/error-message/error-message.module.mjs +0 -19
- package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +0 -150
- package/esm2020/lib/components/form/checkbox/checkbox.module.mjs +0 -22
- package/esm2020/lib/components/form/checkbox-group/checkbox-group.component.mjs +0 -178
- package/esm2020/lib/components/form/checkbox-group/checkbox-group.module.mjs +0 -49
- package/esm2020/lib/components/form/checkbox-group/components/checkbox-group-item/checkbox-group-item.component.mjs +0 -103
- package/esm2020/lib/components/form/checkbox-group/helpers/change-group-value.mjs +0 -20
- package/esm2020/lib/components/form/checkbox-group/helpers/change-item-value.mjs +0 -15
- package/esm2020/lib/components/form/checkbox-group/helpers/filter-search-group.mjs +0 -27
- package/esm2020/lib/components/form/checkbox-group/helpers/get-checked-items.mjs +0 -20
- package/esm2020/lib/components/form/checkbox-group/helpers/get-sorted-list.mjs +0 -50
- package/esm2020/lib/components/form/document-editor/components/document-editor-preview-modal/document-editor-preview-modal.component.mjs +0 -33
- package/esm2020/lib/components/form/document-editor/document-editor.component.mjs +0 -105
- package/esm2020/lib/components/form/document-editor/document-editor.module.mjs +0 -44
- package/esm2020/lib/components/form/document-editor/helpers/transform-sysname.mjs +0 -41
- package/esm2020/lib/components/form/document-editor/models/document-editor-short-codes.enum.mjs +0 -2
- package/esm2020/lib/components/form/editor/editor.component.mjs +0 -240
- package/esm2020/lib/components/form/editor/editor.module.mjs +0 -47
- package/esm2020/lib/components/form/editor/modules/change-icon-module.mjs +0 -92
- package/esm2020/lib/components/form/input-date-time/helpers/cursor-position.mjs +0 -23
- package/esm2020/lib/components/form/input-date-time/helpers/formatting-from-models.mjs +0 -10
- package/esm2020/lib/components/form/input-date-time/input-date-time.component.mjs +0 -381
- package/esm2020/lib/components/form/input-date-time/input-date-time.module.mjs +0 -48
- package/esm2020/lib/components/form/input-datepicker/helpers/cursor-position.mjs +0 -23
- package/esm2020/lib/components/form/input-datepicker/helpers/get-date-dayjs-object.mjs +0 -10
- package/esm2020/lib/components/form/input-datepicker/helpers/get-date-object.mjs +0 -10
- package/esm2020/lib/components/form/input-datepicker/input-datepicker.component.mjs +0 -354
- package/esm2020/lib/components/form/input-datepicker/input-datepicker.module.mjs +0 -48
- package/esm2020/lib/components/form/input-file/input-file.component.mjs +0 -362
- package/esm2020/lib/components/form/input-file/input-file.module.mjs +0 -26
- package/esm2020/lib/components/form/input-file-image/components/file-image-edit-modal/file-image-edit-modal.component.mjs +0 -66
- package/esm2020/lib/components/form/input-file-image/input-file-image.component.mjs +0 -354
- package/esm2020/lib/components/form/input-file-image/input-file-image.module.mjs +0 -60
- package/esm2020/lib/components/form/input-number/input-number.component.mjs +0 -258
- package/esm2020/lib/components/form/input-number/input-number.module.mjs +0 -57
- package/esm2020/lib/components/form/input-opt/components/input-opt/input-opt.component.mjs +0 -361
- package/esm2020/lib/components/form/input-opt/directives/opt-pattern.directive.mjs +0 -44
- package/esm2020/lib/components/form/input-opt/input-opt.module.mjs +0 -40
- package/esm2020/lib/components/form/input-password/input-password.component.mjs +0 -119
- package/esm2020/lib/components/form/input-password/input-password.module.mjs +0 -38
- package/esm2020/lib/components/form/input-phone/data/country-code.mjs +0 -1333
- package/esm2020/lib/components/form/input-phone/directives/native-element-injector.directive.mjs +0 -33
- package/esm2020/lib/components/form/input-phone/input-phone.component.mjs +0 -671
- package/esm2020/lib/components/form/input-phone/input-phone.module.mjs +0 -52
- package/esm2020/lib/components/form/input-phone/input-phone.validator.mjs +0 -61
- package/esm2020/lib/components/form/input-search/input-search.component.mjs +0 -166
- package/esm2020/lib/components/form/input-search/input-search.module.mjs +0 -43
- package/esm2020/lib/components/form/input-select/input-select.component.mjs +0 -243
- package/esm2020/lib/components/form/input-select/input-select.module.mjs +0 -47
- package/esm2020/lib/components/form/input-tel/directives/input-tel.directive.mjs +0 -62
- package/esm2020/lib/components/form/input-tel/input-tel.component.mjs +0 -389
- package/esm2020/lib/components/form/input-tel/input-tel.module.mjs +0 -49
- package/esm2020/lib/components/form/input-text/input-text.component.mjs +0 -188
- package/esm2020/lib/components/form/input-text/input-text.module.mjs +0 -51
- package/esm2020/lib/components/form/input-textarea/input-textarea.component.mjs +0 -195
- package/esm2020/lib/components/form/input-textarea/input-textarea.module.mjs +0 -50
- package/esm2020/lib/components/form/input-timepicker/helpers/cursor-position.mjs +0 -14
- package/esm2020/lib/components/form/input-timepicker/input-timepicker.component.mjs +0 -290
- package/esm2020/lib/components/form/input-timepicker/input-timepicker.module.mjs +0 -48
- package/esm2020/lib/components/form/radio/radio.component.mjs +0 -91
- package/esm2020/lib/components/form/radio/radio.module.mjs +0 -20
- package/esm2020/lib/components/form/radio-group/components/radio-group-header/radio-group-header.component.mjs +0 -46
- package/esm2020/lib/components/form/radio-group/components/radio-group-item/radio-group-item.component.mjs +0 -63
- package/esm2020/lib/components/form/radio-group/helpers/filter-search-group.mjs +0 -27
- package/esm2020/lib/components/form/radio-group/helpers/move-selected-to-first.mjs +0 -27
- package/esm2020/lib/components/form/radio-group/radio-group.component.mjs +0 -175
- package/esm2020/lib/components/form/radio-group/radio-group.module.mjs +0 -26
- package/esm2020/lib/components/form/rating/rating.component.mjs +0 -217
- package/esm2020/lib/components/form/rating/rating.module.mjs +0 -27
- package/esm2020/lib/components/form/switch/switch.component.mjs +0 -97
- package/esm2020/lib/components/form/switch/switch.module.mjs +0 -21
- package/esm2020/lib/components/gallery/components/gallery-confirm-modal/gallery-confirm-modal.component.mjs +0 -22
- package/esm2020/lib/components/gallery/components/gallery-item/gallery-item.component.mjs +0 -102
- package/esm2020/lib/components/gallery/gallery.component.mjs +0 -197
- package/esm2020/lib/components/gallery/gallery.module.mjs +0 -56
- package/esm2020/lib/components/gallery/services/gallery.service.mjs +0 -31
- package/esm2020/lib/components/hint-error-message/hint-error-message.component.mjs +0 -123
- package/esm2020/lib/components/hint-error-message/hint-error-message.module.mjs +0 -19
- package/esm2020/lib/components/icon-button/icon-button.component.mjs +0 -51
- package/esm2020/lib/components/icon-button/icon-button.module.mjs +0 -19
- package/esm2020/lib/components/label/label.component.mjs +0 -141
- package/esm2020/lib/components/label/label.module.mjs +0 -25
- package/esm2020/lib/components/link/link.component.mjs +0 -50
- package/esm2020/lib/components/link/link.module.mjs +0 -19
- package/esm2020/lib/components/loader/loader.component.mjs +0 -26
- package/esm2020/lib/components/loader/loader.module.mjs +0 -19
- package/esm2020/lib/components/modal/modal.component.mjs +0 -146
- package/esm2020/lib/components/modal/modal.module.mjs +0 -20
- package/esm2020/lib/components/pages-nav/pages-nav.component.mjs +0 -33
- package/esm2020/lib/components/pages-nav/pages-nav.module.mjs +0 -26
- package/esm2020/lib/components/paginator/paginator.component.mjs +0 -142
- package/esm2020/lib/components/paginator/paginator.module.mjs +0 -33
- package/esm2020/lib/components/progress/progress.component.mjs +0 -26
- package/esm2020/lib/components/progress/progress.module.mjs +0 -19
- package/esm2020/lib/components/save-state/components/save-state-checkbox/save-state-checkbox.component.mjs +0 -15
- package/esm2020/lib/components/save-state/components/save-state-checkbox-group/save-state-checkbox-group.component.mjs +0 -15
- package/esm2020/lib/components/save-state/components/save-state-editor/save-state-editor.component.mjs +0 -15
- package/esm2020/lib/components/save-state/components/save-state-input/save-state-input.component.mjs +0 -15
- package/esm2020/lib/components/save-state/components/save-state-switch/save-state-switch.component.mjs +0 -15
- package/esm2020/lib/components/save-state/save-state.component.mjs +0 -39
- package/esm2020/lib/components/save-state/save-state.module.mjs +0 -39
- package/esm2020/lib/components/stepper/stepper.component.mjs +0 -54
- package/esm2020/lib/components/stepper/stepper.module.mjs +0 -20
- package/esm2020/lib/components/table/components/column/column.component.mjs +0 -40
- package/esm2020/lib/components/table/table.component.mjs +0 -274
- package/esm2020/lib/components/table/table.module.mjs +0 -52
- package/esm2020/lib/components/tabs/tab/tab.component.mjs +0 -31
- package/esm2020/lib/components/tabs/tabs-group/tabs-group.component.mjs +0 -29
- package/esm2020/lib/components/tabs/tabs.module.mjs +0 -20
- package/esm2020/lib/components/tooltip/services/tooltip.service.mjs +0 -67
- package/esm2020/lib/components/tooltip/tooltip-trigger/tooltip-trigger.component.mjs +0 -38
- package/esm2020/lib/components/tooltip/tooltip.component.mjs +0 -60
- package/esm2020/lib/components/tooltip/tooltip.module.mjs +0 -21
- package/esm2020/lib/components/truncate-text/truncate-text.component.mjs +0 -30
- package/esm2020/lib/components/truncate-text/truncate-text.module.mjs +0 -21
- package/esm2020/lib/components/warning-message/warning-message.component.mjs +0 -31
- package/esm2020/lib/components/warning-message/warning-message.module.mjs +0 -19
- package/esm2020/lib/components/wrappers/content-wrapper/content-wrapper.component.mjs +0 -26
- package/esm2020/lib/components/wrappers/content-wrapper/content-wrapper.module.mjs +0 -19
- package/esm2020/lib/components/wrappers/controls-wrapper/components/controls-item/controls-item.component.mjs +0 -17
- package/esm2020/lib/components/wrappers/controls-wrapper/controls-wrapper.component.mjs +0 -24
- package/esm2020/lib/components/wrappers/controls-wrapper/controls-wrapper.module.mjs +0 -20
- package/esm2020/lib/components/wrappers/widget-wrapper/widget-wrapper.component.mjs +0 -96
- package/esm2020/lib/components/wrappers/widget-wrapper/widget-wrapper.module.mjs +0 -26
- package/esm2020/lib/directives/autosize/autosize.directive.mjs +0 -55
- package/esm2020/lib/directives/autosize/autosize.module.mjs +0 -26
- package/esm2020/lib/directives/truncate/truncate.directive.mjs +0 -32
- package/esm2020/lib/directives/truncate/truncate.module.mjs +0 -18
- package/esm2020/lib/helpers/extension/input-file.extension.mjs +0 -39
- package/esm2020/lib/helpers/formatting-date.mjs +0 -51
- package/esm2020/lib/helpers/string-hash-code.mjs +0 -17
- package/esm2020/lib/pipes/currency/currency.module.mjs +0 -22
- package/esm2020/lib/pipes/currency/currency.pipe.mjs +0 -22
- package/esm2020/lib/pipes/date/date-format.module.mjs +0 -19
- package/esm2020/lib/pipes/date/date-format.pipe.mjs +0 -21
- package/esm2020/lib/pipes/date/date-time-format.pipe.mjs +0 -21
- package/esm2020/lib/pipes/phone/phone-format.module.mjs +0 -18
- package/esm2020/lib/pipes/phone/phone-format.pipe.mjs +0 -23
- package/esm2020/lib/pipes/safe/safe.module.mjs +0 -22
- package/esm2020/lib/pipes/safe/safe.pipe.mjs +0 -20
- package/esm2020/lib/pipes/truncate/truncate.module.mjs +0 -22
- package/esm2020/lib/pipes/truncate/truncate.pipe.mjs +0 -23
- package/esm2020/lib/services/file-upload/file-upload.service.mjs +0 -26
- package/esm2020/lib/services/mrx-autosave/mrx-autosave.service.mjs +0 -44
- package/esm2020/lib/services/mrx-form-validator/mrx-form-validator.mjs +0 -283
- package/esm2020/lib/services/save-store/save-store.module.mjs +0 -31
- package/esm2020/lib/services/save-store/store/effect.mjs +0 -31
- package/esm2020/lib/services/save-store/store/reducer.mjs +0 -79
- package/esm2020/public-api.mjs +0 -185
- package/fesm2015/myrta-ui.mjs +0 -16173
- package/fesm2015/myrta-ui.mjs.map +0 -1
- package/fesm2020/myrta-ui.mjs +0 -16212
- package/fesm2020/myrta-ui.mjs.map +0 -1
- package/lib/components/context-menu/components/context-menu/context-menu.component.d.ts +0 -34
- package/lib/components/context-menu/components/context-menu-content/context-menu-content.component.d.ts +0 -62
- package/lib/components/context-menu/context-menu.module.d.ts +0 -15
- package/lib/components/context-menu/context-menu.options.d.ts +0 -4
- package/lib/components/context-menu/context-menu.tokens.d.ts +0 -2
- package/lib/components/context-menu/directives/context-menu/context-menu.directive.d.ts +0 -12
- package/lib/components/context-menu/directives/context-menu-item/context-menu-item.directive.d.ts +0 -30
- package/lib/components/context-menu/models/context-menu.enum.d.ts +0 -11
- package/lib/components/context-menu/services/context-menu/context-menu-fixed.service.d.ts +0 -11
- package/lib/components/context-menu/services/context-menu/context-menu.service.d.ts +0 -56
- package/lib/components/form/document-editor/components/document-editor-preview-modal/document-editor-preview-modal.component.d.ts +0 -22
- package/lib/components/form/document-editor/document-editor.component.d.ts +0 -37
- package/lib/components/form/document-editor/document-editor.module.d.ts +0 -13
- package/lib/components/form/document-editor/helpers/transform-sysname.d.ts +0 -5
- package/lib/components/form/document-editor/models/document-editor-short-codes.enum.d.ts +0 -6
|
@@ -1,361 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostListener, Input, Output, ViewChildren } from '@angular/core';
|
|
2
|
-
import { FormArray, FormControl, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
|
|
3
|
-
import { NgxOtpBehavior } from '../../models/input-opt.model';
|
|
4
|
-
import { InputOptSizesEnum } from './input-opt.enum';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../services/input-opt.service";
|
|
7
|
-
import * as i2 from "../../../../error-message/error-message.component";
|
|
8
|
-
import * as i3 from "@angular/forms";
|
|
9
|
-
import * as i4 from "@angular/common";
|
|
10
|
-
import * as i5 from "../../directives/opt-pattern.directive";
|
|
11
|
-
export class InputOptComponent {
|
|
12
|
-
constructor(otpService, ref) {
|
|
13
|
-
this.otpService = otpService;
|
|
14
|
-
this.ref = ref;
|
|
15
|
-
this.defaultPattern = /^.+$/;
|
|
16
|
-
this.DEFAULT_ARIA_LABEL = 'One time password input';
|
|
17
|
-
this.isNgxOtpArrayDisabled = false;
|
|
18
|
-
this.focusedInputHasValue = false;
|
|
19
|
-
this.isInit = false;
|
|
20
|
-
this.ngxOtpArray = new FormArray([]);
|
|
21
|
-
this.ariaLabels = [];
|
|
22
|
-
this.styles = [];
|
|
23
|
-
this.otpConfig = {
|
|
24
|
-
otpLength: 6,
|
|
25
|
-
autofocus: true,
|
|
26
|
-
autoblur: true,
|
|
27
|
-
behavior: NgxOtpBehavior.DEFAULT,
|
|
28
|
-
pattern: this.defaultPattern,
|
|
29
|
-
classList: {
|
|
30
|
-
container: '',
|
|
31
|
-
inputBox: '',
|
|
32
|
-
input: '',
|
|
33
|
-
inputFilled: '',
|
|
34
|
-
inputDisabled: '',
|
|
35
|
-
inputSuccess: '',
|
|
36
|
-
inputError: '',
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
this.size = 'large';
|
|
40
|
-
this.customClasses = '';
|
|
41
|
-
this.invalid = false;
|
|
42
|
-
this.invalidMessage = '';
|
|
43
|
-
this.checkInvalid = null;
|
|
44
|
-
this.change = new EventEmitter();
|
|
45
|
-
this.fillChange = new EventEmitter();
|
|
46
|
-
this.onChange = (value) => {
|
|
47
|
-
};
|
|
48
|
-
this.onTouched = () => {
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
set disable(isDisabled) {
|
|
52
|
-
this.handleDisable(isDisabled);
|
|
53
|
-
this.isNgxOtpArrayDisabled = isDisabled;
|
|
54
|
-
}
|
|
55
|
-
set config(c) {
|
|
56
|
-
this.otpConfig = { ...this.otpConfig, ...c };
|
|
57
|
-
if (this.otpConfig.classList?.input) {
|
|
58
|
-
this.setInitialStyles();
|
|
59
|
-
}
|
|
60
|
-
if (!c.pattern) {
|
|
61
|
-
this.otpConfig.pattern = this.defaultPattern;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
set status(status) {
|
|
65
|
-
this.handleStatusChange(status);
|
|
66
|
-
}
|
|
67
|
-
ngOnInit() {
|
|
68
|
-
this.setUpOtpForm();
|
|
69
|
-
this.setUpAriaLabels();
|
|
70
|
-
this.LAST_INPUT_INDEX = this.otpConfig.otpLength - 1;
|
|
71
|
-
this.otpFormChangeListener();
|
|
72
|
-
}
|
|
73
|
-
ngAfterViewInit() {
|
|
74
|
-
this.setNativeHTMLElements();
|
|
75
|
-
this.setInitialFocus();
|
|
76
|
-
this.setNumericInputIfPossible();
|
|
77
|
-
this.handleDisable(this.isNgxOtpArrayDisabled);
|
|
78
|
-
this.isInit = true;
|
|
79
|
-
}
|
|
80
|
-
ngOnDestroy() {
|
|
81
|
-
this.ngxOtpArray$.unsubscribe();
|
|
82
|
-
}
|
|
83
|
-
get isInvalidMessage() {
|
|
84
|
-
return !!this.invalidMessage || !!this.invalidMessage.length;
|
|
85
|
-
}
|
|
86
|
-
get checkValidClasses() {
|
|
87
|
-
return this.checkInvalid === false ?
|
|
88
|
-
'mrx-input-checked-success' :
|
|
89
|
-
this.checkInvalid === true ? 'mrx-input-checked-error' : '';
|
|
90
|
-
}
|
|
91
|
-
get getClasses() {
|
|
92
|
-
return `${InputOptSizesEnum[this.size]} ${this.customClasses}`;
|
|
93
|
-
}
|
|
94
|
-
get getContainerClasses() {
|
|
95
|
-
return this.otpConfig?.classList?.container || '';
|
|
96
|
-
}
|
|
97
|
-
get getInputBoxClasses() {
|
|
98
|
-
return this.otpConfig?.classList?.inputBox || '';
|
|
99
|
-
}
|
|
100
|
-
convertToFormControl(absCtrl) {
|
|
101
|
-
return absCtrl;
|
|
102
|
-
}
|
|
103
|
-
clear() {
|
|
104
|
-
if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
|
|
105
|
-
this.removeStyleFromAll(this.otpConfig.classList.inputFilled);
|
|
106
|
-
}
|
|
107
|
-
this.ngxOtpArray.reset();
|
|
108
|
-
this.ref.detectChanges();
|
|
109
|
-
if (this.otpConfig.autofocus) {
|
|
110
|
-
this.setFocus(0);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
handleKeyUp(index, value) {
|
|
114
|
-
// @ts-ignore
|
|
115
|
-
if (this.otpConfig.pattern.test(value) && value !== 'Backspace') {
|
|
116
|
-
if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
|
|
117
|
-
this.addStyle(index, this.otpConfig.classList.inputFilled);
|
|
118
|
-
}
|
|
119
|
-
if (!this.ngxOtpArray.valid) {
|
|
120
|
-
this.getFormControlByIndex(index).setValue(value, { emitEvent: false });
|
|
121
|
-
this.stepForward(index);
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
this.blur();
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
handleDelete(index) {
|
|
129
|
-
if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
|
|
130
|
-
this.removeStyle(index, this.otpConfig.classList.inputFilled);
|
|
131
|
-
}
|
|
132
|
-
if ((this.otpConfig.behavior === NgxOtpBehavior.LEGACY &&
|
|
133
|
-
!this.focusedInputHasValue) ||
|
|
134
|
-
this.otpConfig.behavior !== NgxOtpBehavior.LEGACY) {
|
|
135
|
-
this.stepBackward(index);
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
this.focusedInputHasValue = false;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
handleFocus(index) {
|
|
142
|
-
this.focusedInputHasValue = !!this.ngxOtpArray.controls[index].value;
|
|
143
|
-
if (this.otpConfig.behavior === NgxOtpBehavior.LEGACY &&
|
|
144
|
-
this.focusedInputHasValue) {
|
|
145
|
-
this.inputs[index].select();
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
stepBackward(index) {
|
|
149
|
-
if (index > 0) {
|
|
150
|
-
this.setFocus(index - 1);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
stepForward(index) {
|
|
154
|
-
if (index < this.LAST_INPUT_INDEX) {
|
|
155
|
-
this.setFocus(index + 1);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
otpFormChangeListener() {
|
|
159
|
-
this.ngxOtpArray$ = this.ngxOtpArray.valueChanges.subscribe((values) => {
|
|
160
|
-
if (this.isInit) {
|
|
161
|
-
this.change.emit(values);
|
|
162
|
-
if (this.ngxOtpArray.valid) {
|
|
163
|
-
this.fillChange.emit(values.join(''));
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
setUpOtpForm() {
|
|
169
|
-
for (let i = 0; i < this.otpConfig.otpLength; i++) {
|
|
170
|
-
this.ngxOtpArray.push(new FormControl('', [Validators.required]));
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
setUpAriaLabels() {
|
|
174
|
-
const labels = this.otpConfig.ariaLabels;
|
|
175
|
-
this.ariaLabels = Array.isArray(labels)
|
|
176
|
-
? labels
|
|
177
|
-
: new Array(this.otpConfig.otpLength).fill(labels || this.DEFAULT_ARIA_LABEL);
|
|
178
|
-
}
|
|
179
|
-
setNativeHTMLElements() {
|
|
180
|
-
this.inputs = this.otpInputElements.map((element) => element.nativeElement);
|
|
181
|
-
}
|
|
182
|
-
setInitialFocus() {
|
|
183
|
-
if (this.otpConfig.autofocus) {
|
|
184
|
-
this.setFocus(0);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
setInitialStyles() {
|
|
188
|
-
this.styles = this.otpService.init2DArray(this.otpConfig.otpLength);
|
|
189
|
-
if (this.otpConfig.classList && this.otpConfig.classList.input) {
|
|
190
|
-
this.addStyleToAll(this.otpConfig.classList.input);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
setFocus(index) {
|
|
194
|
-
this.inputs[index].focus();
|
|
195
|
-
}
|
|
196
|
-
setNumericInputIfPossible() {
|
|
197
|
-
if (this.otpConfig.numericInputMode) {
|
|
198
|
-
this.otpConfig.pattern = this.defaultPattern;
|
|
199
|
-
this.inputs.map((element) => {
|
|
200
|
-
element.setAttribute('inputmode', 'numeric');
|
|
201
|
-
element.setAttribute('pattern', '[0-9]*');
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
blur() {
|
|
206
|
-
if (this.otpConfig.autoblur) {
|
|
207
|
-
this.inputs.map((input) => input.blur());
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
handlePaste(value) {
|
|
211
|
-
// @ts-ignore
|
|
212
|
-
if (this.otpConfig.pattern.test(value)) {
|
|
213
|
-
let lastIndex = 0;
|
|
214
|
-
value
|
|
215
|
-
.split('')
|
|
216
|
-
.slice(0, this.otpConfig.otpLength)
|
|
217
|
-
.map((character, index) => {
|
|
218
|
-
if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
|
|
219
|
-
this.addStyle(index, this.otpConfig.classList.inputFilled);
|
|
220
|
-
}
|
|
221
|
-
this.getFormControlByIndex(index).setValue(character);
|
|
222
|
-
lastIndex = index;
|
|
223
|
-
});
|
|
224
|
-
if (this.ngxOtpArray.valid) {
|
|
225
|
-
this.blur();
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
this.setFocus(lastIndex + 1);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
handleDisable(isDisabled) {
|
|
233
|
-
if (isDisabled) {
|
|
234
|
-
this.ngxOtpArray.disable();
|
|
235
|
-
if (this.otpConfig.classList && this.otpConfig.classList.inputDisabled) {
|
|
236
|
-
this.addStyleToAll(this.otpConfig.classList.inputDisabled);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
else {
|
|
240
|
-
this.ngxOtpArray.enable();
|
|
241
|
-
if (this.otpConfig.classList && this.otpConfig.classList.inputDisabled) {
|
|
242
|
-
this.removeStyleFromAll(this.otpConfig.classList.inputDisabled);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
handleStatusChange(status) {
|
|
247
|
-
if (this.otpConfig.classList && (this.otpConfig.classList.inputSuccess && this.otpConfig.classList.inputError)) {
|
|
248
|
-
this.removeStyleFromAll([
|
|
249
|
-
...this.otpService.toArray(this.otpConfig.classList.inputSuccess),
|
|
250
|
-
...this.otpService.toArray(this.otpConfig.classList.inputError),
|
|
251
|
-
]);
|
|
252
|
-
}
|
|
253
|
-
if (status) {
|
|
254
|
-
if (status === 'success') {
|
|
255
|
-
if (this.otpConfig.classList && this.otpConfig.classList.inputSuccess) {
|
|
256
|
-
this.addStyleToAll(this.otpConfig.classList.inputSuccess);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
else if (status === 'error') {
|
|
260
|
-
if (this.otpConfig.classList && this.otpConfig.classList.inputError) {
|
|
261
|
-
this.addStyleToAll(this.otpConfig.classList.inputError);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
getFormControlByIndex(index) {
|
|
267
|
-
return this.ngxOtpArray.controls[index];
|
|
268
|
-
}
|
|
269
|
-
addStyle(index, styles) {
|
|
270
|
-
this.styles = this.otpService.addItemAtIndex(this.styles, index, this.otpService.toArray(styles));
|
|
271
|
-
}
|
|
272
|
-
addStyleToAll(styles) {
|
|
273
|
-
this.styles = this.otpService.addItemToAll(this.styles, this.otpService.toArray(styles));
|
|
274
|
-
}
|
|
275
|
-
removeStyle(index, styles) {
|
|
276
|
-
this.styles = this.otpService.removeItemAtIndex(this.styles, index, this.otpService.toArray(styles));
|
|
277
|
-
}
|
|
278
|
-
removeStyleFromAll(styles) {
|
|
279
|
-
this.styles = this.otpService.removeItemFromAll(this.styles, this.otpService.toArray(styles));
|
|
280
|
-
}
|
|
281
|
-
registerOnChange(fn) {
|
|
282
|
-
this.onChange = fn;
|
|
283
|
-
}
|
|
284
|
-
registerOnTouched(fn) {
|
|
285
|
-
this.onTouched = fn;
|
|
286
|
-
}
|
|
287
|
-
writeValue(outsideValue) {
|
|
288
|
-
if (outsideValue) {
|
|
289
|
-
let lastIndex = 0;
|
|
290
|
-
String(outsideValue)
|
|
291
|
-
.split('')
|
|
292
|
-
.slice(0, this.otpConfig.otpLength)
|
|
293
|
-
.map((character, index) => {
|
|
294
|
-
if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
|
|
295
|
-
this.addStyle(index, this.otpConfig.classList.inputFilled);
|
|
296
|
-
}
|
|
297
|
-
this.getFormControlByIndex(index).setValue(character, { emitEvent: false });
|
|
298
|
-
lastIndex = index;
|
|
299
|
-
});
|
|
300
|
-
if (this.ngxOtpArray.valid) {
|
|
301
|
-
this.blur();
|
|
302
|
-
}
|
|
303
|
-
else {
|
|
304
|
-
this.setFocus(lastIndex + 1);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
onPaste(event) {
|
|
309
|
-
event.preventDefault();
|
|
310
|
-
// @ts-ignore
|
|
311
|
-
this.handlePaste(event.clipboardData.getData('text'));
|
|
312
|
-
}
|
|
313
|
-
getInputType() {
|
|
314
|
-
return this.otpConfig.isPasswordInput ? 'password' : this.otpConfig.isNumberInput ? 'tel' : 'text';
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
InputOptComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputOptComponent, deps: [{ token: i1.InputOptService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
318
|
-
InputOptComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: InputOptComponent, selector: "mrx-input-opt", inputs: { size: "size", customClasses: "customClasses", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", disable: "disable", config: "config", status: "status" }, outputs: { change: "change", fillChange: "fillChange" }, host: { listeners: { "paste": "onPaste($event)" } }, providers: [
|
|
319
|
-
{
|
|
320
|
-
provide: NG_VALUE_ACCESSOR,
|
|
321
|
-
useExisting: forwardRef(() => InputOptComponent),
|
|
322
|
-
multi: true,
|
|
323
|
-
},
|
|
324
|
-
], viewQueries: [{ propertyName: "otpInputElements", predicate: ["otpInputElement"], descendants: true }], ngImport: i0, template: "<form\r\n [ngClass]=\"getContainerClasses\"\r\n class=\"mrx-input-otp-container\"\r\n [class]=\"getClasses\"\r\n>\r\n <div\r\n *ngFor=\"let control of ngxOtpArray.controls; let i = index\"\r\n [ngClass]=\"getInputBoxClasses\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"checkValidClasses\"\r\n class=\"mrx-input-otp-box\"\r\n >\r\n <label [attr.aria-label]=\"ariaLabels[i]\">\r\n <input\r\n #otpInputElement\r\n [id]=\"'mrx-input-otp-' + i\"\r\n [formControl]=\"convertToFormControl(control)\"\r\n [mrxOptPattern]=\"otpConfig.pattern\"\r\n [type]=\"getInputType()\"\r\n [ngClass]=\"styles[i]\"\r\n (keyup)=\"handleKeyUp(i, $event.key)\"\r\n (keyup.backspace)=\"handleDelete(i)\"\r\n (keyup.arrowLeft)=\"stepBackward(i)\"\r\n (keyup.arrowRight)=\"stepForward(i)\"\r\n (focus)=\"handleFocus(i)\"\r\n class=\"mrx-input-otp\"\r\n maxlength=\"1\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"false\"\r\n />\r\n </label>\r\n </div>\r\n</form>\r\n\r\n<mrx-error-message\r\n *ngIf=\"invalid && isInvalidMessage\"\r\n customClasses=\"text-left\"\r\n [invalidMessage]=\"invalidMessage\"\r\n></mrx-error-message>\r\n", styles: [".mrx-input-otp{background:var(--brand-bg-tertiary-default, #FFF);color:var(--neutral-text-primary, #262626);text-align:center;outline:0}.mrx-input-otp-container{display:flex}.mrx-input-otp-box label{margin-bottom:0}.mrx-input-otp-disabled{opacity:.3}.mrx-input-otp-container.mrx-input-opt-lg{gap:12px}.mrx-input-otp-container.mrx-input-opt-lg .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}.mrx-input-otp-container.mrx-input-opt-md{gap:10px}.mrx-input-otp-container.mrx-input-opt-md .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}.mrx-input-otp-container.mrx-input-opt-responsive{flex-wrap:wrap;gap:12px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}@media (max-width: 576px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:10px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}}@media (max-width: 370px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:8px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-8);height:var(--sizing-8);font-family:var(--headlines-lvl-5-font-family);font-weight:var(--headlines-lvl-5-font-weight);line-height:var(--headlines-lvl-5-line-height);font-size:var(--headlines-lvl-5-font-size)}}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-success .mrx-input-otp{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}\n"], components: [{ type: i2.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }], directives: [{ type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.OptPatternDirective, selector: "[mrxOptPattern]", inputs: ["mrxOptPattern"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
325
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputOptComponent, decorators: [{
|
|
326
|
-
type: Component,
|
|
327
|
-
args: [{ selector: 'mrx-input-opt', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
328
|
-
{
|
|
329
|
-
provide: NG_VALUE_ACCESSOR,
|
|
330
|
-
useExisting: forwardRef(() => InputOptComponent),
|
|
331
|
-
multi: true,
|
|
332
|
-
},
|
|
333
|
-
], template: "<form\r\n [ngClass]=\"getContainerClasses\"\r\n class=\"mrx-input-otp-container\"\r\n [class]=\"getClasses\"\r\n>\r\n <div\r\n *ngFor=\"let control of ngxOtpArray.controls; let i = index\"\r\n [ngClass]=\"getInputBoxClasses\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"checkValidClasses\"\r\n class=\"mrx-input-otp-box\"\r\n >\r\n <label [attr.aria-label]=\"ariaLabels[i]\">\r\n <input\r\n #otpInputElement\r\n [id]=\"'mrx-input-otp-' + i\"\r\n [formControl]=\"convertToFormControl(control)\"\r\n [mrxOptPattern]=\"otpConfig.pattern\"\r\n [type]=\"getInputType()\"\r\n [ngClass]=\"styles[i]\"\r\n (keyup)=\"handleKeyUp(i, $event.key)\"\r\n (keyup.backspace)=\"handleDelete(i)\"\r\n (keyup.arrowLeft)=\"stepBackward(i)\"\r\n (keyup.arrowRight)=\"stepForward(i)\"\r\n (focus)=\"handleFocus(i)\"\r\n class=\"mrx-input-otp\"\r\n maxlength=\"1\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"false\"\r\n />\r\n </label>\r\n </div>\r\n</form>\r\n\r\n<mrx-error-message\r\n *ngIf=\"invalid && isInvalidMessage\"\r\n customClasses=\"text-left\"\r\n [invalidMessage]=\"invalidMessage\"\r\n></mrx-error-message>\r\n", styles: [".mrx-input-otp{background:var(--brand-bg-tertiary-default, #FFF);color:var(--neutral-text-primary, #262626);text-align:center;outline:0}.mrx-input-otp-container{display:flex}.mrx-input-otp-box label{margin-bottom:0}.mrx-input-otp-disabled{opacity:.3}.mrx-input-otp-container.mrx-input-opt-lg{gap:12px}.mrx-input-otp-container.mrx-input-opt-lg .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}.mrx-input-otp-container.mrx-input-opt-md{gap:10px}.mrx-input-otp-container.mrx-input-opt-md .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}.mrx-input-otp-container.mrx-input-opt-responsive{flex-wrap:wrap;gap:12px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}@media (max-width: 576px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:10px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}}@media (max-width: 370px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:8px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-8);height:var(--sizing-8);font-family:var(--headlines-lvl-5-font-family);font-weight:var(--headlines-lvl-5-font-weight);line-height:var(--headlines-lvl-5-line-height);font-size:var(--headlines-lvl-5-font-size)}}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-success .mrx-input-otp{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}\n"] }]
|
|
334
|
-
}], ctorParameters: function () { return [{ type: i1.InputOptService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { size: [{
|
|
335
|
-
type: Input
|
|
336
|
-
}], customClasses: [{
|
|
337
|
-
type: Input
|
|
338
|
-
}], invalid: [{
|
|
339
|
-
type: Input
|
|
340
|
-
}], invalidMessage: [{
|
|
341
|
-
type: Input
|
|
342
|
-
}], checkInvalid: [{
|
|
343
|
-
type: Input
|
|
344
|
-
}], disable: [{
|
|
345
|
-
type: Input
|
|
346
|
-
}], config: [{
|
|
347
|
-
type: Input
|
|
348
|
-
}], status: [{
|
|
349
|
-
type: Input
|
|
350
|
-
}], otpInputElements: [{
|
|
351
|
-
type: ViewChildren,
|
|
352
|
-
args: ['otpInputElement']
|
|
353
|
-
}], change: [{
|
|
354
|
-
type: Output
|
|
355
|
-
}], fillChange: [{
|
|
356
|
-
type: Output
|
|
357
|
-
}], onPaste: [{
|
|
358
|
-
type: HostListener,
|
|
359
|
-
args: ['paste', ['$event']]
|
|
360
|
-
}] } });
|
|
361
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtb3B0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LW9wdC9jb21wb25lbnRzL2lucHV0LW9wdC9pbnB1dC1vcHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtb3B0L2NvbXBvbmVudHMvaW5wdXQtb3B0L2lucHV0LW9wdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBRTdDLE1BQU0sRUFFTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixTQUFTLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxjQUFjLEVBQW1DLE1BQU0sOEJBQThCLENBQUM7QUFHL0YsT0FBTyxFQUFFLGlCQUFpQixFQUFzQixNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBZ0J6RSxNQUFNLE9BQU8saUJBQWlCO0lBOEQ1QixZQUNtQixVQUEyQixFQUMzQixHQUFzQjtRQUR0QixlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUMzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQS9EakMsbUJBQWMsR0FBRyxNQUFNLENBQUM7UUFDeEIsdUJBQWtCLEdBQUcseUJBQXlCLENBQUM7UUFHL0MsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBRTlCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXZCLGdCQUFXLEdBQUcs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SUFDckcsQ0FBQzs7OEdBOVhVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDRWQVJqQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQ2hELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixrSUM3QkgsNnVDQXVDQTsyRkRSYSxpQkFBaUI7a0JBYjdCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDOzRCQUNoRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtzSUFrQ2UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVPLE9BQU87c0JBQW5CLEtBQUs7Z0JBS08sTUFBTTtzQkFBbEIsS0FBSztnQkFVTyxNQUFNO3NCQUFsQixLQUFLO2dCQUkyQixnQkFBZ0I7c0JBQWhELFlBQVk7dUJBQUMsaUJBQWlCO2dCQUVyQixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkEwVDRCLE9BQU87c0JBQXpDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmd4T3RwQmVoYXZpb3IsIE5neE90cElucHV0Q29uZmlnLCBOZ3hPdHBTdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5wdXQtb3B0Lm1vZGVsJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IElucHV0T3B0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2lucHV0LW9wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW5wdXRPcHRTaXplc0VudW0sIElucHV0T3B0U2l6ZXNUeXBlcyB9IGZyb20gJy4vaW5wdXQtb3B0LmVudW0nO1xyXG5pbXBvcnQgeyBJbnB1dFRleHRWYWx1ZVR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtaW5wdXQtb3B0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtb3B0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1vcHQuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0T3B0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dE9wdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIGRlZmF1bHRQYXR0ZXJuID0gL14uKyQvO1xyXG4gIHByaXZhdGUgREVGQVVMVF9BUklBX0xBQkVMID0gJ09uZSB0aW1lIHBhc3N3b3JkIGlucHV0JztcclxuICBwcml2YXRlIExBU1RfSU5QVVRfSU5ERVghOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBpbnB1dHMhOiBIVE1MSW5wdXRFbGVtZW50W107XHJcbiAgcHJpdmF0ZSBpc05neE90cEFycmF5RGlzYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIG5neE90cEFycmF5JCE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGZvY3VzZWRJbnB1dEhhc1ZhbHVlID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc0luaXQgPSBmYWxzZTtcclxuXHJcbiAgbmd4T3RwQXJyYXkgPSBuZXcgRm9ybUFycmF5KFtdKTtcclxuICBhcmlhTGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHBhdHRlcm4hOiBSZWdFeHA7XHJcbiAgc3R5bGVzOiBzdHJpbmdbXVtdID0gW107XHJcblxyXG4gIG90cENvbmZpZzogTmd4T3RwSW5wdXRDb25maWcgPSB7XHJcbiAgICBvdHBMZW5ndGg6IDYsXHJcbiAgICBhdXRvZm9jdXM6IHRydWUsXHJcbiAgICBhdXRvYmx1cjogdHJ1ZSxcclxuICAgIGJlaGF2aW9yOiBOZ3hPdHBCZWhhdmlvci5ERUZBVUxULFxyXG4gICAgcGF0dGVybjogdGhpcy5kZWZhdWx0UGF0dGVybixcclxuICAgIGNsYXNzTGlzdDoge1xyXG4gICAgICBjb250YWluZXI6ICcnLFxyXG4gICAgICBpbnB1dEJveDogJycsXHJcbiAgICAgIGlucHV0OiAnJyxcclxuICAgICAgaW5wdXRGaWxsZWQ6ICcnLFxyXG4gICAgICBpbnB1dERpc2FibGVkOiAnJyxcclxuICAgICAgaW5wdXRTdWNjZXNzOiAnJyxcclxuICAgICAgaW5wdXRFcnJvcjogJycsXHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHNpemU6IElucHV0T3B0U2l6ZXNUeXBlcyA9ICdsYXJnZSc7XHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzZXMgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5oYW5kbGVEaXNhYmxlKGlzRGlzYWJsZWQpO1xyXG4gICAgdGhpcy5pc05neE90cEFycmF5RGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGNvbmZpZyhjOiBOZ3hPdHBJbnB1dENvbmZpZykge1xyXG4gICAgdGhpcy5vdHBDb25maWcgPSB7Li4udGhpcy5vdHBDb25maWcsIC4uLmN9O1xyXG4gICAgaWYgKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdD8uaW5wdXQpIHtcclxuICAgICAgdGhpcy5zZXRJbml0aWFsU3R5bGVzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWMucGF0dGVybikge1xyXG4gICAgICB0aGlzLm90cENvbmZpZy5wYXR0ZXJuID0gdGhpcy5kZWZhdWx0UGF0dGVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzdGF0dXMoc3RhdHVzOiBOZ3hPdHBTdGF0dXMpIHtcclxuICAgIHRoaXMuaGFuZGxlU3RhdHVzQ2hhbmdlKHN0YXR1cyk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkcmVuKCdvdHBJbnB1dEVsZW1lbnQnKSBvdHBJbnB1dEVsZW1lbnRzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cclxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuICBAT3V0cHV0KCkgZmlsbENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG90cFNlcnZpY2U6IElucHV0T3B0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFVwT3RwRm9ybSgpO1xyXG4gICAgdGhpcy5zZXRVcEFyaWFMYWJlbHMoKTtcclxuICAgIHRoaXMuTEFTVF9JTlBVVF9JTkRFWCA9IHRoaXMub3RwQ29uZmlnLm90cExlbmd0aCAtIDE7XHJcbiAgICB0aGlzLm90cEZvcm1DaGFuZ2VMaXN0ZW5lcigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXROYXRpdmVIVE1MRWxlbWVudHMoKTtcclxuICAgIHRoaXMuc2V0SW5pdGlhbEZvY3VzKCk7XHJcbiAgICB0aGlzLnNldE51bWVyaWNJbnB1dElmUG9zc2libGUoKTtcclxuICAgIHRoaXMuaGFuZGxlRGlzYWJsZSh0aGlzLmlzTmd4T3RwQXJyYXlEaXNhYmxlZCk7XHJcbiAgICB0aGlzLmlzSW5pdCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubmd4T3RwQXJyYXkkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzSW52YWxpZE1lc3NhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmludmFsaWRNZXNzYWdlIHx8ICEhdGhpcy5pbnZhbGlkTWVzc2FnZS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNoZWNrVmFsaWRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja0ludmFsaWQgPT09IGZhbHNlID9cclxuICAgICAgJ21yeC1pbnB1dC1jaGVja2VkLXN1Y2Nlc3MnIDpcclxuICAgICAgdGhpcy5jaGVja0ludmFsaWQgPT09IHRydWUgPyAnbXJ4LWlucHV0LWNoZWNrZWQtZXJyb3InIDogJyc7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke0lucHV0T3B0U2l6ZXNFbnVtW3RoaXMuc2l6ZV19ICR7dGhpcy5jdXN0b21DbGFzc2VzfWA7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0Q29udGFpbmVyQ2xhc3NlcygpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5vdHBDb25maWc/LmNsYXNzTGlzdD8uY29udGFpbmVyIHx8ICcnXHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0SW5wdXRCb3hDbGFzc2VzKCk6IHN0cmluZyB8IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLm90cENvbmZpZz8uY2xhc3NMaXN0Py5pbnB1dEJveCB8fCAnJ1xyXG4gIH1cclxuXHJcbiAgY29udmVydFRvRm9ybUNvbnRyb2woYWJzQ3RybDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCk6IEZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiBhYnNDdHJsIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0ICYmIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEZpbGxlZCkge1xyXG4gICAgICB0aGlzLnJlbW92ZVN0eWxlRnJvbUFsbCh0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXRGaWxsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubmd4T3RwQXJyYXkucmVzZXQoKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICBpZiAodGhpcy5vdHBDb25maWcuYXV0b2ZvY3VzKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9jdXMoMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVLZXlVcChpbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICBpZiAodGhpcy5vdHBDb25maWcucGF0dGVybi50ZXN0KHZhbHVlKSAmJiB2YWx1ZSAhPT0gJ0JhY2tzcGFjZScpIHtcclxuICAgICAgaWYgKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdCAmJiB0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXRGaWxsZWQpIHtcclxuICAgICAgICB0aGlzLmFkZFN0eWxlKGluZGV4LCB0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXRGaWxsZWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5uZ3hPdHBBcnJheS52YWxpZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0Rm9ybUNvbnRyb2xCeUluZGV4KGluZGV4KS5zZXRWYWx1ZSh2YWx1ZSwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgICB0aGlzLnN0ZXBGb3J3YXJkKGluZGV4KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJsdXIoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRGVsZXRlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QgJiYgdGhpcy5vdHBDb25maWcuY2xhc3NMaXN0LmlucHV0RmlsbGVkKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlU3R5bGUoaW5kZXgsIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEZpbGxlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAodGhpcy5vdHBDb25maWcuYmVoYXZpb3IgPT09IE5neE90cEJlaGF2aW9yLkxFR0FDWSAmJlxyXG4gICAgICAgICF0aGlzLmZvY3VzZWRJbnB1dEhhc1ZhbHVlKSB8fFxyXG4gICAgICB0aGlzLm90cENvbmZpZy5iZWhhdmlvciAhPT0gTmd4T3RwQmVoYXZpb3IuTEVHQUNZXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zdGVwQmFja3dhcmQoaW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb2N1c2VkSW5wdXRIYXNWYWx1ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9jdXMoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1c2VkSW5wdXRIYXNWYWx1ZSA9ICEhdGhpcy5uZ3hPdHBBcnJheS5jb250cm9sc1tpbmRleF0udmFsdWU7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3RwQ29uZmlnLmJlaGF2aW9yID09PSBOZ3hPdHBCZWhhdmlvci5MRUdBQ1kgJiZcclxuICAgICAgdGhpcy5mb2N1c2VkSW5wdXRIYXNWYWx1ZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRzW2luZGV4XS5zZWxlY3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0ZXBCYWNrd2FyZChpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAoaW5kZXggPiAwKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9jdXMoaW5kZXggLSAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0ZXBGb3J3YXJkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChpbmRleCA8IHRoaXMuTEFTVF9JTlBVVF9JTkRFWCkge1xyXG4gICAgICB0aGlzLnNldEZvY3VzKGluZGV4ICsgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG90cEZvcm1DaGFuZ2VMaXN0ZW5lcigpOiB2b2lkIHtcclxuICAgIHRoaXMubmd4T3RwQXJyYXkkID0gdGhpcy5uZ3hPdHBBcnJheS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZXMpID0+IHtcclxuICAgICAgaWYgKHRoaXMuaXNJbml0KSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh2YWx1ZXMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5uZ3hPdHBBcnJheS52YWxpZCkge1xyXG4gICAgICAgICAgdGhpcy5maWxsQ2hhbmdlLmVtaXQodmFsdWVzLmpvaW4oJycpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVcE90cEZvcm0oKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMub3RwQ29uZmlnLm90cExlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMubmd4T3RwQXJyYXkucHVzaChuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVcEFyaWFMYWJlbHMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLm90cENvbmZpZy5hcmlhTGFiZWxzO1xyXG5cclxuICAgIHRoaXMuYXJpYUxhYmVscyA9IEFycmF5LmlzQXJyYXkobGFiZWxzKVxyXG4gICAgICA/IGxhYmVsc1xyXG4gICAgICA6IG5ldyBBcnJheSh0aGlzLm90cENvbmZpZy5vdHBMZW5ndGgpLmZpbGwoXHJcbiAgICAgICAgbGFiZWxzIHx8IHRoaXMuREVGQVVMVF9BUklBX0xBQkVMXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldE5hdGl2ZUhUTUxFbGVtZW50cygpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRzID0gdGhpcy5vdHBJbnB1dEVsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0SW5pdGlhbEZvY3VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3RwQ29uZmlnLmF1dG9mb2N1cykge1xyXG4gICAgICB0aGlzLnNldEZvY3VzKDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRJbml0aWFsU3R5bGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLm90cFNlcnZpY2UuaW5pdDJEQXJyYXkodGhpcy5vdHBDb25maWcub3RwTGVuZ3RoKTtcclxuXHJcbiAgICBpZiAodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0ICYmIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dCkge1xyXG4gICAgICB0aGlzLmFkZFN0eWxlVG9BbGwodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0LmlucHV0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Rm9jdXMoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dHNbaW5kZXhdLmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldE51bWVyaWNJbnB1dElmUG9zc2libGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vdHBDb25maWcubnVtZXJpY0lucHV0TW9kZSkge1xyXG4gICAgICB0aGlzLm90cENvbmZpZy5wYXR0ZXJuID0gdGhpcy5kZWZhdWx0UGF0dGVybjtcclxuICAgICAgdGhpcy5pbnB1dHMubWFwKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2lucHV0bW9kZScsICdudW1lcmljJyk7XHJcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3BhdHRlcm4nLCAnWzAtOV0qJyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBibHVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3RwQ29uZmlnLmF1dG9ibHVyKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRzLm1hcCgoaW5wdXQpID0+IGlucHV0LmJsdXIoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVBhc3RlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIGlmICh0aGlzLm90cENvbmZpZy5wYXR0ZXJuLnRlc3QodmFsdWUpKSB7XHJcbiAgICAgIGxldCBsYXN0SW5kZXggPSAwO1xyXG4gICAgICB2YWx1ZVxyXG4gICAgICAgIC5zcGxpdCgnJylcclxuICAgICAgICAuc2xpY2UoMCwgdGhpcy5vdHBDb25maWcub3RwTGVuZ3RoKVxyXG4gICAgICAgIC5tYXAoKGNoYXJhY3Rlcjogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0ICYmIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEZpbGxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZFN0eWxlKGluZGV4LCB0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXRGaWxsZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5nZXRGb3JtQ29udHJvbEJ5SW5kZXgoaW5kZXgpLnNldFZhbHVlKGNoYXJhY3Rlcik7XHJcbiAgICAgICAgICBsYXN0SW5kZXggPSBpbmRleDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLm5neE90cEFycmF5LnZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5ibHVyKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXRGb2N1cyhsYXN0SW5kZXggKyAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVEaXNhYmxlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMubmd4T3RwQXJyYXkuZGlzYWJsZSgpO1xyXG4gICAgICBpZiAodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0ICYmIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dERpc2FibGVkKSB7XHJcbiAgICAgICAgdGhpcy5hZGRTdHlsZVRvQWxsKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dERpc2FibGVkKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5uZ3hPdHBBcnJheS5lbmFibGUoKTtcclxuICAgICAgaWYgKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdCAmJiB0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXREaXNhYmxlZCkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlU3R5bGVGcm9tQWxsKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dERpc2FibGVkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVTdGF0dXNDaGFuZ2Uoc3RhdHVzOiBOZ3hPdHBTdGF0dXMpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QgJiYgKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dFN1Y2Nlc3MgJiYgdGhpcy5vdHBDb25maWcuY2xhc3NMaXN0LmlucHV0RXJyb3IpKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlU3R5bGVGcm9tQWxsKFtcclxuICAgICAgICAuLi50aGlzLm90cFNlcnZpY2UudG9BcnJheShcclxuICAgICAgICAgIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dFN1Y2Nlc3NcclxuICAgICAgICApLFxyXG4gICAgICAgIC4uLnRoaXMub3RwU2VydmljZS50b0FycmF5KHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEVycm9yKSxcclxuICAgICAgXSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0YXR1cykge1xyXG4gICAgICBpZiAoc3RhdHVzID09PSAnc3VjY2VzcycpIHtcclxuICAgICAgICBpZiAodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0ICYmIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dFN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMuYWRkU3R5bGVUb0FsbCh0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXRTdWNjZXNzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSAnZXJyb3InKSB7XHJcbiAgICAgICAgaWYgKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdCAmJiB0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXRFcnJvcikge1xyXG4gICAgICAgICAgdGhpcy5hZGRTdHlsZVRvQWxsKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Rm9ybUNvbnRyb2xCeUluZGV4KGluZGV4OiBudW1iZXIpOiBGb3JtQ29udHJvbCB7XHJcbiAgICByZXR1cm4gdGhpcy5uZ3hPdHBBcnJheS5jb250cm9sc1tpbmRleF0gYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFN0eWxlKGluZGV4OiBudW1iZXIsIHN0eWxlczogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5vdHBTZXJ2aWNlLmFkZEl0ZW1BdEluZGV4KFxyXG4gICAgICB0aGlzLnN0eWxlcyxcclxuICAgICAgaW5kZXgsXHJcbiAgICAgIHRoaXMub3RwU2VydmljZS50b0FycmF5KHN0eWxlcylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFN0eWxlVG9BbGwoc3R5bGVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLm90cFNlcnZpY2UuYWRkSXRlbVRvQWxsKFxyXG4gICAgICB0aGlzLnN0eWxlcyxcclxuICAgICAgdGhpcy5vdHBTZXJ2aWNlLnRvQXJyYXkoc3R5bGVzKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlU3R5bGUoaW5kZXg6IG51bWJlciwgc3R5bGVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLm90cFNlcnZpY2UucmVtb3ZlSXRlbUF0SW5kZXgoXHJcbiAgICAgIHRoaXMuc3R5bGVzLFxyXG4gICAgICBpbmRleCxcclxuICAgICAgdGhpcy5vdHBTZXJ2aWNlLnRvQXJyYXkoc3R5bGVzKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlU3R5bGVGcm9tQWxsKHN0eWxlczogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5vdHBTZXJ2aWNlLnJlbW92ZUl0ZW1Gcm9tQWxsKFxyXG4gICAgICB0aGlzLnN0eWxlcyxcclxuICAgICAgdGhpcy5vdHBTZXJ2aWNlLnRvQXJyYXkoc3R5bGVzKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IElucHV0VGV4dFZhbHVlVHlwZXMpID0+IHtcclxuICB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZShvdXRzaWRlVmFsdWU6IElucHV0VGV4dFZhbHVlVHlwZXMpIHtcclxuICAgIGlmIChvdXRzaWRlVmFsdWUpIHtcclxuICAgICAgbGV0IGxhc3RJbmRleCA9IDA7XHJcbiAgICAgIFN0cmluZyhvdXRzaWRlVmFsdWUpXHJcbiAgICAgICAgLnNwbGl0KCcnKVxyXG4gICAgICAgIC5zbGljZSgwLCB0aGlzLm90cENvbmZpZy5vdHBMZW5ndGgpXHJcbiAgICAgICAgLm1hcCgoY2hhcmFjdGVyOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QgJiYgdGhpcy5vdHBDb25maWcuY2xhc3NMaXN0LmlucHV0RmlsbGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkU3R5bGUoaW5kZXgsIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEZpbGxlZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmdldEZvcm1Db250cm9sQnlJbmRleChpbmRleCkuc2V0VmFsdWUoY2hhcmFjdGVyLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICAgICAgbGFzdEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5uZ3hPdHBBcnJheS52YWxpZCkge1xyXG4gICAgICAgIHRoaXMuYmx1cigpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0Rm9jdXMobGFzdEluZGV4ICsgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3Bhc3RlJywgWyckZXZlbnQnXSkgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLmhhbmRsZVBhc3RlKGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dCcpKTtcclxuICB9XHJcblxyXG4gIGdldElucHV0VHlwZSgpOiAndGV4dCcgfCAncGFzc3dvcmQnIHwgJ3RlbCcge1xyXG4gICAgcmV0dXJuIHRoaXMub3RwQ29uZmlnLmlzUGFzc3dvcmRJbnB1dCA/ICdwYXNzd29yZCcgOiB0aGlzLm90cENvbmZpZy5pc051bWJlcklucHV0ID8gJ3RlbCcgOiAndGV4dCc7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtXHJcbiAgW25nQ2xhc3NdPVwiZ2V0Q29udGFpbmVyQ2xhc3Nlc1wiXHJcbiAgY2xhc3M9XCJtcngtaW5wdXQtb3RwLWNvbnRhaW5lclwiXHJcbiAgW2NsYXNzXT1cImdldENsYXNzZXNcIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgKm5nRm9yPVwibGV0IGNvbnRyb2wgb2Ygbmd4T3RwQXJyYXkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgW25nQ2xhc3NdPVwiZ2V0SW5wdXRCb3hDbGFzc2VzXCJcclxuICAgIFtjbGFzcy5tcngtaW5wdXQtZXJyb3JdPVwiaW52YWxpZFwiXHJcbiAgICBbY2xhc3NdPVwiY2hlY2tWYWxpZENsYXNzZXNcIlxyXG4gICAgY2xhc3M9XCJtcngtaW5wdXQtb3RwLWJveFwiXHJcbiAgPlxyXG4gICAgPGxhYmVsIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsc1tpXVwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICAjb3RwSW5wdXRFbGVtZW50XHJcbiAgICAgICAgW2lkXT1cIidtcngtaW5wdXQtb3RwLScgKyBpXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udmVydFRvRm9ybUNvbnRyb2woY29udHJvbClcIlxyXG4gICAgICAgIFttcnhPcHRQYXR0ZXJuXT1cIm90cENvbmZpZy5wYXR0ZXJuXCJcclxuICAgICAgICBbdHlwZV09XCJnZXRJbnB1dFR5cGUoKVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwic3R5bGVzW2ldXCJcclxuICAgICAgICAoa2V5dXApPVwiaGFuZGxlS2V5VXAoaSwgJGV2ZW50LmtleSlcIlxyXG4gICAgICAgIChrZXl1cC5iYWNrc3BhY2UpPVwiaGFuZGxlRGVsZXRlKGkpXCJcclxuICAgICAgICAoa2V5dXAuYXJyb3dMZWZ0KT1cInN0ZXBCYWNrd2FyZChpKVwiXHJcbiAgICAgICAgKGtleXVwLmFycm93UmlnaHQpPVwic3RlcEZvcndhcmQoaSlcIlxyXG4gICAgICAgIChmb2N1cyk9XCJoYW5kbGVGb2N1cyhpKVwiXHJcbiAgICAgICAgY2xhc3M9XCJtcngtaW5wdXQtb3RwXCJcclxuICAgICAgICBtYXhsZW5ndGg9XCIxXCJcclxuICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXHJcbiAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcclxuICAgICAgLz5cclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuXHJcbjxtcngtZXJyb3ItbWVzc2FnZVxyXG4gICpuZ0lmPVwiaW52YWxpZCAmJiBpc0ludmFsaWRNZXNzYWdlXCJcclxuICBjdXN0b21DbGFzc2VzPVwidGV4dC1sZWZ0XCJcclxuICBbaW52YWxpZE1lc3NhZ2VdPVwiaW52YWxpZE1lc3NhZ2VcIlxyXG4+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuIl19
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class OptPatternDirective {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.allowedKeys = [
|
|
6
|
-
'Backspace',
|
|
7
|
-
'ArrowLeft',
|
|
8
|
-
'ArrowRight',
|
|
9
|
-
'Escape',
|
|
10
|
-
'Tab',
|
|
11
|
-
];
|
|
12
|
-
}
|
|
13
|
-
onKeyDown(e) {
|
|
14
|
-
if (this.allowedKeys.includes(e.key) ||
|
|
15
|
-
(e.code === 'KeyA' && e.ctrlKey === true) ||
|
|
16
|
-
(e.code === 'KeyC' && e.ctrlKey === true) ||
|
|
17
|
-
(e.code === 'KeyV' && e.ctrlKey === true) ||
|
|
18
|
-
(e.code === 'KeyX' && e.ctrlKey === true) ||
|
|
19
|
-
(e.code === 'KeyA' && e.metaKey === true) ||
|
|
20
|
-
(e.code === 'KeyC' && e.metaKey === true) ||
|
|
21
|
-
(e.code === 'KeyV' && e.metaKey === true) ||
|
|
22
|
-
(e.code === 'KeyX' && e.metaKey === true)) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
else if (this.pattern && !this.pattern.test(e.key)) {
|
|
26
|
-
e.preventDefault();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
OptPatternDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: OptPatternDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
31
|
-
OptPatternDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.4.0", type: OptPatternDirective, selector: "[mrxOptPattern]", inputs: { pattern: ["mrxOptPattern", "pattern"] }, host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0 });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: OptPatternDirective, decorators: [{
|
|
33
|
-
type: Directive,
|
|
34
|
-
args: [{
|
|
35
|
-
selector: '[mrxOptPattern]'
|
|
36
|
-
}]
|
|
37
|
-
}], propDecorators: { pattern: [{
|
|
38
|
-
type: Input,
|
|
39
|
-
args: ['mrxOptPattern']
|
|
40
|
-
}], onKeyDown: [{
|
|
41
|
-
type: HostListener,
|
|
42
|
-
args: ['keydown', ['$event']]
|
|
43
|
-
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0LXBhdHRlcm4uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtb3B0L2RpcmVjdGl2ZXMvb3B0LXBhdHRlcm4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLL0QsTUFBTSxPQUFPLG1CQUFtQjtJQUhoQztRQUlVLGdCQUFXLEdBQUc7WUFDcEIsV0FBVztZQUNYLFdBQVc7WUFDWCxZQUFZO1lBQ1osUUFBUTtZQUNSLEtBQUs7U0FDTixDQUFDO0tBcUJIO0lBakJzQyxTQUFTLENBQUMsQ0FBZ0I7UUFDN0QsSUFDRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUM7WUFDekMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUM7WUFDekMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUM7WUFDekMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxFQUN6QztZQUNBLE9BQU87U0FDUjthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwRCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDOztnSEEzQlUsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjs4QkFVeUIsT0FBTztzQkFBOUIsS0FBSzt1QkFBQyxlQUFlO2dCQUVlLFNBQVM7c0JBQTdDLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1ttcnhPcHRQYXR0ZXJuXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE9wdFBhdHRlcm5EaXJlY3RpdmUge1xyXG4gIHByaXZhdGUgYWxsb3dlZEtleXMgPSBbXHJcbiAgICAnQmFja3NwYWNlJyxcclxuICAgICdBcnJvd0xlZnQnLFxyXG4gICAgJ0Fycm93UmlnaHQnLFxyXG4gICAgJ0VzY2FwZScsXHJcbiAgICAnVGFiJyxcclxuICBdO1xyXG5cclxuICBASW5wdXQoJ21yeE9wdFBhdHRlcm4nKSBwYXR0ZXJuPzogUmVnRXhwO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5hbGxvd2VkS2V5cy5pbmNsdWRlcyhlLmtleSkgfHxcclxuICAgICAgKGUuY29kZSA9PT0gJ0tleUEnICYmIGUuY3RybEtleSA9PT0gdHJ1ZSkgfHxcclxuICAgICAgKGUuY29kZSA9PT0gJ0tleUMnICYmIGUuY3RybEtleSA9PT0gdHJ1ZSkgfHxcclxuICAgICAgKGUuY29kZSA9PT0gJ0tleVYnICYmIGUuY3RybEtleSA9PT0gdHJ1ZSkgfHxcclxuICAgICAgKGUuY29kZSA9PT0gJ0tleVgnICYmIGUuY3RybEtleSA9PT0gdHJ1ZSkgfHxcclxuICAgICAgKGUuY29kZSA9PT0gJ0tleUEnICYmIGUubWV0YUtleSA9PT0gdHJ1ZSkgfHxcclxuICAgICAgKGUuY29kZSA9PT0gJ0tleUMnICYmIGUubWV0YUtleSA9PT0gdHJ1ZSkgfHxcclxuICAgICAgKGUuY29kZSA9PT0gJ0tleVYnICYmIGUubWV0YUtleSA9PT0gdHJ1ZSkgfHxcclxuICAgICAgKGUuY29kZSA9PT0gJ0tleVgnICYmIGUubWV0YUtleSA9PT0gdHJ1ZSlcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucGF0dGVybiAmJiAhdGhpcy5wYXR0ZXJuLnRlc3QoZS5rZXkpKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { InputOptComponent } from './components/input-opt/input-opt.component';
|
|
4
|
-
import { OptPatternDirective } from './directives/opt-pattern.directive';
|
|
5
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
-
import { InputOptService } from './services/input-opt.service';
|
|
7
|
-
import { ErrorMessageModule } from '../../error-message/error-message.module';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export class InputOptModule {
|
|
10
|
-
}
|
|
11
|
-
InputOptModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputOptModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
-
InputOptModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputOptModule, declarations: [OptPatternDirective,
|
|
13
|
-
InputOptComponent], imports: [ReactiveFormsModule,
|
|
14
|
-
FormsModule,
|
|
15
|
-
CommonModule,
|
|
16
|
-
ErrorMessageModule], exports: [InputOptComponent] });
|
|
17
|
-
InputOptModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputOptModule, providers: [InputOptService], imports: [[
|
|
18
|
-
ReactiveFormsModule,
|
|
19
|
-
FormsModule,
|
|
20
|
-
CommonModule,
|
|
21
|
-
ErrorMessageModule
|
|
22
|
-
]] });
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputOptModule, decorators: [{
|
|
24
|
-
type: NgModule,
|
|
25
|
-
args: [{
|
|
26
|
-
declarations: [
|
|
27
|
-
OptPatternDirective,
|
|
28
|
-
InputOptComponent
|
|
29
|
-
],
|
|
30
|
-
imports: [
|
|
31
|
-
ReactiveFormsModule,
|
|
32
|
-
FormsModule,
|
|
33
|
-
CommonModule,
|
|
34
|
-
ErrorMessageModule
|
|
35
|
-
],
|
|
36
|
-
exports: [InputOptComponent],
|
|
37
|
-
providers: [InputOptService],
|
|
38
|
-
}]
|
|
39
|
-
}] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtb3B0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LW9wdC9pbnB1dC1vcHQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBa0I5RSxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQVp2QixtQkFBbUI7UUFDbkIsaUJBQWlCLGFBR2pCLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsWUFBWTtRQUNaLGtCQUFrQixhQUVWLGlCQUFpQjs0R0FHaEIsY0FBYyxhQUZkLENBQUMsZUFBZSxDQUFDLFlBUG5CO1lBQ1AsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxZQUFZO1lBQ1osa0JBQWtCO1NBQ25COzJGQUlVLGNBQWM7a0JBZDFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDNUIsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IElucHV0T3B0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lucHV0LW9wdC9pbnB1dC1vcHQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3B0UGF0dGVybkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9vcHQtcGF0dGVybi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSW5wdXRPcHRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pbnB1dC1vcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IEVycm9yTWVzc2FnZU1vZHVsZSB9IGZyb20gJy4uLy4uL2Vycm9yLW1lc3NhZ2UvZXJyb3ItbWVzc2FnZS5tb2R1bGUnO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgT3B0UGF0dGVybkRpcmVjdGl2ZSxcclxuICAgIElucHV0T3B0Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBFcnJvck1lc3NhZ2VNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtJbnB1dE9wdENvbXBvbmVudF0sXHJcbiAgcHJvdmlkZXJzOiBbSW5wdXRPcHRTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0T3B0TW9kdWxlIHsgfVxyXG4iXX0=
|