@evotor-dev/ui-kit 8.16.0 → 8.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/evo-link-button/evo-link-button.component.mjs +3 -4
- package/esm2022/lib/components/evo-link-button/public-api.mjs +1 -2
- package/esm2022/lib/components/evo-navbar/evo-navbar-item/evo-navbar-item.component.mjs +8 -3
- package/fesm2022/evotor-dev-ui-kit.mjs +10 -19
- package/fesm2022/evotor-dev-ui-kit.mjs.map +1 -1
- package/lib/components/evo-link-button/evo-link-button.component.d.ts +1 -1
- package/lib/components/evo-link-button/public-api.d.ts +0 -1
- package/lib/components/evo-navbar/evo-navbar-item/evo-navbar-item.component.d.ts +1 -0
- package/package.json +1 -1
- package/esm2022/lib/components/evo-link-button/evo-link-button.module.mjs +0 -18
- package/lib/components/evo-link-button/evo-link-button.module.d.ts +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evotor-dev-ui-kit.mjs","sources":["../../../projects/evo-ui-kit/src/lib/services/window.service.ts","../../../projects/evo-ui-kit/src/lib/directives/evo-ui-class.directive.ts","../../../projects/evo-ui-kit/src/lib/directives/evo-click-outside.directive.ts","../../../projects/evo-ui-kit/src/lib/services/evo-expanded.service.ts","../../../projects/evo-ui-kit/src/lib/directives/evo-is-expanded.directive.ts","../../../projects/evo-ui-kit/src/lib/directives/evo-let/evo-let.directive.ts","../../../projects/evo-ui-kit/src/lib/evo-ui-kit.module.ts","../../../projects/evo-ui-kit/src/lib/common/form-helper/form-helper.ts","../../../projects/evo-ui-kit/src/lib/common/evo-control-state-manager/evo-control-state-manager.ts","../../../projects/evo-ui-kit/src/lib/common/evo-control-state-manager/evo-control-states.enum.ts","../../../projects/evo-ui-kit/src/lib/common/evo-base-control.ts","../../../projects/evo-ui-kit/src/lib/common/animations/expand.animation.ts","../../../projects/evo-ui-kit/src/lib/common/animations/skip-initial-render.animation.ts","../../../projects/evo-ui-kit/src/lib/common/animations/sidebar.animation.ts","../../../projects/evo-ui-kit/src/lib/common/collection/evo-collection.ts","../../../projects/evo-ui-kit/src/lib/common/collection/evo-collection-fabric.ts","../../../projects/evo-ui-kit/src/lib/decorators/deprecate-method.decorator.ts","../../../projects/evo-ui-kit/src/lib/decorators/deprecate-variable.decorator.ts","../../../projects/evo-ui-kit/src/lib/operators/enter-zone.operator.ts","../../../projects/evo-ui-kit/src/lib/components/evo-icon/evo-icon.service.ts","../../../projects/evo-ui-kit/src/lib/utils/create-token.ts","../../../projects/evo-ui-kit/src/lib/common/tokens/assets-path.ts","../../../projects/evo-ui-kit/src/lib/common/tokens/icon-resolver.ts","../../../projects/evo-ui-kit/src/lib/components/evo-icon/evo-icon.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-accordion/evo-accordion-content/evo-accordion-content.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-accordion/evo-accordion-panel/evo-accordion-panel.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-accordion/evo-accordion-title/evo-accordion-title.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-accordion/evo-accordion-title/evo-accordion-title.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-accordion/evo-accordion.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-accordion/evo-accordion.module.ts","../../../projects/evo-ui-kit/src/lib/pipes/safe-html.pipe.ts","../../../projects/evo-ui-kit/src/lib/components/evo-control-error/evo-control-error.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-control-error/evo-control-error.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-loader/evo-circular-loader.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-loader/evo-circular-loader.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-loader/evo-loader.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-input/evo-input.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-input/evo-input.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-input/evo-input-icon/evo-input-icon.directive.ts","../../../projects/evo-ui-kit/src/lib/components/evo-input/evo-input.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-control-error/evo-control-error.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete/evo-autocomplete.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete/evo-autocomplete.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-checkbox/evo-checkbox.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-checkbox/evo-checkbox.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-checkbox/evo-checkbox.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete-default-option/evo-autocomplete-default-option.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete-default-option/evo-autocomplete-default-option.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete-header/evo-autocomplete-header.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete-header/evo-autocomplete-header.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete-footer/evo-autocomplete-footer.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete-footer/evo-autocomplete-footer.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/evo-autocomplete.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/helpers/switch-query-to-list.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/models/DaDataParty.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/models/dadata.model.ts","../../../projects/evo-ui-kit/src/lib/components/evo-badge/evo-badge.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-badge/evo-badge.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-badge/evo-badge.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-button/constants/evo-button-themes-map.ts","../../../projects/evo-ui-kit/src/lib/components/evo-button/components/evo-button/evo-button.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-button/components/evo-button/evo-button.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-button/evo-button.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-chip/evo-chip.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-chip/evo-chip.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-chip/evo-chip.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-control-label/evo-control-label.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-control-label/evo-control-label.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-control-label/evo-control-label.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-counter/evo-counter.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-counter/evo-counter.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-counter/evo-counter.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-datepicker/templates/index.ts","../../../projects/evo-ui-kit/src/lib/components/evo-datepicker/evo-datepicker.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-datepicker/evo-datepicker.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-datepicker/evo-datepicker.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-icon-button/evo-icon-button.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-icon-button/evo-icon-button.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-icon-button/evo-icon-button.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-icon-number/components/evo-icon-number/evo-icon-number.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-icon-number/components/evo-icon-number/evo-icon-number.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-icon-number/evo-icon-number.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-input-contenteditable/utils/clear-multiline.ts","../../../projects/evo-ui-kit/src/lib/components/evo-input-contenteditable/evo-input-contenteditable.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-input-contenteditable/evo-input-contenteditable.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-input-contenteditable/evo-input-contenteditable.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/tokens.ts","../../../projects/evo-ui-kit/src/lib/components/evo-portal/evo-portal-outlet.class.ts","../../../projects/evo-ui-kit/src/lib/components/evo-portal/evo-portal.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-portal/evo-portal-outlet.directive.ts","../../../projects/evo-ui-kit/src/lib/components/evo-portal/evo-portal.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal-portal.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/utils.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/enums.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/classes/EvoModalDrawingStrategy.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/classes/EvoDynamicModalDrawingStrategy.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/classes/EvoConfiguredModalDrawingStrategy.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/classes/EvoConfiguredComponentModalDrawingStrategy.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/classes/EvoConfiguredTemplateModalDrawingStrategy.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal-buttons/evo-modal-buttons.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal.provider.ts","../../../projects/evo-ui-kit/src/lib/components/evo-note/evo-note.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-note/evo-note.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-note/evo-note.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-paginator/evo-paginator.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-paginator/evo-paginator.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-paginator/evo-paginator.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-popover/evo-popover.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-popover/evo-popover.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-popover/evo-popover.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-radio/evo-radio.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-radio/evo-radio.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-radio/evo-radio.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-radioshape/components/evo-radioshape.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-radioshape/components/evo-radioshape.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-radioshape/evo-radioshape.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/tokens.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/enums/evo-sidebar-close-targets.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/enums/evo-sidebar-states.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/enums/evo-sidebar-sizes.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar.token.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-footer/evo-sidebar-footer.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-footer/evo-sidebar-footer.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-content/evo-sidebar-content.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-content/evo-sidebar-content.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-header/evo-sidebar-header.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-header/evo-sidebar-header.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-portal.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar.provider.ts","../../../projects/evo-ui-kit/src/lib/components/evo-stepper/evo-stepper-events.ts","../../../projects/evo-ui-kit/src/lib/components/evo-stepper/evo-stepper-item/evo-stepper-item.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-stepper/evo-stepper-item/evo-stepper-item.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-stepper/evo-stepper.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-stepper/evo-stepper.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-stepper/evo-stepper.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-table/evo-table-column/evo-table-column.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-table/evo-table-column/evo-table-column.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-table/evo-table/evo-table.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-table/evo-table/evo-table.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-table/evo-table.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/enums/evo-tabs-size.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tab-state.collection.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tabs.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tabs-size.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tab/evo-tab.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tab/evo-tab.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tabs.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tabs.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tab-content/evo-tab-content.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tab-content/evo-tab-content.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tabs.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-textarea/evo-textarea.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-textarea/evo-textarea.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-textarea/evo-textarea.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-toast/evo-toast.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-toast/evo-toast.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-toast/evo-toast.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-toast/evo-toast.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-toggle/evo-toggle.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-toggle/evo-toggle.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-toggle/evo-toggle.module.ts","../../../projects/evo-ui-kit/src/lib/pipes/declination.pipe.ts","../../../projects/evo-ui-kit/src/lib/components/evo-upload/evo-upload.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-upload/evo-upload.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-upload/evo-upload.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-dropdown/evo-dropdown-position-description.ts","../../../projects/evo-ui-kit/src/lib/components/evo-dropdown/evo-dropdown.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-dropdown/evo-dropdown.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-dropdown/evo-dropdown-origin.directive.ts","../../../projects/evo-ui-kit/src/lib/components/evo-dropdown/evo-dropdown.module.ts","../../../projects/evo-ui-kit/src/lib/common/constants/css-breakpoints.ts","../../../projects/evo-ui-kit/src/lib/common/constants/view-breakpoint-streams.ts","../../../projects/evo-ui-kit/src/lib/components/evo-navbar/evo-navbar-item/evo-navbar-item.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-navbar/evo-navbar-item/evo-navbar-item.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-navbar/evo-navbar.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-navbar/evo-navbar.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-navbar/evo-navbar.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-navigation-button/evo-navigation-button.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-navigation-button/evo-navigation-button.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-navigation-button/evo-navigation-button.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-fadein.animation.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/enums/evo-tooltip-position.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-arrow-size.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-radius.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/enums/evo-tooltip-variable-arrow-position.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-config.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-connected-position.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-priority-positions-order.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-default-positions-order.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-offset.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/services/evo-tooltip.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/evo-tooltip.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/evo-tooltip.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/directives/evo-tooltip.directive.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/evo-tooltip.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-link-button/evo-link-button.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-link-button/evo-link-button.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-link-button/evo-link-button.module.ts","../../../projects/evo-ui-kit/src/lib/pipes/evo-pipes.module.ts","../../../projects/evo-ui-kit/src/lib/common/Serializable.ts","../../../projects/evo-ui-kit/src/public_api.ts","../../../projects/evo-ui-kit/src/evotor-dev-ui-kit.ts"],"sourcesContent":["import {isPlatformBrowser} from '@angular/common';\nimport {ClassProvider, FactoryProvider, Injectable, InjectionToken, PLATFORM_ID} from '@angular/core';\n\n/* Create a new injection token for injecting the window into a component. */\nexport const WINDOW = new InjectionToken('WindowToken');\n\n/* Define abstract class for obtaining reference to the global window object. */\nexport abstract class WindowRef {\n\n get nativeWindow(): Window | object {\n throw new Error('Not implemented.');\n }\n\n}\n\n/* Define class that implements the abstract class and returns the native window object. */\n@Injectable()\nexport class BrowserWindowRef extends WindowRef {\n constructor() {\n super();\n }\n\n get nativeWindow(): Window | object {\n return window;\n }\n\n}\n\n/* Create an factory function that returns the native window object. */\nexport function windowFactory(browserWindowRef: BrowserWindowRef, platformId: object): Window | object {\n if (isPlatformBrowser(platformId)) {\n return browserWindowRef.nativeWindow;\n }\n return {};\n}\n\n/* Create a injectable provider for the WindowRef token that uses the BrowserWindowRef class. */\nconst browserWindowProvider: ClassProvider = {\n provide: WindowRef,\n useClass: BrowserWindowRef,\n};\n\n/* Create an injectable provider that uses the windowFactory function for returning the native window object. */\nconst windowProvider: FactoryProvider = {\n provide: WINDOW,\n useFactory: windowFactory,\n deps: [WindowRef, PLATFORM_ID],\n};\n\n/* Create an array of providers. */\nexport const WINDOW_PROVIDERS = [\n browserWindowProvider,\n windowProvider,\n];\n","/* eslint-disable */\nimport {\n Directive,\n DoCheck,\n ElementRef,\n Input,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n KeyValueChanges,\n KeyValueDiffer,\n KeyValueDiffers,\n Renderer2,\n ɵstringify as stringify,\n} from '@angular/core';\n\n// TODO: actualize to current realization of NgClass\n\nfunction isJsObject(o: any): boolean {\n return o !== null && (typeof o === 'function' || typeof o === 'object');\n}\n\nfunction isListLikeIterable(obj: any): boolean {\n if (!isJsObject(obj)) return false;\n return (\n Array.isArray(obj) ||\n (!(obj instanceof Map) && // JS Map are iterables but return entries as [k, v]\n Symbol.iterator in obj)\n ); // JS Iterable have a Symbol.iterator prop\n}\n\n/**\n * @usageNotes\n * ```\n * <some-element [evoUiClass]=\"'first second'\">...</some-element>\n *\n * <some-element [evoUiClass]=\"['first', 'second']\">...</some-element>\n *\n * <some-element [evoUiClass]=\"{'first': true, 'second': true, 'third': false}\">...</some-element>\n *\n * <some-element [evoUiClass]=\"stringExp|arrayExp|objExp\">...</some-element>\n *\n * <some-element [evoUiClass]=\"{'class1 class2 class3' : true}\">...</some-element>\n * ```\n *\n * @description\n *\n * Adds and removes CSS classes on an HTML element.\n *\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\n * - `string` - the CSS classes listed in the string (space delimited) are added,\n * - `Array` - the CSS classes declared as Array elements are added,\n * - `Object` - keys are CSS classes that get added when the expression given in the value\n * evaluates to a truthy value, otherwise they are removed.\n */\n@Directive({\n selector: '[evoUiClass]',\n standalone: true,\n})\nexport class EvoUiClassDirective implements DoCheck {\n private iterableDiffer!: IterableDiffer<string> | null;\n private keyValueDiffer!: KeyValueDiffer<string, any> | null;\n private initialClasses: string[] = [];\n private rawClass!: string[] | Set<string> | {[klass: string]: any};\n\n constructor(\n private _iterableDiffers: IterableDiffers,\n private _keyValueDiffers: KeyValueDiffers,\n private _ngEl: ElementRef,\n private _renderer: Renderer2,\n ) {}\n\n @Input('class')\n set klass(value: string) {\n this.removeClasses(this.initialClasses);\n this.initialClasses = typeof value === 'string' ? value.split(/\\s+/) : [];\n this.applyClasses(this.initialClasses);\n this.applyClasses(this.rawClass);\n }\n\n @Input()\n set evoUiClass(value: string | string[] | Set<string> | {[klass: string]: any}) {\n this.removeClasses(this.rawClass);\n this.applyClasses(this.initialClasses);\n\n this.iterableDiffer = null;\n this.keyValueDiffer = null;\n\n this.rawClass = typeof value === 'string' ? value.split(/\\s+/) : value;\n\n if (this.rawClass) {\n if (isListLikeIterable(this.rawClass)) {\n this.iterableDiffer = this._iterableDiffers.find(this.rawClass).create();\n } else {\n this.keyValueDiffer = this._keyValueDiffers.find(this.rawClass).create();\n }\n }\n }\n\n ngDoCheck(): void {\n if (this.iterableDiffer) {\n const iterableChanges = this.iterableDiffer.diff(this.rawClass as string[]);\n if (iterableChanges) {\n this.applyIterableChanges(iterableChanges);\n }\n } else if (this.keyValueDiffer) {\n const keyValueChanges = this.keyValueDiffer.diff(this.rawClass as {[k: string]: any});\n if (keyValueChanges) {\n this.applyKeyValueChanges(keyValueChanges);\n }\n }\n }\n\n private applyKeyValueChanges(changes: KeyValueChanges<string, any>): void {\n changes.forEachAddedItem((record) => this.toggleClass(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this.toggleClass(record.key, record.currentValue));\n changes.forEachRemovedItem((record) => {\n if (record.previousValue) {\n this.toggleClass(record.key, false);\n }\n });\n }\n\n private applyIterableChanges(changes: IterableChanges<string>): void {\n changes.forEachAddedItem((record) => {\n if (typeof record.item === 'string') {\n this.toggleClass(record.item, true);\n } else {\n throw new Error(\n `EvoUiClass can only toggle CSS classes expressed as strings, got ${stringify(record.item)}`,\n );\n }\n });\n\n changes.forEachRemovedItem((record) => this.toggleClass(record.item, false));\n }\n\n /**\n * Applies a collection of CSS classes to the DOM element.\n *\n * For argument of type Set and Array CSS class names contained in those collections are always\n * added.\n * For argument of type Map CSS class name in the map's key is toggled based on the value (added\n * for truthy and removed for falsy).\n */\n private applyClasses(rawClassVal: string[] | Set<string> | {[klass: string]: any}) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n (rawClassVal as any).forEach((klass: string) => this.toggleClass(klass, true));\n } else {\n Object.keys(rawClassVal).forEach((klass) => this.toggleClass(klass, !!rawClassVal[klass]));\n }\n }\n }\n\n /**\n * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup\n * purposes.\n */\n private removeClasses(rawClassVal: string[] | Set<string> | {[klass: string]: any}) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n (rawClassVal as any).forEach((klass: string) => this.toggleClass(klass, false));\n } else {\n Object.keys(rawClassVal).forEach((klass) => this.toggleClass(klass, false));\n }\n }\n }\n\n private toggleClass(klass: string, enabled: boolean): void {\n const prefix = this.initialClasses[0];\n\n const prefixClasses = (classes: string) => {\n return classes\n .trim()\n .split(' ')\n .filter((k) => k.trim())\n .map((k) => prefix + '_' + k)\n .join(' ');\n };\n\n klass = this.initialClasses.indexOf(klass) === -1 ? prefixClasses(klass) : klass.trim();\n\n if (klass) {\n klass.split(/\\s+/g).forEach((_klass) => {\n if (enabled) {\n this._renderer.addClass(this._ngEl.nativeElement, _klass);\n } else {\n this._renderer.removeClass(this._ngEl.nativeElement, _klass);\n }\n });\n }\n }\n}\n","import {Directive, ElementRef, EventEmitter, HostListener, Output} from '@angular/core';\n\n@Directive({\n selector: '[evoClickOutside]',\n standalone: true,\n})\nexport class EvoClickOutsideDirective {\n @Output()\n evoClickOutside = new EventEmitter();\n\n constructor(private readonly _elementRef: ElementRef) {}\n\n @HostListener('document:click', ['$event', '$event.target'])\n onClick<T extends MouseEvent, F extends HTMLElement>(event: T, targetElement: F) {\n this.clickOrTouchOutside(event, targetElement);\n }\n\n @HostListener('document:touchstart', ['$event', '$event.target'])\n onTouchStart<T extends MouseEvent, F extends HTMLElement>(event: T, targetElement: F) {\n this.clickOrTouchOutside(event, targetElement);\n }\n\n clickOrTouchOutside<T extends MouseEvent, F extends HTMLElement>(event: T, targetElement: F) {\n if (!targetElement) {\n return;\n }\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.evoClickOutside.emit(event);\n }\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport class EvoExpandedService {\n isExpandedChange$: Observable<boolean>;\n private readonly isExpanded$ = new BehaviorSubject<boolean>(false);\n\n constructor() {\n this.isExpandedChange$ = this.isExpanded$.asObservable();\n }\n\n set isExpanded(value: boolean) {\n if (value !== this.isExpanded$.value) {\n this.isExpanded$.next(value);\n }\n }\n\n get isExpanded(): boolean {\n return this.isExpanded$.value;\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {EvoExpandedService} from '../services/evo-expanded.service';\n\n@Directive({\n selector: '[evoIsExpanded]',\n standalone: true,\n})\nexport class EvoIsExpandedDirective implements OnInit, OnChanges, OnDestroy {\n @Input() evoIsExpanded: boolean;\n @Output() evoIsExpandedChange = new EventEmitter<boolean>(false);\n\n private readonly destroy$ = new Subject<void>();\n\n constructor(\n private readonly templateRef: TemplateRef<object>,\n private readonly viewContainer: ViewContainerRef,\n @Optional() private readonly expandedService: EvoExpandedService,\n ) {}\n\n ngOnInit(): void {\n if (this.expandedService) {\n this.expandedService.isExpanded = this.evoIsExpanded;\n }\n this.updateView();\n this.handleExpandedChange();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.evoIsExpanded && !changes.evoIsExpanded.isFirstChange()) {\n const isExpanded = changes.evoIsExpanded.currentValue;\n if (!this.expandedService) {\n this.evoIsExpandedChange.emit(isExpanded);\n this.updateView();\n return;\n }\n this.expandedService.isExpanded = isExpanded;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.unsubscribe();\n }\n\n handleExpandedChange(): void {\n this.expandedService?.isExpandedChange$.pipe(takeUntil(this.destroy$)).subscribe((isExpanded) => {\n if (isExpanded !== this.evoIsExpanded) {\n this.evoIsExpanded = isExpanded;\n this.evoIsExpandedChange.emit(isExpanded);\n }\n this.updateView();\n });\n }\n\n private updateView(): void {\n if (this.evoIsExpanded && this.viewContainer.length !== 0) {\n return;\n }\n if (this.evoIsExpanded) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n }\n}\n","import {Directive, Inject, Input, TemplateRef, ViewContainerRef} from '@angular/core';\n\nexport class EvoLetContext<T> {\n constructor(private readonly dir: EvoLetDirective<T>) {}\n\n get evoLet(): T {\n return this.dir.evoLet;\n }\n}\n\n/**\n * Works like ngIf, but condition not affects on rendering.\n * Used for aliases.\n */\n@Directive({\n selector: '[evoLet]',\n standalone: true,\n})\nexport class EvoLetDirective<T> {\n @Input() evoLet!: T;\n\n constructor(\n @Inject(ViewContainerRef) viewContainer: ViewContainerRef,\n @Inject(TemplateRef) templateRef: TemplateRef<EvoLetContext<T>>,\n ) {\n viewContainer.createEmbeddedView(templateRef, new EvoLetContext<T>(this));\n }\n\n /**\n * Assert the correct type of the expression bound to the `evoLet` input within the template.\n *\n * The presence of this static field is a signal to the Ivy template type check compiler that\n * when the `EvoLetDirective` structural directive renders its template, the type of the expression bound\n * to `evoLet` should be narrowed in some way. For `EvoLetDirective`, the binding expression itself is used to\n * narrow its type, which allows the strictNullChecks feature of TypeScript to work with `EvoLetDirective`.\n */\n static ngTemplateGuard_evoLet: 'binding';\n\n /**\n * Asserts the correct type of the context for the template that `EvoLetDirective` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `EvoLetDirective` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard<T>(dir: EvoLetDirective<T>, ctx: EvoLetContext<T>): ctx is EvoLetContext<T> {\n return true;\n }\n}\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {NgxPageScrollModule} from 'ngx-page-scroll';\n\nimport {WINDOW_PROVIDERS} from './services/window.service';\nimport {RouterModule} from '@angular/router';\n\nimport {EvoUiClassDirective} from './directives/evo-ui-class.directive';\nimport {EvoClickOutsideDirective} from './directives/evo-click-outside.directive';\nimport {EvoIsExpandedDirective, EvoLetDirective} from './directives';\n\nexport {WINDOW_PROVIDERS};\n\nconst directives = [EvoUiClassDirective, EvoClickOutsideDirective, EvoIsExpandedDirective, EvoLetDirective];\n\n@NgModule({\n imports: [CommonModule, FormsModule, NgxPageScrollModule, ReactiveFormsModule, RouterModule, ...directives],\n exports: [...directives],\n providers: [WINDOW_PROVIDERS],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class EvoUiKitModule {}\n","import {EventEmitter} from '@angular/core';\nimport {AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup} from '@angular/forms';\n\nexport class FormHelper {\n static validateControls(control: AbstractControl) {\n if (control instanceof UntypedFormControl) {\n control.markAsDirty();\n control.markAsTouched();\n (control.statusChanges as EventEmitter<string>).emit(control.status);\n } else if (control instanceof UntypedFormGroup || control instanceof UntypedFormArray) {\n for (const controlName of Object.keys(control.controls)) {\n FormHelper.validateControls(control.controls[controlName]);\n }\n }\n }\n\n static resetControls(control: AbstractControl) {\n if (control instanceof UntypedFormControl) {\n control.markAsPristine();\n control.markAsUntouched();\n control.setValue('', {\n emitEvent: false,\n onlySelf: true,\n });\n } else if (control instanceof UntypedFormGroup || control instanceof UntypedFormArray) {\n for (const controlName of Object.keys(control.controls)) {\n FormHelper.resetControls(control.controls[controlName]);\n }\n }\n }\n}\n","import {AbstractControl} from '@angular/forms';\nimport {IEvoControlState} from './evo-control-state.interface';\n\nexport class EvoControlStateManager {\n control: AbstractControl;\n\n constructor(control: AbstractControl, extraStates?: IEvoControlState) {\n this.control = control;\n }\n\n get currentState(): IEvoControlState {\n // TODO merge conditions with extraStates\n\n return {\n valid: this.control.dirty && this.control.touched && this.control.valid,\n invalid: this.control.dirty && this.control.touched && this.control.invalid,\n };\n }\n}\n","export enum EvoControlStates {\n valid = 'valid',\n invalid = 'invalid',\n}\n","import {Directive, Injector, Input} from '@angular/core';\nimport {AbstractControl, NgControl} from '@angular/forms';\nimport {IEvoControlState} from './evo-control-state-manager/evo-control-state.interface';\nimport {IEvoControlError} from '../components/evo-control-error';\nimport {EvoControlStates} from './evo-control-state-manager/evo-control-states.enum';\n\n@Directive()\n// eslint-disable-next-line:directive-class-suffix\nexport abstract class EvoBaseControl {\n @Input() errorsMessages: IEvoControlError;\n @Input() state: IEvoControlState;\n @Input() readonly autoFocus: boolean;\n\n private _control: AbstractControl;\n\n constructor(protected injector: Injector) {}\n\n get control(): AbstractControl {\n if (!this._control) {\n this.initBaseControl();\n }\n return this._control;\n }\n\n set control(control: AbstractControl) {\n this._control = control;\n }\n\n focus?(): void;\n\n initBaseControl() {\n const ngControl = this.injector?.get(NgControl, null);\n if (ngControl?.control) {\n this._control = ngControl?.control;\n }\n }\n\n get currentState(): IEvoControlState {\n return Object.assign(\n {\n valid: this.control ? this.control.dirty && this.control.touched && this.control.valid : undefined,\n invalid: this.control ? this.control.dirty && this.control.touched && this.control.invalid : undefined,\n },\n this.state,\n );\n }\n\n get showErrors(): boolean {\n return this.currentState[EvoControlStates.invalid];\n }\n}\n","import {animate, state, style, transition, trigger} from '@angular/animations';\n\nconst closeStateStyles = style({\n height: '0px',\n marginBottom: '0px',\n paddingBottom: '0px',\n});\n\nconst openStateStyles = style({\n height: '*',\n marginBottom: '*',\n paddingBottom: '*'\n});\n\nconst openStep = [\n closeStateStyles,\n animate('200ms ease-in-out', openStateStyles)\n];\n\nconst closeStep = [\n openStateStyles,\n animate('200ms ease-in-out', closeStateStyles),\n];\n\nexport const expandAnimation = trigger('expand', [\n state('open', openStateStyles),\n state('close', closeStateStyles),\n transition(':enter', openStep),\n transition(':leave', closeStep),\n transition('open => close', closeStep),\n transition('close => open', openStep)\n]);\n","import {transition, trigger} from '@angular/animations';\n\nexport const skipInitialRenderAnimation = trigger('skipInitialRender', [transition(':enter', [])]);\n","import {animate, state, style, transition, trigger} from '@angular/animations';\n\nexport const evoSidebarAnimationDuration = 500;\n\nexport const sidebarAnimation = trigger('open', [\n state('visible', style({\n transform: 'translateX(0px)',\n })),\n transition('hidden => visible', animate(`${evoSidebarAnimationDuration}ms ease-out`)),\n transition('visible => hidden', animate(`${evoSidebarAnimationDuration}ms ease-out`)),\n]);\n","export abstract class EvoCollection<T> extends Array<T> {\n constructor() {\n super();\n throw new Error(`Inheritor of EvoCollection can't be instantiated, use EvoCollectionFabric.create() instead.`);\n }\n}\n","import {EvoCollection} from './evo-collection';\n\nexport class EvoCollectionFabric {\n // eslint-disable-next-line\n static create<T extends EvoCollection<K>, K>(\n collectionType: new () => T,\n // eslint-disable-next-line\n itemType: new (...args: any[]) => K,\n // eslint-disable-next-line\n data: any[],\n ) {\n const collection = Object.create(collectionType.prototype);\n\n for (let i = 0; i < data.length; i++) {\n collection.push(new itemType(data[i]));\n }\n\n return collection as T;\n }\n}\n","/* eslint-disable */\nexport function DeprecateMethod(message: string = ''): MethodDecorator {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const deprecatedMessage = `${target.constructor.name} method ${propertyKey} is deprecated. ${message}`;\n\n console.warn(deprecatedMessage);\n\n return descriptor;\n };\n}\n","/* eslint-disable */\nexport function DeprecateVariable(target: any, propertyKey: string) {\n const deprecatedMessage = `${target.constructor.name} variable ${propertyKey} is deprecated.`;\n let propertyValue;\n\n function getter() {\n console.warn(deprecatedMessage);\n return propertyValue;\n }\n\n function setter(value: any) {\n console.warn(deprecatedMessage);\n propertyValue = value;\n }\n\n Object.defineProperty(target, propertyKey, {\n get: getter,\n set: setter,\n });\n}\n","import {NgZone} from '@angular/core';\nimport {Observable} from 'rxjs';\n\nexport function enterZone(zone: NgZone) {\n return <T>(source: Observable<T>) =>\n new Observable<T>((observer) =>\n source.subscribe({\n next: (x) => zone.run(() => observer.next(x)),\n error: (err) => observer.error(err),\n complete: () => observer.complete(),\n }),);\n}\n","import {inject, Injectable, SecurityContext} from '@angular/core';\nimport {Observable, shareReplay} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {DomSanitizer, SafeHtml, SafeResourceUrl} from '@angular/platform-browser';\nimport {map} from 'rxjs/operators';\nimport {IconOptions} from './interfaces/icon-options';\n\n@Injectable({providedIn: 'root'})\nexport class EvoIconService {\n private readonly sanitizer = inject(DomSanitizer);\n private readonly httpClient = inject(HttpClient);\n\n private readonly cache = new Map<string, Observable<SafeHtml>>();\n\n /**\n * Returns an Observable which produces the string contents of the given icon.\n * Results cached, so future calls with the same URL not cause another HTTP request.\n */\n fetchIcon(safeUrl: SafeResourceUrl, options?: IconOptions): Observable<SafeHtml> {\n const withCredentials = options?.withCredentials ?? false;\n\n if (safeUrl == null) {\n throw Error(`Cannot fetch icon from URL \"${safeUrl}\".`);\n }\n\n const url = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n if (!url) {\n throw Error(\n `Provided URL was not trusted as a resource URL ` +\n `via Angular's DomSanitizer. Attempted URL was \"${url}\".`,\n );\n }\n\n // Store in-progress fetches to avoid sending a duplicate requests\n const inProgressFetch = this.cache.get(url);\n\n if (inProgressFetch) {\n return inProgressFetch;\n }\n\n const req = this.httpClient.get(url, {responseType: 'text', withCredentials}).pipe(\n map((res) => {\n const svgExp = /(\\<svg[^\\>]*\\>)|(\\<\\/svg>)|\\n/g;\n const svg = res.replace(svgExp, '').trim();\n // Security: This SVG is fetched from a SafeResourceUrl, and is thus trusted HTML.\n return this.sanitizer.bypassSecurityTrustHtml(svg);\n }),\n shareReplay(1),\n );\n\n this.cache.set(url, req);\n return req;\n }\n}\n","import {InjectionToken} from '@angular/core';\n\nexport function evoCreateToken<T>(defaults: T, description?: string): InjectionToken<T> {\n return evoCreateTokenFromFactory(() => defaults, description);\n}\n\nexport function evoCreateTokenFromFactory<T>(factory: () => T, description?: string): InjectionToken<T> {\n return new InjectionToken<T>(description || '', {factory});\n}\n","import {evoCreateToken} from '../../utils';\nimport {ValueProvider} from '@angular/core';\n\nexport const EVO_ASSETS_PATH = evoCreateToken('assets/ui-kit', 'EVO_ASSETS_PATH');\nexport const EVO_LOCAL_ASSETS_PATH = evoCreateToken(null, 'EVO_LOCAL_ASSETS_PATH');\n\n/**\n * Переопределяет дефолтный путь к assets ui-kit-а.\n */\nexport function evoAssetsPathProvider(useValue: string): ValueProvider {\n return {\n provide: EVO_ASSETS_PATH,\n useValue,\n };\n}\n\n/**\n * Определяет путь к assets проекта.\n */\nexport function evoLocalAssetsPathProvider(useValue: string): ValueProvider {\n return {\n provide: EVO_LOCAL_ASSETS_PATH,\n useValue,\n };\n}\n","import {evoCreateTokenFromFactory} from '../../utils';\nimport {inject, Provider} from '@angular/core';\nimport {CATEGORY_BY_ICON_NAME} from '@evotor-dev/ui-kit/icons';\nimport {EVO_ASSETS_PATH, EVO_LOCAL_ASSETS_PATH} from './assets-path';\n\nexport const EVO_ICON_RESOLVER = evoCreateTokenFromFactory(() => {\n const assetsPath = inject(EVO_ASSETS_PATH);\n const localAssetsPath = inject(EVO_LOCAL_ASSETS_PATH);\n\n return (icon: string) => {\n if (!icon || icon.includes('/')) {\n return icon;\n } else {\n // if there is no icon in the ui-kit, use local resources\n if (!CATEGORY_BY_ICON_NAME.hasOwnProperty(icon)) {\n if (localAssetsPath) {\n return `${localAssetsPath}/icons/${icon}.svg`;\n }\n\n throw new Error(\n `No icon with name \"${icon}\" was found. Please check UI Kit icons or register local path to assets directory`,\n );\n }\n\n return `${assetsPath}/icons/${CATEGORY_BY_ICON_NAME[icon]}/${icon}.svg`;\n }\n };\n}, 'EVO_ICON_RESOLVER');\n\nexport function evoIconResolverProvider(useValue: (s: string) => string): Provider {\n return {\n provide: EVO_ICON_RESOLVER,\n useValue,\n };\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, inject, Input} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {EvoIconService} from './evo-icon.service';\nimport {EVO_ICON_RESOLVER} from '../../common/tokens';\n\n@Component({\n selector: 'evo-icon',\n standalone: true,\n template: `\n <svg\n preserveAspectRatio=\"xMidYMid meet\"\n [attr.width]=\"svgWidth\"\n [attr.height]=\"svgHeight\"\n [attr.viewBox]=\"viewBox\"\n [innerHTML]=\"getContent() | async\"\n [ngClass]=\"classes\"\n />\n `,\n styles: `\n svg {\n display: block;\n min-width: 100%;\n max-width: 100%;\n height: auto;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n})\nexport class EvoIconComponent {\n @Input({required: true}) shape: string;\n @Input() svgWidth = 24;\n @Input() svgHeight = 24;\n @Input() svgViewBox: string;\n\n @HostBinding('class.evo-icon') hostClass = true;\n\n protected readonly resolver = inject(EVO_ICON_RESOLVER);\n\n private readonly sanitizer = inject(DomSanitizer);\n private readonly evoIconService = inject(EvoIconService);\n\n get viewBox(): string {\n if (this.svgViewBox) {\n return this.svgViewBox;\n }\n\n return `0 0 ${this.svgWidth} ${this.svgHeight}`;\n }\n\n get classes(): string[] {\n const classes = ['evo-icon'];\n if (this.shape) {\n classes.push('evo-icon_' + this.shape);\n }\n return classes;\n }\n\n protected getContent() {\n if (!this.shape) {\n return;\n }\n\n const safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.resolver(this.shape));\n\n return this.evoIconService.fetchIcon(safeUrl);\n }\n}\n","import {Component, HostBinding, Optional} from '@angular/core';\nimport {expandAnimation} from '../../../common/animations/expand.animation';\nimport {EvoIsExpandedDirective} from '../../../directives/evo-is-expanded.directive';\nimport {EvoExpandedService} from '../../../services/evo-expanded.service';\n\n@Component({\n selector: 'evo-accordion-content',\n template: `\n <ng-content />\n `,\n styleUrls: ['./evo-accordion-content.component.scss'],\n animations: [expandAnimation],\n standalone: true,\n})\nexport class EvoAccordionContentComponent {\n @HostBinding('@expand') get expandAnimation() {\n if (this.evoIsExpandedDirective) {\n return;\n } else {\n return this.evoExpandedService.isExpanded ? 'open' : 'close';\n }\n }\n\n constructor(\n @Optional() private readonly evoIsExpandedDirective: EvoIsExpandedDirective,\n private readonly evoExpandedService: EvoExpandedService,\n ) {}\n}\n","import {Component} from '@angular/core';\nimport {EvoExpandedService} from '../../../services/evo-expanded.service';\n\n@Component({\n selector: 'evo-accordion-panel',\n template: `\n <ng-content />\n `,\n styleUrls: ['./evo-accordion-panel.component.scss'],\n providers: [EvoExpandedService],\n standalone: true,\n})\nexport class EvoAccordionPanelComponent {\n constructor(private readonly evoExpandedService: EvoExpandedService) {}\n\n toggle() {\n this.evoExpandedService.isExpanded = !this.evoExpandedService.isExpanded;\n }\n}\n","import {Component, HostListener, Input} from '@angular/core';\nimport {EvoExpandedService} from '../../../services/evo-expanded.service';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {AsyncPipe} from '@angular/common';\nimport {EvoIconComponent} from '../../evo-icon/evo-icon.component';\n\n@Component({\n selector: 'evo-accordion-title',\n templateUrl: './evo-accordion-title.component.html',\n styleUrls: ['./evo-accordion-title.component.scss'],\n animations: [\n trigger('toggleBlock', [\n transition(':leave', [\n style({opacity: 1}),\n animate(\n '.3s ease-in-out',\n style({\n opacity: 0,\n }),\n ),\n ]),\n transition(':enter', [\n style({opacity: 0}),\n animate(\n '.3s ease-in-out',\n style({\n opacity: 1,\n }),\n ),\n ]),\n ]),\n ],\n standalone: true,\n imports: [EvoIconComponent, AsyncPipe],\n})\nexport class EvoAccordionTitleComponent {\n @Input() label: string;\n\n isExpanded$ = this.expandedService.isExpandedChange$;\n\n constructor(private readonly expandedService: EvoExpandedService) {}\n\n @HostListener('click') onClick() {\n this.expandedService.isExpanded = !this.expandedService.isExpanded;\n }\n}\n","@if (label) {\n <div class=\"evo-accordion-title\">\n <div class=\"evo-accordion-title__dot\"></div>\n <h4 class=\"evo-accordion-title__label evo-title evo-title_h4\">{{ label }}</h4>\n\n @if ({isExpanded: (isExpanded$ | async)}; as asyncData) {\n <div class=\"evo-accordion-title__expander\">\n @if (asyncData.isExpanded) {\n <evo-icon shape=\"unfold-less\" @toggleBlock />\n } @else {\n <evo-icon shape=\"unfold-more\" @toggleBlock />\n }\n </div>\n }\n </div>\n} @else {\n <ng-content />\n}\n","import {ChangeDetectionStrategy, Component, HostBinding} from '@angular/core';\nimport {skipInitialRenderAnimation} from '../../common/animations/skip-initial-render.animation';\n\n@Component({\n selector: 'evo-accordion',\n template: `\n <ng-content />\n `,\n styleUrls: ['./evo-accordion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [skipInitialRenderAnimation],\n standalone: true,\n})\nexport class EvoAccordionComponent {\n @HostBinding('@skipInitialRender') skipInitialRender;\n}\n","import {NgModule} from '@angular/core';\nimport {EvoIconComponent} from '../evo-icon';\nimport {EvoAccordionContentComponent} from './evo-accordion-content/evo-accordion-content.component';\nimport {EvoAccordionPanelComponent} from './evo-accordion-panel/evo-accordion-panel.component';\nimport {EvoAccordionTitleComponent} from './evo-accordion-title/evo-accordion-title.component';\nimport {EvoAccordionComponent} from './evo-accordion.component';\n\n@NgModule({\n imports: [\n EvoIconComponent,\n EvoAccordionComponent,\n EvoAccordionTitleComponent,\n EvoAccordionPanelComponent,\n EvoAccordionContentComponent,\n ],\n exports: [\n EvoAccordionComponent,\n EvoAccordionTitleComponent,\n EvoAccordionPanelComponent,\n EvoAccordionContentComponent,\n ],\n})\nexport class EvoAccordionModule {}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHtml',\n standalone: true,\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n transform(url) {\n return this.sanitizer.bypassSecurityTrustHtml(url);\n }\n}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {ValidationErrors} from '@angular/forms';\nimport {SafeHtmlPipe} from '../../pipes/safe-html.pipe';\n\nexport interface IEvoControlError {\n [error: string]: string;\n}\n\n@Component({\n selector: 'evo-control-error',\n templateUrl: './evo-control-error.component.html',\n styleUrls: ['./evo-control-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [SafeHtmlPipe],\n})\nexport class EvoControlErrorComponent {\n @Input() errors: ValidationErrors | null;\n @Input() errorsMessages: IEvoControlError;\n @Input() showCount = 1;\n\n private readonly defaultErrorMessages: IEvoControlError = {\n required: 'Заполните поле',\n email: 'Неправильно указана почта',\n phone: 'Введите телефон',\n };\n\n get errorsMap(): string[] {\n const messages = {\n ...this.defaultErrorMessages,\n ...(this.errorsMessages || {}),\n };\n const errorKeys = Object.keys(this.errors || {});\n const result: string[] = [];\n for (let index = 0; index < this.showCount && index < errorKeys.length; index++) {\n if (messages[errorKeys[index]]) {\n result.push(messages[errorKeys[index]]);\n }\n }\n return result;\n }\n}\n","@for (errorMsg of errorsMap; track errorMsg) {\n <div class=\"evo-error\" [innerHTML]=\"errorMsg | safeHtml\"></div>\n}\n","import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';\n\nconst defaultId = `clip-path-`;\n\n@Component({\n selector: 'evo-circular-loader',\n templateUrl: './evo-circular-loader.component.html',\n styleUrls: ['./evo-circular-loader.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class EvoCircularLoaderComponent implements OnInit {\n clipPathId: string = defaultId;\n\n ngOnInit(): void {\n this.clipPathId += `${defaultId}${Math.random().toString(36).substring(2)}`;\n }\n}\n","<div class=\"wrapper\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <clipPath [attr.id]=\"clipPathId\">\n <path\n d=\"M12 20C10.4178 20 8.87103 19.5308 7.55544 18.6518C6.23985 17.7727 5.21447 16.5233 4.60896 15.0615C4.00346 13.5997 3.84504 11.9911 4.15372 10.4393C4.4624 8.88743 5.22433 7.46197 6.34315 6.34315C7.46197 5.22433 8.88743 4.4624 10.4393 4.15372C11.9911 3.84504 13.5997 4.00346 15.0615 4.60896C16.5233 5.21446 17.7727 6.23984 18.6518 7.55544C19.5308 8.87103 20 10.4177 20 12L18 12C18 10.8133 17.6481 9.65327 16.9888 8.66658C16.3295 7.67988 15.3925 6.91085 14.2961 6.45672C13.1997 6.0026 11.9933 5.88378 10.8295 6.11529C9.66557 6.3468 8.59647 6.91824 7.75736 7.75736C6.91824 8.59647 6.3468 9.66557 6.11529 10.8295C5.88378 11.9933 6.0026 13.1997 6.45672 14.2961C6.91085 15.3925 7.67988 16.3295 8.66658 16.9888C9.65327 17.6481 10.8133 18 12 18L12 20Z\"\n />\n </clipPath>\n <foreignObject x=\"0\" y=\"0\" width=\"17\" height=\"16\" [attr.clip-path]=\"'url(#' + clipPathId + ')'\">\n <xhtml:div class=\"loader\" />\n </foreignObject>\n </svg>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoCircularLoaderComponent} from './evo-circular-loader.component';\n\nconst bundle = [EvoCircularLoaderComponent];\n\n@NgModule({\n imports: [...bundle],\n exports: [...bundle],\n})\nexport class EvoLoaderModule {}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n Injector,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n output,\n Renderer2,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport {\n COMPOSITION_BUFFER_MODE,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validator,\n} from '@angular/forms';\nimport {EvoControlStates} from '../../common/evo-control-state-manager/evo-control-states.enum';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {fromEvent, Subject} from 'rxjs';\nimport {debounceTime, map, takeUntil, tap} from 'rxjs/operators';\nimport {enterZone} from '../../operators';\nimport * as IMask from 'imask';\nimport {EvoControlErrorComponent} from '../evo-control-error/evo-control-error.component';\nimport {NgClass} from '@angular/common';\nimport {EvoIconComponent} from '../evo-icon/evo-icon.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\nimport {EvoCircularLoaderComponent} from '../evo-loader';\n\nexport enum EvoInputSizes {\n small = 'small',\n normal = 'normal',\n}\n\nexport enum EvoInputTheme {\n default = 'default',\n rounded = 'rounded',\n}\n\n@Component({\n selector: 'evo-input',\n templateUrl: './evo-input.component.html',\n styleUrls: ['./evo-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EvoInputComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [EvoUiClassDirective, EvoIconComponent, NgClass, EvoControlErrorComponent, EvoCircularLoaderComponent],\n})\nexport class EvoInputComponent\n extends EvoBaseControl\n implements ControlValueAccessor, OnInit, AfterViewInit, OnChanges, OnDestroy, Validator\n{\n @Input() autoFocus: boolean;\n // eslint-disable-next-line\n @Input('data-cp') dataCp: string;\n @Input() icon: string;\n // eslint-disable-next-line\n @Input() mask: any;\n @Input() placeholder: string;\n @Input() tooltip: string;\n @Input() type = 'text';\n @Input() disabled = false;\n @Input() loading = false;\n @Input() prefix = '';\n @Input() autocomplete: string;\n @Input() inputDebounce = 50;\n @Input() unmask: boolean | 'typed' = false;\n @Input() clearable = false;\n @Input() maskValidation = false;\n\n readonly blur = output<Event>();\n readonly onFocus = output<Event>();\n\n @ViewChild('input', {static: true}) inputElement: ElementRef;\n @ViewChild('tooltipContainer', {static: true}) tooltipElement: ElementRef;\n\n size: EvoInputSizes = EvoInputSizes.normal;\n theme: EvoInputTheme = EvoInputTheme.default;\n _value: string;\n customTooltipChecked = false;\n uiStates = {\n hasCustomTooltip: false,\n isTooltipVisible: false,\n isFocused: false,\n };\n\n // eslint-disable-next-line\n private iMask: IMask.InputMask<any>;\n\n private tooltipVisibilityTimeout = false;\n\n private readonly destroy$ = new Subject<void>();\n\n /** Whether the user is creating a composition string (IME events). */\n private _composing = false;\n\n constructor(\n private readonly zone: NgZone,\n private readonly changeDetector: ChangeDetectorRef,\n private readonly _renderer: Renderer2,\n @Optional() @Inject(COMPOSITION_BUFFER_MODE) private readonly _compositionMode: boolean,\n protected injector: Injector,\n ) {\n super(injector);\n }\n\n @Input('value') set setValue(value) {\n this._value = value;\n }\n\n @Input('size') set setSize(size: EvoInputSizes | string) {\n if (EvoInputSizes[size]) {\n this.size = EvoInputSizes[size];\n }\n }\n\n @Input('theme') set setTheme(theme: string | EvoInputTheme) {\n if (EvoInputTheme[theme]) {\n this.theme = EvoInputTheme[theme];\n }\n }\n\n get isDisabled() {\n if (this.loading) {\n return true;\n }\n return this.disabled;\n }\n\n // eslint-disable-next-line\n get value(): any {\n return this._value;\n }\n\n // eslint-disable-next-line\n set value(value: any) {\n if (value || this._value) {\n this._value = this.removePrefix(value);\n this.onChange(this.prefix + (this._value || ''));\n this.changeDetector.markForCheck();\n }\n }\n\n get inputClass(): {[cssClass: string]: boolean} {\n return {\n focused: this.uiStates.isFocused,\n disabled: this.isDisabled,\n valid: this.currentState[EvoControlStates.valid],\n invalid: this.currentState[EvoControlStates.invalid],\n [`size-${this.size}`]: this.size !== EvoInputSizes.normal,\n [`theme-${this.theme}`]: true,\n };\n }\n\n get hasAdditional(): boolean {\n return !!this.tooltip || this.uiStates.hasCustomTooltip || !!this.icon;\n }\n\n // eslint-disable-next-line\n set maskValue(value: any) {\n const normalizedValue = value ?? '';\n if (this.iMask) {\n if (this.unmask === 'typed') {\n this.iMask.typedValue = normalizedValue;\n } else if (this.unmask) {\n this.iMask.unmaskedValue = normalizedValue;\n } else {\n this.iMask.value = normalizedValue;\n }\n } else {\n this.writeToElement(normalizedValue);\n }\n }\n\n // eslint-disable-next-line\n get maskValue(): any {\n if (!this.iMask) {\n return this.inputElement.nativeElement.value;\n }\n if (this.unmask === 'typed') {\n return this.iMask.typedValue;\n }\n if (this.unmask) {\n return this.iMask.unmaskedValue;\n }\n return this.iMask.value;\n }\n\n get isClearable(): boolean {\n return this.clearable && !this.disabled;\n }\n\n ngOnInit() {\n const inputEl = this.inputElement.nativeElement;\n\n this.zone.runOutsideAngular(() => {\n if (this.mask) {\n this.createMaskInstance(this.mask);\n }\n\n fromEvent(inputEl, 'input')\n .pipe(\n debounceTime(this.inputDebounce),\n map((e: InputEvent) => {\n if (this.iMask) {\n return this.maskValue;\n }\n return (e.target as HTMLInputElement).value;\n }),\n enterZone(this.zone),\n tap((value: string) => {\n this.value = value;\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n if (this.iMask) {\n this.destroyMask();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!changes) {\n return;\n }\n\n const {mask} = changes;\n\n if (mask && !mask.firstChange) {\n const newMaskOptions = mask.currentValue;\n if (newMaskOptions) {\n if (this.iMask) {\n this.iMask.updateOptions(newMaskOptions);\n } else {\n this.createMaskInstance(newMaskOptions);\n }\n } else {\n this.destroyMask();\n }\n }\n }\n\n onChange(value) {\n // this is intentional\n }\n\n onTouched() {\n // this is intentional\n }\n\n ngAfterViewInit() {\n if (this.autoFocus) {\n this.focus();\n }\n this.checkCustomTooltip();\n }\n\n // eslint-disable-next-line\n writeToElement(value: any) {\n this._renderer.setProperty(this.inputElement.nativeElement, 'value', value);\n }\n\n // eslint-disable-next-line\n writeValue(value: any): void {\n if (value === this._value) {\n return;\n }\n\n this.value = value;\n\n if (this.mask) {\n this.maskValue = value;\n } else {\n this.writeToElement(value);\n }\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(state: boolean): void {\n this.disabled = state;\n this.changeDetector.detectChanges();\n }\n\n focus(): void {\n this.inputElement.nativeElement.focus();\n }\n\n onInputFocus(event: Event): void {\n if (this.uiStates.isFocused) {\n return;\n }\n\n this.uiStates.isFocused = true;\n this.onTouched();\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: Event): void {\n this.uiStates.isFocused = false;\n this.onTouched();\n this.blur.emit(event);\n }\n\n // eslint-disable-next-line\n onTooltipClick(event: any): void {\n event.preventDefault();\n event.stopPropagation();\n }\n\n onClear(): void {\n this.writeValue('');\n }\n\n hideTooltip() {\n this.tooltipVisibilityTimeout = true;\n\n setTimeout(() => {\n if (this.tooltipVisibilityTimeout) {\n this.uiStates.isTooltipVisible = false;\n }\n }, 25);\n }\n\n showTooltip() {\n this.uiStates.isTooltipVisible = true;\n this.tooltipVisibilityTimeout = false;\n }\n\n // Composition handling is taken from:\n // https://github.com/angular/angular/blob/11.0.3/packages/forms/src/directives/default_value_accessor.ts#L152\n _compositionStart(): void {\n this._composing = true;\n }\n\n // eslint-disable-next-line\n _compositionEnd(value: any): void {\n this._composing = false;\n if (this._compositionMode) {\n this.value = value;\n }\n }\n\n // eslint-disable-next-line\n private removePrefix(value: any): any {\n if (typeof value === 'string' && value.indexOf(this.prefix) === 0) {\n return value.replace(this.prefix, '');\n }\n return value;\n }\n\n // eslint-disable-next-line\n private createMaskInstance(opts: any) {\n this.iMask = new IMask.InputMask(this.inputElement.nativeElement, opts);\n }\n\n private destroyMask() {\n this.iMask?.destroy();\n this.iMask = null;\n }\n\n private checkCustomTooltip() {\n this.uiStates.hasCustomTooltip =\n this.tooltipElement &&\n this.tooltipElement.nativeElement &&\n this.tooltipElement.nativeElement.children.length > 0;\n this.customTooltipChecked = true;\n this.changeDetector.detectChanges();\n }\n\n validate() {\n if (this.maskValidation && this.mask && !this.iMask.masked.isComplete) {\n return {mask: true};\n }\n return null;\n }\n}\n","<label class=\"evo-input\" [evoUiClass]=\"inputClass\">\n <div class=\"evo-input__prefix-content\">\n <ng-content select=\"[evoInputPrefixContent]\" />\n </div>\n <div class=\"evo-input__prefix-icon\">\n <ng-content select=\"[evoInputIcon]\" />\n </div>\n\n @if (prefix) {\n <span class=\"evo-input__prefix\" [evoUiClass]=\"{focused: (!isDisabled && !!value) || uiStates.isFocused}\">\n {{ prefix }}\n </span>\n }\n\n <input\n #input\n type=\"{{ type }}\"\n placeholder=\"{{ placeholder }}\"\n class=\"evo-input__field\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.data-cp]=\"dataCp\"\n [disabled]=\"isDisabled\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (compositionstart)=\"_compositionStart()\"\n (compositionend)=\"_compositionEnd($event.target.value)\"\n />\n\n @if (loading) {\n <evo-circular-loader class=\"evo-input__loading-spinner\" />\n } @else {\n @if (isClearable) {\n <div class=\"evo-input__clearable\" (click)=\"onClear()\">\n <evo-icon shape=\"decline\" class=\"evo-input__icon-clear\" />\n </div>\n }\n @if (hasAdditional) {\n <div class=\"evo-input__additional\">\n @if (tooltip || uiStates.hasCustomTooltip) {\n <evo-icon\n shape=\"help\"\n class=\"evo-input__tooltip\"\n (mouseenter)=\"showTooltip()\"\n (mouseleave)=\"hideTooltip()\"\n (click)=\"onTooltipClick($event)\"\n />\n }\n @if (icon) {\n <div class=\"evo-input__icon\">\n <img [attr.src]=\"icon\" />\n </div>\n }\n </div>\n }\n }\n\n @if (!customTooltipChecked || uiStates.isTooltipVisible) {\n <div\n #tooltipContainer\n [hidden]=\"!customTooltipChecked\"\n [ngClass]=\"{'evo-input__tooltip-container': tooltip}\"\n (click)=\"onTooltipClick($event)\"\n (mouseenter)=\"showTooltip()\"\n (mouseleave)=\"hideTooltip()\"\n >\n {{ tooltip }}\n <ng-content select=\"[tooltip]\" />\n </div>\n }\n</label>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[evoInputIcon]',\n standalone: true,\n})\nexport class EvoInputIconDirective {}\n","import {NgModule} from '@angular/core';\nimport {EvoInputComponent} from './evo-input.component';\nimport {EvoInputIconDirective} from './evo-input-icon/evo-input-icon.directive';\n\n@NgModule({\n imports: [EvoInputComponent, EvoInputIconDirective],\n exports: [EvoInputComponent, EvoInputIconDirective],\n})\nexport class EvoInputModule {}\n","import {NgModule} from '@angular/core';\nimport {EvoControlErrorComponent} from './evo-control-error.component';\n\n@NgModule({\n imports: [EvoControlErrorComponent],\n exports: [EvoControlErrorComponent],\n})\nexport class EvoControlErrorModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NgControl} from '@angular/forms';\nimport {merge, Subject} from 'rxjs';\nimport {NgSelectComponent, NgSelectModule} from '@ng-select/ng-select';\nimport {delay, takeUntil, tap} from 'rxjs/operators';\nimport {isNull} from 'lodash-es';\nimport {EvoInputTheme} from '../../../evo-input';\nimport {EvoAutocompleteSize} from '../../types/evo-autocomplete-size';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {NgIf, NgTemplateOutlet} from '@angular/common';\nimport {EvoControlErrorModule} from '../../../evo-control-error';\nimport {EvoIconService} from '../../../evo-icon';\nimport {EvoUiClassDirective} from '../../../../directives/evo-ui-class.directive';\nimport {EVO_ICON_RESOLVER} from '../../../../common/tokens';\n\nexport type DropdownPosition = 'bottom' | 'top' | 'auto';\n// eslint-disable-next-line\nexport type AddTagFn = (term: string) => any | Promise<any>;\n// eslint-disable-next-line\nexport type SearchFn = (term: string, item: any) => boolean;\n// eslint-disable-next-line\nexport type CompareWithFn = (a: any, b: any) => boolean;\n// eslint-disable-next-line\nexport type GroupValueFn = (key: string | object, children: any[]) => string | object;\n\nconst DEFAULT_NOT_FOUND_TEXT = 'Не найдено';\n\n@Component({\n // eslint-disable-next-line\n selector: 'evo-autocomplete',\n templateUrl: './evo-autocomplete.component.html',\n styleUrls: ['./evo-autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [EvoUiClassDirective, NgSelectModule, FormsModule, NgTemplateOutlet, NgIf, EvoControlErrorModule],\n})\nexport class EvoAutocompleteComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n theme: EvoInputTheme = EvoInputTheme.default;\n\n @Input() size: EvoAutocompleteSize = 'normal';\n\n isFocused = false;\n isSelectbox = false;\n\n // eslint-disable-next-line\n @Input() isOpen;\n // eslint-disable-next-line\n @Input() items: any[];\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() markFirst = true;\n @Input() placeholder: string;\n @Input() typeToSearchText: string;\n @Input() addTagText = 'Добавить тэг';\n @Input() loadingText = 'Идет поиск...';\n @Input() clearAllText: string;\n @Input() dropdownPosition: DropdownPosition = 'auto';\n @Input() appendTo: string;\n @Input() loading: boolean;\n @Input() closeOnSelect = true;\n @Input() hideSelected: boolean;\n @Input() selectOnTab: boolean;\n @Input() openOnEnter: boolean;\n @Input() maxSelectedItems: number;\n // eslint-disable-next-line\n @Input() groupBy: string | ((value: any) => any);\n @Input() groupValue: GroupValueFn;\n @Input() bufferAmount = 4;\n @Input() virtualScroll: boolean;\n @Input() selectableGroup: boolean;\n @Input() selectableGroupAsModel = true;\n // eslint-disable-next-line\n @Input() searchFn: SearchFn;\n @Input() clearOnBackspace = true;\n @Input() typeahead: Subject<string>;\n @Input() multiple: boolean;\n @Input() multipleInline: boolean;\n @Input() addTag: boolean | AddTagFn;\n @Input() clearable = true;\n @Input() errorsMessages: {[key: string]: string};\n @Input() compareWith: CompareWithFn;\n @Input('notFoundText') _notFoundText: string;\n\n // Fix: https://github.com/ng-select/ng-select/pull/1257\n // Don't work with custom template - labelTemp\n @Input() editQuery = false;\n\n // Outputs\n /* eslint-disable @angular-eslint/no-output-rename */\n @Output('blur') blurEvent = new EventEmitter();\n @Output('focus') focusEvent = new EventEmitter();\n @Output('change') changeEvent = new EventEmitter();\n @Output('open') openEvent = new EventEmitter();\n @Output('close') closeEvent = new EventEmitter();\n // eslint-disable-next-line\n @Output('search') searchEvent = new EventEmitter<{term: string; items: any[]}>();\n @Output('clear') clearEvent = new EventEmitter();\n @Output('add') addEvent = new EventEmitter();\n @Output('remove') removeEvent = new EventEmitter();\n @Output('scroll') scrollEvent = new EventEmitter<{start: number; end: number}>();\n @Output('scrollToEnd') scrollToEndEvent = new EventEmitter();\n /* eslint-enable @angular-eslint/no-output-rename */\n\n @ViewChild(NgSelectComponent)\n ngSelectComponent: NgSelectComponent;\n\n // eslint-disable-next-line\n @ContentChild('labelTemp', {read: TemplateRef}) labelTemp: TemplateRef<any>;\n // eslint-disable-next-line\n @ContentChild('multiLabelTemp', {read: TemplateRef}) multiLabelTemp: TemplateRef<any>;\n // eslint-disable-next-line\n @ContentChild('optionTemp', {read: TemplateRef}) optionTemp: TemplateRef<any>;\n // eslint-disable-next-line\n @ContentChild('optgroupTemp', {read: TemplateRef}) optgroupTemp: TemplateRef<any>;\n // eslint-disable-next-line\n @ContentChild('headerTemp', {read: TemplateRef}) headerTemp: TemplateRef<any>;\n // eslint-disable-next-line\n @ContentChild('footerTemp', {read: TemplateRef}) footerTemp: TemplateRef<any>;\n // eslint-disable-next-line\n @ContentChild('notFoundTemp', {read: TemplateRef}) notFoundTemp: TemplateRef<any>;\n\n protected inputVal: string;\n\n protected readonly _destroy$ = new Subject<void>();\n\n // eslint-disable-next-line\n protected _value: any;\n\n protected inputEl: HTMLInputElement;\n protected _searchable;\n\n get notFoundText(): string {\n if (this.isSelectbox) {\n return this._notFoundText || '';\n }\n return this._notFoundText || DEFAULT_NOT_FOUND_TEXT;\n }\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n public control: NgControl,\n private readonly evoIconService: EvoIconService,\n private readonly sanitizer: DomSanitizer,\n @Inject(EVO_ICON_RESOLVER) private readonly iconResolver: (s: string) => string,\n ) {\n control.valueAccessor = this;\n }\n\n @Input() set searchable(searchable: boolean) {\n this._searchable = searchable;\n }\n\n get searchable(): boolean {\n return this._searchable ?? !this.isSelectbox;\n }\n\n @Input('isSelectbox') set setSelectbox(isSelectbox: boolean) {\n this.clearable = false;\n this.editQuery = false;\n this.isSelectbox = isSelectbox;\n }\n\n @Input('theme') set setTheme(theme: string | EvoInputTheme) {\n if (EvoInputTheme[theme]) {\n this.theme = EvoInputTheme[theme];\n }\n }\n\n get hasErrors(): boolean {\n return this.control.dirty && this.control.touched && this.control.invalid;\n }\n\n get classes(): {[key: string]: boolean} {\n return {\n 'is-multiple-inline': this.multipleInline,\n 'is-edit-query': this.editQuery,\n 'is-selectbox': this.isSelectbox,\n disabled: this.control.disabled,\n touched: this.control.touched,\n valid: this.control.valid,\n invalid: this.control.invalid,\n [`theme-${this.theme}`]: true,\n [`size-${this.size}`]: true,\n };\n }\n\n // eslint-disable-next-line\n get value(): any {\n return this._value;\n }\n\n // eslint-disable-next-line\n set value(value: any) {\n if (value !== this._value) {\n this._value = value;\n this._onChange(value);\n }\n }\n\n // eslint-disable-next-line\n getMultipleInlineItemsLabels(items: any[]): string {\n if (!items || !Array.isArray(items) || items.length === 0) {\n return '';\n }\n return items\n .map((item) => item[this.bindLabel] || '')\n .filter((item) => item !== '')\n .join(', ');\n }\n\n ngAfterViewInit(): void {\n if (this.editQuery) {\n this.editQueryMode();\n }\n\n this.patchClearButtonIcon();\n\n // prevent option click to close evo-modal\n this.ngSelectComponent.element.addEventListener('click', (e) => {\n if ((e.target as HTMLElement).closest('.ng-option')) {\n e.stopPropagation();\n }\n });\n\n // Allows to mark view for check\n // if control was validated with FormHelper.validate\n // and it's touched\n this.control.control.statusChanges\n .pipe(\n takeUntil(this._destroy$),\n tap(() => this.cdr.markForCheck()),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n // eslint-disable-next-line\n writeValue(value: any): void {\n this.value = value;\n if (this.ngSelectComponent) {\n this.ngSelectComponent.writeValue(value);\n }\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (this.ngSelectComponent) {\n this.ngSelectComponent.setDisabledState(isDisabled);\n }\n }\n\n // TODO: investigate and remove\n editQueryMode(): void {\n const ngSelectEl: HTMLElement = this.ngSelectComponent.element;\n this.inputEl = ngSelectEl.querySelector('.ng-input input');\n const streams$ = [\n this.changeEvent.pipe(\n delay(0),\n tap(() => {\n this.resetSearchQuery();\n this.inputEl.value = this.inputVal || '';\n }),\n ),\n this.closeEvent.pipe(\n delay(0),\n tap(() => {\n this.resetSearchQuery();\n if (ngSelectEl.classList.contains('ng-select-focused')) {\n this.inputEl.value = this.inputVal || '';\n }\n }),\n ),\n this.focusEvent.pipe(\n tap(() => {\n this.resetSearchQuery();\n this.inputEl.value = this.inputVal || '';\n }),\n ),\n this.blurEvent.pipe(\n tap(() => {\n this.inputEl.value = '';\n }),\n ),\n ];\n\n if (this.control.valueChanges) {\n streams$.push(\n this.control.valueChanges.pipe(\n tap((value) => {\n if (!isNull(value)) {\n this.resetSearchQuery();\n return;\n }\n this.inputVal = '';\n this.inputEl.value = '';\n }),\n ),\n );\n }\n\n merge(...streams$)\n .pipe(takeUntil(this._destroy$))\n .subscribe();\n }\n\n resetSearchQuery(): void {\n const currentItem = this.ngSelectComponent.selectedItems[0];\n this.inputVal = currentItem?.label || '';\n }\n\n focus(): void {\n this.ngSelectComponent.focus();\n }\n\n blur(): void {\n this.ngSelectComponent.blur();\n }\n\n open(): void {\n this.ngSelectComponent.open();\n }\n\n close(): void {\n this.ngSelectComponent.close();\n }\n\n onFocus(event: FocusEvent): void {\n this.isFocused = true;\n this._onTouched();\n if (this.control.value) {\n this.focusEvent.emit(event);\n }\n }\n\n onBlur(event: FocusEvent): void {\n this.isFocused = false;\n this.blurEvent.emit(event);\n }\n\n onClearClick(): void {\n this.ngSelectComponent.handleClearClick();\n }\n\n protected _onChange = (value) => {};\n\n protected _onTouched = () => {};\n\n /**\n * Try to patch clear button icon\n */\n protected patchClearButtonIcon(): void {\n const originalShowClearFn = this.ngSelectComponent.showClear;\n const ngSelectElement = this.ngSelectComponent;\n let fetchIconSubscription = null;\n\n const safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.iconResolver('decline'));\n const icon$ = this.evoIconService.fetchIcon(safeUrl);\n\n this.ngSelectComponent.showClear = function () {\n const isClearButtonVisible = originalShowClearFn.bind(this)();\n\n if (isClearButtonVisible) {\n fetchIconSubscription?.unsubscribe();\n\n fetchIconSubscription = icon$.subscribe((iconDecline) => {\n const ngClearWrapperElement = ngSelectElement.element.querySelector('.ng-clear-wrapper');\n if (!ngClearWrapperElement) {\n return;\n }\n // eslint-disable-next-line:max-line-length\n ngClearWrapperElement.innerHTML = `<span class=\"ng-clear ng-clear_patched\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">${iconDecline}</svg></span>`;\n });\n }\n\n return isClearButtonVisible;\n };\n }\n}\n","<div class=\"evo-autocomplete\" [evoUiClass]=\"classes\">\n <ng-select\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [markFirst]=\"markFirst\"\n [placeholder]=\"placeholder\"\n [notFoundText]=\"notFoundText\"\n [typeToSearchText]=\"typeToSearchText\"\n [addTagText]=\"addTagText\"\n [loadingText]=\"loadingText\"\n [clearAllText]=\"clearAllText\"\n [dropdownPosition]=\"dropdownPosition\"\n [appendTo]=\"appendTo\"\n [loading]=\"loading\"\n [closeOnSelect]=\"closeOnSelect\"\n [hideSelected]=\"hideSelected\"\n [selectOnTab]=\"selectOnTab\"\n [openOnEnter]=\"openOnEnter\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [groupBy]=\"groupBy\"\n [groupValue]=\"groupValue\"\n [bufferAmount]=\"bufferAmount\"\n [virtualScroll]=\"virtualScroll\"\n [selectableGroup]=\"selectableGroup\"\n [selectableGroupAsModel]=\"selectableGroupAsModel\"\n [searchFn]=\"searchFn\"\n [clearOnBackspace]=\"clearOnBackspace\"\n [typeahead]=\"typeahead\"\n [multiple]=\"multiple || multipleInline\"\n [addTag]=\"addTag\"\n [searchable]=\"searchable\"\n [clearable]=\"clearable\"\n [isOpen]=\"isOpen\"\n [editableSearchTerm]=\"editQuery\"\n [disabled]=\"control.disabled\"\n [compareWith]=\"compareWith\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (change)=\"changeEvent.emit($event)\"\n (open)=\"openEvent.emit($event)\"\n (close)=\"closeEvent.emit($event)\"\n (search)=\"searchEvent.emit($event)\"\n (clear)=\"clearEvent.emit($event)\"\n (add)=\"addEvent.emit($event)\"\n (remove)=\"removeEvent.emit($event)\"\n (scroll)=\"scrollEvent.emit($event)\"\n (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\n >\n <!-- Selected Item Template -->\n @if (labelTemp) {\n <ng-template ng-label-tmp let-item=\"item\">\n <ng-template *ngTemplateOutlet=\"labelTemp; context: {item: item}\" />\n </ng-template>\n }\n\n <!-- Overall Label For All Selected Items Template -->\n @if (multiLabelTemp) {\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div class=\"evo-autocomplete__label\">\n <ng-template *ngTemplateOutlet=\"multiLabelTemp; context: {items: items, clear: clear}\" />\n </div>\n </ng-template>\n }\n @if (headerTemp) {\n <!-- Options header template -->\n <ng-template ng-header-tmp>\n <ng-template *ngTemplateOutlet=\"headerTemp; context: {items: items}\" />\n </ng-template>\n }\n\n <!-- Option Template -->\n @if (optionTemp) {\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\" let-item$=\"item$\">\n <ng-template\n *ngTemplateOutlet=\"\n optionTemp;\n context: {item: item, index: index, searchTerm: search, item$: item$}\n \"\n />\n </ng-template>\n }\n\n @if (multipleInline && !multiLabelTemp) {\n <ng-template ng-multi-label-tmp let-items=\"items\">\n <div class=\"ng-value evo-autocomplete__label\">{{ getMultipleInlineItemsLabels(items) }}</div>\n </ng-template>\n }\n\n @if (optgroupTemp) {\n <!-- Options group template -->\n <ng-template ng-optgroup-tmp let-item=\"item\" let-index=\"index\">\n <ng-template *ngTemplateOutlet=\"optgroupTemp; context: {item: item, index: index}\" />\n </ng-template>\n }\n\n <!-- Search Text Templates -->\n <ng-template ng-typetosearch-tmp>\n @if (typeToSearchText) {\n <div class=\"ng-option disabled\">{{ typeToSearchText }}</div>\n }\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">{{ loadingText }}</div>\n </ng-template>\n\n @if (notFoundTemp) {\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <ng-template *ngTemplateOutlet=\"notFoundTemp; context: {searchTerm: searchTerm}\" />\n </ng-template>\n } @else {\n <ng-template ng-notfound-tmp>\n <div class=\"ng-option disabled\">{{ notFoundText }}</div>\n </ng-template>\n }\n\n @if (footerTemp) {\n <!-- Options footer template -->\n <ng-template ng-footer-tmp>\n <ng-template *ngTemplateOutlet=\"footerTemp; context: {items: items}\" />\n </ng-template>\n }\n </ng-select>\n\n @if (hasErrors && errorsMessages) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n }\n</div>\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Injector,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EvoControlStates} from '../../common/evo-control-state-manager/evo-control-states.enum';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {EvoControlErrorComponent} from '../evo-control-error/evo-control-error.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-checkbox',\n templateUrl: './evo-checkbox.component.html',\n styleUrls: ['./evo-checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoCheckboxComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [FormsModule, EvoUiClassDirective, EvoControlErrorComponent],\n})\nexport class EvoCheckboxComponent extends EvoBaseControl implements ControlValueAccessor {\n @Input('indeterminate') set setIndeterminate(value) {\n this.indeterminate = value;\n }\n\n @Output() indeterminateChange = new EventEmitter<boolean>();\n\n @ViewChild('inputElement') inputElement: ElementRef;\n\n indeterminate = undefined;\n\n disabled = false;\n private _value: boolean;\n\n constructor(\n protected injector: Injector,\n private readonly cdr: ChangeDetectorRef,\n ) {\n super(injector);\n }\n\n onChange(_) {}\n\n onTouched() {}\n\n get value(): boolean {\n return this._value;\n }\n\n set value(value: boolean) {\n this._value = value;\n this.onChange(value);\n this.cdr.detectChanges();\n }\n\n get checkboxClass() {\n return {\n invalid: this.currentState[EvoControlStates.invalid],\n };\n }\n\n onInputChange(value) {\n this.value = value;\n if (this.indeterminate === true) {\n this.indeterminate = false;\n this.indeterminateChange.emit(false);\n }\n }\n\n writeValue(value: boolean): void {\n this._value = value;\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(state: boolean): void {\n this.disabled = state;\n this.cdr.detectChanges();\n }\n}\n","<label class=\"evo-checkbox\">\n <input\n #inputElement\n type=\"checkbox\"\n class=\"evo-checkbox__input\"\n [indeterminate]=\"indeterminate\"\n [evoUiClass]=\"checkboxClass\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onInputChange($event)\"\n />\n <span class=\"evo-checkbox__text\">\n <ng-content />\n </span>\n</label>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n","import {NgModule} from '@angular/core';\nimport {EvoCheckboxComponent} from './evo-checkbox.component';\n\n@NgModule({\n imports: [EvoCheckboxComponent],\n exports: [EvoCheckboxComponent],\n})\nexport class EvoCheckboxModule {}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {EvoCheckboxModule} from '../../../evo-checkbox/evo-checkbox.module';\n\n@Component({\n selector: 'evo-autocomplete-default-option',\n templateUrl: './evo-autocomplete-default-option.component.html',\n styleUrls: ['./evo-autocomplete-default-option.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoCheckboxModule, FormsModule],\n})\nexport class EvoAutocompleteDefaultOptionComponent {\n @Input() hasCheckbox: boolean;\n\n @Input() label: string;\n @Input() description: string;\n @Input() isDisabled: boolean;\n @Input() isSelected: boolean;\n\n @HostBinding('class.has-checkbox') get hasCheckboxClass(): boolean {\n return this.hasCheckbox;\n }\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n onSelectedChange(e): void {\n this.cdr.markForCheck();\n }\n\n onCheckboxClick(e: Event): void {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (e.target) {\n (e.target as HTMLElement).closest('.ng-option')?.dispatchEvent(new Event('click'));\n }\n }\n}\n","@if (hasCheckbox) {\n <div class=\"option option_has-checkbox\">\n <evo-checkbox\n [ngModel]=\"isSelected\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"isDisabled\"\n (click)=\"onCheckboxClick($event)\"\n (change)=\"onCheckboxClick($event)\"\n (ngModelChange)=\"onSelectedChange($event)\"\n >\n {{ label }}\n </evo-checkbox>\n\n @if (description) {\n <div class=\"option__description\">{{ description }}</div>\n }\n </div>\n} @else {\n <div class=\"option\">\n <div class=\"option__label\">{{ label }}</div>\n\n @if (description) {\n <div class=\"option__description\">{{ description }}</div>\n }\n </div>\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'evo-autocomplete-header',\n templateUrl: './evo-autocomplete-header.component.html',\n styleUrls: ['./evo-autocomplete-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class EvoAutocompleteHeaderComponent {}\n","<div class=\"evo-autocomplete-header\">\n <ng-content />\n</div>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'evo-autocomplete-footer',\n templateUrl: './evo-autocomplete-footer.component.html',\n styleUrls: ['./evo-autocomplete-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class EvoAutocompleteFooterComponent {}\n","<div class=\"evo-autocomplete-footer\">\n <ng-content />\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoAutocompleteComponent} from './components/evo-autocomplete/evo-autocomplete.component';\n\nimport {EvoAutocompleteDefaultOptionComponent} from './components/evo-autocomplete-default-option/evo-autocomplete-default-option.component';\nimport {EvoAutocompleteHeaderComponent} from './components/evo-autocomplete-header/evo-autocomplete-header.component';\nimport {EvoAutocompleteFooterComponent} from './components/evo-autocomplete-footer/evo-autocomplete-footer.component';\n\n@NgModule({\n imports: [EvoAutocompleteComponent, EvoAutocompleteDefaultOptionComponent,EvoAutocompleteHeaderComponent,\n EvoAutocompleteFooterComponent,],\n exports: [EvoAutocompleteComponent, EvoAutocompleteDefaultOptionComponent,EvoAutocompleteHeaderComponent,\n EvoAutocompleteFooterComponent,],\n})\nexport class EvoAutocompleteModule {}\n","import {concat, Observable, of, Subject} from 'rxjs';\nimport {debounceTime, distinctUntilChanged, switchMap} from 'rxjs/operators';\n\nexport function switchQueryToList(\n queryStream: Subject<string>,\n // eslint-disable-next-line\n switchMapFn: (query: string) => Observable<any[]>,\n initialList = [],\n debounce = 300,\n // eslint-disable-next-line\n): Observable<any[]> {\n return concat(\n of(initialList),\n queryStream.pipe(debounceTime(debounce), distinctUntilChanged(), switchMap(switchMapFn)),\n // eslint-disable-next-line\n ) as Observable<any[]>;\n}\n","/**\n * @deprecated use an DadataCompanyType\n */\nexport enum DaDataEntityTypes {\n legal = 'LEGAL',\n individual = 'INDIVIDUAL',\n}\n\n/**\n * @deprecated use an DadataPartySuggestion\n */\nexport class DaDataParty {\n name: {\n full: string,\n full_with_opf: string,\n latin: string,\n short: string,\n short_with_opf: string,\n };\n\n management: {\n name: string,\n post: string,\n };\n\n address: {\n value: string,\n // eslint-disable-next-line\n data: any,\n };\n\n inn: string;\n kpp: string;\n okpo: string;\n ogrn: string;\n okved: string;\n okato: string;\n\n type: DaDataEntityTypes;\n\n // eslint-disable-next-line\n constructor(data?: any) {\n Object.assign(this, data);\n }\n\n get legalName(): string {\n return this.name ? this.name.short_with_opf || this.name.full_with_opf : null;\n }\n\n get contactPerson(): string {\n if (this.management) {\n return this.management.name;\n } else {\n return this.name ? this.name.full : '';\n }\n }\n}\n","export enum DadataFounderShareType {\n PERCENT = 'PERCENT',\n DECIMAL = 'DECIMAL',\n FRACTION = 'FRACTION',\n}\n\nexport enum DadataCompanyType {\n LEGAL = 'LEGAL',\n INDIVIDUAL = 'INDIVIDUAL',\n}\n\nexport enum DadataCompanyBranchType {\n MAIN = 'MAIN',\n BRANCH = 'BRANCH',\n}\n\nexport enum DadataCompanyStatus {\n ACTIVE = 'ACTIVE',\n LIQUIDATING = 'LIQUIDATING',\n LIQUIDATED = 'LIQUIDATED',\n REORGANIZING = 'REORGANIZING',\n BANKRUPT = 'BANKRUPT',\n}\n\nexport enum DadataBankStatus {\n ACTIVE = 'ACTIVE',\n LIQUIDATING = 'LIQUIDATING',\n LIQUIDATED = 'LIQUIDATED',\n}\n\nexport enum DadataBankType {\n CBR = 'CBR',\n BANK = 'BANK',\n BANK_BRANCH = 'BANK_BRANCH',\n NKO = 'NKO',\n NKO_BRANCH = 'NKO_BRANCH',\n RKC = 'RKC',\n TREASURY = 'TREASURY',\n OTHER = 'OTHER'\n}\n\nexport enum DadataManagerType {\n EMPLOYEE = 'EMPLOYEE',\n FOREIGNER = 'FOREIGNER',\n LEGAL = 'LEGAL',\n}\n\nexport interface DadataMetro {\n name: string;\n line: string;\n distance: string;\n}\n\nexport interface DadataFio {\n gender?: string;\n name: string;\n patronymic: string;\n // eslint-disable-next-line\n qc?: any;\n source?: string;\n surname: string;\n}\n\nexport interface DadataManager {\n ogrn: string;\n inn: string;\n name: string;\n fio: DadataFio;\n post: string;\n hid: string;\n type: DadataManagerType;\n}\n\nexport interface DadataReorganized {\n ogrn: string;\n inn: string;\n name: string;\n}\n\nexport interface DadataPartyOPF {\n code: string;\n full: string;\n short: string;\n type: string;\n}\n\nexport interface DadataFounderShare {\n type: DadataFounderShareType;\n value?: number;\n numerator?: number;\n denominator?: number;\n}\n\nexport interface DadataFounder {\n ogrn: string;\n inn: string;\n name: string;\n fio: DadataFio;\n hid: string;\n type: string;\n share: DadataFounderShare;\n}\n\nexport interface DadataFioSuggestion {\n surname: string;\n name: string;\n patronymic: string;\n gender: string;\n source: string;\n qc: string;\n}\n\nexport interface DadataFTSSuggestion {\n type: string;\n name: string;\n code: string;\n address: string;\n}\n\nexport interface DadataAuthoritiesSuggestion {\n fts_registration?: DadataFTSSuggestion;\n fts_report?: DadataFTSSuggestion;\n pf?: DadataFTSSuggestion;\n sif?: DadataFTSSuggestion;\n}\n\nexport interface DadataFinance {\n tax_system?: string;\n income?: number;\n expense?: number;\n debt?: number;\n penalty?: number;\n year?: number;\n}\n\nexport interface DadataState<T> {\n actuality_date?: number;\n registration_date?: number;\n liquidation_date?: number;\n code?: string;\n status?: T;\n}\n\nexport interface DadataSecondaryOKVED {\n main: boolean;\n type: string;\n code: string;\n name: string;\n}\n\nexport interface DadataPartyDocumentRegistration {\n type: string;\n series: string;\n number: string;\n issue_date: number;\n issue_authority: string;\n}\n\nexport interface DadataPartyDocument {\n fts_registration: DadataPartyDocumentRegistration;\n pf_registration: DadataPartyDocumentRegistration;\n sif_registration: DadataPartyDocumentRegistration;\n smb: {\n type: string;\n category: string;\n issue_date: number;\n };\n}\n\nexport interface DadataPartyLicence {\n series: string;\n number: string;\n issue_date: number;\n issue_authority: string;\n suspend_date: number;\n suspend_authority: string;\n valid_from: number;\n valid_to: number;\n activities: string[];\n addresses: string[];\n}\n\n/**\n * @see https://confluence.hflabs.ru/pages/viewpage.action?pageId=262996078\n */\nexport interface DadataBankSuggestion {\n bic?: string;\n swift?: string;\n inn?: string;\n kpp?: string;\n correspondent_account?: string;\n treasury_accounts?: string[];\n registration_number?: string;\n name?: {\n payment?: string;\n short?: string;\n };\n payment_city?: string;\n opf?: {\n type?: DadataBankType;\n };\n address?: DadataSuggestion<DadataAddressSuggestion>;\n source?: string;\n qc?: string;\n state?: DadataState<DadataBankStatus>;\n}\n\n/**\n * @see https://confluence.hflabs.ru/pages/viewpage.action?pageId=204669107\n */\nexport interface DadataAddressSuggestion {\n postal_code?: string;\n country?: string;\n country_iso_code?: string;\n federal_district?: string;\n region_fias_id?: string;\n region_kladr_id: string;\n region_iso_code?: string;\n region_with_type?: string;\n region_type?: string;\n region_type_full?: string;\n region?: string;\n area_fias_id?: string;\n area_kladr_id?: string;\n area_with_type?: string;\n area_type?: string;\n area_type_full?: string;\n area?: string;\n city_fias_id?: string;\n city_kladr_id?: string;\n city_with_type?: string;\n city_type?: string;\n city_type_full?: string;\n city?: string;\n city_district_fias_id?: string;\n city_district_kladr_id?: string;\n city_district_with_type?: string;\n city_district_type?: string;\n city_district_type_full?: string;\n city_district?: string;\n settlement_fias_id?: string;\n settlement_kladr_id?: string;\n settlement_with_type?: string;\n settlement_type?: string;\n settlement_type_full?: string;\n settlement?: string;\n street_fias_id?: string;\n street_kladr_id?: string;\n street_with_type?: string;\n street_type?: string;\n street_type_full?: string;\n street?: string;\n house_fias_id?: string;\n house_kladr_id?: string;\n house_type?: string;\n house_type_full?: string;\n house?: string;\n block_type?: string;\n block_type_full?: string;\n block?: string;\n flat_fias_id?: string;\n flat_type?: string;\n flat_type_full?: string;\n flat?: string;\n postal_box?: string;\n fias_id?: string;\n fias_level?: string;\n kladr_id?: string;\n geoname_id?: string;\n capital_marker?: string;\n okato?: string;\n oktmo?: string;\n tax_office?: string;\n tax_office_legal?: string;\n source?: string;\n history_values?: string[];\n geo_lat?: string;\n geo_lon?: string;\n qc_geo?: string;\n fias_code?: string;\n fias_actuality_state?: string;\n city_area?: string;\n beltway_hit?: string;\n beltway_distance?: string;\n flat_area?: string;\n square_meter_price?: string;\n flat_price?: string;\n timezone?: string;\n metro?: DadataMetro[];\n}\n\n/**\n * @see https://confluence.hflabs.ru/pages/viewpage.action?pageId=204669122\n */\nexport interface DadataPartySuggestion {\n address?: DadataSuggestion<DadataAddressSuggestion>;\n branch_count?: number;\n branch_type?: DadataCompanyBranchType;\n fio?: DadataFio;\n inn?: string;\n kpp?: string;\n ogrn?: string;\n ogrn_date?: number;\n hid?: string;\n management?: {\n name: string;\n post: string;\n disqualified: boolean;\n };\n name?: {\n full_with_opf?: string;\n short_with_opf?: string;\n };\n okato?: string;\n oktmo?: string;\n okpo?: string;\n okogu?: string;\n okfs?: string;\n finance?: DadataFinance;\n okved?: string;\n okved_type?: string;\n opf?: DadataPartyOPF;\n state?: DadataState<DadataCompanyStatus>;\n type?: DadataCompanyType;\n employee_count: number;\n okveds?: DadataSecondaryOKVED[];\n authorities?: DadataAuthoritiesSuggestion;\n founders?: DadataFounder[];\n managers?: DadataManager[];\n predecessors?: DadataReorganized[];\n successors?: DadataReorganized[];\n capital?: {\n type: string;\n value: number;\n };\n documents?: DadataPartyDocument[];\n licenses?: DadataPartyLicence[];\n}\n\nexport interface DadataSuggestion<T> {\n data: T;\n value?: string;\n unrestricted_value?: string;\n}\n\nexport interface DadataSuggestionsResponse<T> {\n suggestions: DadataSuggestion<T>[];\n}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {EvoBadgeColor, EvoBadgeSize} from './types';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-badge',\n templateUrl: './evo-badge.component.html',\n styleUrls: ['./evo-badge.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoUiClassDirective],\n})\nexport class EvoBadgeComponent {\n @Input() color: EvoBadgeColor;\n @Input() size: EvoBadgeSize;\n @Input() multiline = false;\n\n // eslint-disable-next-line:no-input-rename\n @Input('width.px') widthPixels: number;\n // eslint-disable-next-line:no-input-rename\n @Input('width.%') widthPercents: number;\n\n get classes(): string[] {\n const classes: string[] = [];\n\n if (this.size) {\n classes.push(this.size);\n }\n\n if (this.color) {\n classes.push(this.color);\n }\n\n if (this.multiline) {\n classes.push('multiline');\n }\n\n return classes;\n }\n}\n","<div class=\"evo-badge\" [evoUiClass]=\"classes\" [style.width.px]=\"widthPixels\" [style.width.%]=\"widthPercents\">\n <div class=\"evo-badge__content\">\n <ng-content />\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoBadgeComponent} from './evo-badge.component';\n\n@NgModule({\n imports: [EvoBadgeComponent],\n exports: [EvoBadgeComponent],\n})\nexport class EvoBadgeModule {}\n","import {EvoButtonTheme, EvoButtonThemeParams} from '../types';\n\nexport const EVO_BUTTON_THEMES_MAP: Map<EvoButtonTheme, EvoButtonThemeParams> = new Map([\n [\n 'rectangle-outline',\n {\n shape: 'rectangle',\n isOutline: true,\n },\n ],\n [\n 'rounded-outline',\n {\n shape: 'rounded',\n isOutline: true,\n },\n ],\n [\n 'rounded-solid',\n {\n shape: 'rounded',\n isOutline: false,\n },\n ],\n [\n 'semi-rectangle-solid',\n {\n shape: 'semi-rectangle',\n isOutline: false,\n },\n ],\n]);\n","import {ChangeDetectionStrategy, Component, ElementRef, Input} from '@angular/core';\nimport {EvoButtonColor, EvoButtonShape, EvoButtonSize, EvoButtonTheme, EvoButtonThemeParams} from '../../types';\nimport {EVO_BUTTON_THEMES_MAP} from '../../constants/evo-button-themes-map';\nimport {EvoCircularLoaderComponent} from '../../../evo-loader/evo-circular-loader.component';\nimport {NgStyle} from '@angular/common';\nimport {EvoUiClassDirective} from '../../../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'button[evoButton], a[evoButton]',\n templateUrl: './evo-button.component.html',\n styleUrls: ['./evo-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoUiClassDirective, NgStyle, EvoCircularLoaderComponent],\n})\nexport class EvoButtonComponent {\n @Input() size: EvoButtonSize = 'normal';\n @Input() color: EvoButtonColor = 'success';\n\n /**\n * `theme` is a complex prop, that sets a number of inner parameters, described in `EvoButtonThemeParams`\n */\n @Input() set theme(value: EvoButtonTheme) {\n const selectedTheme: EvoButtonThemeParams =\n EVO_BUTTON_THEMES_MAP.get(value) ?? EVO_BUTTON_THEMES_MAP.get('rounded-solid');\n this.shape = selectedTheme.shape;\n this._isOutline = selectedTheme.isOutline;\n }\n\n @Input() set disabled(value: boolean) {\n this._isDisabled = value;\n\n if (!this.isLoading) {\n this.elRef.nativeElement.disabled = value;\n }\n }\n\n @Input() set loading(value: boolean) {\n this._isLoading = value;\n\n if (!this._isDisabled) {\n this.elRef.nativeElement.disabled = value;\n }\n }\n\n private shape: EvoButtonShape = 'rounded';\n private _isOutline = false;\n private _isDisabled = false;\n private _isLoading = false;\n\n constructor(private readonly elRef: ElementRef) {}\n\n get isLoading(): boolean {\n return this._isLoading;\n }\n\n get buttonClasses(): string[] {\n const classes: string[] = [];\n\n if (this.color) {\n classes.push(`color_${this.color}`);\n }\n\n if (this.shape) {\n classes.push(`shape_${this.shape}`);\n }\n\n if (this.size) {\n classes.push(`size_${this.size}`);\n }\n\n if (this._isOutline) {\n classes.push(`is-outline`);\n }\n\n if (this._isDisabled) {\n classes.push('is-disabled');\n }\n\n if (this.isLoading) {\n classes.push('is-loading');\n }\n\n return classes;\n }\n\n get buttonStyles(): Record<string, string> {\n const result: Record<string, string> = {};\n\n if (this.isLoading) {\n result['visibility'] = 'hidden';\n }\n\n return result;\n }\n}\n","<div class=\"evo-button\" [evoUiClass]=\"buttonClasses\">\n <span class=\"evo-button__content\" [ngStyle]=\"buttonStyles\">\n <ng-content />\n </span>\n\n @if (isLoading) {\n <evo-circular-loader class=\"evo-button__loader\" />\n }\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoButtonComponent} from './components/evo-button/evo-button.component';\n\n@NgModule({\n imports: [EvoButtonComponent],\n exports: [EvoButtonComponent],\n})\nexport class EvoButtonModule {}\n","import {AfterViewInit, Component, EventEmitter, forwardRef, Input, OnInit, Output} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {EvoControlStates} from '../../common/evo-control-state-manager/evo-control-states.enum';\nimport {EvoIconComponent} from '../evo-icon/evo-icon.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\nexport enum EvoChipType {\n radio = 'radio', // default\n checkbox = 'checkbox',\n label = 'label',\n}\n\nexport enum EvoChipTheme {\n grey = 'grey', // default\n white = 'white',\n custom = 'custom',\n}\n\n@Component({\n selector: 'evo-chip',\n templateUrl: 'evo-chip.component.html',\n styleUrls: ['evo-chip.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoChipComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [EvoUiClassDirective, FormsModule, EvoIconComponent],\n})\nexport class EvoChipComponent extends EvoBaseControl implements ControlValueAccessor, OnInit, AfterViewInit {\n @Input() type: EvoChipType | string;\n @Input() theme: EvoChipTheme | string;\n @Input() counter: number;\n @Input() disabled: boolean;\n @Input() name: string;\n @Input() closable: boolean;\n @Input() closeTitle = '';\n\n // eslint-disable-next-line\n @Input('value') set setInitialValue(value: any) {\n this.inheritedValue = value;\n }\n\n @Output() close = new EventEmitter<Event>();\n\n // eslint-disable-next-line\n inheritedValue: any;\n\n templateVariables = {\n chipTypes: EvoChipType,\n chipThemes: EvoChipTheme,\n };\n\n // eslint-disable-next-line\n private _value: any;\n\n get classes(): string[] {\n const states = {\n touched: this.control?.touched,\n valid: this.currentState[EvoControlStates.valid],\n invalid: this.currentState[EvoControlStates.invalid],\n disabled: this.control?.disabled,\n };\n\n const result = Object.keys(states).filter((key: string) => states[key]);\n\n result.push(`theme-${this.theme || EvoChipTheme.grey}`);\n\n result.push(`type-${this.type}`);\n\n return result;\n }\n\n // eslint-disable-next-line\n get value(): any {\n return this._value;\n }\n\n // eslint-disable-next-line\n set value(value: any) {\n this._value = value;\n this.onChange(value);\n this.onTouched();\n }\n\n ngOnInit(): void {\n this.initDefaultParams();\n }\n\n ngAfterViewInit() {\n if (this.control) {\n this.control.valueChanges.subscribe(() => {\n this.writeValue(this.control.value);\n });\n }\n }\n\n // eslint-disable-next-line\n writeValue(value: any): void {\n this._value = value;\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n onInputChange(value): void {\n this.value = value;\n }\n\n onCloseClick(e: Event): void {\n this.close.emit(e);\n }\n\n private initDefaultParams(): void {\n if (!this.type) {\n this.type = EvoChipType.radio;\n }\n if (!this.theme) {\n this.theme = EvoChipTheme.grey;\n }\n }\n\n private onChange(value): void {}\n\n private onTouched(): void {}\n}\n","<label class=\"chip\" [evoUiClass]=\"classes\">\n @switch (type) {\n @case (templateVariables?.chipTypes.checkbox) {\n <input\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n [value]=\"inheritedValue\"\n [name]=\"name\"\n (ngModelChange)=\"onInputChange($event)\"\n />\n }\n @case (templateVariables?.chipTypes.radio) {\n <input\n type=\"radio\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n [value]=\"inheritedValue\"\n [name]=\"name\"\n (ngModelChange)=\"onInputChange($event)\"\n />\n }\n }\n\n <div class=\"chip__label\" [evoUiClass]=\"{disabled: disabled}\">\n <span class=\"chip__text\">\n <ng-content />\n </span>\n\n @if ((type !== templateVariables?.chipTypes.label || !closable) && counter !== undefined) {\n <div class=\"chip__counter\">\n <span class=\"chip__counter-value\">\n {{ counter }}\n </span>\n </div>\n }\n\n @if (closable) {\n <button\n type=\"button\"\n class=\"chip__close\"\n [disabled]=\"disabled\"\n [title]=\"closeTitle\"\n (click)=\"onCloseClick($event)\"\n >\n <evo-icon shape=\"decline\" />\n </button>\n }\n </div>\n</label>\n","import {NgModule} from '@angular/core';\nimport {EvoChipComponent} from './evo-chip.component';\n\n@NgModule({\n imports: [EvoChipComponent],\n exports: [EvoChipComponent],\n})\nexport class EvoChipModule {}\n","import {Component, Input, TemplateRef} from '@angular/core';\nimport {NgTemplateOutlet} from '@angular/common';\n\n@Component({\n selector: 'evo-control-label',\n templateUrl: './evo-control-label.component.html',\n styleUrls: ['./evo-control-label.component.scss'],\n standalone: true,\n imports: [NgTemplateOutlet],\n})\nexport class EvoControlLabelComponent {\n // eslint-disable-next-line\n @Input() label: string | TemplateRef<any>;\n @Input() context: object | null;\n\n get isStringLabel(): boolean {\n return typeof this.label === 'string';\n }\n}\n","<div class=\"evo-control-label\">\n <label class=\"evo-control-label__text\">\n @if (isStringLabel) {\n {{ label || ' ' }}\n } @else {\n <ng-container [ngTemplateOutlet]=\"label\" [ngTemplateOutletContext]=\"context\" />\n }\n </label>\n <div class=\"evo-control-label__content\">\n <ng-content />\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoControlLabelComponent} from './evo-control-label.component';\n\n@NgModule({\n imports: [EvoControlLabelComponent],\n exports: [EvoControlLabelComponent],\n})\nexport class EvoControlLabelModule {}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\nexport enum EvoCounterSize {\n small = 'small',\n normal = 'normal',\n}\n\n@Component({\n selector: 'evo-counter',\n templateUrl: './evo-counter.component.html',\n styleUrls: ['./evo-counter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoUiClassDirective],\n})\nexport class EvoCounterComponent {\n @Input() value: number;\n @Input() disabled: boolean;\n\n size: EvoCounterSize = EvoCounterSize.normal;\n\n @Input('size') set setSize(size: EvoCounterSize | string) {\n if (EvoCounterSize[size]) {\n this.size = EvoCounterSize[size];\n }\n }\n\n get blockClasses(): {[cssClass: string]: boolean} {\n return {\n disabled: this.disabled,\n [`size-${this.size}`]: this.size !== EvoCounterSize.normal,\n };\n }\n}\n","<div class=\"evo-counter\" [evoUiClass]=\"blockClasses\">\n <span class=\"evo-counter__value\">{{value}}</span>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoCounterComponent} from './evo-counter.component';\n\n@NgModule({\n imports: [EvoCounterComponent],\n exports: [EvoCounterComponent],\n})\nexport class EvoCounterModule {}\n","export const cssClasses = {\n DESCRIPTION: 'evo-datepicker__description',\n INPUT: 'evo-datepicker__input',\n TIME_PICKER: 'evo-datepicker__time-picker',\n TIME_LABEL: 'evo-datepicker__time-label',\n TIME_LABEL_FROM: 'evo-datepicker__time-label_from',\n TIME_LABEL_UNTIL: 'evo-datepicker__time-label_until',\n SELECTORS: 'evo-datepicker__selectors',\n SELECT: 'evo-datepicker__select',\n SELECTOR_HOUR: 'evo-datepicker__select_hour',\n SELECTOR_MINUTE: 'evo-datepicker__select_minute',\n SELECT_WRAPPER: 'evo-datepicker__select-wrapper',\n APPLY: 'evo-datepicker__apply',\n SELECT_FIELD: 'evo-datepicker__select-field'\n};\n\n export const renderRangeTime = (classes) => {\n const template = `\n <div class=\"${classes.TIME_PICKER}\">\n <label class=\"${classes.TIME_LABEL} ${classes.TIME_LABEL_FROM}\"></label>\n <div class=\"${classes.SELECTORS}\">\n <label class=\"${classes.SELECT_WRAPPER}\">\n <div class=\"${classes.SELECT_FIELD}\">00</div>\n <select value class=\"${classes.SELECT} ${classes.SELECTOR_HOUR}\">\n <option selected>00</option>\n <option>01</option>\n <option>02</option>\n <option>03</option>\n <option>04</option>\n <option>05</option>\n <option>06</option>\n <option>07</option>\n <option>08</option>\n <option>09</option>\n <option>10</option>\n <option>11</option>\n <option>12</option>\n <option>13</option>\n <option>14</option>\n <option>15</option>\n <option>16</option>\n <option>17</option>\n <option>18</option>\n <option>19</option>\n <option>20</option>\n <option>21</option>\n <option>22</option>\n <option>23</option>\n </select>\n </label>\n <span>:</span>\n <label class=\"${classes.SELECT_WRAPPER}\">\n <div class=\"${classes.SELECT_FIELD}\">00</div>\n <select class=\"${classes.SELECT} ${classes.SELECTOR_MINUTE}\">\n <option selected>00</option>\n <option>15</option>\n <option>30</option>\n <option>45</option>\n </select>\n </label>\n </div>\n </div>\n\n <div class=\"${classes.TIME_PICKER}\">\n <label class=\"${classes.TIME_LABEL} ${classes.TIME_LABEL_UNTIL}\"></label>\n\n <div class=\"${classes.SELECTORS}\">\n <label class=\"${classes.SELECT_WRAPPER}\">\n <div class=\"${classes.SELECT_FIELD}\">23</div>\n <select value class=\"${classes.SELECT} ${classes.SELECTOR_HOUR}\">\n <option>00</option>\n <option>01</option>\n <option>02</option>\n <option>03</option>\n <option>04</option>\n <option>05</option>\n <option>06</option>\n <option>07</option>\n <option>08</option>\n <option>09</option>\n <option>10</option>\n <option>11</option>\n <option>12</option>\n <option>13</option>\n <option>14</option>\n <option>15</option>\n <option>16</option>\n <option>17</option>\n <option>18</option>\n <option>19</option>\n <option>20</option>\n <option>21</option>\n <option>22</option>\n <option selected>23</option>\n </select>\n </label>\n <span>:</span>\n <label class=\"${classes.SELECT_WRAPPER}\">\n <div class=\"${classes.SELECT_FIELD}\">59</div>\n <select class=\"${classes.SELECT} ${classes.SELECTOR_MINUTE}\">\n <option selected>00</option>\n <option>15</option>\n <option>30</option>\n <option>45</option>\n <option selected>59</option>\n </select>\n </label>\n </div>\n </div>\n\n <button class=\"${classes.APPLY}\"> Применить </button>\n `;\n return template;\n};\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Injector,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {FlatpickrOptions} from './flatpickr-options.interface';\nimport {cloneDeep, isEqual} from 'lodash-es';\nimport {cssClasses, renderRangeTime} from './templates';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {EvoControlStates} from '../../common/evo-control-state-manager/evo-control-states.enum';\nimport flatpickr from 'flatpickr';\nimport {EvoControlErrorComponent} from '../evo-control-error/evo-control-error.component';\nimport {IMaskDirective} from 'angular-imask';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\nexport * from './flatpickr-options.interface';\n\nenum DatepickerModes {\n RANGE = 'range',\n}\n\ninterface Option {\n disabled: boolean;\n value: string;\n}\n\ntype SelectedDates = string[] | Date[];\n\n@Component({\n selector: 'evo-datepicker',\n templateUrl: './evo-datepicker.component.html',\n styleUrls: ['./evo-datepicker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoDatepickerComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [EvoUiClassDirective, IMaskDirective, EvoControlErrorComponent],\n})\nexport class EvoDatepickerComponent\n extends EvoBaseControl\n implements AfterViewInit, ControlValueAccessor, OnChanges, OnInit, OnDestroy\n{\n @ViewChild('flatpickr', {static: true})\n flatpickrElement: ElementRef;\n\n @Input()\n config: FlatpickrOptions;\n\n @Input()\n maskedInput: boolean;\n\n @Input() theme?: string;\n\n @Input() folded = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n setDate: SelectedDates;\n\n @Input()\n description: string;\n\n @Input()\n maxRangeDays: number;\n\n @Input()\n appendToBody = true;\n\n @Output()\n closePicker = new EventEmitter<[Date, Date]>();\n\n disabled = false;\n\n uiState = {\n isOpen: false,\n isEmptyField: false,\n };\n\n // eslint-disable-next-line\n elements: any = {};\n\n // eslint-disable-next-line\n maskConfig: {mask: any; pattern?: string; max?: Date};\n\n // eslint-disable-next-line\n private flatpickr: any;\n\n constructor(\n private readonly zone: NgZone,\n private readonly elementRef: ElementRef,\n protected injector: Injector,\n ) {\n super(injector);\n }\n\n onChange = (value) => {};\n onTouched = () => {};\n\n writeValue(value: SelectedDates) {\n this.updatePickerIfNeed(value);\n this.propagateChange(value);\n this.onChange(value);\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any) {\n this.onChange = fn;\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // eslint-disable-next-line\n propagateChange = (_: any) => {};\n\n handleMaskComplete(value) {\n if (this.maskedInput) {\n const date = this.flatpickrElement.nativeElement._flatpickr.parseDate(value, this.config.dateFormat);\n this.setDateFromInput(date);\n }\n }\n\n setDateFromInput(date: SelectedDates) {\n this.flatpickrElement.nativeElement._flatpickr.setDate(date, true);\n }\n\n ngAfterViewInit() {\n const config = this.getConfig();\n\n this.zone.runOutsideAngular(() => {\n this.flatpickr = flatpickr(this.flatpickrElement.nativeElement, config);\n });\n\n if (this.setDate) {\n this.setDateFromInput(this.setDate);\n }\n this.customizePicker();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.hasOwnProperty('setDate') && changes['setDate'].currentValue) {\n this.setDateFromInput(changes['setDate'].currentValue);\n }\n }\n\n ngOnInit() {\n this.initMask();\n }\n\n ngOnDestroy() {\n this.flatpickr = null;\n this.flatpickrElement.nativeElement._flatpickr.destroy();\n }\n\n get inputClass(): {[cssClass: string]: boolean} {\n return {\n disabled: this.disabled,\n hidden: !this.isValueExist(),\n valid: this.currentState[EvoControlStates.valid],\n invalid: this.currentState[EvoControlStates.invalid],\n };\n }\n\n get totalClasses(): string[] {\n const classes: string[] = [];\n\n if (this.theme) {\n classes.push(this.theme);\n }\n\n if (this.uiState.isOpen) {\n classes.push('opened');\n }\n\n if (this.folded) {\n classes.push('folded');\n }\n\n return classes;\n }\n\n initMask() {\n if (this.config.allowInput && this.maskedInput) {\n this.maskConfig = {\n pattern: this.config.dateFormat,\n max: this.config.maxDate as Date,\n mask: Date,\n };\n }\n }\n\n onDatepickerClick(event: MouseEvent) {\n if (\n (this.config.allowInput && (event.target as HTMLElement).classList.contains(cssClasses.INPUT)) ||\n this.disabled\n ) {\n return;\n }\n\n this.toggleDatepicker();\n }\n\n toggleDatepicker(): void {\n this.flatpickr.toggle();\n }\n\n setDisabledState(state: boolean) {\n this.disabled = state;\n }\n\n isValueExist(): boolean {\n if (!this.flatpickr) {\n const defaultDate = this.config.defaultDate;\n\n return Array.isArray(defaultDate) ? (this.config.defaultDate as Date[]).length > 0 : !!defaultDate;\n } else {\n return this.flatpickr.selectedDates.length > 0;\n }\n }\n\n isRange(): boolean {\n return this.config.mode === DatepickerModes.RANGE;\n }\n\n shouldShowEmptyText(): boolean {\n return !this.isValueExist() && !this.config.altInput;\n }\n\n getDefaultFlatpickrOptions(): FlatpickrOptions {\n return {\n wrap: true,\n clickOpens: false,\n onChange: (selectedDates: Date[]) => {\n this.setEmptyFieldState(false);\n this.setRangeConstraints(selectedDates);\n this.setTimeConstraints(selectedDates);\n this.updateLabelValues(selectedDates);\n\n this.writeValue(selectedDates);\n },\n onClose: (selectedDates: [Date, Date]) => {\n this.handleSingleSelectedValueInRange(selectedDates);\n this.setEmptyFieldStateIfNeed();\n this.resetConstraints();\n this.setOpenedState(false);\n this.closePicker.emit(selectedDates);\n },\n onOpen: () => {\n this.setOpenedState(true);\n this.resetTimeAfterOpen();\n this.updateLabelValues(this.flatpickr.selectedDates);\n this.onTouched();\n },\n ...(!this.appendToBody && {appendTo: this.elementRef.nativeElement}),\n };\n }\n\n getConfig() {\n return {\n ...this.getDefaultFlatpickrOptions(),\n ...(this.config || {}),\n };\n }\n\n /**\n * Customization of the flatpickr's view to ui-kit state\n */\n private customizePicker(): void {\n this.changeNextIcon();\n this.addDescriptionIfNeed();\n this.addTimeSelectors();\n }\n\n /**\n * Sets new state of the picker openness\n * @param state new state\n */\n private setOpenedState(state: boolean): void {\n this.uiState.isOpen = state;\n }\n\n private setEmptyFieldState(state: boolean): void {\n this.uiState.isEmptyField = state;\n }\n\n private addTimeSelectors() {\n if (this.isRangeWithTime()) {\n const timeWrapper = document.createElement('div');\n timeWrapper.innerHTML = renderRangeTime(cssClasses);\n this.saveTimeRangeElements(timeWrapper);\n this.addListenersOnTimeSelectors();\n this.elements.apply.onclick = this.onApply.bind(this);\n\n this.flatpickr.rContainer.appendChild(timeWrapper);\n }\n }\n\n private saveTimeRangeElements(timeWrapper: HTMLElement) {\n this.elements = {\n apply: timeWrapper.getElementsByClassName(cssClasses.APPLY)[0],\n from: {\n hour: timeWrapper.getElementsByClassName(cssClasses.SELECTOR_HOUR)[0],\n minute: timeWrapper.getElementsByClassName(cssClasses.SELECTOR_MINUTE)[0],\n label: timeWrapper.getElementsByClassName(cssClasses.TIME_LABEL_FROM)[0],\n },\n until: {\n hour: timeWrapper.getElementsByClassName(cssClasses.SELECTOR_HOUR)[1],\n minute: timeWrapper.getElementsByClassName(cssClasses.SELECTOR_MINUTE)[1],\n label: timeWrapper.getElementsByClassName(cssClasses.TIME_LABEL_UNTIL)[0],\n },\n };\n\n this.elements.from.hourField = this.elements.from.hour.previousElementSibling;\n this.elements.from.minuteField = this.elements.from.minute.previousElementSibling;\n\n this.elements.until.hourField = this.elements.until.hour.previousElementSibling;\n this.elements.until.minuteField = this.elements.until.minute.previousElementSibling;\n }\n\n private onApply() {\n this.setTime();\n this.flatpickr.close();\n }\n\n private setTime() {\n const {fromHour, fromMinute} = this.getSelectedFrom();\n const {untilHour, untilMinute} = this.getSelectedUntil();\n\n const selectedDates = cloneDeep(this.flatpickr.selectedDates);\n\n selectedDates[0].setHours(fromHour, fromMinute);\n\n if (selectedDates[1]) {\n selectedDates[1].setHours(untilHour, untilMinute);\n }\n\n this.setDateFromInput(selectedDates);\n }\n\n private updateLabelValues(selectedDates: Date[]) {\n if (!selectedDates || !selectedDates[0] || !selectedDates[1]) {\n return;\n }\n if (this.isRangeWithTime()) {\n this.elements.from.label.innerText = `Период с ${this.flatpickr.formatDate(selectedDates[0], 'D d.m.Y')}`;\n\n if (selectedDates[1]) {\n this.elements.until.label.innerText = `по ${this.flatpickr.formatDate(selectedDates[1], 'D d.m.Y')}`;\n }\n }\n }\n\n private setTimeConstraints(selectedDates: Date[]) {\n if (this.isRangeWithTime()) {\n if (this.isSameDate(selectedDates[0], selectedDates[1])) {\n this.resetTimeIfNeed();\n this.setUntilTimeConstraint(selectedDates);\n } else {\n this.resetAllConstraints();\n }\n }\n }\n\n private resetAllConstraints() {\n Array.from(this.elements.from.hour.options).forEach((option: Option) => {\n option.disabled = false;\n });\n\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n\n Array.from(this.elements.until.hour.options).forEach((option: Option) => {\n option.disabled = false;\n });\n\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n }\n\n private addListenersOnTimeSelectors() {\n this.elements.from.hour.onchange = this.onChangeTimeFrom.bind(this);\n this.elements.from.minute.onchange = this.onChangeTimeFrom.bind(this);\n\n this.elements.until.hour.onchange = this.onChangeTimeUntil.bind(this);\n this.elements.until.minute.onchange = this.onChangeTimeUntil.bind(this);\n }\n\n private onChangeTimeFrom(event: Event) {\n if (this.isSameDate(this.flatpickr.selectedDates[0], this.flatpickr.selectedDates[1])) {\n this.disableTimeUntilSelectors();\n }\n this.updateTimeFieldsContent();\n }\n\n private handleSingleSelectedValueInRange(selectedDates: [Date, Date]) {\n if (this.isRange() && !selectedDates[1]) {\n const untilDate = new Date(selectedDates[0]);\n untilDate.setHours(23, 59, 0, 0);\n\n const updatedDates = [selectedDates[0], untilDate];\n this.writeValue(updatedDates);\n }\n }\n\n private onChangeTimeUntil(event: Event) {\n if (this.isSameDate(this.flatpickr.selectedDates[0], this.flatpickr.selectedDates[1])) {\n this.disableTimeFromSelectors();\n }\n this.updateTimeFieldsContent();\n }\n\n private updateTimeFieldsContent() {\n const {fromHour, fromMinute, untilHour, untilMinute} = this.getSelectorVaulesAsString();\n\n this.elements.from.hourField.innerText = fromHour;\n this.elements.from.minuteField.innerText = fromMinute;\n\n this.elements.until.hourField.innerText = untilHour;\n this.elements.until.minuteField.innerText = untilMinute;\n }\n\n private disableTimeUntilSelectors() {\n const {fromHour, fromMinute} = this.getSelectedFrom();\n const {untilHour, untilMinute} = this.getSelectedUntil();\n\n Array.from(this.elements.until.hour.options).forEach((option: Option) => {\n option.disabled = Number(option.value) < fromHour;\n });\n\n if (fromHour === untilHour) {\n if (fromMinute > untilMinute) {\n this.elements.until.minute.selectedIndex = 4;\n\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n }\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = Number(option.value) < fromMinute;\n });\n } else {\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n }\n }\n\n private disableTimeFromSelectors() {\n const {fromHour, fromMinute} = this.getSelectedFrom();\n const {untilHour, untilMinute} = this.getSelectedUntil();\n\n Array.from(this.elements.from.hour.options).forEach((option: Option) => {\n option.disabled = Number(option.value) > untilHour;\n });\n\n if (fromHour === untilHour) {\n if (fromMinute > untilMinute) {\n this.elements.until.minute.selectedIndex = 4;\n }\n const {untilMinute: untilMinuteAfterUpdate} = this.getSelectedUntil();\n\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = Number(option.value) > untilMinuteAfterUpdate;\n });\n\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = Number(option.value) < fromMinute;\n });\n } else {\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n }\n }\n\n private setUntilTimeConstraint(selectedDates: Date[]) {\n this.disableTimeUntilSelectors();\n }\n\n private resetTimeIfNeed() {\n const {fromHour, fromMinute} = this.getSelectedFrom();\n const {untilHour, untilMinute} = this.getSelectedUntil();\n\n if (fromHour > untilHour || (fromHour === untilHour && fromMinute > untilMinute)) {\n this.resetTime();\n }\n }\n\n private resetTime() {\n this.elements.from.hour.selectedIndex = 0;\n this.elements.from.minute.selectedIndex = 0;\n\n this.elements.until.hour.selectedIndex = 23;\n this.elements.until.minute.selectedIndex = 4;\n\n this.updateTimeFieldsContent();\n }\n\n private getSelectorVaulesAsString(): {\n fromHour: string;\n fromMinute: string;\n untilHour: string;\n untilMinute: string;\n } {\n return {\n fromHour: this.elements.from.hour.options[this.elements.from.hour.selectedIndex].value,\n fromMinute: this.elements.from.minute.options[this.elements.from.minute.selectedIndex].value,\n untilHour: this.elements.until.hour.options[this.elements.until.hour.selectedIndex].value,\n untilMinute: this.elements.until.minute.options[this.elements.until.minute.selectedIndex].value,\n };\n }\n\n private getSelectedFrom(): {fromHour: number; fromMinute: number} {\n return {\n fromHour: Number(this.elements.from.hour.options[this.elements.from.hour.selectedIndex].value),\n fromMinute: Number(this.elements.from.minute.options[this.elements.from.minute.selectedIndex].value),\n };\n }\n\n private getSelectedUntil(): {untilHour: number; untilMinute: number} {\n return {\n untilHour: Number(this.elements.until.hour.options[this.elements.until.hour.selectedIndex].value),\n untilMinute: Number(this.elements.until.minute.options[this.elements.until.minute.selectedIndex].value),\n };\n }\n\n private setRangeConstraints(selectedDates: Date[]) {\n if (this.isRange() && this.maxRangeDays) {\n if (selectedDates.length === 1) {\n const minDate = new Date(selectedDates[0]);\n const maxDate = new Date(selectedDates[0]);\n\n minDate.setDate(minDate.getDate() - this.maxRangeDays);\n maxDate.setDate(maxDate.getDate() + this.maxRangeDays);\n\n this.flatpickr.config.minDate = minDate;\n this.flatpickr.config.maxDate = maxDate;\n } else {\n this.resetConstraints();\n }\n }\n }\n\n private resetConstraints() {\n this.flatpickr.config.minDate = this.config.minDate;\n this.flatpickr.config.maxDate = this.config.maxDate;\n }\n\n private isRangeWithTime(): boolean {\n return this.isRange() && this.config.enableTime;\n }\n\n private setEmptyFieldStateIfNeed(): void {\n if (this.isRange() && this.flatpickr.selectedDates.length !== 2) {\n this.setEmptyFieldState(true);\n }\n }\n\n private updatePickerIfNeed(value: SelectedDates): void {\n if (this.flatpickr) {\n const selectedDates = this.getSelectedDatesWithDatePickerFormat(this.flatpickr.selectedDates);\n const values = this.getSelectedDatesWithDatePickerFormat(value);\n\n if (!isEqual(values, selectedDates)) {\n this.setDateFromInput(value);\n }\n }\n }\n\n private getSelectedDatesWithDatePickerFormat(dateRange: SelectedDates): string[] {\n if (dateRange && dateRange.length && typeof dateRange[0] !== 'string') {\n return (dateRange as Date[]).map((date) => this.toDatePickerFormat(date));\n }\n\n return dateRange as string[];\n }\n\n private toDatePickerFormat(date?: Date): string {\n if (!date) {\n return '';\n }\n\n return `${date.getDate()}.${date.getMonth() + 1}.${date.getFullYear()}`;\n }\n\n /**\n * Substitution of icons\n */\n private changeNextIcon(): void {\n const Icons = {\n PREV: `\n <svg height=\"16\" viewBox=\"0 0 6 16\" width=\"6\" xmlns=\"http://www.w3.org/2000/svg\">\n <path _ngcontent-c0=\"\" d=\"M6 0L0 8L6 16V0Z\" fill=\"white\" transform=\"translate(6 16) rotate(180)\"></path>\n </svg>`,\n NEXT: `\n <svg height=\"16\" viewBox=\"0 0 6 16\" width=\"6\" xmlns=\"http://www.w3.org/2000/svg\">\n <path _ngcontent-c0=\"\" d=\"M6 0L0 8L6 16V0Z\" fill=\"white\"></path>\n </svg>`,\n };\n\n this.flatpickr.nextMonthNav.innerHTML = Icons.PREV;\n this.flatpickr.prevMonthNav.innerHTML = Icons.NEXT;\n }\n\n private addDescriptionIfNeed() {\n if (this.description) {\n const descriptionElement = document.createElement('p');\n descriptionElement.className = cssClasses.DESCRIPTION;\n descriptionElement.innerHTML = this.description;\n\n this.flatpickr.rContainer.appendChild(descriptionElement);\n }\n }\n\n private isSameDate(firstDate: Date, secondDate: Date): boolean {\n return (\n firstDate &&\n secondDate &&\n firstDate.getDate() === secondDate.getDate() &&\n firstDate.getMonth() === secondDate.getMonth() &&\n firstDate.getFullYear() === secondDate.getFullYear()\n );\n }\n\n private getSelectedIndexByMinutes(minutes: number): number {\n return (Math.round(minutes / 5) * 5) / 15;\n }\n\n private resetTimeAfterOpen() {\n if (this.isRangeWithTime()) {\n const selectedDates = this.flatpickr.selectedDates;\n if (selectedDates[0] && selectedDates[1]) {\n this.elements.from.hour.selectedIndex = selectedDates[0].getHours();\n this.elements.from.minute.selectedIndex = this.getSelectedIndexByMinutes(selectedDates[0].getMinutes());\n\n this.elements.until.hour.selectedIndex = selectedDates[1].getHours();\n this.elements.until.minute.selectedIndex = this.getSelectedIndexByMinutes(\n selectedDates[1].getMinutes(),\n );\n this.addConstraintsAfterOpen(selectedDates);\n this.updateTimeFieldsContent();\n }\n }\n }\n\n private addConstraintsAfterOpen(selectedDates: [Date, Date]) {\n if (this.isSameDate(selectedDates[0], selectedDates[1])) {\n const {fromHour, fromMinute} = this.getSelectedFrom();\n const {untilHour, untilMinute} = this.getSelectedUntil();\n\n Array.from(this.elements.from.hour.options).forEach((option: Option) => {\n option.disabled = Number(option.value) > untilHour;\n });\n\n Array.from(this.elements.until.hour.options).forEach((option: Option) => {\n option.disabled = Number(option.value) < fromHour;\n });\n\n if (fromHour === untilHour) {\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = Number(option.value) > untilMinute;\n });\n\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = Number(option.value) < fromMinute;\n });\n } else {\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n }\n }\n }\n}\n","<div #flatpickr class=\"evo-datepicker\" [evoUiClass]=\"totalClasses\" (click)=\"onDatepickerClick($event)\">\n <input\n #input\n type=\"text\"\n data-input\n class=\"evo-datepicker__input\"\n [evoUiClass]=\"inputClass\"\n [imask]=\"maskConfig\"\n [placeholder]=\"placeholder\"\n [readonly]=\"disabled\"\n (complete)=\"handleMaskComplete($event)\"\n />\n\n @if (isRange() && input.value) {\n <span class=\"evo-datepicker__value\">{{ input.value }}</span>\n }\n\n @if (shouldShowEmptyText()) {\n <span class=\"evo-datepicker__empty-text\">{{ isRange() ? 'За период' : 'Дата' }}</span>\n }\n\n @if (!disabled) {\n <span class=\"evo-datepicker__opener\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M20 3H19V2C19 1.45 18.55 1 18 1C17.45 1 17 1.45 17 2V3H7V2C7 1.45 6.55 1 6 1C5.45 1 5 1.45 5 2V3H4C2.9 3 2 3.9 2 5V21C2 22.1 2.9 23 4 23H20C21.1 23 22 22.1 22 21V5C22 3.9 21.1 3 20 3ZM19 21H5C4.45 21 4 20.55 4 20V8H20V20C20 20.55 19.55 21 19 21Z\"\n />\n </svg>\n </span>\n }\n\n @if (!uiState.isEmptyField) {\n <span class=\"evo-datepicker__opener-triangle\"></span>\n }\n</div>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n","import {NgModule} from '@angular/core';\nimport {EvoDatepickerComponent} from './evo-datepicker.component';\n\n@NgModule({\n imports: [EvoDatepickerComponent],\n exports: [EvoDatepickerComponent],\n})\nexport class EvoDatepickerModule {}\n","import {ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\nimport {EvoIconButtonColor, EvoIconButtonSize} from './types';\nimport {NgClass} from '@angular/common';\nimport {EvoCircularLoaderComponent} from '../evo-loader';\n\nconst wrapperSelector = 'evo-icon-button';\n\n@Component({\n // eslint-disable-next-line:component-selector\n selector: 'button[evo-icon-button], a[evo-icon-button]',\n templateUrl: './evo-icon-button.component.html',\n styleUrls: ['./evo-icon-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass, EvoCircularLoaderComponent],\n})\nexport class EvoIconButtonComponent implements OnInit, OnChanges {\n @Input() disabled: boolean;\n @Input() loading: boolean;\n @Input() color: EvoIconButtonColor = 'link';\n @Input() size: EvoIconButtonSize;\n @Input() notificationDot = false;\n\n classes: string[] = [];\n\n @HostBinding('disabled') get isDisabled(): boolean {\n return this.disabled || this.loading;\n }\n\n ngOnInit(): void {\n this.updateClassesList();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.color !== undefined || changes.theme !== undefined || changes.notificationDot) {\n this.updateClassesList();\n }\n }\n\n private updateClassesList(): void {\n this.classes = [];\n // TODO in new version UI-kit rename classes modifier name (like size_normal)\n if (this.size) {\n this.classes.push(`${wrapperSelector}_size-${this.size}`);\n }\n\n if (this.color) {\n this.classes.push(`${wrapperSelector}_color-${this.color}`);\n }\n if (this.notificationDot) {\n this.classes.push(`${wrapperSelector}_notification-dot`);\n }\n }\n}\n","<div [ngClass]=\"classes\" class=\"evo-icon-button\">\n @if (!loading) {\n <div class=\"evo-icon-button__icon-wrapper\">\n <ng-content select=\"evo-icon\" />\n </div>\n } @else {\n <evo-circular-loader class=\"evo-icon-button__loader\" />\n }\n\n <span class=\"evo-icon-button__label\"><ng-content /></span>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoIconButtonComponent} from './evo-icon-button.component';\n\n@NgModule({\n imports: [EvoIconButtonComponent],\n exports: [EvoIconButtonComponent],\n})\nexport class EvoIconButtonModule {}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\n\n@Component({\n selector: 'evo-icon-number',\n templateUrl: './evo-icon-number.component.html',\n styleUrls: ['./evo-icon-number.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class EvoIconNumberComponent {\n @Input() number: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';\n}\n","<svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"evo-icon-number\">\n <circle cx=\"28\" cy=\"28\" r=\"18\" class=\"evo-icon-number__shadow\" />\n <circle cx=\"24\" cy=\"24\" r=\"18\" class=\"evo-icon-number__background\" />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M24 7C21.5785 7 19.2778 7.50567 17.1955 8.41623C16.6895 8.63751 16.0999 8.40668 15.8786 7.90066C15.6574 7.39464 15.8882 6.80505 16.3942 6.58377C18.7244 5.56481 21.2976 5 24 5C34.4934 5 43 13.5066 43 24C43 34.4934 34.4934 43 24 43C13.5066 43 5 34.4934 5 24C5 20.7567 5.81344 17.7005 7.24826 15.0271C7.50943 14.5405 8.11565 14.3577 8.60228 14.6189C9.0889 14.8801 9.27167 15.4863 9.01049 15.9729C7.72792 18.3626 7 21.0948 7 24C7 33.3888 14.6112 41 24 41C33.3888 41 41 33.3888 41 24C41 14.6112 33.3888 7 24 7Z\"\n class=\"evo-icon-number__border\"\n />\n <!-- prettier-ignore -->\n @switch (+number) {\n @case (1) {\n <path d=\"M24.5729 33C24.2529 33 23.9729 32.88 23.7329 32.64C23.4929 32.4 23.3729 32.112 23.3729 31.776V17.136L21.6209 17.88C21.3489 17.992 21.0929 18.048 20.8529 18.048C20.5009 18.048 20.2049 17.936 19.9649 17.712C19.7409 17.488 19.6289 17.2 19.6289 16.848C19.6289 16.592 19.6929 16.36 19.8209 16.152C19.9489 15.944 20.1489 15.792 20.4209 15.696L24.1649 14.352C24.2449 14.32 24.3249 14.296 24.4049 14.28C24.4849 14.264 24.5569 14.256 24.6209 14.256C24.9889 14.256 25.2769 14.376 25.4849 14.616C25.7089 14.84 25.8209 15.136 25.8209 15.504V31.776C25.8209 32.112 25.7009 32.4 25.4609 32.64C25.2209 32.88 24.9249 33 24.5729 33Z\" class=\"evo-icon-number__number\" />\n }\n @case (2) {\n <path d=\"M19.7294 33C19.3774 33 19.0814 32.88 18.8414 32.64C18.6174 32.4 18.5054 32.112 18.5054 31.776C18.5054 31.424 18.6174 31.136 18.8414 30.912L25.6574 22.944C26.1374 22.384 26.5054 21.856 26.7614 21.36C27.0334 20.864 27.1694 20.392 27.1694 19.944C27.1694 18.904 26.8974 18.072 26.3534 17.448C25.8254 16.824 25.0974 16.512 24.1694 16.512C23.5614 16.512 23.0094 16.672 22.5134 16.992C22.0334 17.296 21.6494 17.712 21.3614 18.24C21.0894 18.752 20.9534 19.32 20.9534 19.944C20.9534 20.264 20.8334 20.544 20.5934 20.784C20.3694 21.024 20.0814 21.144 19.7294 21.144C19.3934 21.144 19.1054 21.024 18.8654 20.784C18.6254 20.544 18.5054 20.264 18.5054 19.944C18.5054 18.856 18.7534 17.888 19.2494 17.04C19.7454 16.176 20.4174 15.496 21.2654 15C22.1294 14.504 23.0974 14.256 24.1694 14.256C25.2574 14.256 26.2014 14.488 27.0014 14.952C27.8014 15.416 28.4174 16.072 28.8494 16.92C29.2974 17.768 29.5214 18.776 29.5214 19.944C29.5214 20.456 29.4094 20.976 29.1854 21.504C28.9774 22.032 28.7054 22.536 28.3694 23.016C28.0494 23.496 27.7214 23.928 27.3854 24.312L21.8894 30.552H28.6094C28.9614 30.552 29.2574 30.68 29.4974 30.936C29.7374 31.176 29.8574 31.456 29.8574 31.776C29.8574 32.112 29.7374 32.4 29.4974 32.64C29.2574 32.88 28.9614 33 28.6094 33H19.7294Z\" class=\"evo-icon-number__number\" />\n }\n @case (3) {\n <path d=\"M24.3042 33C23.1042 33 22.0402 32.752 21.1122 32.256C20.1842 31.744 19.4562 31.056 18.9282 30.192C18.4002 29.312 18.1362 28.328 18.1362 27.24C18.1362 26.872 18.2402 26.576 18.4482 26.352C18.6722 26.112 18.9362 25.992 19.2402 25.992C19.5602 25.992 19.8242 26.112 20.0322 26.352C20.2402 26.576 20.3442 26.872 20.3442 27.24C20.3442 27.896 20.5122 28.504 20.8482 29.064C21.1842 29.608 21.6402 30.048 22.2162 30.384C22.7922 30.704 23.4402 30.864 24.1602 30.864C25.2162 30.864 26.0642 30.576 26.7042 30C27.3602 29.408 27.6882 28.584 27.6882 27.528C27.6882 26.856 27.5442 26.256 27.2562 25.728C26.9682 25.184 26.5762 24.752 26.0802 24.432C25.5842 24.112 25.0242 23.952 24.4002 23.952C24.0482 23.952 23.7522 23.832 23.5122 23.592C23.2882 23.352 23.1762 23.056 23.1762 22.704C23.1762 22.352 23.2882 22.064 23.5122 21.84C23.7522 21.6 24.0482 21.48 24.4002 21.48C24.8482 21.48 25.2802 21.368 25.6962 21.144C26.1122 20.904 26.4562 20.592 26.7282 20.208C27.0002 19.808 27.1362 19.36 27.1362 18.864C27.1362 18.16 26.8802 17.568 26.3682 17.088C25.8562 16.608 25.2002 16.368 24.4002 16.368C23.7922 16.368 23.2322 16.488 22.7202 16.728C22.2242 16.968 21.8242 17.288 21.5202 17.688C21.2322 18.088 21.0882 18.536 21.0882 19.032C21.0882 19.4 20.9842 19.712 20.7762 19.968C20.5682 20.208 20.3042 20.328 19.9842 20.328C19.6802 20.328 19.4162 20.216 19.1922 19.992C18.9842 19.752 18.8802 19.456 18.8802 19.104C18.8802 18.176 19.1202 17.344 19.6002 16.608C20.0802 15.872 20.7362 15.296 21.5682 14.88C22.4002 14.448 23.3282 14.232 24.3522 14.232C25.2962 14.232 26.1442 14.44 26.8962 14.856C27.6642 15.256 28.2642 15.808 28.6962 16.512C29.1442 17.2 29.3682 17.984 29.3682 18.864C29.3682 19.488 29.2242 20.04 28.9362 20.52C28.6642 21 28.3122 21.416 27.8802 21.768C27.4482 22.104 26.9922 22.384 26.5122 22.608C27.7762 23.04 28.6882 23.696 29.2482 24.576C29.8242 25.44 30.1122 26.432 30.1122 27.552C30.1122 28.592 29.8482 29.528 29.3202 30.36C28.7922 31.176 28.0882 31.824 27.2082 32.304C26.3282 32.768 25.3602 33 24.3042 33Z\" class=\"evo-icon-number__number\" />\n }\n @case (4) {\n <path d=\"M26.5082 33C26.1882 33 25.9162 32.88 25.6922 32.64C25.4682 32.4 25.3562 32.112 25.3562 31.776V28.752H17.3642C16.9962 28.752 16.7082 28.64 16.5002 28.416C16.2922 28.192 16.1722 27.936 16.1402 27.648C16.1242 27.344 16.2042 27.072 16.3802 26.832L25.5722 14.784C25.7002 14.624 25.8442 14.496 26.0042 14.4C26.1802 14.304 26.3722 14.256 26.5802 14.256C26.9162 14.256 27.1882 14.376 27.3962 14.616C27.6042 14.856 27.7082 15.152 27.7082 15.504V26.544H29.1482C29.4842 26.544 29.7722 26.624 30.0122 26.784C30.2522 26.944 30.3722 27.232 30.3722 27.648C30.3722 27.952 30.2522 28.216 30.0122 28.44C29.7722 28.648 29.4842 28.752 29.1482 28.752H27.7082V31.776C27.7082 32.112 27.5962 32.4 27.3722 32.64C27.1482 32.88 26.8602 33 26.5082 33ZM25.3562 26.544V18.6L19.3082 26.544H25.3562Z\" class=\"evo-icon-number__number\" />\n }\n @case (5) {\n <path d=\"M23.6092 33C22.4572 33 21.4172 32.736 20.4892 32.208C19.5772 31.664 18.8492 30.928 18.3052 30C17.7772 29.072 17.5132 28.032 17.5132 26.88C17.5132 26.528 17.6252 26.24 17.8492 26.016C18.0732 25.776 18.3612 25.656 18.7132 25.656C19.0652 25.656 19.3612 25.776 19.6012 26.016C19.8412 26.24 19.9612 26.528 19.9612 26.88C19.9612 27.568 20.1212 28.192 20.4412 28.752C20.7612 29.312 21.1932 29.752 21.7372 30.072C22.2972 30.392 22.9212 30.552 23.6092 30.552C24.3132 30.552 24.9372 30.392 25.4812 30.072C26.0412 29.752 26.4812 29.312 26.8012 28.752C27.1212 28.192 27.2812 27.568 27.2812 26.88C27.2812 26.176 27.1212 25.552 26.8012 25.008C26.4812 24.448 26.0412 24.008 25.4812 23.688C24.9372 23.368 24.3132 23.208 23.6092 23.208H19.6012C19.2492 23.208 18.9612 23.096 18.7372 22.872C18.5132 22.632 18.4012 22.336 18.4012 21.984V15.504C18.4012 15.152 18.5132 14.856 18.7372 14.616C18.9612 14.376 19.2492 14.256 19.6012 14.256H27.6172C27.9532 14.256 28.2412 14.384 28.4812 14.64C28.7212 14.88 28.8412 15.168 28.8412 15.504C28.8412 15.824 28.7212 16.104 28.4812 16.344C28.2572 16.584 27.9692 16.704 27.6172 16.704H20.8252V20.76H23.6092C24.7772 20.76 25.8172 21.032 26.7292 21.576C27.6572 22.104 28.3852 22.832 28.9132 23.76C29.4572 24.672 29.7292 25.712 29.7292 26.88C29.7292 28.032 29.4572 29.072 28.9132 30C28.3852 30.928 27.6572 31.664 26.7292 32.208C25.8172 32.736 24.7772 33 23.6092 33Z\" class=\"evo-icon-number__number\" />\n }\n @case (6) {\n <path d=\"M23.7514 33C22.6474 33 21.6634 32.76 20.7994 32.28C19.9514 31.784 19.2874 31.112 18.8074 30.264C18.3274 29.4 18.0874 28.416 18.0874 27.312C18.0874 26.08 18.3914 24.992 18.9994 24.048L24.4474 14.952C24.7354 14.504 25.1034 14.28 25.5514 14.28C25.8874 14.28 26.1674 14.376 26.3914 14.568C26.6154 14.76 26.7514 15 26.7994 15.288C26.8634 15.576 26.8074 15.864 26.6314 16.152L23.3434 21.624C23.4714 21.608 23.6074 21.6 23.7514 21.6C24.8554 21.6 25.8314 21.848 26.6794 22.344C27.5274 22.824 28.1914 23.496 28.6714 24.36C29.1514 25.208 29.3914 26.192 29.3914 27.312C29.3914 28.416 29.1514 29.4 28.6714 30.264C28.1914 31.112 27.5274 31.784 26.6794 32.28C25.8314 32.76 24.8554 33 23.7514 33ZM23.7274 30.84C24.7194 30.84 25.5274 30.512 26.1514 29.856C26.7754 29.2 27.0874 28.352 27.0874 27.312C27.0874 26.272 26.7754 25.424 26.1514 24.768C25.5274 24.096 24.7194 23.76 23.7274 23.76C22.7514 23.76 21.9514 24.096 21.3274 24.768C20.7034 25.424 20.3914 26.272 20.3914 27.312C20.3914 28.352 20.7034 29.2 21.3274 29.856C21.9514 30.512 22.7514 30.84 23.7274 30.84Z\" class=\"evo-icon-number__number\" />\n }\n @case (7) {\n <path d=\"M20.3694 33C20.0494 33 19.7694 32.88 19.5294 32.64C19.2894 32.4 19.1694 32.112 19.1694 31.776C19.1694 31.552 19.2414 31.296 19.3854 31.008L26.2734 16.704H18.9774C18.6254 16.704 18.3294 16.592 18.0894 16.368C17.8654 16.128 17.7534 15.832 17.7534 15.48C17.7534 15.128 17.8654 14.84 18.0894 14.616C18.3294 14.376 18.6254 14.256 18.9774 14.256H28.1214C28.4574 14.256 28.7454 14.376 28.9854 14.616C29.2254 14.856 29.3454 15.144 29.3454 15.48C29.3454 15.592 29.3294 15.704 29.2974 15.816C29.2654 15.912 29.2254 16.016 29.1774 16.128L21.4974 32.328C21.2414 32.776 20.8654 33 20.3694 33Z\" class=\"evo-icon-number__number\" />\n }\n @case (8) {\n <path d=\"M23.5113 32.976C22.4553 32.976 21.5033 32.728 20.6553 32.232C19.8233 31.72 19.1673 31.032 18.6873 30.168C18.2073 29.288 17.9673 28.304 17.9673 27.216C17.9673 26.192 18.1993 25.272 18.6633 24.456C19.1273 23.624 19.7513 22.968 20.5353 22.488C19.9913 22.072 19.5593 21.56 19.2393 20.952C18.9193 20.328 18.7593 19.64 18.7593 18.888C18.7593 17.976 18.9673 17.168 19.3833 16.464C19.7993 15.744 20.3593 15.176 21.0633 14.76C21.7833 14.328 22.5993 14.112 23.5113 14.112C24.4233 14.096 25.2313 14.296 25.9353 14.712C26.6553 15.128 27.2233 15.696 27.6393 16.416C28.0553 17.136 28.2553 17.96 28.2393 18.888C28.2393 19.64 28.0793 20.328 27.7593 20.952C27.4393 21.56 27.0073 22.064 26.4633 22.464C27.2473 22.944 27.8713 23.6 28.3353 24.432C28.7993 25.264 29.0313 26.192 29.0313 27.216C29.0313 28.304 28.7833 29.288 28.2873 30.168C27.8073 31.032 27.1513 31.72 26.3193 32.232C25.4873 32.728 24.5513 32.976 23.5113 32.976ZM23.5113 21.432C24.1833 21.432 24.7353 21.176 25.1673 20.664C25.6153 20.152 25.8473 19.536 25.8633 18.816C25.8793 18.096 25.6633 17.504 25.2153 17.04C24.7673 16.576 24.1993 16.344 23.5113 16.344C22.8393 16.344 22.2793 16.576 21.8313 17.04C21.3833 17.504 21.1513 18.096 21.1353 18.816C21.1193 19.536 21.3353 20.152 21.7833 20.664C22.2473 21.176 22.8233 21.432 23.5113 21.432ZM23.5113 30.768C24.1033 30.768 24.6313 30.608 25.0953 30.288C25.5753 29.968 25.9513 29.544 26.2233 29.016C26.4953 28.472 26.6313 27.872 26.6313 27.216C26.6473 26.576 26.5193 26.008 26.2473 25.512C25.9753 25 25.5993 24.6 25.1193 24.312C24.6553 24.008 24.1193 23.856 23.5113 23.856C22.9193 23.856 22.3833 24.008 21.9033 24.312C21.4233 24.6 21.0473 25 20.7753 25.512C20.5033 26.008 20.3673 26.576 20.3673 27.216C20.3673 27.872 20.4953 28.472 20.7513 29.016C21.0233 29.544 21.3993 29.968 21.8793 30.288C22.3593 30.608 22.9033 30.768 23.5113 30.768Z\" class=\"evo-icon-number__number\" />\n }\n @case (9) {\n <path d=\"M24.2474 14.232C25.3514 14.232 26.3274 14.48 27.1754 14.976C28.0394 15.456 28.7114 16.128 29.1914 16.992C29.6714 17.84 29.9114 18.816 29.9114 19.92C29.9114 21.152 29.6074 22.24 28.9994 23.184L23.5514 32.28C23.2634 32.728 22.8954 32.952 22.4474 32.952C22.1114 32.952 21.8314 32.856 21.6074 32.664C21.3834 32.472 21.2394 32.232 21.1754 31.944C21.1274 31.656 21.1914 31.368 21.3674 31.08L24.6554 25.608C24.5274 25.624 24.3914 25.632 24.2474 25.632C23.1434 25.632 22.1674 25.392 21.3194 24.912C20.4714 24.416 19.8074 23.744 19.3274 22.896C18.8474 22.032 18.6074 21.04 18.6074 19.92C18.6074 18.816 18.8474 17.84 19.3274 16.992C19.8074 16.128 20.4714 15.456 21.3194 14.976C22.1674 14.48 23.1434 14.232 24.2474 14.232ZM24.2714 16.392C23.2794 16.392 22.4714 16.72 21.8474 17.376C21.2234 18.032 20.9114 18.88 20.9114 19.92C20.9114 20.96 21.2234 21.816 21.8474 22.488C22.4714 23.144 23.2794 23.472 24.2714 23.472C25.2474 23.472 26.0474 23.144 26.6714 22.488C27.2954 21.816 27.6074 20.96 27.6074 19.92C27.6074 18.88 27.2954 18.032 26.6714 17.376C26.0474 16.72 25.2474 16.392 24.2714 16.392Z\" class=\"evo-icon-number__number\" />\n }\n }\n</svg>\n","import {NgModule} from '@angular/core';\nimport {EvoIconNumberComponent} from './components/evo-icon-number/evo-icon-number.component';\n\n@NgModule({\n imports: [EvoIconNumberComponent],\n exports: [EvoIconNumberComponent],\n})\nexport class EvoIconNumberModule {}\n","export function clearMultiline(value: string, isMultiline: boolean): string {\n if (typeof value === 'string') {\n value = isMultiline ? value : value?.replace(/\\n/g, '');\n }\n\n return value;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Injector,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {EvoControlStates} from '../../common/evo-control-state-manager/evo-control-states.enum';\nimport {clearMultiline} from './utils/clear-multiline';\nimport {EvoControlErrorComponent} from '../evo-control-error/evo-control-error.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\nimport {EvoInputContenteditableSize} from './types/evo-input-contenteditable-size';\n\n@Component({\n selector: 'evo-input-contenteditable',\n templateUrl: './evo-input-contenteditable.component.html',\n styleUrls: ['./evo-input-contenteditable.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoInputContenteditableComponent),\n multi: true,\n },\n {\n provide: EvoBaseControl,\n useExisting: forwardRef(() => EvoInputContenteditableComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [EvoUiClassDirective, EvoControlErrorComponent],\n})\nexport class EvoInputContenteditableComponent extends EvoBaseControl implements OnInit, ControlValueAccessor {\n static readonly STYLE_KEYCODES = [\n 66, // B b\n 73, // I i\n 85, // U u\n ];\n\n @ViewChild('contenteditable', {read: ElementRef, static: true}) readonly contenteditable: ElementRef;\n\n @Output() blur = new EventEmitter<FocusEvent>();\n\n @Input() size: EvoInputContenteditableSize = 'normal';\n @Input() multiline = true;\n @Input() placeholder: string;\n @Input() autoFocus: boolean;\n @Input() maxLines = 3;\n @Input() minLines = 0;\n\n @Input() private readonly disabled = false;\n @Input() private readonly preventStylingHotkeys = true;\n\n // eslint-disable-next-line\n private onChange: any;\n private onTouched: () => void;\n private _isDisabled = false;\n\n constructor(\n private readonly cd: ChangeDetectorRef,\n protected injector: Injector,\n ) {\n super(injector);\n }\n\n get isDisabled(): boolean {\n return this._isDisabled || this.disabled;\n }\n\n get inputClass(): {[cssClass: string]: boolean} {\n return {\n open: this.minLines > 0,\n single: !this.multiline,\n disabled: this._isDisabled,\n valid: this.currentState[EvoControlStates.valid],\n invalid: this.currentState[EvoControlStates.invalid],\n [`size_${this.size}`]: this.size !== 'normal',\n };\n }\n\n ngOnInit(): void {\n this.wrapSetValue();\n\n if (this.autoFocus) {\n this.focus();\n }\n }\n\n focus(): void {\n this.contenteditable.nativeElement.focus();\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n writeValue(value: string): void {\n this.contenteditable.nativeElement.innerText = this.clearMultiline(value);\n }\n\n onBlur(event: FocusEvent): void {\n this.blur.emit(event);\n }\n\n /**\n * New line triggers changes in both modes\n * Handle this case here if you found this behaviour redundant\n */\n onInput(event: Event): void {\n if (this.onTouched) {\n this.onTouched();\n }\n\n if (this.onChange) {\n const value = ((event as InputEvent).target as HTMLElement).innerText;\n this.onChange(this.clearMultiline(value));\n }\n }\n\n onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n const content = event.clipboardData?.getData('text/plain');\n document.execCommand('insertText', false, this.clearMultiline(content));\n }\n\n onKeydown(event: KeyboardEvent): void {\n if (\n this.preventStylingHotkeys &&\n (event.ctrlKey || event.metaKey) &&\n EvoInputContenteditableComponent.STYLE_KEYCODES.includes(event.keyCode)\n ) {\n event.preventDefault();\n }\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._isDisabled = isDisabled;\n this.cd.detectChanges();\n }\n\n private clearMultiline(value: string): string {\n return clearMultiline(value, this.multiline);\n }\n\n private wrapSetValue() {\n const originalSetValue = this.control.setValue;\n\n this.control.setValue = (value: unknown, options?: object) => {\n if (typeof value === 'string') {\n value = this.clearMultiline(value);\n }\n return originalSetValue.call(this.control, value, options);\n };\n }\n}\n","<div\n class=\"evo-contenteditable-input\"\n [evoUiClass]=\"inputClass\"\n [style.--evo-contenteditable-lines]=\"multiline ? maxLines : 0\"\n>\n <span\n #contenteditable\n class=\"evo-contenteditable-input__content\"\n [evoUiClass]=\"{'open-lines': minLines > 0}\"\n [attr.contenteditable]=\"!isDisabled\"\n [attr.placeholder]=\"placeholder\"\n [style.--evo-contenteditable-min-lines]=\"multiline ? minLines : 0\"\n (blur)=\"onBlur($event)\"\n (input)=\"onInput($event)\"\n (paste)=\"onPaste($event)\"\n (dragover)=\"$event.preventDefault()\"\n (keydown)=\"onKeydown($event)\"\n ></span>\n</div>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n","import {NgModule} from '@angular/core';\nimport {EvoInputContenteditableComponent} from './evo-input-contenteditable.component';\n\n@NgModule({\n imports: [EvoInputContenteditableComponent],\n exports: [EvoInputContenteditableComponent],\n})\nexport class EvoInputContenteditableModule {}\n","import {InjectionToken} from '@angular/core';\nimport {EvoModalConfig} from \"./interfaces\";\n\nexport const EVO_MODAL_CONFIG = new InjectionToken<EvoModalConfig>('EVO_MODAL_CONFIG');\n\n// Root ID\nexport const EVO_MODAL_DEFAULT_ROOT_ID = 'EVO_MODAL_ROOT_ID';\nexport const EVO_MODAL_ROOT_ID = new InjectionToken<string>('EvoModal default root ID');\n\n// Config\nexport const EVO_MODAL_DEFAULT_CONFIG: EvoModalConfig = {\n host: 'body',\n};\n\n// Modal Data\nexport const EVO_MODAL_DATA = new InjectionToken('EVO_MODAL_DATA');\n","import {Injector, ViewContainerRef} from '@angular/core';\n\nexport class EvoPortalOutlet {\n constructor(public injector: Injector, public viewContainerRef: ViewContainerRef) {}\n}\n","// eslint-disable-next-line:max-line-length\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n Injector,\n TemplateRef,\n Type,\n ViewRef,\n} from '@angular/core';\nimport {EvoPortalOutlet} from './evo-portal-outlet.class';\n\nexport type EvoPortalHostType = EvoPortalOutlet | HTMLElement | string;\n\nexport abstract class EvoAbstractPortal {\n abstract hasAttachedPortal(): boolean;\n\n abstract attach(host: EvoPortalHostType): void;\n\n abstract detach(): void;\n}\n\n@Injectable()\nexport class EvoPortalService {\n constructor(\n protected appRef: ApplicationRef,\n protected injector: Injector,\n protected cfr: ComponentFactoryResolver,\n ) {}\n\n // eslint-disable-next-line\n attachComponent<T = any>(portal: Type<T>, host: EvoPortalHostType, injector?: Injector): ComponentRef<T> {\n if (host instanceof EvoPortalOutlet) {\n return this.attachToHost<T>(portal, host, injector);\n } else {\n return this.attachToDomElement<T>(portal, host, injector);\n }\n }\n\n // eslint-disable-next-line\n attachToDomElement<T = any>(\n portal: Type<T>,\n elementOrSelector: HTMLElement | string,\n injector?: Injector,\n ): ComponentRef<T> {\n let element: HTMLElement;\n\n if (this.isElementSelector(elementOrSelector)) {\n element = document.querySelector(elementOrSelector as string);\n if (!element) {\n this.errNotFoundBySelector(elementOrSelector as string);\n }\n } else if (this.isHTMLElement(elementOrSelector)) {\n element = elementOrSelector as HTMLElement;\n }\n\n // TODO: rewrite without deprecated ComponentFactoryResolver\n const factory = this.cfr.resolveComponentFactory<T>(portal);\n\n const compRef = factory.create(injector || this.injector);\n\n this.appRef.attachView(compRef.hostView);\n\n element.appendChild(this.getRootNode(compRef));\n\n return compRef;\n }\n\n // eslint-disable-next-line\n attachToHost<T = any>(portal: Type<T>, portalHost: EvoPortalOutlet, injector?: Injector): ComponentRef<T> {\n const factory = this.cfr.resolveComponentFactory<T>(portal);\n\n return portalHost.viewContainerRef.createComponent<T>(\n factory,\n portalHost.viewContainerRef.length,\n injector || portalHost.injector,\n );\n }\n\n // eslint-disable-next-line\n attachTemplate<T = any>(template: TemplateRef<T>, host: EvoPortalHostType, context?: T): EmbeddedViewRef<T> {\n if (host instanceof EvoPortalOutlet) {\n return host.viewContainerRef.createEmbeddedView(template, context, host.viewContainerRef.length);\n } else if (this.isHTMLElement(host)) {\n return this.attachTemplateToElement(template, host as HTMLElement, context);\n } else {\n const hostEl: HTMLElement = document.querySelector(host as string);\n if (!hostEl) {\n this.errNotFoundBySelector(host as string);\n return;\n }\n return this.attachTemplateToElement(template, hostEl, context);\n }\n }\n\n // eslint-disable-next-line\n detach<T = any>(portal: ComponentRef<T> | EmbeddedViewRef<T> | ViewRef) {\n portal.destroy();\n }\n\n protected attachTemplateToElement<T>(\n template: TemplateRef<T>,\n element: HTMLElement,\n context?: T,\n ): EmbeddedViewRef<T> {\n const viewRef = template.createEmbeddedView(context);\n this.appRef.attachView(viewRef);\n element.appendChild(viewRef.rootNodes[0] as HTMLElement);\n return viewRef;\n }\n\n // eslint-disable-next-line\n protected getRootNode(ref: ComponentRef<any> | EmbeddedViewRef<any>): HTMLElement {\n if (ref instanceof ComponentRef) {\n // eslint-disable-next-line\n return (ref.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n } else {\n return ref.rootNodes[0] as HTMLElement;\n }\n }\n\n // eslint-disable-next-line\n protected isElementSelector(selector: any): boolean {\n return selector && typeof selector === 'string' && !!selector.trim().length;\n }\n\n // eslint-disable-next-line\n protected isHTMLElement(element: any): boolean {\n return element && (element instanceof Element || element instanceof HTMLDocument);\n }\n\n protected errNotFoundBySelector(selector: string) {\n throw new Error(`Element with selector '${selector}' not found`);\n }\n}\n","import {Directive, Injector, ViewContainerRef} from '@angular/core';\nimport {EvoPortalOutlet} from './evo-portal-outlet.class';\n\n@Directive({\n selector: '[evoPortalOutlet]',\n standalone: true,\n})\nexport class EvoPortalOutletDirective extends EvoPortalOutlet {\n constructor(\n public injector: Injector,\n public viewContainerRef: ViewContainerRef,\n ) {\n super(injector, viewContainerRef);\n }\n}\n","import {NgModule} from '@angular/core';\nimport {EvoPortalService} from './evo-portal.service';\nimport {EvoPortalOutletDirective} from './evo-portal-outlet.directive';\n\n@NgModule({\n imports: [EvoPortalOutletDirective],\n providers: [EvoPortalService],\n exports: [EvoPortalOutletDirective],\n})\nexport class EvoPortalModule {}\n","import {ApplicationRef, ComponentFactoryResolver, ComponentRef, Injectable, Injector} from '@angular/core';\nimport {EvoAbstractPortal, EvoPortalService} from '../evo-portal';\nimport {EvoModalComponent} from './evo-modal.component';\n\n@Injectable()\nexport class EvoModalPortal extends EvoPortalService implements EvoAbstractPortal {\n\n attachedPortal: ComponentRef<EvoModalComponent>;\n\n constructor(\n public appRef: ApplicationRef,\n public injector: Injector,\n public cfr: ComponentFactoryResolver,\n ) {\n super(appRef, injector, cfr);\n }\n\n attach(host: string) {\n this.attachedPortal = this.attachComponent(EvoModalComponent, host, this.injector);\n this.attachedPortal.changeDetectorRef.detectChanges();\n }\n\n detach() {\n super.detach(this.attachedPortal);\n this.attachedPortal = null;\n }\n\n hasAttachedPortal() {\n return !!this.attachedPortal;\n }\n}\n","import {\n EvoConfiguredComponentModalParams,\n EvoConfiguredModalParams, EvoConfiguredTemplateModalParams,\n EvoDynamicModalParams,\n EvoModalCombinedParams\n} from './interfaces';\n\nexport function isDynamicModalParams(params?: EvoModalCombinedParams): params is EvoDynamicModalParams {\n return params && !isConfiguredModalParams(params) && params?.hasOwnProperty('component');\n}\n\nexport function isConfiguredModalParams(params?: EvoModalCombinedParams): params is EvoConfiguredModalParams {\n return params &&\n (params.hasOwnProperty('titleText') ||\n params.hasOwnProperty('acceptText') ||\n params.hasOwnProperty('declineText') ||\n params.hasOwnProperty('acceptButtonColor') ||\n params.hasOwnProperty('acceptButtonTheme') ||\n params.hasOwnProperty('declineButtonColor') ||\n params.hasOwnProperty('declineButtonTheme') ||\n params.hasOwnProperty('asyncAccept'));\n}\n\nexport function isConfiguredTemplateModalParams(params?: EvoModalCombinedParams): params is EvoConfiguredTemplateModalParams<unknown> {\n return params && isConfiguredModalParams(params) && params.hasOwnProperty('template');\n}\n\nexport function isConfiguredComponentModalParams(params?: EvoModalCombinedParams): params is EvoConfiguredComponentModalParams<unknown> {\n return params && isConfiguredModalParams(params) && params.hasOwnProperty('component');\n}\n","import {distinctUntilChanged, filter} from 'rxjs/operators';\nimport {inject, Injectable} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\nimport {isEqual} from 'lodash-es';\nimport {EvoSidebarState} from '../evo-sidebar';\nimport {EvoModalPortal} from \"./evo-modal-portal\";\nimport {EVO_MODAL_CONFIG, EVO_MODAL_ROOT_ID} from './tokens';\nimport {\n EvoConfiguredModalParams,\n EvoDynamicModalParams,\n EvoModalConfig,\n EvoModalParams,\n EvoModalState\n} from './interfaces';\nimport {isConfiguredModalParams, isDynamicModalParams} from './utils';\n\n@Injectable({providedIn: 'root'})\nexport class EvoModalService {\n\n private readonly portal = inject(EvoModalPortal);\n private readonly config = inject<EvoModalConfig>(EVO_MODAL_CONFIG);\n private readonly evoModalRootId = inject(EVO_MODAL_ROOT_ID);\n\n private readonly modalEvents$ = new Subject<EvoModalState>();\n private readonly registeredModals = new Map<string, EvoModalState>();\n\n register(id: string): void {\n this.registeredModals.set(id, {id, isOpen: false});\n }\n\n unregister(id: string): void {\n this.registeredModals.delete(id);\n }\n\n open<T>(params: EvoConfiguredModalParams<T>);\n open(params: EvoDynamicModalParams);\n open(id: string, params?: EvoModalParams);\n open(idOrParams: string | EvoDynamicModalParams | EvoConfiguredModalParams, params?: EvoModalParams): void {\n if (typeof idOrParams === 'string') {\n this.modalEvents$.next({id: idOrParams, isOpen: true, params});\n } else if (isDynamicModalParams(idOrParams)) {\n this.openDynamicModal(idOrParams);\n } else if (isConfiguredModalParams(idOrParams)) {\n this.openConfiguredModal(idOrParams);\n }\n }\n\n close(id = this.evoModalRootId, agreement = false, params?: EvoModalParams): void {\n this.modalEvents$.next({id, isOpen: false, agreement, params});\n }\n\n getEventsSubscription(id: string): Observable<EvoModalState> {\n return this.modalEvents$.pipe(\n filter(({id: currentId}: EvoSidebarState) => currentId === id),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n );\n }\n\n openDynamicModal(params: EvoDynamicModalParams): void {\n this.attachPortal();\n\n this.modalEvents$.next({id: this.evoModalRootId, isOpen: true, params});\n }\n\n openConfiguredModal(idOrParams: EvoConfiguredModalParams): void {\n this.attachPortal();\n\n this.modalEvents$.next({id: this.evoModalRootId, isOpen: true, params: idOrParams});\n }\n\n cleanupDefaultHost(): void {\n if (!this.portal.hasAttachedPortal()) {\n return;\n }\n\n this.portal.detach();\n }\n\n private attachPortal(): void {\n if (this.portal.hasAttachedPortal()) {\n return;\n }\n\n this.portal.attach(this.config.host);\n }\n}\n","export enum EvoModalCloseTargets {\n BACKGROUND = 'background',\n BUTTON = 'button',\n DEFAULT = 'default',\n ESC = 'escape',\n}\n","import {EvoModalCombinedParams} from '../interfaces';\nimport {EvoModalComponent} from '../evo-modal.component';\n\nexport abstract class EvoModalDrawingStrategy {\n abstract draw(this: EvoModalComponent, params: EvoModalCombinedParams): void;\n}\n","import {EvoModalDrawingStrategy} from './EvoModalDrawingStrategy';\nimport {EvoDynamicModalParams} from '../interfaces';\nimport {EvoModalComponent} from '../evo-modal.component';\n\nexport class EvoDynamicModalDrawingStrategy extends EvoModalDrawingStrategy {\n draw(this: EvoModalComponent, params: EvoDynamicModalParams): void {\n this.isDynamicContent.set(true);\n this.clearView();\n this.insertComponent(params);\n }\n}\n","import {EvoModalDrawingStrategy} from './EvoModalDrawingStrategy';\nimport {EvoConfiguredModalParams} from '../interfaces';\nimport {EvoModalComponent} from '../evo-modal.component';\n\nexport abstract class EvoConfiguredModalDrawingStrategy extends EvoModalDrawingStrategy {\n draw(this: EvoModalComponent, params: EvoConfiguredModalParams): void {\n this.titleText.set(params.titleText);\n this.acceptText.set(params.acceptText);\n this.declineText.set(params.declineText);\n this.acceptButtonColor.update((color) => params.acceptButtonColor || color);\n this.acceptButtonTheme.update((theme) => params.acceptButtonTheme || theme);\n this.declineButtonColor.update((color) => params.declineButtonColor || color);\n this.declineButtonTheme.update((theme) => params.declineButtonTheme || theme);\n this.asyncAccept.set(params.asyncAccept);\n }\n}\n","import {EvoConfiguredModalDrawingStrategy} from './EvoConfiguredModalDrawingStrategy';\nimport {EvoConfiguredComponentModalParams} from '../interfaces';\nimport {EvoModalComponent} from '../evo-modal.component';\n\nexport class EvoConfiguredComponentModalDrawingStrategy extends EvoConfiguredModalDrawingStrategy {\n override draw(this: EvoModalComponent, params: EvoConfiguredComponentModalParams<unknown>): void {\n super.draw(params);\n this.insertComponent(params, 'content');\n }\n}\n","import {EvoConfiguredModalDrawingStrategy} from './EvoConfiguredModalDrawingStrategy';\nimport {EvoConfiguredTemplateModalParams} from '../interfaces';\nimport {EvoModalComponent} from '../evo-modal.component';\n\nexport class EvoConfiguredTemplateModalDrawingStrategy extends EvoConfiguredModalDrawingStrategy {\n override draw(this: EvoModalComponent, params: EvoConfiguredTemplateModalParams<unknown>): void {\n super.draw(params);\n this.modalContent.set({\n template: params.template,\n context: params.data,\n });\n }\n}\n","import {Component, input, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'evo-modal-buttons, [evo-modal-buttons]',\n standalone: true,\n imports: [],\n template: '<ng-content select=\"[evoButton]\"/>',\n styleUrl: './evo-modal-buttons.component.scss',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n class: 'evo-modal-buttons',\n '[class.evo-modal-buttons_single-btn]': 'single()',\n },\n encapsulation: ViewEncapsulation.None,\n})\nexport class EvoModalButtonsComponent {\n\n single = input<boolean>(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n createComponent,\n DestroyRef,\n ElementRef,\n EnvironmentInjector,\n inject,\n Injector,\n model,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {filter, finalize, fromEvent, Observable} from 'rxjs';\nimport {takeWhile} from 'rxjs/operators';\nimport {EvoButtonColor, EvoButtonComponent, EvoButtonTheme} from '../evo-button';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\nimport {EVO_MODAL_DATA, EVO_MODAL_ROOT_ID} from './tokens';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {EvoDynamicModalParams, EvoModalCombinedParams, EvoModalState} from './interfaces';\nimport {EvoModalService} from './evo-modal.service';\nimport {isConfiguredComponentModalParams, isConfiguredTemplateModalParams, isDynamicModalParams} from './utils';\nimport {EvoModalCloseTargets} from './enums';\nimport {EvoModalDrawingStrategy} from './classes/EvoModalDrawingStrategy';\nimport {EvoDynamicModalDrawingStrategy} from './classes/EvoDynamicModalDrawingStrategy';\nimport {EvoConfiguredComponentModalDrawingStrategy} from './classes/EvoConfiguredComponentModalDrawingStrategy';\nimport {EvoConfiguredTemplateModalDrawingStrategy} from './classes/EvoConfiguredTemplateModalDrawingStrategy';\nimport {EvoModalButtonsComponent} from './evo-modal-buttons/evo-modal-buttons.component';\n\ntype InsertionContainerType = 'modal' | 'content';\n\n@Component({\n selector: 'evo-modal',\n templateUrl: './evo-modal.component.html',\n styleUrls: ['./evo-modal.component.scss'],\n standalone: true,\n imports: [\n EvoButtonComponent,\n NgTemplateOutlet,\n EvoModalButtonsComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EvoModalComponent implements OnInit, OnDestroy {\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n private readonly evoModalRootId = inject(EVO_MODAL_ROOT_ID);\n\n acceptText = model<string>('');\n acceptButtonColor = model<EvoButtonColor>(`success`);\n acceptButtonTheme = model<EvoButtonTheme>(`rounded-solid`);\n asyncAccept = model<() => Observable<unknown> | null>(null);\n declineText = model<string>('');\n declineButtonColor = model<EvoButtonColor>('secondary');\n declineButtonTheme = model<EvoButtonTheme>('rounded-outline');\n id = model<string>(this.evoModalRootId);\n titleText = model<string>('');\n\n readonly contentContainer = viewChild('contentContainer', {read: ViewContainerRef});\n readonly contentContainer$ = toObservable(this.contentContainer);\n readonly drawingStrategy = signal<EvoModalDrawingStrategy | null>(null);\n readonly isDynamicContent = signal<boolean>(false);\n readonly isLoading = signal<boolean>(false);\n readonly isVisible = computed((): boolean => this.modalState()?.isOpen || false);\n readonly modalContainer = viewChild('modalContainer', {read: ViewContainerRef});\n readonly modalContainer$ = toObservable(this.modalContainer);\n readonly modalContent = signal<{template: TemplateRef<{data: unknown}>, context: unknown} | null>(null);\n readonly modalElement = viewChild('modal', {read: ElementRef});\n readonly modalState = signal<EvoModalState | null>(null);\n readonly showButtons = computed((): string => this.acceptText() || this.declineText());\n\n readonly closeTargets = EvoModalCloseTargets;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly evoModalService = inject(EvoModalService);\n\n ngOnInit(): void {\n this.evoModalService.register(this.id());\n this.subscribeModalEvents();\n }\n\n ngOnDestroy(): void {\n this.evoModalService.unregister(this.id());\n }\n\n onAcceptClick(): void {\n const asyncAcceptAction = this.asyncAccept()?.();\n\n if (!asyncAcceptAction) {\n return this.close(true, EvoModalCloseTargets.BUTTON);\n }\n\n this.isLoading.set(true);\n\n asyncAcceptAction.pipe(\n finalize((): void => this.isLoading.set(false)),\n takeUntilDestroyed(this.destroyRef),\n ).subscribe((): void => this.close(true, EvoModalCloseTargets.BUTTON));\n }\n\n onBackgroundClick(event: Event): void {\n if (this.canCloseByBackground(event)) {\n this.close(false, EvoModalCloseTargets.BACKGROUND);\n }\n }\n\n onDeclineClick(): void {\n if (this.isLoading()) {\n return;\n }\n\n this.close(false, EvoModalCloseTargets.BUTTON);\n }\n\n protected clearView(): void {\n this.modalContainer()?.clear();\n }\n\n protected insertComponent(\n {data, injector, component}: Pick<EvoDynamicModalParams, 'data' | 'component' | 'injector'>,\n target: InsertionContainerType = 'modal',\n ): void {\n const dynamicComponentRef = createComponent(component, {\n environmentInjector: this.environmentInjector,\n elementInjector: Injector.create({\n providers: [\n {\n provide: EVO_MODAL_DATA,\n useValue: data,\n },\n ],\n parent: injector,\n }),\n });\n\n this.getInsertionContainer(target).pipe(\n filter((container): container is ViewContainerRef => !!container),\n takeUntilDestroyed(this.destroyRef),\n ).subscribe((container): void => {\n container.insert(dynamicComponentRef.hostView);\n dynamicComponentRef.changeDetectorRef.markForCheck();\n });\n }\n\n private canCloseByBackground(event: Event): boolean {\n return (this.declineText() || this.isDynamicContent()) &&\n !this.isLoading() &&\n this.modalState().isOpen &&\n event?.target &&\n !this.modalElement().nativeElement.contains(event.target);\n }\n\n private close(agreement: boolean, closeTarget: EvoModalCloseTargets): void {\n this.evoModalService.close(this.id(), agreement, {closeTarget});\n this.clearView();\n\n if (this.id() !== this.evoModalRootId) {\n return;\n }\n\n this.evoModalService.unregister(this.evoModalRootId);\n this.evoModalService.cleanupDefaultHost();\n }\n\n private getInsertionContainer(target: InsertionContainerType): Observable<ViewContainerRef> {\n return target === 'modal' ? this.modalContainer$ : this.contentContainer$;\n }\n\n private initKeyboardListener(): void {\n fromEvent(document.body, 'keydown').pipe(\n takeWhile((): boolean => this.modalState().isOpen),\n filter((event: KeyboardEvent): boolean => (this.declineText() || this.isDynamicContent()) && event.key === 'Escape'),\n takeUntilDestroyed(this.destroyRef),\n ).subscribe((): void => this.close(false, this.closeTargets.ESC));\n }\n\n private setDrawingStrategy(params: EvoModalCombinedParams): void {\n switch (true) {\n case isDynamicModalParams(params):\n return this.drawingStrategy.set(new EvoDynamicModalDrawingStrategy());\n case isConfiguredComponentModalParams(params):\n return this.drawingStrategy.set(new EvoConfiguredComponentModalDrawingStrategy());\n case isConfiguredTemplateModalParams(params):\n return this.drawingStrategy.set(new EvoConfiguredTemplateModalDrawingStrategy());\n default:\n return;\n }\n }\n\n private subscribeModalEvents(): void {\n this.evoModalService.getEventsSubscription(this.id()).pipe(\n takeUntilDestroyed(this.destroyRef),\n ).subscribe((modalState: EvoModalState): void => {\n this.modalState.set(modalState);\n\n if (!modalState.isOpen) {\n return;\n }\n\n this.initKeyboardListener();\n this.setDrawingStrategy(modalState.params);\n this.drawingStrategy()?.draw.call(this, modalState.params);\n });\n }\n}\n","@if (isVisible()) {\n <div class=\"evo-modal__background\" (mousedown)=\"onBackgroundClick($event)\"></div>\n\n <div class=\"evo-modal__wrapper\" (mousedown)=\"onBackgroundClick($event)\">\n <div class=\"evo-modal\" #modal>\n @if (isDynamicContent()) {\n <ng-template #modalContainer/>\n } @else {\n <div class=\"evo-modal__icon\">\n <ng-content select=\"evo-icon\"/>\n </div>\n\n @if (titleText()) {\n <h2 class=\"evo-modal__title\">{{ titleText() }}</h2>\n }\n\n <div class=\"evo-modal__content\">\n <ng-content/>\n\n <ng-container *ngTemplateOutlet=\"modalContent()?.template; context: {data: modalContent()?.context}\"/>\n\n <ng-template #contentContainer/>\n </div>\n\n @if (showButtons()) {\n <evo-modal-buttons [single]=\"!declineText() || !acceptText()\">\n @if (declineText()) {\n <button\n class=\"evo-modal__button_decline\"\n evoButton\n [color]=\"declineButtonColor()\"\n [theme]=\"declineButtonTheme()\"\n [disabled]=\"isLoading()\"\n (click)=\"onDeclineClick()\"\n >{{ declineText() }}</button>\n }\n\n @if (acceptText()) {\n <button\n class=\"evo-modal__button_accept\"\n evoButton\n [color]=\"acceptButtonColor()\"\n [theme]=\"acceptButtonTheme()\"\n [loading]=\"isLoading()\"\n (click)=\"onAcceptClick()\"\n >{{ acceptText() }}</button>\n }\n </evo-modal-buttons>\n }\n }\n </div>\n </div>\n}\n","import {NgModule} from '@angular/core';\nimport {EvoModalComponent} from './evo-modal.component';\nimport {EvoModalService} from './evo-modal.service';\n\n@NgModule({\n imports: [EvoModalComponent],\n exports: [EvoModalComponent],\n providers: [EvoModalService],\n})\nexport class EvoModalModule {}\n","import {EnvironmentProviders, makeEnvironmentProviders} from \"@angular/core\";\nimport {EvoModalPortal} from './evo-modal-portal';\nimport {EVO_MODAL_CONFIG, EVO_MODAL_DEFAULT_CONFIG, EVO_MODAL_DEFAULT_ROOT_ID, EVO_MODAL_ROOT_ID} from './tokens';\nimport {EvoModalConfig} from './interfaces';\nimport {merge} from 'lodash-es';\n\nexport function provideModal(config: EvoModalConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([\n EvoModalPortal,\n {\n provide: EVO_MODAL_ROOT_ID,\n useValue: EVO_MODAL_DEFAULT_ROOT_ID,\n },\n {\n provide: EVO_MODAL_CONFIG,\n useValue: merge(EVO_MODAL_DEFAULT_CONFIG, config),\n },\n ]);\n}\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, Output, booleanAttribute, input} from '@angular/core';\nimport {EvoNoteType} from './types/evo-note-type';\nimport {EvoIconComponent} from '../evo-icon/evo-icon.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-note',\n templateUrl: './evo-note.component.html',\n styleUrls: ['./evo-note.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoUiClassDirective, EvoIconComponent],\n})\nexport class EvoNoteComponent {\n closable = input(false, {transform: booleanAttribute});\n @Input() iconSrc: string;\n @Input() type: EvoNoteType = 'success';\n\n @Output() close = new EventEmitter<MouseEvent>();\n\n get totalClasses(): string[] {\n const classes: string[] = [];\n\n if (this.type) {\n classes.push('type-' + this.type);\n }\n\n if (this.closable()) {\n classes.push('is-closable');\n }\n\n return classes;\n }\n\n onCloseClick(event: MouseEvent): void {\n this.close.emit(event);\n }\n}\n","<div class=\"evo-note\" [evoUiClass]=\"totalClasses\">\n @if (closable()) {\n <a class=\"evo-note__close\" (click)=\"$event.preventDefault(); onCloseClick($event)\">\n <evo-icon shape=\"close\" class=\"evo-note__close-icon\" />\n </a>\n }\n\n @if (iconSrc) {\n <div class=\"evo-note__icon\">\n <img alt=\"\" [src]=\"iconSrc\" />\n </div>\n }\n\n <div class=\"evo-note__content\">\n <ng-content />\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoNoteComponent} from './evo-note.component';\n\n@NgModule({\n imports: [EvoNoteComponent],\n exports: [EvoNoteComponent],\n})\nexport class EvoNoteModule {}\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {NgClass, NgTemplateOutlet} from '@angular/common';\nimport {EvoLetDirective} from \"../../directives\";\n\nexport interface PageEvent {\n currentPage: number;\n previousPage: number;\n pageSize: number;\n pagesTotal: number;\n}\n\nenum PaginatorLayout {\n SHORT = 'SHORT',\n BEGINNING = 'BEGINNING',\n MIDDLE = 'MIDDLE',\n END = 'END',\n}\n\nconst SHORT_STATE_PAGES_LIMIT = 5;\nconst CORNER_STATE_PAGE_MAX_OFFSET = 3;\n\nconst DEFAULT_PAGE_SIZE = 10;\n\n@Component({\n selector: 'evo-paginator',\n templateUrl: './evo-paginator.component.html',\n styleUrls: ['./evo-paginator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass, EvoLetDirective, NgTemplateOutlet],\n})\nexport class EvoPaginatorComponent {\n @Input('currentPage') set setCurrentPage(value: string | number) {\n this.currentPage = parseInt(value as string, 10) || 1;\n }\n\n @Input('itemsTotal') set setItemsTotal(itemsTotal: number) {\n this.itemsTotal = itemsTotal > 0 ? itemsTotal : 0;\n this.pagesTotal = Math.ceil(this.itemsTotal / this.pageSize) || 1;\n }\n\n @Input('pageSize') set setPageSize(pageSize: number) {\n this.pageSize = pageSize > 0 ? pageSize : 10;\n this.pagesTotal = Math.ceil(this.itemsTotal / this.pageSize) || 1;\n }\n\n @Output() pageClick = new EventEmitter<PageEvent>();\n\n currentPage = 1; // starts with 1\n pagesTotal = 1;\n\n readonly CORNER_STATE_PAGE_MAX_OFFSET = CORNER_STATE_PAGE_MAX_OFFSET;\n readonly PaginatorLayout = PaginatorLayout;\n\n private pageSize = DEFAULT_PAGE_SIZE;\n private itemsTotal = 0;\n\n get currentLayout(): PaginatorLayout {\n if (this.pagesTotal <= SHORT_STATE_PAGES_LIMIT) {\n return PaginatorLayout.SHORT;\n }\n\n // first CORNER_STATE_PAGE_MAX_OFFSET pages\n // ex: CORNER_STATE_PAGE_MAX_OFFSET = 3, currentPage = 1 | 2 | 3\n if (this.currentPage <= CORNER_STATE_PAGE_MAX_OFFSET) {\n return PaginatorLayout.BEGINNING;\n }\n\n // last CORNER_STATE_PAGE_MAX_OFFSET pages\n // ex: CORNER_STATE_PAGE_MAX_OFFSET = 3, pagesTotal = 100, currentPage = 98 | 99 | 100\n if (this.pagesTotal - this.currentPage < CORNER_STATE_PAGE_MAX_OFFSET) {\n return PaginatorLayout.END;\n }\n\n return PaginatorLayout.MIDDLE;\n }\n\n onPageClick(page: number): void {\n if (page === this.currentPage) {\n return;\n }\n\n const payload: PageEvent = {\n currentPage: page,\n previousPage: this.currentPage,\n pageSize: this.pageSize,\n pagesTotal: this.pagesTotal,\n };\n this.currentPage = page;\n this.pageClick.emit(payload);\n }\n\n isSelectedPage(page: string | number): boolean {\n return parseInt(page as string, 10) === this.currentPage;\n }\n}\n","<div class=\"paginator\">\n @switch (currentLayout) {\n @case (PaginatorLayout.SHORT) {\n <ng-container [ngTemplateOutlet]=\"shortTpl\" />\n }\n @case (PaginatorLayout.BEGINNING) {\n <ng-container [ngTemplateOutlet]=\"beginningTpl\" />\n }\n @case (PaginatorLayout.MIDDLE) {\n <ng-container [ngTemplateOutlet]=\"middleTpl\" />\n }\n @case (PaginatorLayout.END) {\n <ng-container [ngTemplateOutlet]=\"endTpl\" />\n }\n }\n</div>\n\n<!-- SIMPLE LAYOUT, just pages in line -->\n<!-- ex: (1) 2 3 4 5 -->\n<ng-template #shortTpl>\n @for (item of [].constructor(pagesTotal); let i = $index; track i) {\n <button\n *evoLet=\"i + 1 as page\"\n class=\"paginator__btn\"\n [class.paginator__btn_selected]=\"isSelectedPage(page)\"\n (click)=\"onPageClick(page)\"\n >\n {{ page }}\n </button>\n }\n</ng-template>\n\n<!-- BEGINNING LAYOUT, when selected some of first pages -->\n<!-- ex: 1 (2) 3 4 ... 99 -->\n<ng-template #beginningTpl>\n @for (item of [].constructor(CORNER_STATE_PAGE_MAX_OFFSET + 1); let i = $index; track i) {\n <button\n *evoLet=\"i + 1 as page\"\n class=\"paginator__btn\"\n [class.paginator__btn_selected]=\"isSelectedPage(page)\"\n (click)=\"onPageClick(page)\"\n >\n {{ page }}\n </button>\n }\n\n <div class=\"paginator__separator\">...</div>\n <button class=\"paginator__btn\" (click)=\"onPageClick(pagesTotal)\">{{ pagesTotal }}</button>\n</ng-template>\n\n<!-- MIDDLE LAYOUT, when selected page is not in the begging nor at the end -->\n<!-- ex: 1 ... 35 (36) 37 ... 99 -->\n<ng-template #middleTpl>\n <button class=\"paginator__btn\" (click)=\"onPageClick(1)\">1</button>\n <div class=\"paginator__separator\">...</div>\n\n @for (page of [currentPage - 1, currentPage, currentPage + 1]; track page) {\n <button\n class=\"paginator__btn\"\n [class.paginator__btn_selected]=\"isSelectedPage(page)\"\n (click)=\"onPageClick(page)\"\n >\n {{ page }}\n </button>\n }\n\n <div class=\"paginator__separator\">...</div>\n <button class=\"paginator__btn\" (click)=\"onPageClick(pagesTotal)\">{{ pagesTotal }}</button>\n</ng-template>\n\n<!-- END LAYOUT, when selected some of last pages -->\n<!-- ex: 1 ... 96 (97) 98 99 -->\n<ng-template #endTpl>\n <button class=\"paginator__btn\" (click)=\"onPageClick(1)\">1</button>\n <div class=\"paginator__separator\">...</div>\n\n @for (item of [].constructor(CORNER_STATE_PAGE_MAX_OFFSET + 1); let i = $index; track pagesTotal + i) {\n <button\n *evoLet=\"pagesTotal - CORNER_STATE_PAGE_MAX_OFFSET + i as page\"\n class=\"paginator__btn\"\n [class.paginator__btn_selected]=\"isSelectedPage(page)\"\n (click)=\"onPageClick(page)\"\n >\n {{ page }}\n </button>\n }\n</ng-template>\n","import {NgModule} from '@angular/core';\nimport {EvoPaginatorComponent} from './evo-paginator.component';\n\n@NgModule({\n imports: [EvoPaginatorComponent],\n exports: [EvoPaginatorComponent],\n})\nexport class EvoPaginatorModule {}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostListener,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport {createPopper, Instance, Modifier, Placement, PositioningStrategy} from '@popperjs/core';\nimport {asyncScheduler, Subject} from 'rxjs';\nimport {observeOn, takeUntil, tap} from 'rxjs/operators';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\nimport {EvoClickOutsideDirective} from '../../directives/evo-click-outside.directive';\n\nexport type EvoPopoverPosition = 'center' | Placement;\n\nexport interface EvoPopoverDelay {\n show?: number;\n hide?: number;\n}\n\nconst DEFAULT_DELAY = {\n show: 0,\n hide: 100,\n};\n\n@Component({\n selector: 'evo-popover',\n templateUrl: 'evo-popover.component.html',\n styleUrls: ['evo-popover.component.scss'],\n standalone: true,\n imports: [EvoClickOutsideDirective, EvoUiClassDirective],\n})\nexport class EvoPopoverComponent implements AfterViewInit, OnChanges, OnDestroy {\n // TODO: This prop only for support old API. Remove later\n // eslint-disable-next-line\n @Input('media-tablet-position') mediaTabletPosition: 'right' | 'left' | 'center' = 'center';\n\n @Input('position') set position(position: EvoPopoverPosition) {\n this.placement = position === 'center' ? (this.positionMap[position] as Placement) : position;\n }\n\n @Input() show = false;\n // eslint-disable-next-line\n @Input() modifiers: Partial<Modifier<any, any>>[] = [];\n @Input() strategy: PositioningStrategy = 'absolute';\n\n // eslint-disable-next-line\n @Input('delay') set setDelay(value: any) {\n if (typeof value === 'number' && value >= 0) {\n this.delay = {\n show: value,\n hide: value,\n };\n return;\n }\n\n if (typeof value === 'object') {\n this.delay = {\n show: value.show >= 0 ? value.show : DEFAULT_DELAY.show,\n hide: value.hide >= 0 ? value.hide : DEFAULT_DELAY.hide,\n };\n return;\n }\n\n this.delay.show = DEFAULT_DELAY.show;\n this.delay.hide = DEFAULT_DELAY.hide;\n }\n\n @ViewChild('popover') el: ElementRef;\n @ViewChild('popoverWrap') popoverWrap: ElementRef;\n\n private popper: Instance;\n private placement: Placement = 'bottom';\n private delay: EvoPopoverDelay = {};\n private visibilityTimeout = null;\n // Old API Map\n private readonly positionMap = {center: 'bottom'};\n private readonly update$ = new Subject<void>();\n private readonly subscriptions$ = new Subject<void>();\n\n constructor(private readonly zone: NgZone) {}\n\n ngAfterViewInit() {\n this.create();\n this.update$\n .pipe(\n observeOn(asyncScheduler),\n tap(() => {\n if (this.popper) {\n this.popper.update();\n }\n }),\n takeUntil(this.subscriptions$),\n )\n .subscribe();\n }\n\n ngOnDestroy() {\n this.destroy();\n this.subscriptions$.next();\n this.subscriptions$.complete();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const position = changes.position;\n if (position && !position.firstChange) {\n this.destroy();\n this.create();\n }\n }\n\n create() {\n this.zone.runOutsideAngular(() => {\n this.popper = createPopper(this.el.nativeElement, this.popoverWrap.nativeElement, {\n strategy: this.strategy,\n placement: this.placement,\n modifiers: this.modifiers,\n });\n this.update$.next();\n });\n }\n\n destroy() {\n if (this.popper) {\n this.zone.runOutsideAngular(() => {\n this.popper.destroy();\n });\n\n this.popper = null;\n }\n }\n\n @HostListener('mouseenter')\n onEnter() {\n this.onMouseoverPopover();\n }\n\n @HostListener('touchend')\n onTouchEnd() {\n this.onMouseoverPopover();\n }\n\n @HostListener('mouseleave')\n onLeave() {\n this.onMouseleavePopover();\n }\n\n onClickOutside(): void {\n this.hidePopover();\n }\n\n showPopover(): void {\n this.popper.update();\n this.show = true;\n }\n\n hidePopover() {\n this.show = false;\n }\n\n private onMouseoverPopover() {\n this.togglePopover(true);\n }\n\n private onMouseleavePopover() {\n this.togglePopover(false);\n }\n\n private togglePopover(show: boolean = false) {\n const action = show ? 'show' : 'hide';\n const delayValue = this.delay && this.delay[action] > 0 ? this.delay[action] : 0;\n const toggle = () => {\n if (show) {\n this.showPopover();\n } else {\n this.hidePopover();\n }\n };\n if (this.visibilityTimeout) {\n clearTimeout(this.visibilityTimeout);\n }\n if (delayValue > 0) {\n this.visibilityTimeout = setTimeout(() => {\n toggle();\n }, delayValue);\n } else {\n toggle();\n }\n }\n}\n","<span #popover evoClickOutside class=\"evo-popover\" (evoClickOutside)=\"onClickOutside()\">\n <ng-content />\n <div #popoverWrap class=\"evo-popover__tip\" [evoUiClass]=\"{visible: show}\">\n <div class=\"evo-popover__tip-inner\">\n <ng-content select=\"[popover-body]\" />\n <div data-popper-arrow class=\"evo-popover__arrow\">\n <div class=\"evo-popover__arrow-inner\"></div>\n </div>\n </div>\n </div>\n</span>\n","import {NgModule} from '@angular/core';\nimport {EvoPopoverComponent} from './evo-popover.component';\n\n@NgModule({\n imports: [EvoPopoverComponent],\n exports: [EvoPopoverComponent],\n})\nexport class EvoPopoverModule {}\n","import {Component, forwardRef, Input} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {isEqual} from 'lodash-es';\n\n@Component({\n selector: 'evo-radio',\n templateUrl: './evo-radio.component.html',\n styleUrls: ['./evo-radio.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoRadioComponent),\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class EvoRadioComponent extends EvoBaseControl implements ControlValueAccessor {\n @Input() forceChecked: boolean;\n // eslint-disable-next-line\n @Input() value: any;\n @Input() name: string;\n\n disabled: boolean;\n\n onChange = (_) => {};\n onTouch = () => {};\n\n get checked() {\n return this.control ? isEqual(this.control.value, this.value) || this.forceChecked : this.forceChecked;\n }\n\n handleOnChange() {\n this.onChange(this.value);\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // eslint-disable-next-line\n writeValue(obj: any): void {}\n}\n","<label class=\"evo-radio\">\n <input\n type=\"radio\"\n class=\"evo-radio__input\"\n [name]=\"name\"\n [value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"handleOnChange()\"\n />\n <span class=\"evo-radio__element\"></span>\n <span class=\"evo-radio__content\">\n <ng-content />\n </span>\n</label>\n","import {NgModule} from '@angular/core';\nimport {EvoRadioComponent} from './evo-radio.component';\n\n@NgModule({\n imports: [EvoRadioComponent],\n exports: [EvoRadioComponent],\n})\nexport class EvoRadioModule {}\n","import {Component, forwardRef, Input} from '@angular/core';\nimport {EvoBaseControl} from '../../../common/evo-base-control';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {isEqual} from 'lodash-es';\nimport {NgClass} from '@angular/common';\n\n@Component({\n selector: 'evo-radioshape',\n templateUrl: 'evo-radioshape.component.html',\n styleUrls: ['evo-radioshape.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoRadioshapeComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [NgClass],\n})\nexport class EvoRadioshapeComponent extends EvoBaseControl implements ControlValueAccessor {\n @Input() forceChecked: boolean;\n // eslint-disable-next-line\n @Input() value: any;\n @Input() name = Math.random();\n\n disabled: boolean;\n\n onChange = (_) => {};\n onTouch = () => {};\n\n get checked() {\n return this.control ? isEqual(this.control.value, this.value) || this.forceChecked : this.forceChecked;\n }\n\n handleOnChange() {\n this.onChange(this.value);\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // eslint-disable-next-line\n writeValue(obj: any): void {}\n}\n","<div class=\"evo-radioshape\" [ngClass]=\"{'evo-radioshape_checked': checked, 'evo-radioshape_disabled': disabled}\">\n @if (value || forceChecked) {\n <label class=\"evo-radioshape__label\">\n <input\n type=\"radio\"\n class=\"evo-radioshape__input\"\n [name]=\"name\"\n [value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"handleOnChange()\"\n />\n <span class=\"evo-radioshape__control\"></span>\n </label>\n }\n\n <div class=\"evo-radioshape__content\">\n <ng-content />\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoRadioshapeComponent} from './components/evo-radioshape.component';\n\n@NgModule({\n imports: [EvoRadioshapeComponent],\n exports: [EvoRadioshapeComponent],\n})\nexport class EvoRadioshapeModule {}\n","import {InjectionToken} from '@angular/core';\nimport {EvoSidebarConfig} from './interfaces';\n\n// Root ID\nexport const evoSidebarRootId = 'EVO_SIDEBAR_ROOT_ID';\nexport const EVO_SIDEBAR_ROOT_ID = new InjectionToken<string>(\n evoSidebarRootId\n);\n\n// Config\nexport const evoSidebarDefaultConfig: EvoSidebarConfig = {\n host: 'body',\n};\n\nexport const EVO_SIDEBAR_CONFIG = new InjectionToken<EvoSidebarConfig>('EVO_SIDEBAR_CONFIG');\n\n// Sidebar Data\nexport const EVO_SIDEBAR_DATA = new InjectionToken('EVO_SIDEBAR_DATA');\n","import {inject, Injectable} from '@angular/core';\nimport {cloneDeep, isEqual} from 'lodash-es';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged, filter, take, tap} from 'rxjs/operators';\nimport {EvoAbstractPortal} from '../evo-portal';\nimport {EvoOpenedSidebarActions, EvoSidebarConfig, EvoSidebarParams, EvoSidebarState} from './interfaces';\nimport {EVO_SIDEBAR_CONFIG, evoSidebarRootId} from './tokens';\n\n@Injectable({providedIn: 'root'})\nexport class EvoSidebarService {\n private readonly portal = inject(EvoAbstractPortal); // EvoSidebarPortal provided\n private readonly config = inject<EvoSidebarConfig>(EVO_SIDEBAR_CONFIG);\n private readonly sidebarEvents$ = new Subject<EvoSidebarState>();\n private registeredSidebars: {[id: string]: EvoSidebarState} = {};\n\n deregister(id: string) {\n delete this.registeredSidebars[id];\n }\n\n register(id: string) {\n if (this.registeredSidebars[id]) {\n throw Error(`[EvoUiKit]: Another evo-sidebar with id = \"${id}\" already registered!`);\n } else {\n this.registeredSidebars[id] = {id, isOpen: false};\n }\n }\n\n open(params: EvoSidebarParams): EvoOpenedSidebarActions;\n open(id: string, params?: EvoSidebarParams): EvoOpenedSidebarActions;\n open(idOrParams: string | EvoSidebarParams, params?: EvoSidebarParams): EvoOpenedSidebarActions {\n if (typeof idOrParams === 'string') {\n this.sidebarEvents$.next({\n id: idOrParams,\n isOpen: true,\n params,\n });\n return this.getOpenedSidebarActions(idOrParams);\n } else {\n this.openWithDefaultHost(idOrParams);\n return this.getOpenedSidebarActions(evoSidebarRootId);\n }\n }\n\n openWithDefaultHost(params: EvoSidebarParams) {\n if (!this.portal.hasAttachedPortal()) {\n this.portal.attach(this.config.host);\n setTimeout(() => {\n this.open(evoSidebarRootId, params);\n }, 0);\n } else {\n this.open(evoSidebarRootId, params);\n }\n }\n\n close(params?: EvoSidebarParams): void;\n close(id: string, params?: EvoSidebarParams): void;\n close(idOrParams?: string | EvoSidebarParams, params?: EvoSidebarParams): void {\n if (typeof idOrParams === 'string') {\n this.sidebarEvents$.next({id: idOrParams, isOpen: false, params});\n } else {\n this.closeWithDefaultHost(idOrParams);\n }\n }\n\n closeWithDefaultHost(params?: EvoSidebarParams) {\n this.sidebarEvents$.next({id: evoSidebarRootId, isOpen: false, params});\n }\n\n getEventsSubscription(id: string, immediate?: boolean): Observable<EvoSidebarState> {\n return this.sidebarEvents$.pipe(\n filter((data: EvoSidebarState) => data.id === id),\n filter((data: EvoSidebarState) => {\n if (!data.isOpen) {\n return data.params && data.params.closeTarget ? true : immediate;\n }\n\n return true;\n }),\n distinctUntilChanged((prev: EvoSidebarState, next: EvoSidebarState) => {\n return immediate ? false : isEqual(prev, next);\n }),\n tap((data: EvoSidebarState) => {\n if (!immediate) {\n this.registeredSidebars[data.id] = cloneDeep(data);\n }\n }),\n );\n }\n\n cleanupDefaultHost() {\n if (!this.portal.hasAttachedPortal()) {\n return;\n }\n this.portal.detach();\n }\n\n getOpenedSidebarActions(id: string): EvoOpenedSidebarActions {\n return {\n afterClosed: () => {\n return this.getEventsSubscription(id).pipe(\n filter(({isOpen}) => !isOpen),\n take(1),\n );\n },\n };\n }\n}\n","export enum EvoSidebarCloseTargets {\n BACKGROUND = 'background',\n BUTTON = 'button',\n DEFAULT = 'default',\n ESC = 'escape',\n}\n","export enum EvoSidebarStates {\n HIDDEN = 'hidden',\n VISIBLE = 'visible',\n}\n","export enum EvoSidebarSizes {\n NORMAL = 'normal',\n MIDDLE = 'middle',\n LARGE = 'large',\n}\n","import {Signal} from \"@angular/core\";\nimport {EvoSidebarCloseTargets} from \"./enums/evo-sidebar-close-targets\";\n\nexport abstract class EvoSidebarToken {\n abstract backButton: Signal<boolean>;\n abstract relativeFooter: Signal<boolean>;\n\n abstract closeSidebar(target: EvoSidebarCloseTargets): void;\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'evo-sidebar-footer, [evo-sidebar-footer]',\n templateUrl: './evo-sidebar-footer.component.html',\n styleUrls: ['./evo-sidebar-footer.component.scss'],\n // eslint-disable-next-line\n host: {\n class: 'evo-sidebar__footer-wrapper',\n },\n standalone: true,\n})\nexport class EvoSidebarFooterComponent {}\n","<div class=\"evo-sidebar__footer\"><ng-content /></div>\n<!--чтобы :empty работал, не должно быть внутри evo-sidebar__footer вообще ничего, даже пробела-->\n","import {booleanAttribute, Component, computed, inject, input, OnInit} from '@angular/core';\nimport {EvoSidebarToken} from \"../evo-sidebar.token\";\n\n@Component({\n selector: 'evo-sidebar-content, [evo-sidebar-content]',\n templateUrl: './evo-sidebar-content.component.html',\n styleUrls: ['./evo-sidebar-content.component.scss'],\n standalone: true,\n // eslint-disable-next-line\n host: {\n class: 'evo-sidebar__content',\n '[class.evo-sidebar__content_relative-footer]': 'this.computedRelativeFooter()',\n },\n})\nexport class EvoSidebarContentComponent implements OnInit {\n\n relativeFooter = input(false, {transform: booleanAttribute});\n\n readonly computedRelativeFooter = computed(() => this.relativeFooter() || this.sidebar.relativeFooter());\n\n private readonly sidebar = inject(EvoSidebarToken);\n\n ngOnInit() {\n if (!this.sidebar) {\n throw new Error(`EvoSidebarContentComponent must be used inside EvoSidebarComponent only!`);\n }\n }\n}\n","<ng-content />\n","import {booleanAttribute, Component, computed, inject, input, OnInit, output} from '@angular/core';\nimport {EvoSidebarCloseTargets} from '../enums/evo-sidebar-close-targets';\nimport {EvoSidebarToken} from \"../evo-sidebar.token\";\nimport {EvoIconComponent} from '../../evo-icon/evo-icon.component';\n\n@Component({\n selector: 'evo-sidebar-header, [evo-sidebar-header]',\n templateUrl: './evo-sidebar-header.component.html',\n styleUrls: ['./evo-sidebar-header.component.scss'],\n // eslint-disable-next-line\n host: {\n class: 'evo-sidebar__header',\n },\n standalone: true,\n imports: [EvoIconComponent],\n})\nexport class EvoSidebarHeaderComponent implements OnInit {\n\n backButton = input(false, {transform: booleanAttribute});\n\n readonly back = output<void>();\n readonly computedBackButton = computed(() => this.backButton() || this.sidebar.backButton());\n\n private readonly sidebar = inject(EvoSidebarToken);\n\n ngOnInit() {\n if (!this.sidebar) {\n throw new Error(`EvoSidebarHeaderComponent must be used inside EvoSidebarComponent only!`);\n }\n }\n\n handleBackClick() {\n this.back.emit();\n }\n\n closeSidebar() {\n this.sidebar.closeSidebar(EvoSidebarCloseTargets.BUTTON);\n }\n}\n","@if (computedBackButton()) {\n <div class=\"evo-sidebar__back\" (click)=\"handleBackClick()\">\n <evo-icon shape=\"chevron-left\" class=\"evo-sidebar__icon\" />\n </div>\n}\n\n<div class=\"evo-sidebar__title\">\n <ng-content />\n</div>\n\n<div class=\"evo-sidebar__close\" (click)=\"closeSidebar()\">\n <evo-icon shape=\"close\" class=\"evo-sidebar__icon\" />\n</div>\n","import {\n ChangeDetectorRef,\n Component,\n computed,\n createComponent,\n DestroyRef,\n EnvironmentInjector,\n inject,\n Injector,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n output,\n signal,\n Type,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {fromEvent, SubscriptionLike} from 'rxjs';\nimport {EvoSidebarService} from './evo-sidebar.service';\nimport {AnimationEvent} from '@angular/animations';\nimport {delay, filter, takeWhile, tap} from 'rxjs/operators';\nimport {enterZone} from '../../operators';\nimport {Location} from '@angular/common';\nimport {EvoSidebarParams, EvoSidebarState} from './interfaces';\nimport {EVO_SIDEBAR_DATA, evoSidebarRootId} from './tokens';\nimport {sidebarAnimation} from '../../common/animations/sidebar.animation';\nimport {EvoSidebarCloseTargets} from './enums/evo-sidebar-close-targets';\nimport {EvoSidebarStates} from './enums/evo-sidebar-states';\nimport {EvoSidebarSizes} from './enums/evo-sidebar-sizes';\nimport {EvoSidebarToken} from \"./evo-sidebar.token\";\nimport {EvoSidebarFooterComponent} from './evo-sidebar-footer/evo-sidebar-footer.component';\nimport {EvoSidebarContentComponent} from './evo-sidebar-content/evo-sidebar-content.component';\nimport {EvoSidebarHeaderComponent} from './evo-sidebar-header/evo-sidebar-header.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\n\n@Component({\n selector: 'evo-sidebar',\n styleUrls: ['./evo-sidebar.component.scss'],\n templateUrl: './evo-sidebar.component.html',\n animations: [sidebarAnimation],\n viewProviders: [\n {\n provide: EvoSidebarToken,\n useExisting: EvoSidebarComponent,\n },\n ],\n standalone: true,\n imports: [\n EvoUiClassDirective,\n EvoSidebarHeaderComponent,\n EvoSidebarContentComponent,\n EvoSidebarFooterComponent,\n ],\n})\nexport class EvoSidebarComponent implements OnDestroy, OnInit {\n\n contentContainer = viewChild.required('sidebarContentContainer', {read: ViewContainerRef});\n\n backButton = input(false);\n id = input(evoSidebarRootId);\n header = input<string>();\n size = input(EvoSidebarSizes.NORMAL);\n relativeFooter = input(false);\n\n readonly back = output<void>();\n\n readonly closeTargets = EvoSidebarCloseTargets;\n readonly computedSize = computed(() => this.localSize() || this.size());\n readonly isDynamicContent = signal(false);\n readonly isVisible = signal(false);\n readonly localSize = signal<EvoSidebarSizes | null>(null);\n readonly totalClasses = computed(() => {\n const classes: string[] = [];\n\n if (this.isVisible()) {\n classes.push(EvoSidebarStates.VISIBLE);\n }\n\n classes.push(this.computedSize() ?? EvoSidebarSizes.NORMAL);\n return classes;\n })\n private readonly closeTarget = signal(EvoSidebarCloseTargets.DEFAULT);\n\n private locationSubscription: SubscriptionLike;\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly location = inject(Location);\n private readonly sidebarService = inject(EvoSidebarService);\n private readonly zone = inject(NgZone);\n\n ngOnDestroy() {\n this.clearView();\n this.sidebarService.deregister(this.id());\n this.locationSubscription?.unsubscribe();\n }\n\n ngOnInit() {\n this.sidebarService.register(this.id());\n this.sidebarService\n .getEventsSubscription(this.id(), true)\n .pipe(\n // async hack to avoid \"Expression has changed after it was checked\" error\n delay(0),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((sidebarState: EvoSidebarState) => {\n const {isOpen, params} = sidebarState;\n\n if (isOpen) {\n this.subscribeToKeyEvent();\n } else {\n this.closeTarget.set(EvoSidebarCloseTargets.DEFAULT);\n }\n\n // Dynamic content strategy\n if (isOpen && params?.component) {\n const {component, closeOnNavigation, size} = params;\n\n this.isDynamicContent.set(true);\n this.clearView();\n this.insertComponent(component, params);\n\n if (size) {\n this.localSize.set(size);\n }\n\n if (!this.locationSubscription && closeOnNavigation !== false) {\n this.closeOnLocationUpdates();\n }\n }\n\n this.isVisible.set(isOpen);\n this.cdr.markForCheck();\n });\n }\n\n get currentState(): string {\n return this.isVisible() ? EvoSidebarStates.VISIBLE : EvoSidebarStates.HIDDEN;\n }\n\n closeSidebar(source: EvoSidebarCloseTargets) {\n this.isVisible.set(false);\n this.closeTarget.set(source);\n }\n\n handleAnimationDone(event: AnimationEvent) {\n const isClosed = event.fromState === EvoSidebarStates.VISIBLE;\n\n if (isClosed && !this.isVisible()) {\n this.sidebarService.close(this.id(), {closeTarget: this.closeTarget()});\n this.clearView();\n if (this.id() === evoSidebarRootId) {\n this.sidebarService.deregister(evoSidebarRootId);\n this.sidebarService.cleanupDefaultHost();\n }\n }\n }\n\n handleBackClick() {\n this.back.emit();\n }\n\n private subscribeToKeyEvent() {\n this.zone.runOutsideAngular(() => {\n fromEvent(document.body, 'keyup')\n .pipe(\n takeWhile(() => this.isVisible()),\n filter((event: KeyboardEvent) => event.code === 'Escape'),\n enterZone(this.zone),\n tap(() => this.closeSidebar(EvoSidebarCloseTargets.ESC)),\n )\n .subscribe();\n });\n }\n\n // eslint-disable-next-line\n private insertComponent(component: Type<unknown>, {data, injector}: EvoSidebarParams) {\n const dynamicComponentRef = createComponent(component, {\n environmentInjector: this.environmentInjector,\n elementInjector: Injector.create({\n providers: [\n {\n provide: EVO_SIDEBAR_DATA,\n useValue: data,\n },\n {\n provide: EvoSidebarToken,\n useValue: this,\n },\n ],\n parent: injector,\n }),\n });\n\n this.contentContainer().insert(dynamicComponentRef.hostView);\n }\n\n private clearView() {\n this.contentContainer().clear();\n }\n\n private closeOnLocationUpdates() {\n this.locationSubscription = this.location.subscribe(() => this.closeSidebar(EvoSidebarCloseTargets.DEFAULT));\n }\n}\n","@if (isVisible()) {\n <div class=\"evo-sidebar__background\" (click)=\"closeSidebar(closeTargets.BACKGROUND)\"></div>\n}\n\n<div\n class=\"evo-sidebar\"\n [@open]=\"currentState\"\n [evoUiClass]=\"totalClasses()\"\n (@open.done)=\"handleAnimationDone($event)\"\n>\n <ng-template #sidebarContentContainer />\n\n @if (!isDynamicContent()) {\n <div evo-sidebar-header [backButton]=\"backButton()\" (back)=\"handleBackClick()\">\n {{ header() }}\n </div>\n <div evo-sidebar-content [relativeFooter]=\"relativeFooter()\">\n <ng-content select=\"[content]\" />\n </div>\n <div evo-sidebar-footer>\n <ng-content select=\"[footer]\" />\n </div>\n }\n</div>\n","import {ApplicationRef, ComponentFactoryResolver, ComponentRef, Injector} from '@angular/core';\nimport {EvoAbstractPortal, EvoPortalService} from '../evo-portal';\nimport {EvoSidebarComponent} from './evo-sidebar.component';\n\nexport class EvoSidebarPortal extends EvoPortalService implements EvoAbstractPortal {\n attachedPortal: ComponentRef<EvoSidebarComponent>;\n\n constructor(public appRef: ApplicationRef, public injector: Injector, public cfr: ComponentFactoryResolver) {\n super(appRef, injector, cfr);\n }\n\n attach(host: string) {\n this.attachedPortal = this.attachComponent(EvoSidebarComponent, host, this.injector);\n }\n\n detach() {\n super.detach(this.attachedPortal);\n this.attachedPortal = null;\n }\n\n hasAttachedPortal() {\n return !!this.attachedPortal;\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n EnvironmentProviders,\n Injector,\n Provider,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport {merge} from 'lodash-es';\nimport {EvoAbstractPortal} from '../evo-portal';\nimport {EvoSidebarPortal} from './evo-sidebar-portal';\nimport {EvoSidebarConfig} from './interfaces';\nimport {EVO_SIDEBAR_CONFIG, evoSidebarDefaultConfig} from './tokens';\n\nexport const portalProvider: Provider = {\n provide: EvoAbstractPortal,\n useClass: EvoSidebarPortal,\n deps: [ApplicationRef, Injector, ComponentFactoryResolver],\n};\n\nexport function provideSidebar(config: EvoSidebarConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([\n portalProvider,\n {\n provide: EVO_SIDEBAR_CONFIG,\n useValue: merge(evoSidebarDefaultConfig, config),\n },\n ]);\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\nimport {filter} from 'rxjs/operators';\n\nexport enum EvoStepperEvent {\n LABEL_CHANGED = 'LABEL_CHANGED',\n}\n\n@Injectable()\nexport class EvoStepperEvents {\n private readonly events$ = new Subject<EvoStepperEvent>();\n\n getEvents(type: EvoStepperEvent): Observable<EvoStepperEvent> {\n return this.events$.pipe(filter((event) => event === type));\n }\n\n emit(type: EvoStepperEvent) {\n this.events$.next(type);\n }\n}\n","import {Component, ContentChild, Host, Input, OnChanges, SimpleChanges, TemplateRef} from '@angular/core';\nimport {EvoStepperEvent, EvoStepperEvents} from '../evo-stepper-events';\nimport {NgTemplateOutlet} from '@angular/common';\n\n@Component({\n selector: 'evo-stepper-item',\n templateUrl: './evo-stepper-item.component.html',\n styleUrls: ['./evo-stepper-item.component.scss'],\n standalone: true,\n imports: [NgTemplateOutlet],\n})\nexport class EvoStepperItemComponent implements OnChanges {\n @Input() label: string;\n\n isSelected = false;\n\n // eslint-disable-next-line\n @ContentChild(TemplateRef) contentTemp: TemplateRef<any>;\n\n constructor(\n @Host()\n private readonly stepperEvents: EvoStepperEvents,\n ) {}\n\n ngOnChanges(changes: SimpleChanges) {\n const {firstChange} = changes.label;\n\n if (!firstChange) {\n this.stepperEvents.emit(EvoStepperEvent.LABEL_CHANGED);\n }\n }\n}\n","@if (isSelected) {\n <div class=\"evo-stepper-content\">\n @if (contentTemp) {\n <ng-container *ngTemplateOutlet=\"contentTemp\" />\n } @else {\n <ng-content />\n }\n </div>\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n} from '@angular/core';\nimport {EvoStepperItemComponent} from './evo-stepper-item/evo-stepper-item.component';\nimport {map} from 'rxjs/operators';\nimport {asyncScheduler, concat, merge, Observable, of, scheduled} from 'rxjs';\nimport {EvoStepperEvent, EvoStepperEvents} from './evo-stepper-events';\nimport {AsyncPipe} from '@angular/common';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-stepper',\n templateUrl: './evo-stepper.component.html',\n styleUrls: ['./evo-stepper.component.scss'],\n providers: [EvoStepperEvents],\n standalone: true,\n imports: [EvoUiClassDirective, AsyncPipe],\n})\nexport class EvoStepperComponent implements AfterViewInit, OnChanges {\n stepsList$: Observable<{label: string}[]>;\n\n @ContentChildren(EvoStepperItemComponent) stepComponentsList: QueryList<EvoStepperItemComponent>;\n\n @Input() currentStepIndex = 0;\n\n @Input() clickableItems = false;\n\n @Output() onChange = new EventEmitter<number>();\n\n @Output() clickItem = new EventEmitter<number>();\n\n constructor(\n private readonly cd: ChangeDetectorRef,\n private readonly stepperEvents: EvoStepperEvents,\n ) {}\n\n ngAfterViewInit() {\n this.stepsList$ = concat(\n scheduled(of(null), asyncScheduler),\n merge(this.stepComponentsList.changes, this.stepperEvents.getEvents(EvoStepperEvent.LABEL_CHANGED)),\n ).pipe(map(() => this.getStepsList()));\n this.cd.detectChanges();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.stepComponentsList && changes.currentStepIndex !== undefined) {\n const index = changes.currentStepIndex.currentValue;\n this.changeCurrentStep(index);\n }\n }\n\n getStepsList() {\n const currentStepComponent = this.stepComponentsList.find((stepComponent, i) => i === this.currentStepIndex);\n currentStepComponent.isSelected = true;\n return this.stepComponentsList.map(({label}) => ({label}));\n }\n\n changeCurrentStep(index: number) {\n this.stepComponentsList.forEach((step, i) => (step.isSelected = index === i));\n this.currentStepIndex = index;\n this.onChange.emit(index);\n this.cd.markForCheck();\n }\n\n handleItemClick(index: number) {\n if (this.clickableItems) {\n this.clickItem.emit(index);\n }\n }\n}\n","<div class=\"evo-stepper\">\n @if (stepsList$ | async; as stepsList) {\n <div class=\"evo-stepper__current-step-name\">\n {{ stepsList[currentStepIndex].label }}\n </div>\n <!-- List -->\n <div class=\"evo-stepper__list\">\n @for (step of stepsList; track step.label; let i = $index) {\n <div\n class=\"evo-stepper__item\"\n [evoUiClass]=\"{\n active: currentStepIndex == i,\n completed: i < currentStepIndex,\n clickable: clickableItems,\n }\"\n >\n <div class=\"evo-stepper__item-inner\" (click)=\"handleItemClick(i)\">\n <div class=\"evo-stepper__item-point\">\n <div class=\"evo-stepper__item-number\">{{ i + 1 }}</div>\n </div>\n <div class=\"evo-stepper__item-name\">{{ step.label }}</div>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Content -->\n <ng-content />\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoStepperComponent} from './evo-stepper.component';\nimport {EvoStepperItemComponent} from './evo-stepper-item/evo-stepper-item.component';\n\n@NgModule({\n imports: [EvoStepperComponent, EvoStepperItemComponent],\n exports: [EvoStepperComponent, EvoStepperItemComponent],\n})\nexport class EvoStepperModule {}\n","import {Component, ContentChild, Input, TemplateRef} from '@angular/core';\n\n@Component({\n selector: 'evo-table-column',\n templateUrl: './evo-table-column.component.html',\n styleUrls: ['./evo-table-column.component.scss'],\n standalone: true,\n})\nexport class EvoTableColumnComponent {\n @Input() prop: string = undefined;\n @Input() label = '';\n @Input() className = '';\n // eslint-disable-next-line\n @ContentChild('header', {read: TemplateRef}) header: any;\n // eslint-disable-next-line\n @ContentChild('content', {read: TemplateRef}) content: any;\n\n constructor() {}\n\n // eslint-disable-next-line\n @Input() formatter: (row: number, col: number, cellValue: any, item: any) => any = (row, col, cellValue) =>\n cellValue;\n}\n","<ng-content />\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {EvoTableColumnComponent} from '../evo-table-column/evo-table-column.component';\nimport {NgClass, NgTemplateOutlet} from '@angular/common';\n\nexport class EvoTableRowClickEvent {\n payload: {\n // eslint-disable-next-line\n item: any;\n rowIndex: number;\n };\n event: MouseEvent;\n}\n\n@Component({\n selector: 'evo-table',\n templateUrl: './evo-table.component.html',\n styleUrls: ['./evo-table.component.scss'],\n standalone: true,\n imports: [NgClass, NgTemplateOutlet],\n})\nexport class EvoTableComponent implements OnInit, AfterContentInit, OnChanges {\n filteredColumns: EvoTableColumnComponent[] = [];\n\n // eslint-disable-next-line\n @Input() data: any[];\n // eslint-disable-next-line\n @Input() showHeader = true;\n @Input() stripe = false;\n @Input() visibleColumns: string[];\n // eslint-disable-next-line\n @Input() rowClasses?: NgClass['ngClass'] | ((row: number, item: any) => NgClass['ngClass']);\n // eslint-disable-next-line\n @Input() rowTitle?: string | ((row: number, item: any) => string);\n\n @Output() rowClick: EventEmitter<EvoTableRowClickEvent> = new EventEmitter<EvoTableRowClickEvent>();\n @ContentChildren(EvoTableColumnComponent) columns: EvoTableColumnComponent[];\n\n states = {\n isRowClickable: false,\n };\n\n ngOnChanges(changes: SimpleChanges) {\n if ('visibleColumns' in changes) {\n this.filterColumns();\n }\n }\n\n ngOnInit() {\n this.states.isRowClickable = this.rowClick.observers.length > 0;\n }\n\n ngAfterContentInit() {\n this.filteredColumns = this.columns;\n this.filterColumns();\n }\n\n getRowClasses() {\n return {\n striped: this.stripe,\n };\n }\n\n onRowClick(rowIndex, item, event) {\n this.rowClick.emit({\n payload: {rowIndex, item},\n event: event,\n });\n }\n\n getClasses(row: number, item) {\n return typeof this.rowClasses === 'function' ? this.rowClasses(row, item) : this.rowClasses;\n }\n\n getTitle(row: number, item) {\n return typeof this.rowTitle === 'function' ? this.rowTitle(row, item) : this.rowTitle;\n }\n\n private filterColumns() {\n if (this.visibleColumns && this.columns) {\n this.filteredColumns = this.columns.filter((col) => this.visibleColumns.includes(col.prop));\n }\n }\n}\n","<div class=\"evo-table\" [ngClass]=\"{'evo-table_row-clickable': states.isRowClickable}\">\n @if (showHeader) {\n <div class=\"evo-table__row evo-table__row_head mobile-hide\">\n @for (column of filteredColumns; track column.label) {\n <div class=\"evo-table__cell evo-table__cell_head\" [ngClass]=\"column.className\">\n @if (column.header; as header) {\n <ng-container *ngTemplateOutlet=\"header; context: {label: column.label}\" />\n } @else {\n {{ column.label }}\n }\n </div>\n }\n </div>\n }\n\n @for (item of data; track item; let row = $index) {\n <div\n class=\"evo-table__row\"\n [title]=\"getTitle(row, item) || ''\"\n [ngClass]=\"getClasses(row, item)\"\n (click)=\"onRowClick(row, item, $event)\"\n >\n @for (column of filteredColumns; track column.label; let col = $index) {\n <div class=\"evo-table__cell\" [ngClass]=\"column.className\">\n @if (column.label) {\n <div class=\"evo-table__label mobile-show\">\n @if (column.header; as header) {\n <ng-container *ngTemplateOutlet=\"header; context: {label: column.label}\" />\n } @else {\n {{ column.label }}\n }\n </div>\n }\n\n @if (column.content; as content) {\n <div class=\"evo-table__data\">\n <ng-container *ngTemplateOutlet=\"content; context: {row: row, col: col, item: item}\" />\n </div>\n } @else {\n {{ column.formatter(row, col, column.prop !== undefined ? item[column.prop] : item, item) }}\n }\n </div>\n }\n </div>\n }\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoTableComponent} from './evo-table/evo-table.component';\nimport {EvoTableColumnComponent} from './evo-table-column/evo-table-column.component';\n\n@NgModule({\n imports: [EvoTableComponent, EvoTableColumnComponent],\n exports: [EvoTableComponent, EvoTableColumnComponent],\n})\nexport class EvoTableModule {}\n","export enum EvoTabsSize {\n small = 'small',\n normal = 'normal',\n}\n","export interface EvoTabState {\n name: string;\n isActive: boolean;\n params?: object;\n}\n\nexport class EvoTabStateCollection extends Array<EvoTabState> implements Array<EvoTabState> {\n\n // eslint-disable-next-line\n private constructor(items?: Array<any>) {\n super(...items);\n }\n\n // eslint-disable-next-line\n static create(tabs: any[]): EvoTabStateCollection {\n const array: EvoTabStateCollection = Object.create(EvoTabStateCollection.prototype);\n\n for (let i = 0; i < tabs.length; i++) {\n array.push(tabs[i]);\n }\n\n return array;\n }\n\n initTab(name: string) {\n this.push({name: name, isActive: false});\n }\n\n hasTab(name: string): boolean {\n return this.some((state) => state.name === name);\n }\n\n getTab(name: string): EvoTabState {\n return this.find((state) => state.name === name);\n }\n\n getActiveTab(): EvoTabState {\n return this.find((state) => state.isActive);\n }\n\n removeTab(name: string) {\n const tabToRemove = this.getTab(name);\n const index = this.indexOf(tabToRemove);\n\n if (index > -1) {\n this.splice(index, 1);\n }\n }\n\n setTab(name: string, params?: object) {\n const prevActiveTab = this.find((state) => state.isActive);\n\n if (prevActiveTab) {\n prevActiveTab.isActive = false;\n }\n\n const newActiveTab = this.getTab(name);\n newActiveTab.isActive = true;\n\n if (params) {\n newActiveTab.params = params;\n }\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged, filter, map, tap} from 'rxjs/operators';\nimport {cloneDeep, isEqual} from 'lodash-es';\nimport {EvoTabState, EvoTabStateCollection} from './evo-tab-state.collection';\n\nexport interface EvoTabsGroup {\n tabs: EvoTabStateCollection;\n name: string;\n}\n\n@Injectable()\nexport class EvoTabsService {\n\n private readonly tabsState$ = new Subject<Map<string, EvoTabsGroup>>();\n private readonly tabsGroupsMap: Map<string, EvoTabsGroup> = new Map();\n\n registerTabsGroup(groupName) {\n this.tabsGroupsMap.set(groupName, {name: groupName, tabs: EvoTabStateCollection.create([])});\n }\n\n registerTab(groupName: string, tabName: string) {\n const tabsGroup = this.getRegisteredTabsGroup(groupName);\n\n if (tabsGroup.tabs.hasTab(tabName)) {\n throw Error(`[EvoUiKit]: trying to register existing tab name('${tabName}') of '${groupName}' group`);\n }\n\n tabsGroup.tabs.initTab(tabName);\n\n if (tabsGroup.tabs.length === 1) {\n this.setTab(groupName, tabName);\n }\n }\n\n setTab(groupName: string, tabName: string, params?: object) {\n const tabsGroup = this.getRegisteredTabsGroup(groupName);\n\n if (!tabsGroup) {\n throw Error(`[EvoUiKit]: trying to set tab for not registered group ${groupName}`);\n }\n\n if (!tabsGroup.tabs.hasTab(tabName)) {\n throw Error(`[EvoUiKit]: trying to set tab with not registered name ${tabName}`);\n }\n\n tabsGroup.tabs.setTab(tabName, params);\n this.tabsState$.next(this.tabsGroupsMap);\n }\n\n getTabEventsSubscription(groupName: string, tabName: string): Observable<EvoTabState> {\n return this.tabsState$.pipe(\n map((tabsGroupsMap: Map<string, EvoTabsGroup>) => {\n return tabsGroupsMap.get(groupName);\n }),\n filter((tabsGroup: EvoTabsGroup) => {\n return tabsGroup.tabs.hasTab(tabName);\n }),\n tap((tabsGroup: EvoTabsGroup) => {\n this.tabsGroupsMap.set(groupName, cloneDeep(tabsGroup));\n }),\n map((tabsGroup: EvoTabsGroup) => {\n return tabsGroup.tabs.getTab(tabName);\n }),\n distinctUntilChanged((prevTabState: EvoTabState, nextTabState: EvoTabState) => {\n return isEqual(prevTabState, nextTabState);\n }),\n );\n }\n\n getGroupEventsSubscription(groupName: string): Observable<EvoTabsGroup> {\n return this.tabsState$.pipe(\n map((tabsGroupsMap: Map<string, EvoTabsGroup>) => {\n return tabsGroupsMap.get(groupName);\n }),\n distinctUntilChanged((prevTabsGroup: EvoTabsGroup, nextTabsGroup: EvoTabsGroup) => {\n return isEqual(prevTabsGroup, nextTabsGroup);\n }),\n tap((tabsGroup: EvoTabsGroup) => {\n this.tabsGroupsMap.set(groupName, cloneDeep(tabsGroup));\n }),\n );\n }\n\n getRegisteredTabsGroup(groupName: string): EvoTabsGroup {\n return this.tabsGroupsMap.get(groupName);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {EvoTabsSize} from './enums/evo-tabs-size';\n\n@Injectable()\nexport class EvoTabsSizeService {\n sizeChanges$: Observable<EvoTabsSize>;\n private readonly size$ = new BehaviorSubject<EvoTabsSize>(EvoTabsSize.normal);\n\n constructor() {\n this.sizeChanges$ = this.size$.asObservable();\n }\n\n set size(value: EvoTabsSize) {\n if (value !== this.size$.value) {\n this.size$.next(value);\n }\n }\n\n get size(): EvoTabsSize {\n return this.size$.value;\n }\n}\n","import {AfterViewInit, ChangeDetectorRef, Component, Input, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {EvoTabsService} from '../evo-tabs.service';\nimport {filter, takeUntil} from 'rxjs/operators';\nimport {EvoTabState} from '../evo-tab-state.collection';\nimport {NavigationEnd, Router, RouterLink} from '@angular/router';\nimport {Subject} from 'rxjs';\nimport {EvoTabsSizeService} from '../evo-tabs-size.service';\nimport {EvoTabsSize} from '../enums/evo-tabs-size';\nimport {EvoUiClassDirective} from '../../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-tab, [evoTab]',\n templateUrl: './evo-tab.component.html',\n styleUrls: ['./evo-tab.component.scss'],\n standalone: true,\n imports: [EvoUiClassDirective],\n})\nexport class EvoTabComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() name: string;\n\n selected = false;\n size = this.sizeService.size;\n\n private _groupName: string;\n private readonly destroy$ = new Subject<void>();\n\n constructor(\n private readonly tabsService: EvoTabsService,\n private readonly cd: ChangeDetectorRef,\n private readonly sizeService: EvoTabsSizeService,\n @Optional() private readonly routerLink: RouterLink,\n @Optional() private readonly routerLinkWithHref: RouterLink,\n @Optional() private readonly router: Router,\n ) {}\n\n set groupName(tabGroupId: string) {\n this._groupName = tabGroupId;\n this.subscribeToTabChanges();\n }\n\n get groupName(): string {\n return this._groupName;\n }\n\n get wrapperClasses(): {[cssClass: string]: boolean} {\n return {\n selected: this.selected,\n 'size-small': this.size === EvoTabsSize.small,\n };\n }\n\n ngOnInit() {\n this.subscribeOnNavigationEnd();\n }\n\n ngAfterViewInit(): void {\n this.initByUrl();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onChangeTabClick() {\n this.setTabActive();\n }\n\n private initByUrl(): void {\n const urlTree = this.routerLink?.urlTree || this.routerLinkWithHref?.urlTree;\n if (!(urlTree && this.router.isActive(urlTree, true))) {\n return;\n }\n this.setTabActive();\n }\n\n private setTabActive() {\n this.tabsService.setTab(this.groupName, this.name);\n }\n\n private subscribeOnNavigationEnd() {\n this.router?.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n takeUntil(this.destroy$),\n )\n .subscribe(() => this.initByUrl());\n }\n\n private subscribeToTabChanges() {\n this.tabsService\n .getTabEventsSubscription(this.groupName, this.name)\n .pipe(takeUntil(this.destroy$))\n .subscribe((data: EvoTabState) => {\n this.selected = data.isActive;\n this.cd.detectChanges();\n });\n }\n}\n","<div class=\"evo-tab\" [evoUiClass]=\"wrapperClasses\" (click)=\"onChangeTabClick()\">\n <ng-content />\n</div>\n","import {AfterContentChecked, Component, ContentChildren, Input, OnInit, QueryList} from '@angular/core';\nimport {EvoTabsService} from './evo-tabs.service';\nimport {EvoTabComponent} from './evo-tab/evo-tab.component';\nimport {EvoTabState} from './evo-tab-state.collection';\nimport {isEqual} from 'lodash-es';\nimport {EvoTabsSizeService} from './evo-tabs-size.service';\nimport {EvoTabsSize} from './enums/evo-tabs-size';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-tabs',\n templateUrl: './evo-tabs.component.html',\n styleUrls: ['./evo-tabs.component.scss'],\n providers: [EvoTabsSizeService],\n standalone: true,\n imports: [EvoUiClassDirective],\n})\nexport class EvoTabsComponent implements OnInit, AfterContentChecked {\n @Input() name: string;\n\n @ContentChildren(EvoTabComponent) tabComponentsList: QueryList<EvoTabComponent>;\n\n size: EvoTabsSize = EvoTabsSize.normal;\n\n get hasRegisteredTabs() {\n return this.tabsService.getRegisteredTabsGroup(this.name).tabs.length > 0;\n }\n\n get blockClasses(): {[cssClass: string]: boolean} {\n return {\n [`size-${this.size}`]: this.size !== EvoTabsSize.normal,\n };\n }\n\n constructor(\n public tabsService: EvoTabsService,\n public sizeService: EvoTabsSizeService,\n ) {}\n\n @Input('size') set setSize(size: EvoTabsSize | string) {\n if (EvoTabsSize[size]) {\n const tabsSize = EvoTabsSize[size];\n this.size = tabsSize;\n this.sizeService.size = tabsSize;\n }\n }\n\n ngOnInit() {\n this.tabsService.registerTabsGroup(this.name);\n }\n\n ngAfterContentChecked() {\n const getRegisteredTabsGroupTabs = this.tabsService.getRegisteredTabsGroup(this.name).tabs;\n\n this.tabComponentsList.forEach((tab: EvoTabComponent) => {\n // check tabs with same names\n if (\n this.tabComponentsList.filter((iteratedTab: EvoTabComponent) => iteratedTab.name === tab.name).length >\n 1\n ) {\n throw Error('[EvoUiKit]: some evo-tab components have the same name attribute!');\n }\n\n if (!tab.name) {\n throw Error('[EvoUiKit]: some evo-tab component has no name attribute!');\n }\n\n if (!getRegisteredTabsGroupTabs.hasTab(tab.name)) {\n tab.groupName = this.name;\n this.tabsService.registerTab(this.name, tab.name);\n }\n });\n\n // check redundant tabs\n const registeredTabsNames = getRegisteredTabsGroupTabs.map((tab: EvoTabState) => tab.name);\n const renderedTabsNames = this.tabComponentsList.map((tabComponent: EvoTabComponent) => tabComponent.name);\n\n if (!isEqual(registeredTabsNames, renderedTabsNames)) {\n registeredTabsNames.forEach((tabName: string) => {\n // if we have registered tab which not exists in DOM - delete it\n if (\n !renderedTabsNames.some((renderedTabName: string) => {\n return renderedTabName === tabName;\n })\n ) {\n getRegisteredTabsGroupTabs.removeTab(tabName);\n }\n });\n\n if (!!getRegisteredTabsGroupTabs.length && !getRegisteredTabsGroupTabs.getActiveTab()) {\n this.tabsService.setTab(this.name, getRegisteredTabsGroupTabs[0].name);\n }\n }\n }\n}\n","@if (hasRegisteredTabs) {\n <div class=\"evo-tabs\" [evoUiClass]=\"blockClasses\">\n <div class=\"evo-tabs__container\">\n <ng-content />\n </div>\n </div>\n}\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport {EvoTabsService} from '../evo-tabs.service';\nimport {takeUntil} from 'rxjs/operators';\nimport {EvoTabState} from '../evo-tab-state.collection';\nimport {Subject} from 'rxjs';\n\n@Component({\n selector: 'evo-tab-content, [evoTabContent]',\n templateUrl: './evo-tab-content.component.html',\n standalone: true,\n})\nexport class EvoTabContentComponent implements OnInit, OnDestroy {\n @Input() set tabsRef(tabsRef: string) {\n [this.groupName, this.tabName] = tabsRef.split('#');\n\n if (!this.groupName || !this.tabName) {\n throw Error('[EvoUiKit]: specify both group and name divided by # for evo-tab-content!');\n }\n }\n\n isActive = false;\n\n private groupName: string;\n private tabName: string;\n private readonly destroy$ = new Subject<void>();\n\n constructor(private readonly tabsService: EvoTabsService) {}\n\n ngOnInit() {\n this.tabsService\n .getTabEventsSubscription(this.groupName, this.tabName)\n .pipe(takeUntil(this.destroy$))\n .subscribe((data: EvoTabState) => {\n this.isActive = data.isActive;\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","@if (isActive) {\n <div>\n <ng-content />\n </div>\n}\n","import {NgModule} from '@angular/core';\nimport {EvoTabsComponent} from './evo-tabs.component';\nimport {EvoTabComponent} from './evo-tab/evo-tab.component';\nimport {EvoTabsService} from './evo-tabs.service';\nimport {EvoTabContentComponent} from './evo-tab-content/evo-tab-content.component';\n\n@NgModule({\n imports: [EvoTabsComponent, EvoTabComponent, EvoTabContentComponent],\n providers: [EvoTabsService],\n exports: [EvoTabsComponent, EvoTabComponent, EvoTabContentComponent],\n})\nexport class EvoTabsModule {}\n","import {Component, EventEmitter, forwardRef, Input, Output} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {EvoControlStates} from '../../common/evo-control-state-manager/evo-control-states.enum';\nimport {EvoControlErrorComponent} from '../evo-control-error/evo-control-error.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\nimport {EvoTextareaSize} from './types/evo-textarea-size';\n\n@Component({\n selector: 'evo-textarea',\n templateUrl: './evo-textarea.component.html',\n styleUrls: ['./evo-textarea.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoTextareaComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [FormsModule, EvoUiClassDirective, EvoControlErrorComponent],\n})\nexport class EvoTextareaComponent extends EvoBaseControl implements ControlValueAccessor {\n @Input() size: EvoTextareaSize = 'normal';\n @Input() placeholder = '';\n @Input() rows = 3;\n\n @Output() blur = new EventEmitter<void>();\n\n _value: string;\n disabled = false;\n focused = false;\n\n get value(): string {\n return this._value;\n }\n\n get textareaClasses(): {[cssClass: string]: boolean} {\n return {\n focused: this.focused,\n disabled: this.disabled,\n valid: this.currentState[EvoControlStates.valid],\n invalid: this.currentState[EvoControlStates.invalid],\n [`size_${this.size}`]: this.size !== 'normal',\n };\n }\n\n set value(value: string) {\n this._value = value.trim();\n this.onChange(this.value);\n }\n\n onFocus(): void {\n if (!this.focused) {\n this.focused = true;\n }\n }\n\n onBlur(): void {\n this.focused = false;\n this.onTouched();\n this.blur.emit();\n }\n\n onChange = (_) => {};\n onTouched = () => {};\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: string): void {\n this.value = value;\n }\n}\n","<textarea\n class=\"evo-textarea\"\n [evoUiClass]=\"textareaClasses\"\n [placeholder]=\"placeholder\"\n [rows]=\"rows\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n></textarea>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n","import {NgModule} from '@angular/core';\nimport {EvoTextareaComponent} from './evo-textarea.component';\n\n@NgModule({\n imports: [EvoTextareaComponent],\n exports: [EvoTextareaComponent],\n})\nexport class EvoTextareaModule {}\n","import {Injectable, TemplateRef} from '@angular/core';\nimport {EvoToastTypes} from './evo-toast.component';\nimport {Subject} from 'rxjs';\n\nexport interface EvoToast {\n type?: EvoToastTypes;\n message?: string;\n // eslint-disable-next-line\n templateRef?: TemplateRef<any>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EvoToastService {\n\n pushEvents: Subject<EvoToast> = new Subject<EvoToast>();\n\n private isComponentRegistered = false;\n private isToastInProgress = false;\n private queue: EvoToast[] = [];\n\n constructor() {\n\n }\n\n force(toast: EvoToast) {\n this.queue = [toast];\n this.isToastInProgress = true;\n this.pushEvents.next(toast);\n }\n\n push(toast: EvoToast) {\n this.queue.push(toast);\n\n if (!this.isToastInProgress) {\n this.isToastInProgress = true;\n this.pushEvents.next(this.queue[0]);\n }\n }\n\n toastComplete() {\n this.queue.shift();\n\n if (this.queue.length) {\n this.pushEvents.next(this.queue[0]);\n } else {\n this.isToastInProgress = false;\n }\n }\n\n register() {\n if (this.isComponentRegistered) {\n throw Error('[EvoUiKit]: Another evo-toast already registered. Only one toast component available in app!');\n } else {\n this.isComponentRegistered = true;\n }\n }\n}\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {EvoToast, EvoToastService} from './evo-toast.service';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {delay, filter, map, mergeMap, take, tap} from 'rxjs/operators';\nimport {BehaviorSubject, of, Subscription} from 'rxjs';\nimport {EvoIconComponent} from '../evo-icon/evo-icon.component';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\nexport enum EvoToastTypes {\n DEFAULT = 'default',\n DANGER = 'danger',\n SUCCESS = 'success',\n}\n\n@Component({\n selector: 'evo-toast',\n templateUrl: './evo-toast.component.html',\n styleUrls: ['./evo-toast.component.scss'],\n animations: [\n trigger('appear', [\n transition('void => in', [\n style({\n bottom: '-100px',\n }),\n animate(\n '250ms cubic-bezier(0, 0, 0.2, 1.40)',\n style({\n bottom: '32px',\n }),\n ),\n ]),\n transition('in => void', [\n animate(\n '250ms ease-in',\n style({\n bottom: '-100px',\n }),\n ),\n ]),\n ]),\n ],\n standalone: true,\n imports: [EvoUiClassDirective, NgTemplateOutlet, EvoIconComponent],\n})\nexport class EvoToastComponent implements OnInit {\n toast: EvoToast;\n\n private $appearTimeout: Subscription;\n private isForced = false;\n private readonly isOpen$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly toastService: EvoToastService,\n private readonly cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.toastService.register();\n this.subscribeToToastPushes();\n }\n\n handleAnimationDone() {\n if (this.toast) {\n this.$appearTimeout = of({})\n .pipe(delay(5000))\n .subscribe(() => {\n this.toast = null;\n this.cdr.detectChanges();\n });\n } else if (!this.isForced) {\n this.toastService.toastComplete();\n }\n\n this.isOpen$.next(!!this.toast);\n }\n\n close() {\n this.$appearTimeout.unsubscribe();\n this.toast = null;\n this.cdr.detectChanges();\n }\n\n private subscribeToToastPushes() {\n this.toastService.pushEvents\n .pipe(\n tap(() => {\n this.toast = null;\n\n if (this.$appearTimeout && !this.$appearTimeout.closed) {\n this.isForced = true;\n this.$appearTimeout.unsubscribe();\n }\n }),\n mergeMap((toast: EvoToast) => {\n return this.isOpen$.pipe(\n filter((isOpen: boolean) => !isOpen),\n take(1),\n map(() => toast),\n );\n }),\n )\n .subscribe((toast: EvoToast) => {\n this.toast = toast;\n this.isForced = false;\n this.cdr.detectChanges();\n });\n }\n}\n","@if (toast) {\n <div class=\"evo-toast__wrapper\" [@appear]=\"toast ? 'in' : null\" (@appear.done)=\"handleAnimationDone()\">\n <div class=\"evo-toast\" [evoUiClass]=\"toast?.type || ''\">\n @if (toast?.message) {\n <div class=\"evo-toast__message\" [innerHTML]=\"toast?.message\"></div>\n }\n\n @if (toast?.templateRef) {\n <div class=\"evo-toast__message\">\n <ng-container [ngTemplateOutlet]=\"toast?.templateRef\" />\n </div>\n }\n\n <evo-icon shape=\"close\" class=\"evo-toast__close\" (click)=\"close()\" />\n </div>\n </div>\n}\n","import {NgModule} from '@angular/core';\nimport {EvoToastComponent} from './evo-toast.component';\n\n@NgModule({\n imports: [EvoToastComponent],\n exports: [EvoToastComponent],\n})\nexport class EvoToastModule {}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-toggle',\n templateUrl: './evo-toggle.component.html',\n styleUrls: ['./evo-toggle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoToggleComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [EvoUiClassDirective, FormsModule],\n})\nexport class EvoToggleComponent implements ControlValueAccessor {\n isDisabled = false;\n\n private _value: boolean;\n\n constructor(private readonly changeDetector: ChangeDetectorRef) {}\n\n get value(): boolean {\n return this._value;\n }\n\n set value(value: boolean) {\n if (value !== this._value) {\n this._value = value;\n this.onChange(value);\n }\n }\n\n get totalClasses(): string[] {\n const classes: string[] = [];\n\n if (this.isDisabled) {\n classes.push('disabled');\n }\n\n return classes;\n }\n\n onChange = (_value) => {};\n onTouched = () => {};\n\n // eslint-disable-next-line\n writeValue(value: any): void {\n if (value !== this._value) {\n this._value = value;\n this.changeDetector.detectChanges();\n }\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(state: boolean): void {\n this.isDisabled = state;\n this.changeDetector.detectChanges();\n }\n}\n","<label class=\"evo-toggle\" [evoUiClass]=\"totalClasses\">\n <input type=\"checkbox\" [(ngModel)]=\"value\" [disabled]=\"isDisabled\">\n <span class=\"slider\"></span>\n</label>\n","import {NgModule} from '@angular/core';\nimport {EvoToggleComponent} from './evo-toggle.component';\n\n@NgModule({\n imports: [EvoToggleComponent],\n exports: [EvoToggleComponent],\n})\nexport class EvoToggleModule {}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {isUndefined} from 'lodash-es';\n\n@Pipe({\n name: 'declination',\n standalone: true,\n})\nexport class DeclinationPipe implements PipeTransform {\n transform(value: number | string, titles: string[], noNum: boolean = false): string {\n if (isUndefined(value)) {\n return null;\n }\n\n const preparedValue: number | string = typeof value === 'string' ? (value as string).replace(',', '.') : value;\n\n let result = null;\n let count = +preparedValue % 100;\n if (count >= 5 && count <= 20) {\n result = titles['2'];\n } else {\n count = count % 10;\n if (count === 1) {\n result = titles['0'];\n } else if (count >= 2 && count <= 4) {\n result = titles['1'];\n } else {\n result = titles['2'];\n }\n }\n return noNum ? result : preparedValue + ' ' + result;\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Injector,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n} from '@angular/forms';\nimport autobind from 'autobind-decorator';\nimport bytes from 'bytes';\nimport * as mime from 'mime';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {SafeHtmlPipe} from '../../pipes/safe-html.pipe';\nimport {DeclinationPipe} from '../../pipes/declination.pipe';\nimport {EvoButtonComponent} from '../evo-button/components/evo-button/evo-button.component';\nimport {EvoNoteComponent} from '../evo-note/evo-note.component';\nimport {EvoIconComponent} from '../evo-icon/evo-icon.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\nexport interface EvoUploadItemClickEvent {\n file: File;\n index: number;\n}\n\n@Component({\n selector: 'evo-upload',\n styleUrls: ['./evo-upload.component.scss'],\n templateUrl: './evo-upload.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoUploadComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [\n EvoUiClassDirective,\n EvoIconComponent,\n EvoNoteComponent,\n EvoButtonComponent,\n DeclinationPipe,\n SafeHtmlPipe,\n ],\n})\nexport class EvoUploadComponent extends EvoBaseControl implements ControlValueAccessor, AfterContentInit, OnInit {\n @Input() set accept(extensions: string) {\n if (extensions) {\n this.acceptedMimeTypes = extensions.split(',').map((extension) => mime.getType(extension));\n }\n }\n @Input() dropZoneLabel = 'Перетащите сюда файлы для загрузки';\n @Input() dropZoneHint: string;\n @Input() hideClearButton = false;\n @Input() hideSubmitButton = false;\n @Input() clickableFiles = false;\n @Input() earlyValidation = false;\n\n @Input() set fileSizeLimit(fileSize: string) {\n this.filesSizeLimitText = fileSize;\n this.filesSizeLimitInBytes = bytes(fileSize);\n }\n\n @Input() maxFiles: number;\n @Input() loading = false;\n\n @Output() submit = new EventEmitter<FileList>();\n @Output() addFiles = new EventEmitter<FileList>();\n @Output() remove = new EventEmitter<number>();\n @Output() clickFile = new EventEmitter<EvoUploadItemClickEvent>();\n\n @ViewChild('inputFile') inputFileElement: ElementRef;\n\n isDisabled = false;\n filesForm = this.formBuilder.array([], [this.maxFilesValidator]);\n filesSizeLimitText: string;\n filesSizeLimitInBytes: number;\n states = {\n isDragOver: false,\n };\n acceptedMimeTypes: string[];\n\n constructor(\n private readonly formBuilder: UntypedFormBuilder,\n protected injector: Injector,\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscribeOnFormChanges();\n }\n\n ngAfterContentInit() {\n this.mergeControlsErrors();\n }\n\n onChange = (value) => {};\n onTouched = () => {};\n\n registerOnChange(fn: () => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.isDisabled = isDisabled;\n\n if (!isDisabled) {\n this.mergeControlsErrors();\n }\n }\n\n writeValue(fileList: FileList | File[]) {\n if (fileList && fileList.length > 0) {\n if (fileList instanceof Array || fileList instanceof FileList) {\n this.wipeUploadList();\n if (this.earlyValidation) {\n this.earlyValidationFn(fileList);\n if (this.filesForm.errors) {\n return;\n }\n }\n this.processFiles(fileList as FileList);\n } else {\n throw Error(\n '[EvoUiKit]: wrong initial value passed to \"evo-upload\" component. Only FileList and File[] are allowed',\n );\n }\n }\n }\n\n getControlError(control: AbstractControl): string {\n if (!control.errors) {\n return null;\n }\n\n return Object.keys(control.errors)[0];\n }\n\n handleDragOver(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.loading) {\n return;\n }\n this.states.isDragOver = true;\n }\n\n handleDragLeave(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this.states.isDragOver = false;\n }\n\n handleDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n const files = event.dataTransfer.files;\n\n this.states.isDragOver = false;\n if (files.length) {\n if (this.earlyValidation) {\n this.earlyValidationFn(files);\n if (this.filesForm.errors) {\n return;\n }\n }\n this.addFiles.emit(files);\n this.processFiles(files);\n }\n }\n\n handleItemRemove(index) {\n if (this.loading || this.isDisabled) {\n return;\n }\n this.filesForm.removeAt(index);\n this.remove.emit(index);\n }\n\n handleResetButtonClick() {\n if (this.loading || this.isDisabled) {\n return;\n }\n\n this.wipeUploadList();\n }\n\n handleSubmitButtonClick() {\n this.submit.emit(this.filesForm.value);\n }\n\n inputChange(files: FileList) {\n if (this.earlyValidation) {\n this.earlyValidationFn(files);\n if (this.filesForm.errors) {\n return;\n }\n }\n this.addFiles.emit(files);\n this.processFiles(files);\n }\n\n earlyValidationFn(files: FileList | File[]) {\n this.filesForm.setErrors(null);\n const filesArray = Array.from(files);\n const errors = [];\n if (this.maxFiles && this.isFilesLengthValid(filesArray)) {\n errors.push({maxFiles: true});\n }\n if (this.filesSizeLimitInBytes && !this.isFilesSizeValid(filesArray)) {\n errors.push({size: true});\n }\n if (this.acceptedMimeTypes && !this.isFilesExtensionValid(filesArray)) {\n errors.push({extension: true});\n }\n if (errors.length) {\n this.filesForm.setErrors(Object.assign({}, ...errors));\n this.mergeControlsErrors();\n }\n }\n\n isFilesLengthValid(files: File[]): boolean {\n return this.maxFiles < files.length + this.filesForm.controls.length;\n }\n\n isFilesSizeValid(files: File[]): boolean {\n return !files.some(({size}) => this.filesSizeLimitInBytes < size);\n }\n\n isFilesExtensionValid(files: File[]): boolean {\n return files.every(({type}) => {\n return this.acceptedMimeTypes.includes(type);\n });\n }\n\n processFiles(files: FileList) {\n if (this.loading) {\n return;\n }\n\n Array.from(files).forEach((file: File) => {\n // tslint:disable:no-for-each-push\n this.filesForm.push(new UntypedFormControl(file, [this.fileExtensionValidator, this.fileSizeValidator]));\n });\n\n if (this.inputFileElement && this.inputFileElement.nativeElement) {\n this.inputFileElement.nativeElement.value = '';\n }\n }\n\n wipeUploadList() {\n while (this.filesForm.controls.length) {\n this.filesForm.removeAt(0);\n }\n }\n\n private mergeControlsErrors() {\n if (!this.control) {\n return;\n }\n\n const errors = Object.assign({}, this.filesForm.errors);\n this.filesForm.controls.forEach((control: UntypedFormControl) => {\n Object.assign(errors, control.errors);\n });\n this.control.setErrors(Object.keys(errors).length ? errors : null);\n }\n\n private subscribeOnFormChanges() {\n this.filesForm.valueChanges.subscribe((value) => {\n this.onChange(value);\n this.mergeControlsErrors();\n });\n }\n\n @autobind\n private fileSizeValidator(control: AbstractControl) {\n if (!this.filesSizeLimitInBytes) {\n return null;\n }\n\n return control.value.size > this.filesSizeLimitInBytes ? {size: true} : null;\n }\n\n @autobind\n private fileExtensionValidator(control: AbstractControl) {\n if (!this.acceptedMimeTypes) {\n return null;\n }\n\n const fileType = (control.value as File).type;\n const isExtensionAllowed = this.acceptedMimeTypes.includes(fileType);\n\n return isExtensionAllowed ? null : {extension: true};\n }\n\n @autobind\n private maxFilesValidator(control: UntypedFormArray) {\n if (!this.maxFiles) {\n return;\n }\n\n return control.controls.length > this.maxFiles ? {maxFiles: true} : null;\n }\n}\n","<div class=\"evo-upload\">\n <label\n class=\"evo-upload__wrapper\"\n [evoUiClass]=\"{over: states.isDragOver, disabled: isDisabled || loading}\"\n (click)=\"onTouched()\"\n (dragover)=\"handleDragOver($event)\"\n (dragleave)=\"handleDragLeave($event)\"\n (drop)=\"handleDrop($event)\"\n >\n <evo-icon shape=\"upload\" class=\"evo-upload__upload-icon\" [evoUiClass]=\"{disabled: isDisabled || loading}\" />\n <span class=\"evo-upload__title\" [evoUiClass]=\"{disabled: isDisabled || loading}\">{{ dropZoneLabel }}</span>\n\n <span class=\"evo-upload__hint\" [evoUiClass]=\"{disabled: isDisabled || loading}\">\n или\n <span class=\"evo-upload__fake-link\" [evoUiClass]=\"{disabled: isDisabled || loading}\">загрузите</span>\n @if (dropZoneHint) {\n (\n <span class=\"evo-upload__additional-hint\" [innerHTML]=\"dropZoneHint | safeHtml\"></span>\n )\n }\n </span>\n\n <input\n #inputFile\n type=\"file\"\n class=\"evo-upload__input\"\n [accept]=\"accept\"\n [disabled]=\"loading || isDisabled\"\n [attr.multiple]=\"maxFiles === 1 ? null : true\"\n (change)=\"inputChange($event.target.files)\"\n />\n </label>\n\n @if (!earlyValidation && filesForm.errors?.maxFiles) {\n <evo-note type=\"danger\">\n Нельзя загрузить более {{ maxFiles || 1 | declination: ['файла', 'файлов', 'файлов'] }}\n </evo-note>\n }\n\n @if (earlyValidation && filesForm.errors) {\n <evo-note type=\"danger\">\n <ul class=\"evo-list\">\n @if (filesForm.errors.maxFiles) {\n <li>Нельзя загрузить более {{ maxFiles || 1 | declination: ['файла', 'файлов', 'файлов'] }}</li>\n }\n\n @if (filesForm.errors.size) {\n <li>Максимальный размер одного файла не более {{ filesSizeLimitText }}</li>\n }\n\n @if (filesForm.errors.extension) {\n <li>Выбран файл недопустимого формата</li>\n }\n </ul>\n </evo-note>\n }\n\n <ul class=\"evo-upload__list\">\n @for (file of filesForm.controls; track file.value.name; let i = $index) {\n <li class=\"evo-upload__list-item\">\n <div class=\"evo-upload__item-inner\">\n <evo-icon shape=\"file\" svgWidth=\"24\" svgHeight=\"24\" class=\"evo-upload__file-icon\" />\n @if (clickableFiles) {\n <span class=\"evo-upload__link evo-link\" (click)=\"clickFile.emit({file: file.value, index: i})\">\n {{ file.value.name }}\n </span>\n } @else {\n <span>{{ file.value.name }}</span>\n }\n </div>\n <evo-icon\n shape=\"decline\"\n svgWidth=\"24\"\n svgHeight=\"24\"\n class=\"evo-upload__button-remove\"\n [evoUiClass]=\"{disabled: loading || isDisabled}\"\n (click)=\"handleItemRemove(i)\"\n />\n <div class=\"evo-upload__list-delimiter\" [evoUiClass]=\"{error: filesForm.controls[i].errors}\">\n @switch (getControlError(filesForm.controls[i])) {\n @case ('size') {\n Размер файла превышает допустимый\n }\n @case ('extension') {\n Неверный формат файла\n }\n }\n </div>\n </li>\n }\n </ul>\n\n @if (filesForm.controls.length) {\n <div class=\"evo-upload__controls\">\n @if (!hideClearButton) {\n <button\n evoButton\n color=\"secondary\"\n theme=\"rounded-outline\"\n [disabled]=\"loading || isDisabled\"\n [loading]=\"loading\"\n (click)=\"handleResetButtonClick()\"\n >\n Удалить всё\n </button>\n }\n\n @if (!hideSubmitButton) {\n <button\n evoButton\n color=\"success\"\n class=\"evo-upload__submit\"\n [disabled]=\"filesForm.invalid || loading || isDisabled\"\n [loading]=\"loading\"\n (click)=\"handleSubmitButtonClick()\"\n >\n Загрузить\n </button>\n }\n </div>\n }\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoUploadComponent} from './evo-upload.component';\n\n@NgModule({\n imports: [EvoUploadComponent],\n exports: [EvoUploadComponent],\n})\nexport class EvoUploadModule {}\n","import {ConnectedPosition} from '@angular/cdk/overlay';\nimport {EvoDropdownPositions} from './types/evo-dropdown-positions';\n\nexport const EVO_DROPDOWN_POSITION_DESCRIPTION: Record<EvoDropdownPositions, ConnectedPosition> = {\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n 'top-center': {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n 'bottom-center': {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n },\n 'left-center': {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n 'right-center': {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n ViewContainerRef,\n} from '@angular/core';\nimport {EvoDropdownOriginDirective} from './evo-dropdown-origin.directive';\nimport {CdkConnectedOverlay, ConnectedPosition} from '@angular/cdk/overlay';\nimport {EVO_DROPDOWN_POSITION_DESCRIPTION} from './evo-dropdown-position-description';\nimport {EvoDropdownPositions} from './types/evo-dropdown-positions';\nimport {fromEvent, Subject, Subscription} from 'rxjs';\nimport {filter, take, takeUntil, throttleTime} from 'rxjs/operators';\n\ntype Position = EvoDropdownPositions | ConnectedPosition;\n\nconst DEFAULT_POSITION = [EVO_DROPDOWN_POSITION_DESCRIPTION['bottom-right']];\n\n@Component({\n selector: 'evo-dropdown',\n templateUrl: './evo-dropdown.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CdkConnectedOverlay],\n})\nexport class EvoDropdownComponent implements OnDestroy {\n @Input() closeOnOutsideClick = true;\n @Input() scrollStrategy: 'noop' | 'close' = 'close';\n @Input() dropdownOrigin!: EvoDropdownOriginDirective;\n\n @Output() isOpenChange = new EventEmitter<boolean>();\n @Output() outsideClick = new EventEmitter<MouseEvent>();\n\n connectedPositions: ConnectedPosition[] = DEFAULT_POSITION;\n\n private scrollEventSubscription: Subscription;\n private readonly destroy$ = new Subject<void>();\n private _isOpen = false;\n\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n @Input() set isOpen(value: boolean) {\n this._isOpen = value;\n\n if (value) {\n this.listenScroll();\n }\n }\n\n @Input() set positions(value: Position[] | Position) {\n this.connectedPositions = value\n ? [].concat(value).map((p) => EVO_DROPDOWN_POSITION_DESCRIPTION[p] || p)\n : DEFAULT_POSITION;\n }\n\n private get element(): HTMLElement | null {\n if (!this.viewContainerRef) {\n return;\n }\n\n return this.viewContainerRef?.element instanceof ElementRef\n ? (this.viewContainerRef.element?.nativeElement as HTMLElement)\n : (this.viewContainerRef.element as HTMLElement);\n }\n\n constructor(\n protected readonly viewContainerRef: ViewContainerRef,\n private readonly ngZone: NgZone,\n private readonly cdr: ChangeDetectorRef,\n ) {}\n\n toggle(): void {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n open(): void {\n if (this.isOpen) {\n return;\n }\n\n this.isOpen = true;\n this.isOpenChange.emit(this.isOpen);\n this.cdr.detectChanges();\n }\n\n close(): void {\n if (!this.isOpen) {\n return;\n }\n\n this.isOpen = false;\n this.isOpenChange.emit(this.isOpen);\n\n if (this.scrollEventSubscription && !this.scrollEventSubscription.closed) {\n this.scrollEventSubscription.unsubscribe();\n }\n\n this.cdr.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.unsubscribe();\n }\n\n onOverlayOutsideClick(event: MouseEvent): void {\n this.outsideClick.emit(event);\n\n const originNativeElement = this.dropdownOrigin?.elementRef?.nativeElement;\n\n // check if origin is clicked through overlay\n if (this.closeOnOutsideClick && !originNativeElement?.contains(event.target)) {\n this.close();\n }\n }\n\n /**\n * Listens to the scroll in the dropdown container and closes it\n */\n private listenScroll() {\n if (this.scrollStrategy === 'noop') {\n return;\n }\n\n this.scrollEventSubscription = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'scroll', {capture: true})\n .pipe(\n throttleTime(10),\n filter((scrollEvent: Event) => {\n return (\n (scrollEvent.target instanceof HTMLElement || scrollEvent.target instanceof HTMLDocument) &&\n (scrollEvent.target.contains(this.element) || !this.element)\n );\n }),\n take(1),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.ngZone.run(() => {\n this.close();\n });\n });\n });\n }\n}\n","<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"dropdownOrigin\"\n [cdkConnectedOverlayPositions]=\"connectedPositions\"\n (detach)=\"close()\"\n (overlayOutsideClick)=\"onOverlayOutsideClick($event)\"\n>\n <ng-content />\n</ng-template>\n","import {ChangeDetectorRef, Directive, ElementRef} from '@angular/core';\nimport {CdkOverlayOrigin} from '@angular/cdk/overlay';\n\n@Directive({\n selector: '[evoDropdownOrigin]',\n exportAs: 'evoDropdownOrigin',\n standalone: true,\n})\nexport class EvoDropdownOriginDirective extends CdkOverlayOrigin {\n get isDropdownOpen(): boolean {\n return this._isDropdownOpen;\n }\n\n set isDropdownOpen(value: boolean) {\n this._isDropdownOpen = value;\n this.cdr.markForCheck();\n }\n private _isDropdownOpen = false;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n elementRef: ElementRef,\n ) {\n super(elementRef);\n }\n\n open(): void {\n this.isDropdownOpen = true;\n }\n\n close(): void {\n this.isDropdownOpen = false;\n }\n\n toggle(): void {\n if (this.isDropdownOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n}\n","import {NgModule} from '@angular/core';\nimport {EvoDropdownComponent} from './evo-dropdown.component';\nimport {EvoDropdownOriginDirective} from './evo-dropdown-origin.directive';\n\n@NgModule({\n imports: [EvoDropdownComponent, EvoDropdownOriginDirective],\n exports: [EvoDropdownComponent, EvoDropdownOriginDirective],\n})\nexport class EvoDropdownModule {}\n","export const CSS_BREAKPOINTS = {\n mobile: 500,\n tablet: 768,\n desktopS: 992,\n desktopM: 1200,\n desktopL: 1680,\n desktopXL: 2500,\n};\n","import {InjectionToken, Provider} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {BreakpointObserver} from '@angular/cdk/layout';\nimport {map} from 'rxjs/operators';\nimport {CSS_BREAKPOINTS} from './css-breakpoints';\n\nexport const MOBILE_VIEW = new InjectionToken<Observable<boolean>>('MOBILE_VIEW');\n\nexport const MobileViewProvider: Provider = {\n provide: MOBILE_VIEW,\n useFactory: (breakpointObserver: BreakpointObserver) =>\n breakpointObserver.observe(`(max-width: ${ CSS_BREAKPOINTS.tablet - 1 }px)`).pipe(map((breakpointState) => breakpointState.matches)),\n deps: [BreakpointObserver],\n};\n\nexport const TABLET_VIEW = new InjectionToken<Observable<boolean>>('TABLET_VIEW');\n\nexport const TabletViewProvider: Provider = {\n provide: TABLET_VIEW,\n useFactory: (breakpointObserver: BreakpointObserver) =>\n breakpointObserver.observe(`(min-width: ${ CSS_BREAKPOINTS.tablet }px)`).pipe(map((breakpointState) => breakpointState.matches)),\n deps: [BreakpointObserver],\n};\n\nexport const DESKTOP_SMALL_VIEW = new InjectionToken<Observable<boolean>>('DESKTOP_SMALL_VIEW');\n\nexport const DesktopSmallViewProvider: Provider = {\n provide: DESKTOP_SMALL_VIEW,\n useFactory: (breakpointObserver: BreakpointObserver) =>\n breakpointObserver.observe(`(min-width: ${ CSS_BREAKPOINTS.desktopS }px)`).pipe(map((breakpointState) => breakpointState.matches)),\n deps: [BreakpointObserver],\n};\n\nexport const VIEW_BREAKPOINTS_PROVIDERS = [MobileViewProvider, TabletViewProvider, DesktopSmallViewProvider];\n","import {ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewChild} from '@angular/core';\nimport {ConnectedPosition} from '@angular/cdk/overlay';\nimport {EvoDropdownOriginDirective} from '../../evo-dropdown';\nimport {NavItem} from '../types/nav-item';\nimport {EvoDropdownComponent} from '../../evo-dropdown/evo-dropdown.component';\nimport {RouterLink, RouterLinkActive} from '@angular/router';\nimport {NgFor, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {EvoLetDirective} from '../../../directives/evo-let/evo-let.directive';\nimport {NavItemMainInfo} from '../interfaces/nav-item-main-info';\nimport {NavItemHref} from '../interfaces/nav-item.href';\n\n@Component({\n selector: 'evo-navbar-item',\n templateUrl: './evo-navbar-item.component.html',\n styleUrls: ['./evo-navbar-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n EvoLetDirective,\n NgIf,\n EvoDropdownOriginDirective,\n NgTemplateOutlet,\n RouterLink,\n RouterLinkActive,\n EvoDropdownComponent,\n NgFor,\n ],\n})\nexport class EvoNavbarItemComponent {\n @Input() item!: NavItem;\n /**\n * Is a secondary link\n */\n @Input() isNested?: boolean;\n @Input() isMobileView?: boolean;\n @Input() subMenuPositions?: ConnectedPosition[];\n @Input() closeOnOutsideClick = true;\n @Input() closeOnMouseLeave = true;\n\n @Output() openSubMenu = new EventEmitter<EvoDropdownOriginDirective>();\n @Output() closeSubMenu = new EventEmitter<EvoDropdownOriginDirective>();\n\n @ViewChild('origin') dropdownOrigin: EvoDropdownOriginDirective;\n\n @HostBinding('attr.id') get id(): NavItem['id'] {\n return this.item.id || '';\n }\n\n @HostBinding('class') get ngClass(): NavItem['ngClass'] {\n return this.item.ngClass;\n }\n\n toggle(): void {\n if (this.isSubMenuOpen()) {\n this.closeSubMenu.emit(this.dropdownOrigin);\n } else {\n this.openSubMenu.emit(this.dropdownOrigin);\n }\n }\n\n open(): void {\n if (!this.isSubMenuOpen()) {\n this.openSubMenu.emit(this.dropdownOrigin);\n }\n }\n\n close(): void {\n if (this.isSubMenuOpen()) {\n this.closeSubMenu.emit(this.dropdownOrigin);\n }\n }\n\n isSubMenuOpen() {\n return this.dropdownOrigin.isDropdownOpen;\n }\n\n protected isNativeLink(item: NavItem): item is NavItemMainInfo & NavItemHref {\n return 'href' in item;\n }\n}\n","<ng-container *evoLet=\"isMobileView && !!item.subItems?.length as isRootItemJustOpenSubMenu\">\n @if (isNativeLink(item)) {\n @if (isRootItemJustOpenSubMenu) {\n <span\n #origin=\"evoDropdownOrigin\"\n evoDropdownOrigin\n class=\"evo-navbar__link evo-navbar__link_external\"\n [class.evo-navbar__link_highlighted]=\"origin.isDropdownOpen\"\n (click)=\"toggle()\"\n (mouseleave)=\"closeOnMouseLeave && close()\"\n >\n <span class=\"evo-navbar__link-title\">{{ item.title }}</span>\n\n <ng-container *ngTemplateOutlet=\"subNav; context: {origin: origin}\" />\n </span>\n } @else {\n <a\n #origin=\"evoDropdownOrigin\"\n evoDropdownOrigin\n class=\"evo-navbar__link evo-navbar__link_external\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target\"\n [class.evo-navbar__link_nested]=\"isNested\"\n [class.evo-navbar__link_highlighted]=\"origin.isDropdownOpen\"\n (mouseenter)=\"open()\"\n (mouseleave)=\"closeOnMouseLeave && close()\"\n >\n <span class=\"evo-navbar__link-title\">{{ item.title }}</span>\n\n <ng-container *ngTemplateOutlet=\"subNav; context: {origin: origin}\" />\n </a>\n }\n } @else {\n @if (isRootItemJustOpenSubMenu) {\n <span\n #origin=\"evoDropdownOrigin\"\n evoDropdownOrigin\n class=\"evo-navbar__link\"\n [class.evo-navbar__link_highlighted]=\"origin.isDropdownOpen\"\n (click)=\"toggle()\"\n (mouseleave)=\"closeOnMouseLeave && close()\"\n >\n <span class=\"evo-navbar__link-title\">{{ item.title }}</span>\n\n <ng-container *ngTemplateOutlet=\"subNav; context: {origin: origin}\" />\n </span>\n } @else {\n <a\n #origin=\"evoDropdownOrigin\"\n evoDropdownOrigin\n class=\"evo-navbar__link\"\n [class.evo-navbar__link_nested]=\"isNested\"\n [class.evo-navbar__link_highlighted]=\"origin.isDropdownOpen\"\n [routerLink]=\"item.routerLink\"\n [routerLinkActive]=\"isNested ? ['evo-navbar__link_active'] : []\"\n [routerLinkActiveOptions]=\"{exact: !!item.isExactPath}\"\n [preserveFragment]=\"!!item.preserveFragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [fragment]=\"item.fragment\"\n [queryParams]=\"item.queryParams\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n (mouseenter)=\"open()\"\n (mouseleave)=\"closeOnMouseLeave && close()\"\n >\n <span class=\"evo-navbar__link-title\">{{ item.title }}</span>\n\n <ng-container *ngTemplateOutlet=\"subNav; context: {origin: origin}\" />\n </a>\n }\n }\n</ng-container>\n\n<ng-template #subNav let-origin=\"origin\">\n @if (item.subItems?.length) {\n <evo-dropdown\n [positions]=\"subMenuPositions\"\n [dropdownOrigin]=\"origin\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n [(isOpen)]=\"origin.isDropdownOpen\"\n >\n <section class=\"evo-navbar__sub\" (mouseenter)=\"open()\" (mouseleave)=\"close()\">\n <div class=\"evo-navbar__sub-content\">\n @for (subItem of item.subItems; track subItem.title) {\n <evo-navbar-item\n [attr.id]=\"item.id ? item.id : ''\"\n [item]=\"subItem\"\n [isNested]=\"true\"\n [isMobileView]=\"isMobileView\"\n (click)=\"close()\"\n />\n }\n </div>\n </section>\n </evo-dropdown>\n }\n</ng-template>\n","import {ChangeDetectionStrategy, Component, Inject, Input, QueryList, ViewChildren} from '@angular/core';\nimport {ConnectedPosition} from '@angular/cdk/overlay';\nimport {Observable} from 'rxjs';\nimport {MOBILE_VIEW} from '../../common/constants/view-breakpoint-streams';\nimport {EvoDropdownOriginDirective} from '../evo-dropdown';\nimport {NavItem} from './types/nav-item';\nimport {AsyncPipe} from '@angular/common';\nimport {EvoNavbarItemComponent} from './evo-navbar-item/evo-navbar-item.component';\n\n@Component({\n selector: 'evo-navbar',\n templateUrl: './evo-navbar.component.html',\n styleUrls: ['./evo-navbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoNavbarItemComponent, AsyncPipe],\n})\nexport class EvoNavbarComponent {\n @Input() subMenuPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ];\n @Input() items!: NavItem[];\n\n @ViewChildren(EvoNavbarItemComponent) children: QueryList<EvoNavbarItemComponent>;\n\n lastOpenedSubMenu?: EvoDropdownOriginDirective;\n\n constructor(\n @Inject(MOBILE_VIEW)\n readonly isMobileView$: Observable<boolean>,\n ) {}\n\n closeLastOpenedSubMenu(): void {\n if (this.lastOpenedSubMenu) {\n this.closeSubMenu(this.lastOpenedSubMenu);\n }\n }\n\n toggleSubMenu(origin: EvoDropdownOriginDirective): void {\n if (origin.isDropdownOpen) {\n this.closeSubMenu(origin);\n } else {\n this.openSubMenu(origin);\n }\n }\n\n openSubMenu(origin: EvoDropdownOriginDirective): void {\n origin.open();\n this.lastOpenedSubMenu = origin;\n }\n\n closeSubMenu(origin: EvoDropdownOriginDirective): void {\n origin.close();\n this.lastOpenedSubMenu = undefined;\n }\n}\n","<nav class=\"evo-navbar\" (scroll)=\"closeLastOpenedSubMenu()\">\n @for (item of items; track item.title) {\n <evo-navbar-item\n [attr.id]=\"item.id ? item.id : ''\"\n [item]=\"item\"\n [isMobileView]=\"isMobileView$ | async\"\n [subMenuPositions]=\"subMenuPositions\"\n (openSubMenu)=\"openSubMenu($event)\"\n (closeSubMenu)=\"closeSubMenu($event)\"\n />\n }\n</nav>\n","import {NgModule} from '@angular/core';\nimport {EvoNavbarComponent} from './evo-navbar.component';\nimport {EvoNavbarItemComponent} from './evo-navbar-item/evo-navbar-item.component';\nimport {MobileViewProvider} from '../../common/constants/view-breakpoint-streams';\n\n@NgModule({\n imports: [EvoNavbarComponent, EvoNavbarItemComponent],\n exports: [EvoNavbarComponent],\n providers: [MobileViewProvider],\n})\nexport class EvoNavbarModule {}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {EvoIconComponent} from '../evo-icon/evo-icon.component';\n\n@Component({\n selector: 'evo-navigation-button',\n templateUrl: './evo-navigation-button.component.html',\n styleUrls: ['./evo-navigation-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoIconComponent],\n})\nexport class EvoNavigationButtonComponent {}\n","<button class=\"evo-navigation-button\">\n <div class=\"evo-navigation-button__icon-wrapper\">\n <evo-icon shape=\"chevron-left\" class=\"evo-navigation-button__icon\" />\n </div>\n <span class=\"evo-navigation-button__label\"><ng-content /></span>\n</button>\n","import {NgModule} from '@angular/core';\nimport {EvoNavigationButtonComponent} from './evo-navigation-button.component';\n\n@NgModule({\n imports: [EvoNavigationButtonComponent],\n exports: [EvoNavigationButtonComponent],\n})\nexport class EvoNavigationButtonModule {}\n","import {animate, state, style, transition, trigger} from '@angular/animations';\n\nexport const EVO_TOOLTIP_FADEIN_ANIMATION = trigger('fadeIn', [\n state('void', style({opacity: 0})),\n state('*', style({opacity: 1})),\n transition(':enter', animate('0.3s ease-in')),\n transition(':leave', animate('0.3s ease-out')),\n]);\n","export enum EvoTooltipPosition {\n TOP_START = 'top-start',\n TOP = 'top',\n TOP_END = 'top-end',\n BOTTOM_START = 'bottom-start',\n BOTTOM = 'bottom',\n BOTTOM_END = 'bottom-end',\n RIGHT_START = 'right-start',\n RIGHT = 'right',\n RIGHT_END = 'right-end',\n LEFT_START = 'left-start',\n LEFT = 'left',\n LEFT_END = 'left-end',\n}\n","// Размер стрелки тултипа\nexport const EVO_TOOLTIP_ARROW_SIZE = 16;\n","// Радиус тултипа\nexport const EVO_TOOLTIP_RADIUS = 8;\n","export enum EvoTooltipVariableArrowPosition {\n HORIZONTAL_POSITION_ARROW = '--evo-tooltip-horizontal-position-arrow',\n VERTICAL_POSITION_ARROW = '--evo-tooltip-vertical-position-arrow',\n}\n","import {EvoTooltipConfig} from '../interfaces/evo-tooltip-config';\n\nexport const EVO_TOOLTIP_CONFIG: EvoTooltipConfig = {\n hideDelay: 300,\n showDelay: 100,\n};\n","import {ConnectedPosition} from '@angular/cdk/overlay';\nimport {EvoTooltipPosition} from '../enums/evo-tooltip-position';\n\nexport const EVO_CONNECTED_POSITION = (offset: number): {[key in EvoTooltipPosition]: ConnectedPosition} => ({\n [EvoTooltipPosition.TOP]: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -offset,\n panelClass: EvoTooltipPosition.TOP,\n },\n [EvoTooltipPosition.BOTTOM]: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: offset,\n panelClass: EvoTooltipPosition.BOTTOM,\n },\n [EvoTooltipPosition.LEFT]: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -offset,\n panelClass: EvoTooltipPosition.LEFT,\n },\n [EvoTooltipPosition.RIGHT]: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: offset,\n panelClass: EvoTooltipPosition.RIGHT,\n },\n [EvoTooltipPosition.TOP_START]: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -offset,\n panelClass: EvoTooltipPosition.TOP_START,\n },\n [EvoTooltipPosition.TOP_END]: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -offset,\n panelClass: EvoTooltipPosition.TOP_END,\n },\n [EvoTooltipPosition.RIGHT_START]: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: offset,\n panelClass: EvoTooltipPosition.RIGHT_START,\n },\n [EvoTooltipPosition.RIGHT_END]: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: offset,\n panelClass: EvoTooltipPosition.RIGHT_END,\n },\n [EvoTooltipPosition.BOTTOM_END]: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: offset,\n panelClass: EvoTooltipPosition.BOTTOM_END,\n },\n [EvoTooltipPosition.BOTTOM_START]: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: offset,\n panelClass: EvoTooltipPosition.BOTTOM_START,\n },\n [EvoTooltipPosition.LEFT_END]: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -offset,\n panelClass: EvoTooltipPosition.LEFT_END,\n },\n [EvoTooltipPosition.LEFT_START]: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -offset,\n panelClass: EvoTooltipPosition.LEFT_START,\n },\n});\n","import {EvoTooltipPosition} from '../enums/evo-tooltip-position';\n\nexport const EVO_PRIORITY_POSITIONS_ORDER: {[key in EvoTooltipPosition]?: EvoTooltipPosition[]} = {\n [EvoTooltipPosition.TOP]: [EvoTooltipPosition.TOP, EvoTooltipPosition.BOTTOM],\n [EvoTooltipPosition.BOTTOM]: [EvoTooltipPosition.BOTTOM, EvoTooltipPosition.TOP],\n [EvoTooltipPosition.LEFT]: [EvoTooltipPosition.LEFT, EvoTooltipPosition.RIGHT],\n [EvoTooltipPosition.RIGHT]: [EvoTooltipPosition.RIGHT, EvoTooltipPosition.LEFT],\n};\n","import {EvoTooltipPosition} from '../enums/evo-tooltip-position';\n\nexport const EVO_DEFAULT_POSITIONS_ORDER: EvoTooltipPosition[] = [\n EvoTooltipPosition.TOP,\n EvoTooltipPosition.TOP_END,\n EvoTooltipPosition.RIGHT_START,\n EvoTooltipPosition.RIGHT,\n EvoTooltipPosition.RIGHT_END,\n EvoTooltipPosition.BOTTOM_END,\n EvoTooltipPosition.BOTTOM,\n EvoTooltipPosition.BOTTOM_START,\n EvoTooltipPosition.LEFT_END,\n EvoTooltipPosition.LEFT,\n EvoTooltipPosition.LEFT_START,\n EvoTooltipPosition.TOP_START,\n];\n","// Смещение тултипа\nexport const EVO_TOOLTIP_OFFSET = (hasArrow: boolean): number => (hasArrow ? 14 : 8);\n","import {ComponentRef, ElementRef, Injectable, Injector, TemplateRef} from '@angular/core';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayPositionBuilder,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {BehaviorSubject, EMPTY, fromEvent, merge, Observable, Subject} from 'rxjs';\nimport {catchError, debounceTime, filter, first, map} from 'rxjs/operators';\nimport {EvoTooltipConfig} from '../interfaces/evo-tooltip-config';\nimport {EVO_TOOLTIP_CONFIG} from '../constants/evo-tooltip-config';\nimport {EvoTooltipComponent} from '../evo-tooltip.component';\nimport {EvoTooltipPosition} from '../enums/evo-tooltip-position';\nimport {EVO_CONNECTED_POSITION} from '../constants/evo-tooltip-connected-position';\nimport {EVO_PRIORITY_POSITIONS_ORDER} from '../constants/evo-tooltip-priority-positions-order';\nimport {EVO_DEFAULT_POSITIONS_ORDER} from '../constants/evo-tooltip-default-positions-order';\nimport {EVO_TOOLTIP_ARROW_SIZE} from '../constants/evo-tooltip-arrow-size';\nimport {EVO_TOOLTIP_RADIUS} from '../constants/evo-tooltip-radius';\nimport {EvoTooltipStyles} from '../interfaces/evo-tooltip-styles';\nimport {EVO_TOOLTIP_OFFSET} from '../constants/evo-tooltip-offset';\n\n@Injectable()\nexport class EvoTooltipService {\n readonly stringContent$: Observable<string | null> = EMPTY;\n readonly templateContent$: Observable<TemplateRef<HTMLElement> | null> = EMPTY;\n readonly position$: Observable<EvoTooltipPosition> = EMPTY;\n readonly parentRef$: Observable<ElementRef> = EMPTY;\n readonly tooltipClasses$: Observable<string[]> = EMPTY;\n readonly styles$: Observable<EvoTooltipStyles> = EMPTY;\n readonly visibleArrow$: Observable<boolean> = EMPTY;\n readonly isOpen$: Observable<boolean> = EMPTY;\n\n private readonly _stringContent$ = new BehaviorSubject<string | null>(null);\n private readonly _templateContent$ = new BehaviorSubject<TemplateRef<HTMLElement> | null>(null);\n private readonly _position$ = new BehaviorSubject<EvoTooltipPosition>(EvoTooltipPosition.BOTTOM);\n private readonly _parentRef$ = new BehaviorSubject<ElementRef>(null);\n private readonly _tooltipClasses$ = new BehaviorSubject<string[]>([]);\n private readonly _config$ = new BehaviorSubject<EvoTooltipConfig>(EVO_TOOLTIP_CONFIG);\n private readonly _styles$ = new BehaviorSubject<EvoTooltipStyles>(null);\n private readonly _visibleArrow$ = new BehaviorSubject<boolean>(true);\n private readonly _isOpen$ = new Subject<boolean>();\n\n private overlayRef: OverlayRef;\n private positionStrategy: FlexibleConnectedPositionStrategy;\n private tooltipComponentRef: ComponentRef<EvoTooltipComponent> | null;\n private targetElement: EventTarget | null;\n\n constructor(\n private readonly overlay: Overlay,\n private readonly overlayPositionBuilder: OverlayPositionBuilder,\n private readonly injector: Injector,\n ) {\n this.stringContent$ = this._stringContent$.asObservable();\n this.templateContent$ = this._templateContent$.asObservable();\n this.position$ = this._position$.asObservable();\n this.parentRef$ = this._parentRef$.asObservable();\n this.tooltipClasses$ = this._tooltipClasses$.asObservable();\n this.styles$ = this._styles$.asObservable();\n this.visibleArrow$ = this._visibleArrow$.asObservable();\n this.isOpen$ = this._isOpen$.asObservable();\n }\n\n showTooltip(\n parentRef: ElementRef,\n content: string | TemplateRef<HTMLElement>,\n position: EvoTooltipPosition,\n config: EvoTooltipConfig,\n targetElement?: EventTarget | null,\n ): void {\n this._parentRef$.next(parentRef);\n this.targetElement = targetElement ?? null;\n\n this.setContent(content);\n this._position$.next(position);\n this._config$.next(config);\n this.createOverlay(parentRef, position);\n this.createPortal();\n\n this._isOpen$.next(this.overlayRef.hasAttached());\n this.initSubscriptions();\n }\n\n hideTooltip(): void {\n if (this.tooltipComponentRef) {\n this.tooltipComponentRef.destroy();\n this.tooltipComponentRef = null;\n }\n\n this.overlayRef?.detach();\n this._isOpen$.next(!!this.overlayRef?.hasAttached());\n }\n\n setArrowVisibility(hasArrow: boolean): void {\n this._visibleArrow$.next(hasArrow);\n }\n\n setTooltipStyles(tooltipStyles: EvoTooltipStyles): void {\n this._styles$.next(tooltipStyles);\n }\n\n setTooltipClass(tooltipClassOrClasses: string | string[]): void {\n this._tooltipClasses$.next(\n !tooltipClassOrClasses\n ? []\n : Array.isArray(tooltipClassOrClasses)\n ? tooltipClassOrClasses\n : [tooltipClassOrClasses],\n );\n }\n\n get hasAttached(): boolean {\n return this.overlayRef?.hasAttached() ?? false;\n }\n\n get config(): EvoTooltipConfig {\n return this._config$.value;\n }\n\n private get parentRef(): ElementRef {\n return this._parentRef$.value;\n }\n\n private setContent(content: string | TemplateRef<HTMLElement> | undefined): void {\n if (typeof content === 'string') {\n this._stringContent$.next(content);\n } else if (content instanceof TemplateRef) {\n this._templateContent$.next(content);\n }\n }\n\n private createOverlay(elementRef: ElementRef, position: EvoTooltipPosition): void {\n this.positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(elementRef)\n .withPositions(this.getPositions(position));\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n this.overlayRef = this.overlay.create({positionStrategy: this.positionStrategy, scrollStrategy});\n }\n\n private createPortal(): void {\n const tooltipPortal = new ComponentPortal(EvoTooltipComponent, null, this.injector);\n this.tooltipComponentRef = this.overlayRef.attach(tooltipPortal);\n }\n\n private initSubscriptions(): void {\n const parentElement = this.targetElement ? this.targetElement : this.parentRef?.nativeElement;\n const overlayElement = this.overlayRef.overlayElement;\n\n const mouseLeaveParentElement$ = fromEvent(parentElement, 'mouseleave').pipe(map(() => overlayElement));\n const mouseLeaveOverlayElement$ = fromEvent(overlayElement, 'mouseleave').pipe(map(() => parentElement));\n\n merge(mouseLeaveParentElement$, mouseLeaveOverlayElement$)\n .pipe(\n filter((element) => !element.matches(':hover')),\n debounceTime(this.config?.hideDelay ?? EVO_TOOLTIP_CONFIG.hideDelay),\n filter(() => !parentElement.matches(':hover') && !overlayElement.matches(':hover')),\n first(),\n catchError(() => {\n this.hideTooltip();\n return EMPTY;\n }),\n )\n .subscribe(() => {\n this.hideTooltip();\n });\n\n this.positionStrategy.positionChanges.subscribe((value) => {\n this._position$.next(value.connectionPair.panelClass as EvoTooltipPosition);\n });\n }\n\n private getPositions(position: EvoTooltipPosition): ConnectedPosition[] {\n return this.getPositionsOrder(position).map((key) => {\n const offset = EVO_TOOLTIP_OFFSET(this._visibleArrow$.value);\n const position = {...EVO_CONNECTED_POSITION(offset)[key]};\n const width = this.parentRef.nativeElement.offsetWidth;\n const height = this.parentRef.nativeElement.offsetHeight;\n const maxSize = EVO_TOOLTIP_ARROW_SIZE + EVO_TOOLTIP_RADIUS * 2;\n\n // Добавляем смещение тултипа для мелких обьектов\n if (width <= maxSize) {\n switch (key) {\n case EvoTooltipPosition.BOTTOM_START:\n case EvoTooltipPosition.TOP_START:\n position.offsetX = -(maxSize - width) / 2;\n break;\n case EvoTooltipPosition.BOTTOM_END:\n case EvoTooltipPosition.TOP_END:\n position.offsetX = (maxSize - width) / 2;\n break;\n }\n }\n\n // Добавляем смещение тултипа для мелких обьектов\n if (height <= maxSize) {\n switch (key) {\n case EvoTooltipPosition.LEFT_START:\n case EvoTooltipPosition.RIGHT_START:\n position.offsetY = -(maxSize - height) / 2;\n break;\n case EvoTooltipPosition.LEFT_END:\n case EvoTooltipPosition.RIGHT_END:\n position.offsetY = (maxSize - height) / 2;\n break;\n }\n }\n\n return position;\n });\n }\n\n private getPositionsOrder(position: EvoTooltipPosition): EvoTooltipPosition[] {\n const priorityPositions = EVO_PRIORITY_POSITIONS_ORDER[position];\n\n if (priorityPositions) {\n return [\n ...priorityPositions,\n ...EVO_DEFAULT_POSITIONS_ORDER.filter(\n (defaultPosition) => !priorityPositions.includes(defaultPosition),\n ),\n ];\n }\n\n const indexPositionKey: number = EVO_DEFAULT_POSITIONS_ORDER.indexOf(position);\n return EVO_DEFAULT_POSITIONS_ORDER.slice(indexPositionKey).concat(\n EVO_DEFAULT_POSITIONS_ORDER.slice(0, indexPositionKey),\n );\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n OnDestroy,\n OnInit,\n Renderer2,\n TemplateRef,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, EMPTY, Observable, Subject} from 'rxjs';\nimport {filter, map, pairwise, startWith, takeUntil, tap} from 'rxjs/operators';\nimport {EVO_TOOLTIP_FADEIN_ANIMATION} from './constants/evo-tooltip-fadein.animation';\nimport {EvoTooltipService} from './services/evo-tooltip.service';\nimport {EvoTooltipStyles} from './interfaces/evo-tooltip-styles';\nimport {EvoTooltipPosition} from './enums/evo-tooltip-position';\nimport {EVO_TOOLTIP_ARROW_SIZE} from './constants/evo-tooltip-arrow-size';\nimport {EVO_TOOLTIP_RADIUS} from './constants/evo-tooltip-radius';\nimport {EvoTooltipVariableArrowPosition} from './enums/evo-tooltip-variable-arrow-position';\n\n@Component({\n selector: 'evo-tooltip',\n templateUrl: './evo-tooltip.component.html',\n styleUrls: ['./evo-tooltip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [EVO_TOOLTIP_FADEIN_ANIMATION],\n})\nexport class EvoTooltipComponent implements OnInit, AfterViewInit, OnDestroy {\n readonly position$: Observable<EvoTooltipPosition> = this.tooltipService.position$;\n readonly stringContent$: Observable<string> = this.tooltipService.stringContent$;\n readonly templateContent$: Observable<TemplateRef<unknown>> = this.tooltipService.templateContent$;\n readonly visibleArrow$: Observable<boolean> = this.tooltipService.visibleArrow$;\n readonly styles$: Observable<EvoTooltipStyles> = EMPTY;\n\n @HostBinding('@fadeIn') fadeIn = true;\n\n private readonly _positionArrowStyles$ = new BehaviorSubject<EvoTooltipStyles>(null);\n private readonly _destroy$ = new Subject<void>();\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly tooltipService: EvoTooltipService,\n private readonly renderer: Renderer2,\n ) {\n this.styles$ = combineLatest([this.tooltipService.styles$, this._positionArrowStyles$]).pipe(\n map(([style1, style2]) => ({...style1, ...style2})),\n );\n }\n\n ngOnInit(): void {\n combineLatest([this.position$, this.tooltipService.parentRef$, this.visibleArrow$])\n .pipe(\n filter(([_position, _parentRef, visibleArrow]) => visibleArrow),\n // Вычисление стрелки нужно только для угловых позиций\n filter(([position]) => {\n switch (position) {\n case EvoTooltipPosition.TOP:\n case EvoTooltipPosition.RIGHT:\n case EvoTooltipPosition.BOTTOM:\n case EvoTooltipPosition.LEFT:\n return false;\n default:\n return true;\n }\n }),\n tap(([_, parentRef]) => {\n this.setArrowPosition(parentRef);\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n ngAfterViewInit(): void {\n this.tooltipService.tooltipClasses$\n .pipe(\n startWith([]),\n pairwise(),\n tap(([a, b]: [string[], string[]]) => {\n (a || []).forEach((oldClass) => this.renderer.removeClass(this.elementRef.nativeElement, oldClass));\n (b || []).forEach((newClass) => this.renderer.addClass(this.elementRef.nativeElement, newClass));\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this.fadeIn = false;\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private setArrowPosition(parentRef: ElementRef): void {\n // Для того чтобы стрелка тянулась к центру родителя - берем середину\n const widthParent = parentRef.nativeElement.offsetWidth / 2;\n const heightParent = parentRef.nativeElement.offsetHeight / 2;\n const isParentLonger = widthParent >= this.elementRef.nativeElement.offsetWidth;\n const isParentHigher = heightParent >= this.elementRef.nativeElement.offsetHeight;\n // Если середина родителя оказывается меньше тултипа - берем середину родителя иначе размер тултипа\n // Это проверка на максимальное смещение, смещение стрелки не должно быть больше размера тултипа\n const width = isParentLonger ? this.elementRef.nativeElement.offsetWidth : widthParent;\n const height = isParentHigher ? this.elementRef.nativeElement.offsetHeight : heightParent;\n\n const positionArrow = (size: number, isParentBigger: boolean): number =>\n // Если середина родителя больше тултипа\n // То берем размер тултипа и отнимаем размер стрелки и радиуса\n // Иначе берем середину родителя и отнимаем половину стрелки\n // Это условие нужно чтобы стрелка не смещалась\n isParentBigger ? size - EVO_TOOLTIP_ARROW_SIZE - EVO_TOOLTIP_RADIUS : size - EVO_TOOLTIP_ARROW_SIZE / 2;\n let verticalPositionArrow = positionArrow(height, isParentHigher);\n let horizontalPositionArrow = positionArrow(width, isParentLonger);\n\n // Проверка на минимальное смещение, смещение стрелки не должно быть меньше размера радиуса тултипа 8px\n horizontalPositionArrow =\n horizontalPositionArrow > EVO_TOOLTIP_RADIUS ? horizontalPositionArrow : EVO_TOOLTIP_RADIUS;\n verticalPositionArrow = verticalPositionArrow > EVO_TOOLTIP_RADIUS ? verticalPositionArrow : EVO_TOOLTIP_RADIUS;\n\n this._positionArrowStyles$.next({\n [EvoTooltipVariableArrowPosition.VERTICAL_POSITION_ARROW]: `${verticalPositionArrow}px`,\n [EvoTooltipVariableArrowPosition.HORIZONTAL_POSITION_ARROW]: `${horizontalPositionArrow}px`,\n });\n }\n}\n","<ng-container\n *ngIf=\"{position: position$ | async, styles: styles$ | async, visibleArrow: visibleArrow$ | async} as asyncData\"\n>\n <div\n class=\"evo-tooltip\"\n [class]=\"'evo-tooltip_' + asyncData.position\"\n [class.evo-tooltip_not-arrow]=\"!asyncData.visibleArrow\"\n [style]=\"asyncData.styles\"\n >\n <ng-container *ngIf=\"stringContent$ | async as content; else templateRef\">{{ content }}</ng-container>\n </div>\n</ng-container>\n\n<ng-template #templateRef>\n <ng-container *ngIf=\"templateContent$ | async as content\" [ngTemplateOutlet]=\"content\" />\n</ng-template>\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {fromEvent, Observable, Subject} from 'rxjs';\nimport {takeUntil, tap, throttleTime} from 'rxjs/operators';\nimport {EvoTooltipService} from '../services/evo-tooltip.service';\nimport {EvoTooltipPositionType} from '../types/evo-tooltip-position-type';\nimport {EvoTooltipConfig} from '../interfaces/evo-tooltip-config';\nimport {EVO_TOOLTIP_CONFIG} from '../constants/evo-tooltip-config';\nimport {EvoTooltipPosition} from '../enums/evo-tooltip-position';\nimport {EvoTooltipStyles} from '../interfaces/evo-tooltip-styles';\n\n@Directive({\n selector: '[evoTooltip]',\n exportAs: 'evoTooltip',\n providers: [EvoTooltipService],\n})\nexport class EvoTooltipDirective implements OnInit, OnDestroy {\n @Input('evoTooltip') content: string | TemplateRef<HTMLElement>;\n @Input('evoTooltipPosition') position: EvoTooltipPositionType | string = EvoTooltipPosition.BOTTOM;\n @Input('evoTooltipDisabled') disabled = false;\n @Input('evoTooltipConfig') config: Partial<EvoTooltipConfig>;\n @Input() set evoTooltipVisibleArrow(visibleArrow: boolean) {\n this.tooltipService.setArrowVisibility(visibleArrow);\n }\n @Input() set evoTooltipStyles(tooltipStyles: EvoTooltipStyles) {\n this.tooltipService.setTooltipStyles(tooltipStyles);\n }\n @Input() set evoTooltipClass(tooltipClass: string | string[]) {\n this.tooltipService.setTooltipClass(tooltipClass);\n }\n\n @Output() evoTooltipOpen = new EventEmitter<void>();\n @Output() evoTooltipClose = new EventEmitter<void>();\n\n @HostBinding('class') get hostClasses(): string[] {\n return ['evo-tooltip-trigger', ...(this.disabled ? ['evo-tooltip-trigger_disabled'] : [])];\n }\n\n readonly isOpen$: Observable<boolean> = this.tooltipService.isOpen$;\n\n private readonly destroy$ = new Subject<void>();\n\n constructor(private readonly elementRef: ElementRef, private readonly tooltipService: EvoTooltipService) {}\n\n ngOnInit(): void {\n this.initSubscriptions();\n }\n\n ngOnDestroy(): void {\n this.hide();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n hide(): void {\n this.tooltipService.hideTooltip();\n }\n\n show(event?: MouseEvent): void {\n if (!this.content || this.tooltipService.hasAttached || this.disabled) {\n return;\n }\n\n this.tooltipService.showTooltip(\n this.elementRef,\n this.content,\n this.position as EvoTooltipPosition,\n {...EVO_TOOLTIP_CONFIG, ...this.config},\n event?.target,\n );\n }\n\n private initSubscriptions(): void {\n fromEvent(this.elementRef.nativeElement, 'mouseenter')\n .pipe(\n throttleTime(this.config?.showDelay ?? EVO_TOOLTIP_CONFIG.showDelay),\n tap(() => {\n this.show();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n\n this.tooltipService.isOpen$\n .pipe(\n tap((isOpen) => {\n isOpen ? this.evoTooltipOpen.emit() : this.evoTooltipClose.emit();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {EvoTooltipComponent} from './evo-tooltip.component';\nimport {EvoTooltipDirective} from './directives/evo-tooltip.directive';\nimport {OverlayModule} from '@angular/cdk/overlay';\n\n@NgModule({\n imports: [OverlayModule, CommonModule],\n declarations: [EvoTooltipComponent, EvoTooltipDirective],\n exports: [EvoTooltipDirective],\n})\nexport class EvoTooltipModule {}\n","import {ChangeDetectionStrategy, Component, HostBinding, input} from '@angular/core';\n\n@Component({\n selector: 'button[evo-link-button], a[evo-link-button]',\n templateUrl: './evo-link-button.component.html',\n styleUrls: ['./evo-link-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EvoLinkButtonComponent {\n readonly disabled = input(false);\n readonly loading = input(false);\n readonly loadingLabel = input('Подождите');\n\n @HostBinding('attr.disabled') get isDisabled(): boolean {\n return this.disabled() || this.loading() || null;\n }\n\n getContainerClasses(containerClass: string): string[] {\n const result = [];\n\n if (this.disabled()) {\n result.push(`${containerClass}_disabled`);\n }\n\n if (this.loading()) {\n result.push(`${containerClass}_loading`);\n }\n\n return result;\n }\n}\n","<div class=\"evo-link-button\" [class]=\"getContainerClasses('evo-link-button')\">\n <ng-container *ngIf=\"!loading(); else loadingLabelTemplate\">\n <ng-content />\n </ng-container>\n</div>\n\n<ng-template #loadingLabelTemplate>{{ loadingLabel() }}</ng-template>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {EvoLinkButtonComponent} from './evo-link-button.component';\n\n@NgModule({\n declarations: [EvoLinkButtonComponent],\n exports: [EvoLinkButtonComponent],\n imports: [CommonModule],\n})\nexport class EvoLinkButtonModule {}\n","import {NgModule} from '@angular/core';\nimport {SafeHtmlPipe} from './safe-html.pipe';\nimport {DeclinationPipe} from './declination.pipe';\n\nconst pipes = [DeclinationPipe, SafeHtmlPipe];\n\n@NgModule({\n imports: pipes,\n exports: pipes,\n})\nexport class EvoPipesModule {}\n","export class Serializable {\n constructor(data) {\n Object.assign(this, data);\n }\n}\n","/*\n * Public API Surface of evo-ui-kit\n */\n\nexport * from './lib/evo-ui-kit.module';\n\nexport * from './lib/common/form-helper/form-helper';\nexport * from './lib/common/evo-control-state-manager/evo-control-state-manager';\nexport * from './lib/common/evo-control-state-manager/evo-control-states.enum';\nexport * from './lib/common/evo-control-state-manager/evo-control-state.interface';\nexport * from './lib/common/evo-base-control';\n\n// Animations\nexport * from './lib/common/animations/index';\n\n// Collection\nexport * from './lib/common/collection/index';\n\n// Decorators\nexport * from './lib/decorators/index';\n\n// Directives\nexport * from './lib/directives/index';\n\n// Operators\nexport * from './lib/operators/index';\n\n// Components\nexport * from './lib/components/evo-accordion/index';\nexport * from './lib/components/evo-autocomplete/index';\nexport * from './lib/components/evo-badge/index';\nexport * from './lib/components/evo-button/index';\nexport * from './lib/components/evo-checkbox/index';\nexport * from './lib/components/evo-chip/index';\nexport * from './lib/components/evo-control-error/index';\nexport * from './lib/components/evo-control-label/index';\nexport * from './lib/components/evo-counter/index';\nexport * from './lib/components/evo-datepicker/index';\nexport * from './lib/components/evo-icon/index';\nexport * from './lib/components/evo-icon-button/index';\nexport * from './lib/components/evo-icon-number/index';\nexport * from './lib/components/evo-input/index';\nexport * from './lib/components/evo-input-contenteditable/index';\nexport * from './lib/components/evo-loader/index';\nexport * from './lib/components/evo-modal/index';\nexport * from './lib/components/evo-note/index';\nexport * from './lib/components/evo-paginator/index';\nexport * from './lib/components/evo-popover/index';\nexport * from './lib/components/evo-portal/index';\nexport * from './lib/components/evo-radio/index';\nexport * from './lib/components/evo-radioshape/index';\nexport * from './lib/components/evo-sidebar/index';\nexport * from './lib/components/evo-stepper/index';\nexport * from './lib/components/evo-table/index';\nexport * from './lib/components/evo-tabs/index';\nexport * from './lib/components/evo-textarea/index';\nexport * from './lib/components/evo-toast/index';\nexport * from './lib/components/evo-toggle/index';\nexport * from './lib/components/evo-upload/index';\nexport * from './lib/components/evo-dropdown/index';\nexport * from './lib/components/evo-navbar/index';\nexport * from './lib/components/evo-navigation-button/index';\nexport * from './lib/components/evo-tooltip/index';\nexport * from './lib/components/evo-link-button/index';\n\nexport * from './lib/pipes/index';\n\n// Services\nexport * from './lib/services/index';\nexport * from './lib/components/evo-portal/index';\n\nexport * from './lib/common/evo-control-state-manager/evo-control-state-manager';\nexport * from './lib/common/form-helper/form-helper';\nexport * from './lib/common/constants/css-breakpoints';\nexport * from './lib/common/constants/view-breakpoint-streams';\nexport * from './lib/common/types/index';\nexport * from './lib/common/evo-base-control';\nexport * from './lib/common/Serializable';\nexport * from './lib/common/tokens';\n\nexport * from './lib/utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["stringify","i1.EvoExpandedService","i1","i1.EvoIsExpandedDirective","i2.EvoExpandedService","i5.EvoControlErrorComponent","i2","filter","merge","i1.EvoStepperEvents","i1.EvoTabsService","i2.EvoTabsSizeService","i1.EvoToastService","i1.EvoTooltipService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evotor-dev-ui-kit.mjs","sources":["../../../projects/evo-ui-kit/src/lib/services/window.service.ts","../../../projects/evo-ui-kit/src/lib/directives/evo-ui-class.directive.ts","../../../projects/evo-ui-kit/src/lib/directives/evo-click-outside.directive.ts","../../../projects/evo-ui-kit/src/lib/services/evo-expanded.service.ts","../../../projects/evo-ui-kit/src/lib/directives/evo-is-expanded.directive.ts","../../../projects/evo-ui-kit/src/lib/directives/evo-let/evo-let.directive.ts","../../../projects/evo-ui-kit/src/lib/evo-ui-kit.module.ts","../../../projects/evo-ui-kit/src/lib/common/form-helper/form-helper.ts","../../../projects/evo-ui-kit/src/lib/common/evo-control-state-manager/evo-control-state-manager.ts","../../../projects/evo-ui-kit/src/lib/common/evo-control-state-manager/evo-control-states.enum.ts","../../../projects/evo-ui-kit/src/lib/common/evo-base-control.ts","../../../projects/evo-ui-kit/src/lib/common/animations/expand.animation.ts","../../../projects/evo-ui-kit/src/lib/common/animations/skip-initial-render.animation.ts","../../../projects/evo-ui-kit/src/lib/common/animations/sidebar.animation.ts","../../../projects/evo-ui-kit/src/lib/common/collection/evo-collection.ts","../../../projects/evo-ui-kit/src/lib/common/collection/evo-collection-fabric.ts","../../../projects/evo-ui-kit/src/lib/decorators/deprecate-method.decorator.ts","../../../projects/evo-ui-kit/src/lib/decorators/deprecate-variable.decorator.ts","../../../projects/evo-ui-kit/src/lib/operators/enter-zone.operator.ts","../../../projects/evo-ui-kit/src/lib/components/evo-icon/evo-icon.service.ts","../../../projects/evo-ui-kit/src/lib/utils/create-token.ts","../../../projects/evo-ui-kit/src/lib/common/tokens/assets-path.ts","../../../projects/evo-ui-kit/src/lib/common/tokens/icon-resolver.ts","../../../projects/evo-ui-kit/src/lib/components/evo-icon/evo-icon.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-accordion/evo-accordion-content/evo-accordion-content.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-accordion/evo-accordion-panel/evo-accordion-panel.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-accordion/evo-accordion-title/evo-accordion-title.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-accordion/evo-accordion-title/evo-accordion-title.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-accordion/evo-accordion.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-accordion/evo-accordion.module.ts","../../../projects/evo-ui-kit/src/lib/pipes/safe-html.pipe.ts","../../../projects/evo-ui-kit/src/lib/components/evo-control-error/evo-control-error.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-control-error/evo-control-error.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-loader/evo-circular-loader.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-loader/evo-circular-loader.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-loader/evo-loader.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-input/evo-input.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-input/evo-input.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-input/evo-input-icon/evo-input-icon.directive.ts","../../../projects/evo-ui-kit/src/lib/components/evo-input/evo-input.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-control-error/evo-control-error.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete/evo-autocomplete.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete/evo-autocomplete.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-checkbox/evo-checkbox.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-checkbox/evo-checkbox.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-checkbox/evo-checkbox.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete-default-option/evo-autocomplete-default-option.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete-default-option/evo-autocomplete-default-option.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete-header/evo-autocomplete-header.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete-header/evo-autocomplete-header.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete-footer/evo-autocomplete-footer.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/components/evo-autocomplete-footer/evo-autocomplete-footer.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/evo-autocomplete.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/helpers/switch-query-to-list.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/models/DaDataParty.ts","../../../projects/evo-ui-kit/src/lib/components/evo-autocomplete/models/dadata.model.ts","../../../projects/evo-ui-kit/src/lib/components/evo-badge/evo-badge.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-badge/evo-badge.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-badge/evo-badge.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-button/constants/evo-button-themes-map.ts","../../../projects/evo-ui-kit/src/lib/components/evo-button/components/evo-button/evo-button.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-button/components/evo-button/evo-button.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-button/evo-button.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-chip/evo-chip.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-chip/evo-chip.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-chip/evo-chip.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-control-label/evo-control-label.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-control-label/evo-control-label.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-control-label/evo-control-label.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-counter/evo-counter.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-counter/evo-counter.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-counter/evo-counter.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-datepicker/templates/index.ts","../../../projects/evo-ui-kit/src/lib/components/evo-datepicker/evo-datepicker.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-datepicker/evo-datepicker.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-datepicker/evo-datepicker.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-icon-button/evo-icon-button.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-icon-button/evo-icon-button.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-icon-button/evo-icon-button.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-icon-number/components/evo-icon-number/evo-icon-number.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-icon-number/components/evo-icon-number/evo-icon-number.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-icon-number/evo-icon-number.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-input-contenteditable/utils/clear-multiline.ts","../../../projects/evo-ui-kit/src/lib/components/evo-input-contenteditable/evo-input-contenteditable.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-input-contenteditable/evo-input-contenteditable.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-input-contenteditable/evo-input-contenteditable.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/tokens.ts","../../../projects/evo-ui-kit/src/lib/components/evo-portal/evo-portal-outlet.class.ts","../../../projects/evo-ui-kit/src/lib/components/evo-portal/evo-portal.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-portal/evo-portal-outlet.directive.ts","../../../projects/evo-ui-kit/src/lib/components/evo-portal/evo-portal.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal-portal.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/utils.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/enums.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/classes/EvoModalDrawingStrategy.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/classes/EvoDynamicModalDrawingStrategy.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/classes/EvoConfiguredModalDrawingStrategy.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/classes/EvoConfiguredComponentModalDrawingStrategy.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/classes/EvoConfiguredTemplateModalDrawingStrategy.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal-buttons/evo-modal-buttons.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-modal/evo-modal.provider.ts","../../../projects/evo-ui-kit/src/lib/components/evo-note/evo-note.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-note/evo-note.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-note/evo-note.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-paginator/evo-paginator.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-paginator/evo-paginator.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-paginator/evo-paginator.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-popover/evo-popover.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-popover/evo-popover.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-popover/evo-popover.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-radio/evo-radio.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-radio/evo-radio.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-radio/evo-radio.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-radioshape/components/evo-radioshape.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-radioshape/components/evo-radioshape.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-radioshape/evo-radioshape.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/tokens.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/enums/evo-sidebar-close-targets.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/enums/evo-sidebar-states.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/enums/evo-sidebar-sizes.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar.token.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-footer/evo-sidebar-footer.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-footer/evo-sidebar-footer.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-content/evo-sidebar-content.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-content/evo-sidebar-content.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-header/evo-sidebar-header.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-header/evo-sidebar-header.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar-portal.ts","../../../projects/evo-ui-kit/src/lib/components/evo-sidebar/evo-sidebar.provider.ts","../../../projects/evo-ui-kit/src/lib/components/evo-stepper/evo-stepper-events.ts","../../../projects/evo-ui-kit/src/lib/components/evo-stepper/evo-stepper-item/evo-stepper-item.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-stepper/evo-stepper-item/evo-stepper-item.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-stepper/evo-stepper.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-stepper/evo-stepper.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-stepper/evo-stepper.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-table/evo-table-column/evo-table-column.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-table/evo-table-column/evo-table-column.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-table/evo-table/evo-table.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-table/evo-table/evo-table.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-table/evo-table.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/enums/evo-tabs-size.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tab-state.collection.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tabs.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tabs-size.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tab/evo-tab.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tab/evo-tab.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tabs.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tabs.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tab-content/evo-tab-content.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tab-content/evo-tab-content.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-tabs/evo-tabs.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-textarea/evo-textarea.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-textarea/evo-textarea.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-textarea/evo-textarea.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-toast/evo-toast.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-toast/evo-toast.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-toast/evo-toast.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-toast/evo-toast.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-toggle/evo-toggle.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-toggle/evo-toggle.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-toggle/evo-toggle.module.ts","../../../projects/evo-ui-kit/src/lib/pipes/declination.pipe.ts","../../../projects/evo-ui-kit/src/lib/components/evo-upload/evo-upload.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-upload/evo-upload.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-upload/evo-upload.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-dropdown/evo-dropdown-position-description.ts","../../../projects/evo-ui-kit/src/lib/components/evo-dropdown/evo-dropdown.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-dropdown/evo-dropdown.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-dropdown/evo-dropdown-origin.directive.ts","../../../projects/evo-ui-kit/src/lib/components/evo-dropdown/evo-dropdown.module.ts","../../../projects/evo-ui-kit/src/lib/common/constants/css-breakpoints.ts","../../../projects/evo-ui-kit/src/lib/common/constants/view-breakpoint-streams.ts","../../../projects/evo-ui-kit/src/lib/components/evo-navbar/evo-navbar-item/evo-navbar-item.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-navbar/evo-navbar-item/evo-navbar-item.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-navbar/evo-navbar.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-navbar/evo-navbar.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-navbar/evo-navbar.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-navigation-button/evo-navigation-button.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-navigation-button/evo-navigation-button.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-navigation-button/evo-navigation-button.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-fadein.animation.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/enums/evo-tooltip-position.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-arrow-size.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-radius.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/enums/evo-tooltip-variable-arrow-position.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-config.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-connected-position.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-priority-positions-order.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-default-positions-order.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/constants/evo-tooltip-offset.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/services/evo-tooltip.service.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/evo-tooltip.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/evo-tooltip.component.html","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/directives/evo-tooltip.directive.ts","../../../projects/evo-ui-kit/src/lib/components/evo-tooltip/evo-tooltip.module.ts","../../../projects/evo-ui-kit/src/lib/components/evo-link-button/evo-link-button.component.ts","../../../projects/evo-ui-kit/src/lib/components/evo-link-button/evo-link-button.component.html","../../../projects/evo-ui-kit/src/lib/pipes/evo-pipes.module.ts","../../../projects/evo-ui-kit/src/lib/common/Serializable.ts","../../../projects/evo-ui-kit/src/public_api.ts","../../../projects/evo-ui-kit/src/evotor-dev-ui-kit.ts"],"sourcesContent":["import {isPlatformBrowser} from '@angular/common';\nimport {ClassProvider, FactoryProvider, Injectable, InjectionToken, PLATFORM_ID} from '@angular/core';\n\n/* Create a new injection token for injecting the window into a component. */\nexport const WINDOW = new InjectionToken('WindowToken');\n\n/* Define abstract class for obtaining reference to the global window object. */\nexport abstract class WindowRef {\n\n get nativeWindow(): Window | object {\n throw new Error('Not implemented.');\n }\n\n}\n\n/* Define class that implements the abstract class and returns the native window object. */\n@Injectable()\nexport class BrowserWindowRef extends WindowRef {\n constructor() {\n super();\n }\n\n get nativeWindow(): Window | object {\n return window;\n }\n\n}\n\n/* Create an factory function that returns the native window object. */\nexport function windowFactory(browserWindowRef: BrowserWindowRef, platformId: object): Window | object {\n if (isPlatformBrowser(platformId)) {\n return browserWindowRef.nativeWindow;\n }\n return {};\n}\n\n/* Create a injectable provider for the WindowRef token that uses the BrowserWindowRef class. */\nconst browserWindowProvider: ClassProvider = {\n provide: WindowRef,\n useClass: BrowserWindowRef,\n};\n\n/* Create an injectable provider that uses the windowFactory function for returning the native window object. */\nconst windowProvider: FactoryProvider = {\n provide: WINDOW,\n useFactory: windowFactory,\n deps: [WindowRef, PLATFORM_ID],\n};\n\n/* Create an array of providers. */\nexport const WINDOW_PROVIDERS = [\n browserWindowProvider,\n windowProvider,\n];\n","/* eslint-disable */\nimport {\n Directive,\n DoCheck,\n ElementRef,\n Input,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n KeyValueChanges,\n KeyValueDiffer,\n KeyValueDiffers,\n Renderer2,\n ɵstringify as stringify,\n} from '@angular/core';\n\n// TODO: actualize to current realization of NgClass\n\nfunction isJsObject(o: any): boolean {\n return o !== null && (typeof o === 'function' || typeof o === 'object');\n}\n\nfunction isListLikeIterable(obj: any): boolean {\n if (!isJsObject(obj)) return false;\n return (\n Array.isArray(obj) ||\n (!(obj instanceof Map) && // JS Map are iterables but return entries as [k, v]\n Symbol.iterator in obj)\n ); // JS Iterable have a Symbol.iterator prop\n}\n\n/**\n * @usageNotes\n * ```\n * <some-element [evoUiClass]=\"'first second'\">...</some-element>\n *\n * <some-element [evoUiClass]=\"['first', 'second']\">...</some-element>\n *\n * <some-element [evoUiClass]=\"{'first': true, 'second': true, 'third': false}\">...</some-element>\n *\n * <some-element [evoUiClass]=\"stringExp|arrayExp|objExp\">...</some-element>\n *\n * <some-element [evoUiClass]=\"{'class1 class2 class3' : true}\">...</some-element>\n * ```\n *\n * @description\n *\n * Adds and removes CSS classes on an HTML element.\n *\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\n * - `string` - the CSS classes listed in the string (space delimited) are added,\n * - `Array` - the CSS classes declared as Array elements are added,\n * - `Object` - keys are CSS classes that get added when the expression given in the value\n * evaluates to a truthy value, otherwise they are removed.\n */\n@Directive({\n selector: '[evoUiClass]',\n standalone: true,\n})\nexport class EvoUiClassDirective implements DoCheck {\n private iterableDiffer!: IterableDiffer<string> | null;\n private keyValueDiffer!: KeyValueDiffer<string, any> | null;\n private initialClasses: string[] = [];\n private rawClass!: string[] | Set<string> | {[klass: string]: any};\n\n constructor(\n private _iterableDiffers: IterableDiffers,\n private _keyValueDiffers: KeyValueDiffers,\n private _ngEl: ElementRef,\n private _renderer: Renderer2,\n ) {}\n\n @Input('class')\n set klass(value: string) {\n this.removeClasses(this.initialClasses);\n this.initialClasses = typeof value === 'string' ? value.split(/\\s+/) : [];\n this.applyClasses(this.initialClasses);\n this.applyClasses(this.rawClass);\n }\n\n @Input()\n set evoUiClass(value: string | string[] | Set<string> | {[klass: string]: any}) {\n this.removeClasses(this.rawClass);\n this.applyClasses(this.initialClasses);\n\n this.iterableDiffer = null;\n this.keyValueDiffer = null;\n\n this.rawClass = typeof value === 'string' ? value.split(/\\s+/) : value;\n\n if (this.rawClass) {\n if (isListLikeIterable(this.rawClass)) {\n this.iterableDiffer = this._iterableDiffers.find(this.rawClass).create();\n } else {\n this.keyValueDiffer = this._keyValueDiffers.find(this.rawClass).create();\n }\n }\n }\n\n ngDoCheck(): void {\n if (this.iterableDiffer) {\n const iterableChanges = this.iterableDiffer.diff(this.rawClass as string[]);\n if (iterableChanges) {\n this.applyIterableChanges(iterableChanges);\n }\n } else if (this.keyValueDiffer) {\n const keyValueChanges = this.keyValueDiffer.diff(this.rawClass as {[k: string]: any});\n if (keyValueChanges) {\n this.applyKeyValueChanges(keyValueChanges);\n }\n }\n }\n\n private applyKeyValueChanges(changes: KeyValueChanges<string, any>): void {\n changes.forEachAddedItem((record) => this.toggleClass(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this.toggleClass(record.key, record.currentValue));\n changes.forEachRemovedItem((record) => {\n if (record.previousValue) {\n this.toggleClass(record.key, false);\n }\n });\n }\n\n private applyIterableChanges(changes: IterableChanges<string>): void {\n changes.forEachAddedItem((record) => {\n if (typeof record.item === 'string') {\n this.toggleClass(record.item, true);\n } else {\n throw new Error(\n `EvoUiClass can only toggle CSS classes expressed as strings, got ${stringify(record.item)}`,\n );\n }\n });\n\n changes.forEachRemovedItem((record) => this.toggleClass(record.item, false));\n }\n\n /**\n * Applies a collection of CSS classes to the DOM element.\n *\n * For argument of type Set and Array CSS class names contained in those collections are always\n * added.\n * For argument of type Map CSS class name in the map's key is toggled based on the value (added\n * for truthy and removed for falsy).\n */\n private applyClasses(rawClassVal: string[] | Set<string> | {[klass: string]: any}) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n (rawClassVal as any).forEach((klass: string) => this.toggleClass(klass, true));\n } else {\n Object.keys(rawClassVal).forEach((klass) => this.toggleClass(klass, !!rawClassVal[klass]));\n }\n }\n }\n\n /**\n * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup\n * purposes.\n */\n private removeClasses(rawClassVal: string[] | Set<string> | {[klass: string]: any}) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n (rawClassVal as any).forEach((klass: string) => this.toggleClass(klass, false));\n } else {\n Object.keys(rawClassVal).forEach((klass) => this.toggleClass(klass, false));\n }\n }\n }\n\n private toggleClass(klass: string, enabled: boolean): void {\n const prefix = this.initialClasses[0];\n\n const prefixClasses = (classes: string) => {\n return classes\n .trim()\n .split(' ')\n .filter((k) => k.trim())\n .map((k) => prefix + '_' + k)\n .join(' ');\n };\n\n klass = this.initialClasses.indexOf(klass) === -1 ? prefixClasses(klass) : klass.trim();\n\n if (klass) {\n klass.split(/\\s+/g).forEach((_klass) => {\n if (enabled) {\n this._renderer.addClass(this._ngEl.nativeElement, _klass);\n } else {\n this._renderer.removeClass(this._ngEl.nativeElement, _klass);\n }\n });\n }\n }\n}\n","import {Directive, ElementRef, EventEmitter, HostListener, Output} from '@angular/core';\n\n@Directive({\n selector: '[evoClickOutside]',\n standalone: true,\n})\nexport class EvoClickOutsideDirective {\n @Output()\n evoClickOutside = new EventEmitter();\n\n constructor(private readonly _elementRef: ElementRef) {}\n\n @HostListener('document:click', ['$event', '$event.target'])\n onClick<T extends MouseEvent, F extends HTMLElement>(event: T, targetElement: F) {\n this.clickOrTouchOutside(event, targetElement);\n }\n\n @HostListener('document:touchstart', ['$event', '$event.target'])\n onTouchStart<T extends MouseEvent, F extends HTMLElement>(event: T, targetElement: F) {\n this.clickOrTouchOutside(event, targetElement);\n }\n\n clickOrTouchOutside<T extends MouseEvent, F extends HTMLElement>(event: T, targetElement: F) {\n if (!targetElement) {\n return;\n }\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.evoClickOutside.emit(event);\n }\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport class EvoExpandedService {\n isExpandedChange$: Observable<boolean>;\n private readonly isExpanded$ = new BehaviorSubject<boolean>(false);\n\n constructor() {\n this.isExpandedChange$ = this.isExpanded$.asObservable();\n }\n\n set isExpanded(value: boolean) {\n if (value !== this.isExpanded$.value) {\n this.isExpanded$.next(value);\n }\n }\n\n get isExpanded(): boolean {\n return this.isExpanded$.value;\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {EvoExpandedService} from '../services/evo-expanded.service';\n\n@Directive({\n selector: '[evoIsExpanded]',\n standalone: true,\n})\nexport class EvoIsExpandedDirective implements OnInit, OnChanges, OnDestroy {\n @Input() evoIsExpanded: boolean;\n @Output() evoIsExpandedChange = new EventEmitter<boolean>(false);\n\n private readonly destroy$ = new Subject<void>();\n\n constructor(\n private readonly templateRef: TemplateRef<object>,\n private readonly viewContainer: ViewContainerRef,\n @Optional() private readonly expandedService: EvoExpandedService,\n ) {}\n\n ngOnInit(): void {\n if (this.expandedService) {\n this.expandedService.isExpanded = this.evoIsExpanded;\n }\n this.updateView();\n this.handleExpandedChange();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.evoIsExpanded && !changes.evoIsExpanded.isFirstChange()) {\n const isExpanded = changes.evoIsExpanded.currentValue;\n if (!this.expandedService) {\n this.evoIsExpandedChange.emit(isExpanded);\n this.updateView();\n return;\n }\n this.expandedService.isExpanded = isExpanded;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.unsubscribe();\n }\n\n handleExpandedChange(): void {\n this.expandedService?.isExpandedChange$.pipe(takeUntil(this.destroy$)).subscribe((isExpanded) => {\n if (isExpanded !== this.evoIsExpanded) {\n this.evoIsExpanded = isExpanded;\n this.evoIsExpandedChange.emit(isExpanded);\n }\n this.updateView();\n });\n }\n\n private updateView(): void {\n if (this.evoIsExpanded && this.viewContainer.length !== 0) {\n return;\n }\n if (this.evoIsExpanded) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n }\n}\n","import {Directive, Inject, Input, TemplateRef, ViewContainerRef} from '@angular/core';\n\nexport class EvoLetContext<T> {\n constructor(private readonly dir: EvoLetDirective<T>) {}\n\n get evoLet(): T {\n return this.dir.evoLet;\n }\n}\n\n/**\n * Works like ngIf, but condition not affects on rendering.\n * Used for aliases.\n */\n@Directive({\n selector: '[evoLet]',\n standalone: true,\n})\nexport class EvoLetDirective<T> {\n @Input() evoLet!: T;\n\n constructor(\n @Inject(ViewContainerRef) viewContainer: ViewContainerRef,\n @Inject(TemplateRef) templateRef: TemplateRef<EvoLetContext<T>>,\n ) {\n viewContainer.createEmbeddedView(templateRef, new EvoLetContext<T>(this));\n }\n\n /**\n * Assert the correct type of the expression bound to the `evoLet` input within the template.\n *\n * The presence of this static field is a signal to the Ivy template type check compiler that\n * when the `EvoLetDirective` structural directive renders its template, the type of the expression bound\n * to `evoLet` should be narrowed in some way. For `EvoLetDirective`, the binding expression itself is used to\n * narrow its type, which allows the strictNullChecks feature of TypeScript to work with `EvoLetDirective`.\n */\n static ngTemplateGuard_evoLet: 'binding';\n\n /**\n * Asserts the correct type of the context for the template that `EvoLetDirective` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `EvoLetDirective` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard<T>(dir: EvoLetDirective<T>, ctx: EvoLetContext<T>): ctx is EvoLetContext<T> {\n return true;\n }\n}\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {NgxPageScrollModule} from 'ngx-page-scroll';\n\nimport {WINDOW_PROVIDERS} from './services/window.service';\nimport {RouterModule} from '@angular/router';\n\nimport {EvoUiClassDirective} from './directives/evo-ui-class.directive';\nimport {EvoClickOutsideDirective} from './directives/evo-click-outside.directive';\nimport {EvoIsExpandedDirective, EvoLetDirective} from './directives';\n\nexport {WINDOW_PROVIDERS};\n\nconst directives = [EvoUiClassDirective, EvoClickOutsideDirective, EvoIsExpandedDirective, EvoLetDirective];\n\n@NgModule({\n imports: [CommonModule, FormsModule, NgxPageScrollModule, ReactiveFormsModule, RouterModule, ...directives],\n exports: [...directives],\n providers: [WINDOW_PROVIDERS],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class EvoUiKitModule {}\n","import {EventEmitter} from '@angular/core';\nimport {AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup} from '@angular/forms';\n\nexport class FormHelper {\n static validateControls(control: AbstractControl) {\n if (control instanceof UntypedFormControl) {\n control.markAsDirty();\n control.markAsTouched();\n (control.statusChanges as EventEmitter<string>).emit(control.status);\n } else if (control instanceof UntypedFormGroup || control instanceof UntypedFormArray) {\n for (const controlName of Object.keys(control.controls)) {\n FormHelper.validateControls(control.controls[controlName]);\n }\n }\n }\n\n static resetControls(control: AbstractControl) {\n if (control instanceof UntypedFormControl) {\n control.markAsPristine();\n control.markAsUntouched();\n control.setValue('', {\n emitEvent: false,\n onlySelf: true,\n });\n } else if (control instanceof UntypedFormGroup || control instanceof UntypedFormArray) {\n for (const controlName of Object.keys(control.controls)) {\n FormHelper.resetControls(control.controls[controlName]);\n }\n }\n }\n}\n","import {AbstractControl} from '@angular/forms';\nimport {IEvoControlState} from './evo-control-state.interface';\n\nexport class EvoControlStateManager {\n control: AbstractControl;\n\n constructor(control: AbstractControl, extraStates?: IEvoControlState) {\n this.control = control;\n }\n\n get currentState(): IEvoControlState {\n // TODO merge conditions with extraStates\n\n return {\n valid: this.control.dirty && this.control.touched && this.control.valid,\n invalid: this.control.dirty && this.control.touched && this.control.invalid,\n };\n }\n}\n","export enum EvoControlStates {\n valid = 'valid',\n invalid = 'invalid',\n}\n","import {Directive, Injector, Input} from '@angular/core';\nimport {AbstractControl, NgControl} from '@angular/forms';\nimport {IEvoControlState} from './evo-control-state-manager/evo-control-state.interface';\nimport {IEvoControlError} from '../components/evo-control-error';\nimport {EvoControlStates} from './evo-control-state-manager/evo-control-states.enum';\n\n@Directive()\n// eslint-disable-next-line:directive-class-suffix\nexport abstract class EvoBaseControl {\n @Input() errorsMessages: IEvoControlError;\n @Input() state: IEvoControlState;\n @Input() readonly autoFocus: boolean;\n\n private _control: AbstractControl;\n\n constructor(protected injector: Injector) {}\n\n get control(): AbstractControl {\n if (!this._control) {\n this.initBaseControl();\n }\n return this._control;\n }\n\n set control(control: AbstractControl) {\n this._control = control;\n }\n\n focus?(): void;\n\n initBaseControl() {\n const ngControl = this.injector?.get(NgControl, null);\n if (ngControl?.control) {\n this._control = ngControl?.control;\n }\n }\n\n get currentState(): IEvoControlState {\n return Object.assign(\n {\n valid: this.control ? this.control.dirty && this.control.touched && this.control.valid : undefined,\n invalid: this.control ? this.control.dirty && this.control.touched && this.control.invalid : undefined,\n },\n this.state,\n );\n }\n\n get showErrors(): boolean {\n return this.currentState[EvoControlStates.invalid];\n }\n}\n","import {animate, state, style, transition, trigger} from '@angular/animations';\n\nconst closeStateStyles = style({\n height: '0px',\n marginBottom: '0px',\n paddingBottom: '0px',\n});\n\nconst openStateStyles = style({\n height: '*',\n marginBottom: '*',\n paddingBottom: '*'\n});\n\nconst openStep = [\n closeStateStyles,\n animate('200ms ease-in-out', openStateStyles)\n];\n\nconst closeStep = [\n openStateStyles,\n animate('200ms ease-in-out', closeStateStyles),\n];\n\nexport const expandAnimation = trigger('expand', [\n state('open', openStateStyles),\n state('close', closeStateStyles),\n transition(':enter', openStep),\n transition(':leave', closeStep),\n transition('open => close', closeStep),\n transition('close => open', openStep)\n]);\n","import {transition, trigger} from '@angular/animations';\n\nexport const skipInitialRenderAnimation = trigger('skipInitialRender', [transition(':enter', [])]);\n","import {animate, state, style, transition, trigger} from '@angular/animations';\n\nexport const evoSidebarAnimationDuration = 500;\n\nexport const sidebarAnimation = trigger('open', [\n state('visible', style({\n transform: 'translateX(0px)',\n })),\n transition('hidden => visible', animate(`${evoSidebarAnimationDuration}ms ease-out`)),\n transition('visible => hidden', animate(`${evoSidebarAnimationDuration}ms ease-out`)),\n]);\n","export abstract class EvoCollection<T> extends Array<T> {\n constructor() {\n super();\n throw new Error(`Inheritor of EvoCollection can't be instantiated, use EvoCollectionFabric.create() instead.`);\n }\n}\n","import {EvoCollection} from './evo-collection';\n\nexport class EvoCollectionFabric {\n // eslint-disable-next-line\n static create<T extends EvoCollection<K>, K>(\n collectionType: new () => T,\n // eslint-disable-next-line\n itemType: new (...args: any[]) => K,\n // eslint-disable-next-line\n data: any[],\n ) {\n const collection = Object.create(collectionType.prototype);\n\n for (let i = 0; i < data.length; i++) {\n collection.push(new itemType(data[i]));\n }\n\n return collection as T;\n }\n}\n","/* eslint-disable */\nexport function DeprecateMethod(message: string = ''): MethodDecorator {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const deprecatedMessage = `${target.constructor.name} method ${propertyKey} is deprecated. ${message}`;\n\n console.warn(deprecatedMessage);\n\n return descriptor;\n };\n}\n","/* eslint-disable */\nexport function DeprecateVariable(target: any, propertyKey: string) {\n const deprecatedMessage = `${target.constructor.name} variable ${propertyKey} is deprecated.`;\n let propertyValue;\n\n function getter() {\n console.warn(deprecatedMessage);\n return propertyValue;\n }\n\n function setter(value: any) {\n console.warn(deprecatedMessage);\n propertyValue = value;\n }\n\n Object.defineProperty(target, propertyKey, {\n get: getter,\n set: setter,\n });\n}\n","import {NgZone} from '@angular/core';\nimport {Observable} from 'rxjs';\n\nexport function enterZone(zone: NgZone) {\n return <T>(source: Observable<T>) =>\n new Observable<T>((observer) =>\n source.subscribe({\n next: (x) => zone.run(() => observer.next(x)),\n error: (err) => observer.error(err),\n complete: () => observer.complete(),\n }),);\n}\n","import {inject, Injectable, SecurityContext} from '@angular/core';\nimport {Observable, shareReplay} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {DomSanitizer, SafeHtml, SafeResourceUrl} from '@angular/platform-browser';\nimport {map} from 'rxjs/operators';\nimport {IconOptions} from './interfaces/icon-options';\n\n@Injectable({providedIn: 'root'})\nexport class EvoIconService {\n private readonly sanitizer = inject(DomSanitizer);\n private readonly httpClient = inject(HttpClient);\n\n private readonly cache = new Map<string, Observable<SafeHtml>>();\n\n /**\n * Returns an Observable which produces the string contents of the given icon.\n * Results cached, so future calls with the same URL not cause another HTTP request.\n */\n fetchIcon(safeUrl: SafeResourceUrl, options?: IconOptions): Observable<SafeHtml> {\n const withCredentials = options?.withCredentials ?? false;\n\n if (safeUrl == null) {\n throw Error(`Cannot fetch icon from URL \"${safeUrl}\".`);\n }\n\n const url = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n if (!url) {\n throw Error(\n `Provided URL was not trusted as a resource URL ` +\n `via Angular's DomSanitizer. Attempted URL was \"${url}\".`,\n );\n }\n\n // Store in-progress fetches to avoid sending a duplicate requests\n const inProgressFetch = this.cache.get(url);\n\n if (inProgressFetch) {\n return inProgressFetch;\n }\n\n const req = this.httpClient.get(url, {responseType: 'text', withCredentials}).pipe(\n map((res) => {\n const svgExp = /(\\<svg[^\\>]*\\>)|(\\<\\/svg>)|\\n/g;\n const svg = res.replace(svgExp, '').trim();\n // Security: This SVG is fetched from a SafeResourceUrl, and is thus trusted HTML.\n return this.sanitizer.bypassSecurityTrustHtml(svg);\n }),\n shareReplay(1),\n );\n\n this.cache.set(url, req);\n return req;\n }\n}\n","import {InjectionToken} from '@angular/core';\n\nexport function evoCreateToken<T>(defaults: T, description?: string): InjectionToken<T> {\n return evoCreateTokenFromFactory(() => defaults, description);\n}\n\nexport function evoCreateTokenFromFactory<T>(factory: () => T, description?: string): InjectionToken<T> {\n return new InjectionToken<T>(description || '', {factory});\n}\n","import {evoCreateToken} from '../../utils';\nimport {ValueProvider} from '@angular/core';\n\nexport const EVO_ASSETS_PATH = evoCreateToken('assets/ui-kit', 'EVO_ASSETS_PATH');\nexport const EVO_LOCAL_ASSETS_PATH = evoCreateToken(null, 'EVO_LOCAL_ASSETS_PATH');\n\n/**\n * Переопределяет дефолтный путь к assets ui-kit-а.\n */\nexport function evoAssetsPathProvider(useValue: string): ValueProvider {\n return {\n provide: EVO_ASSETS_PATH,\n useValue,\n };\n}\n\n/**\n * Определяет путь к assets проекта.\n */\nexport function evoLocalAssetsPathProvider(useValue: string): ValueProvider {\n return {\n provide: EVO_LOCAL_ASSETS_PATH,\n useValue,\n };\n}\n","import {evoCreateTokenFromFactory} from '../../utils';\nimport {inject, Provider} from '@angular/core';\nimport {CATEGORY_BY_ICON_NAME} from '@evotor-dev/ui-kit/icons';\nimport {EVO_ASSETS_PATH, EVO_LOCAL_ASSETS_PATH} from './assets-path';\n\nexport const EVO_ICON_RESOLVER = evoCreateTokenFromFactory(() => {\n const assetsPath = inject(EVO_ASSETS_PATH);\n const localAssetsPath = inject(EVO_LOCAL_ASSETS_PATH);\n\n return (icon: string) => {\n if (!icon || icon.includes('/')) {\n return icon;\n } else {\n // if there is no icon in the ui-kit, use local resources\n if (!CATEGORY_BY_ICON_NAME.hasOwnProperty(icon)) {\n if (localAssetsPath) {\n return `${localAssetsPath}/icons/${icon}.svg`;\n }\n\n throw new Error(\n `No icon with name \"${icon}\" was found. Please check UI Kit icons or register local path to assets directory`,\n );\n }\n\n return `${assetsPath}/icons/${CATEGORY_BY_ICON_NAME[icon]}/${icon}.svg`;\n }\n };\n}, 'EVO_ICON_RESOLVER');\n\nexport function evoIconResolverProvider(useValue: (s: string) => string): Provider {\n return {\n provide: EVO_ICON_RESOLVER,\n useValue,\n };\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, inject, Input} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {EvoIconService} from './evo-icon.service';\nimport {EVO_ICON_RESOLVER} from '../../common/tokens';\n\n@Component({\n selector: 'evo-icon',\n standalone: true,\n template: `\n <svg\n preserveAspectRatio=\"xMidYMid meet\"\n [attr.width]=\"svgWidth\"\n [attr.height]=\"svgHeight\"\n [attr.viewBox]=\"viewBox\"\n [innerHTML]=\"getContent() | async\"\n [ngClass]=\"classes\"\n />\n `,\n styles: `\n svg {\n display: block;\n min-width: 100%;\n max-width: 100%;\n height: auto;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n})\nexport class EvoIconComponent {\n @Input({required: true}) shape: string;\n @Input() svgWidth = 24;\n @Input() svgHeight = 24;\n @Input() svgViewBox: string;\n\n @HostBinding('class.evo-icon') hostClass = true;\n\n protected readonly resolver = inject(EVO_ICON_RESOLVER);\n\n private readonly sanitizer = inject(DomSanitizer);\n private readonly evoIconService = inject(EvoIconService);\n\n get viewBox(): string {\n if (this.svgViewBox) {\n return this.svgViewBox;\n }\n\n return `0 0 ${this.svgWidth} ${this.svgHeight}`;\n }\n\n get classes(): string[] {\n const classes = ['evo-icon'];\n if (this.shape) {\n classes.push('evo-icon_' + this.shape);\n }\n return classes;\n }\n\n protected getContent() {\n if (!this.shape) {\n return;\n }\n\n const safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.resolver(this.shape));\n\n return this.evoIconService.fetchIcon(safeUrl);\n }\n}\n","import {Component, HostBinding, Optional} from '@angular/core';\nimport {expandAnimation} from '../../../common/animations/expand.animation';\nimport {EvoIsExpandedDirective} from '../../../directives/evo-is-expanded.directive';\nimport {EvoExpandedService} from '../../../services/evo-expanded.service';\n\n@Component({\n selector: 'evo-accordion-content',\n template: `\n <ng-content />\n `,\n styleUrls: ['./evo-accordion-content.component.scss'],\n animations: [expandAnimation],\n standalone: true,\n})\nexport class EvoAccordionContentComponent {\n @HostBinding('@expand') get expandAnimation() {\n if (this.evoIsExpandedDirective) {\n return;\n } else {\n return this.evoExpandedService.isExpanded ? 'open' : 'close';\n }\n }\n\n constructor(\n @Optional() private readonly evoIsExpandedDirective: EvoIsExpandedDirective,\n private readonly evoExpandedService: EvoExpandedService,\n ) {}\n}\n","import {Component} from '@angular/core';\nimport {EvoExpandedService} from '../../../services/evo-expanded.service';\n\n@Component({\n selector: 'evo-accordion-panel',\n template: `\n <ng-content />\n `,\n styleUrls: ['./evo-accordion-panel.component.scss'],\n providers: [EvoExpandedService],\n standalone: true,\n})\nexport class EvoAccordionPanelComponent {\n constructor(private readonly evoExpandedService: EvoExpandedService) {}\n\n toggle() {\n this.evoExpandedService.isExpanded = !this.evoExpandedService.isExpanded;\n }\n}\n","import {Component, HostListener, Input} from '@angular/core';\nimport {EvoExpandedService} from '../../../services/evo-expanded.service';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {AsyncPipe} from '@angular/common';\nimport {EvoIconComponent} from '../../evo-icon/evo-icon.component';\n\n@Component({\n selector: 'evo-accordion-title',\n templateUrl: './evo-accordion-title.component.html',\n styleUrls: ['./evo-accordion-title.component.scss'],\n animations: [\n trigger('toggleBlock', [\n transition(':leave', [\n style({opacity: 1}),\n animate(\n '.3s ease-in-out',\n style({\n opacity: 0,\n }),\n ),\n ]),\n transition(':enter', [\n style({opacity: 0}),\n animate(\n '.3s ease-in-out',\n style({\n opacity: 1,\n }),\n ),\n ]),\n ]),\n ],\n standalone: true,\n imports: [EvoIconComponent, AsyncPipe],\n})\nexport class EvoAccordionTitleComponent {\n @Input() label: string;\n\n isExpanded$ = this.expandedService.isExpandedChange$;\n\n constructor(private readonly expandedService: EvoExpandedService) {}\n\n @HostListener('click') onClick() {\n this.expandedService.isExpanded = !this.expandedService.isExpanded;\n }\n}\n","@if (label) {\n <div class=\"evo-accordion-title\">\n <div class=\"evo-accordion-title__dot\"></div>\n <h4 class=\"evo-accordion-title__label evo-title evo-title_h4\">{{ label }}</h4>\n\n @if ({isExpanded: (isExpanded$ | async)}; as asyncData) {\n <div class=\"evo-accordion-title__expander\">\n @if (asyncData.isExpanded) {\n <evo-icon shape=\"unfold-less\" @toggleBlock />\n } @else {\n <evo-icon shape=\"unfold-more\" @toggleBlock />\n }\n </div>\n }\n </div>\n} @else {\n <ng-content />\n}\n","import {ChangeDetectionStrategy, Component, HostBinding} from '@angular/core';\nimport {skipInitialRenderAnimation} from '../../common/animations/skip-initial-render.animation';\n\n@Component({\n selector: 'evo-accordion',\n template: `\n <ng-content />\n `,\n styleUrls: ['./evo-accordion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [skipInitialRenderAnimation],\n standalone: true,\n})\nexport class EvoAccordionComponent {\n @HostBinding('@skipInitialRender') skipInitialRender;\n}\n","import {NgModule} from '@angular/core';\nimport {EvoIconComponent} from '../evo-icon';\nimport {EvoAccordionContentComponent} from './evo-accordion-content/evo-accordion-content.component';\nimport {EvoAccordionPanelComponent} from './evo-accordion-panel/evo-accordion-panel.component';\nimport {EvoAccordionTitleComponent} from './evo-accordion-title/evo-accordion-title.component';\nimport {EvoAccordionComponent} from './evo-accordion.component';\n\n@NgModule({\n imports: [\n EvoIconComponent,\n EvoAccordionComponent,\n EvoAccordionTitleComponent,\n EvoAccordionPanelComponent,\n EvoAccordionContentComponent,\n ],\n exports: [\n EvoAccordionComponent,\n EvoAccordionTitleComponent,\n EvoAccordionPanelComponent,\n EvoAccordionContentComponent,\n ],\n})\nexport class EvoAccordionModule {}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHtml',\n standalone: true,\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n transform(url) {\n return this.sanitizer.bypassSecurityTrustHtml(url);\n }\n}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {ValidationErrors} from '@angular/forms';\nimport {SafeHtmlPipe} from '../../pipes/safe-html.pipe';\n\nexport interface IEvoControlError {\n [error: string]: string;\n}\n\n@Component({\n selector: 'evo-control-error',\n templateUrl: './evo-control-error.component.html',\n styleUrls: ['./evo-control-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [SafeHtmlPipe],\n})\nexport class EvoControlErrorComponent {\n @Input() errors: ValidationErrors | null;\n @Input() errorsMessages: IEvoControlError;\n @Input() showCount = 1;\n\n private readonly defaultErrorMessages: IEvoControlError = {\n required: 'Заполните поле',\n email: 'Неправильно указана почта',\n phone: 'Введите телефон',\n };\n\n get errorsMap(): string[] {\n const messages = {\n ...this.defaultErrorMessages,\n ...(this.errorsMessages || {}),\n };\n const errorKeys = Object.keys(this.errors || {});\n const result: string[] = [];\n for (let index = 0; index < this.showCount && index < errorKeys.length; index++) {\n if (messages[errorKeys[index]]) {\n result.push(messages[errorKeys[index]]);\n }\n }\n return result;\n }\n}\n","@for (errorMsg of errorsMap; track errorMsg) {\n <div class=\"evo-error\" [innerHTML]=\"errorMsg | safeHtml\"></div>\n}\n","import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';\n\nconst defaultId = `clip-path-`;\n\n@Component({\n selector: 'evo-circular-loader',\n templateUrl: './evo-circular-loader.component.html',\n styleUrls: ['./evo-circular-loader.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class EvoCircularLoaderComponent implements OnInit {\n clipPathId: string = defaultId;\n\n ngOnInit(): void {\n this.clipPathId += `${defaultId}${Math.random().toString(36).substring(2)}`;\n }\n}\n","<div class=\"wrapper\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <clipPath [attr.id]=\"clipPathId\">\n <path\n d=\"M12 20C10.4178 20 8.87103 19.5308 7.55544 18.6518C6.23985 17.7727 5.21447 16.5233 4.60896 15.0615C4.00346 13.5997 3.84504 11.9911 4.15372 10.4393C4.4624 8.88743 5.22433 7.46197 6.34315 6.34315C7.46197 5.22433 8.88743 4.4624 10.4393 4.15372C11.9911 3.84504 13.5997 4.00346 15.0615 4.60896C16.5233 5.21446 17.7727 6.23984 18.6518 7.55544C19.5308 8.87103 20 10.4177 20 12L18 12C18 10.8133 17.6481 9.65327 16.9888 8.66658C16.3295 7.67988 15.3925 6.91085 14.2961 6.45672C13.1997 6.0026 11.9933 5.88378 10.8295 6.11529C9.66557 6.3468 8.59647 6.91824 7.75736 7.75736C6.91824 8.59647 6.3468 9.66557 6.11529 10.8295C5.88378 11.9933 6.0026 13.1997 6.45672 14.2961C6.91085 15.3925 7.67988 16.3295 8.66658 16.9888C9.65327 17.6481 10.8133 18 12 18L12 20Z\"\n />\n </clipPath>\n <foreignObject x=\"0\" y=\"0\" width=\"17\" height=\"16\" [attr.clip-path]=\"'url(#' + clipPathId + ')'\">\n <xhtml:div class=\"loader\" />\n </foreignObject>\n </svg>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoCircularLoaderComponent} from './evo-circular-loader.component';\n\nconst bundle = [EvoCircularLoaderComponent];\n\n@NgModule({\n imports: [...bundle],\n exports: [...bundle],\n})\nexport class EvoLoaderModule {}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n Injector,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n output,\n Renderer2,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport {\n COMPOSITION_BUFFER_MODE,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validator,\n} from '@angular/forms';\nimport {EvoControlStates} from '../../common/evo-control-state-manager/evo-control-states.enum';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {fromEvent, Subject} from 'rxjs';\nimport {debounceTime, map, takeUntil, tap} from 'rxjs/operators';\nimport {enterZone} from '../../operators';\nimport * as IMask from 'imask';\nimport {EvoControlErrorComponent} from '../evo-control-error/evo-control-error.component';\nimport {NgClass} from '@angular/common';\nimport {EvoIconComponent} from '../evo-icon/evo-icon.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\nimport {EvoCircularLoaderComponent} from '../evo-loader';\n\nexport enum EvoInputSizes {\n small = 'small',\n normal = 'normal',\n}\n\nexport enum EvoInputTheme {\n default = 'default',\n rounded = 'rounded',\n}\n\n@Component({\n selector: 'evo-input',\n templateUrl: './evo-input.component.html',\n styleUrls: ['./evo-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EvoInputComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [EvoUiClassDirective, EvoIconComponent, NgClass, EvoControlErrorComponent, EvoCircularLoaderComponent],\n})\nexport class EvoInputComponent\n extends EvoBaseControl\n implements ControlValueAccessor, OnInit, AfterViewInit, OnChanges, OnDestroy, Validator\n{\n @Input() autoFocus: boolean;\n // eslint-disable-next-line\n @Input('data-cp') dataCp: string;\n @Input() icon: string;\n // eslint-disable-next-line\n @Input() mask: any;\n @Input() placeholder: string;\n @Input() tooltip: string;\n @Input() type = 'text';\n @Input() disabled = false;\n @Input() loading = false;\n @Input() prefix = '';\n @Input() autocomplete: string;\n @Input() inputDebounce = 50;\n @Input() unmask: boolean | 'typed' = false;\n @Input() clearable = false;\n @Input() maskValidation = false;\n\n readonly blur = output<Event>();\n readonly onFocus = output<Event>();\n\n @ViewChild('input', {static: true}) inputElement: ElementRef;\n @ViewChild('tooltipContainer', {static: true}) tooltipElement: ElementRef;\n\n size: EvoInputSizes = EvoInputSizes.normal;\n theme: EvoInputTheme = EvoInputTheme.default;\n _value: string;\n customTooltipChecked = false;\n uiStates = {\n hasCustomTooltip: false,\n isTooltipVisible: false,\n isFocused: false,\n };\n\n // eslint-disable-next-line\n private iMask: IMask.InputMask<any>;\n\n private tooltipVisibilityTimeout = false;\n\n private readonly destroy$ = new Subject<void>();\n\n /** Whether the user is creating a composition string (IME events). */\n private _composing = false;\n\n constructor(\n private readonly zone: NgZone,\n private readonly changeDetector: ChangeDetectorRef,\n private readonly _renderer: Renderer2,\n @Optional() @Inject(COMPOSITION_BUFFER_MODE) private readonly _compositionMode: boolean,\n protected injector: Injector,\n ) {\n super(injector);\n }\n\n @Input('value') set setValue(value) {\n this._value = value;\n }\n\n @Input('size') set setSize(size: EvoInputSizes | string) {\n if (EvoInputSizes[size]) {\n this.size = EvoInputSizes[size];\n }\n }\n\n @Input('theme') set setTheme(theme: string | EvoInputTheme) {\n if (EvoInputTheme[theme]) {\n this.theme = EvoInputTheme[theme];\n }\n }\n\n get isDisabled() {\n if (this.loading) {\n return true;\n }\n return this.disabled;\n }\n\n // eslint-disable-next-line\n get value(): any {\n return this._value;\n }\n\n // eslint-disable-next-line\n set value(value: any) {\n if (value || this._value) {\n this._value = this.removePrefix(value);\n this.onChange(this.prefix + (this._value || ''));\n this.changeDetector.markForCheck();\n }\n }\n\n get inputClass(): {[cssClass: string]: boolean} {\n return {\n focused: this.uiStates.isFocused,\n disabled: this.isDisabled,\n valid: this.currentState[EvoControlStates.valid],\n invalid: this.currentState[EvoControlStates.invalid],\n [`size-${this.size}`]: this.size !== EvoInputSizes.normal,\n [`theme-${this.theme}`]: true,\n };\n }\n\n get hasAdditional(): boolean {\n return !!this.tooltip || this.uiStates.hasCustomTooltip || !!this.icon;\n }\n\n // eslint-disable-next-line\n set maskValue(value: any) {\n const normalizedValue = value ?? '';\n if (this.iMask) {\n if (this.unmask === 'typed') {\n this.iMask.typedValue = normalizedValue;\n } else if (this.unmask) {\n this.iMask.unmaskedValue = normalizedValue;\n } else {\n this.iMask.value = normalizedValue;\n }\n } else {\n this.writeToElement(normalizedValue);\n }\n }\n\n // eslint-disable-next-line\n get maskValue(): any {\n if (!this.iMask) {\n return this.inputElement.nativeElement.value;\n }\n if (this.unmask === 'typed') {\n return this.iMask.typedValue;\n }\n if (this.unmask) {\n return this.iMask.unmaskedValue;\n }\n return this.iMask.value;\n }\n\n get isClearable(): boolean {\n return this.clearable && !this.disabled;\n }\n\n ngOnInit() {\n const inputEl = this.inputElement.nativeElement;\n\n this.zone.runOutsideAngular(() => {\n if (this.mask) {\n this.createMaskInstance(this.mask);\n }\n\n fromEvent(inputEl, 'input')\n .pipe(\n debounceTime(this.inputDebounce),\n map((e: InputEvent) => {\n if (this.iMask) {\n return this.maskValue;\n }\n return (e.target as HTMLInputElement).value;\n }),\n enterZone(this.zone),\n tap((value: string) => {\n this.value = value;\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n if (this.iMask) {\n this.destroyMask();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!changes) {\n return;\n }\n\n const {mask} = changes;\n\n if (mask && !mask.firstChange) {\n const newMaskOptions = mask.currentValue;\n if (newMaskOptions) {\n if (this.iMask) {\n this.iMask.updateOptions(newMaskOptions);\n } else {\n this.createMaskInstance(newMaskOptions);\n }\n } else {\n this.destroyMask();\n }\n }\n }\n\n onChange(value) {\n // this is intentional\n }\n\n onTouched() {\n // this is intentional\n }\n\n ngAfterViewInit() {\n if (this.autoFocus) {\n this.focus();\n }\n this.checkCustomTooltip();\n }\n\n // eslint-disable-next-line\n writeToElement(value: any) {\n this._renderer.setProperty(this.inputElement.nativeElement, 'value', value);\n }\n\n // eslint-disable-next-line\n writeValue(value: any): void {\n if (value === this._value) {\n return;\n }\n\n this.value = value;\n\n if (this.mask) {\n this.maskValue = value;\n } else {\n this.writeToElement(value);\n }\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(state: boolean): void {\n this.disabled = state;\n this.changeDetector.detectChanges();\n }\n\n focus(): void {\n this.inputElement.nativeElement.focus();\n }\n\n onInputFocus(event: Event): void {\n if (this.uiStates.isFocused) {\n return;\n }\n\n this.uiStates.isFocused = true;\n this.onTouched();\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: Event): void {\n this.uiStates.isFocused = false;\n this.onTouched();\n this.blur.emit(event);\n }\n\n // eslint-disable-next-line\n onTooltipClick(event: any): void {\n event.preventDefault();\n event.stopPropagation();\n }\n\n onClear(): void {\n this.writeValue('');\n }\n\n hideTooltip() {\n this.tooltipVisibilityTimeout = true;\n\n setTimeout(() => {\n if (this.tooltipVisibilityTimeout) {\n this.uiStates.isTooltipVisible = false;\n }\n }, 25);\n }\n\n showTooltip() {\n this.uiStates.isTooltipVisible = true;\n this.tooltipVisibilityTimeout = false;\n }\n\n // Composition handling is taken from:\n // https://github.com/angular/angular/blob/11.0.3/packages/forms/src/directives/default_value_accessor.ts#L152\n _compositionStart(): void {\n this._composing = true;\n }\n\n // eslint-disable-next-line\n _compositionEnd(value: any): void {\n this._composing = false;\n if (this._compositionMode) {\n this.value = value;\n }\n }\n\n // eslint-disable-next-line\n private removePrefix(value: any): any {\n if (typeof value === 'string' && value.indexOf(this.prefix) === 0) {\n return value.replace(this.prefix, '');\n }\n return value;\n }\n\n // eslint-disable-next-line\n private createMaskInstance(opts: any) {\n this.iMask = new IMask.InputMask(this.inputElement.nativeElement, opts);\n }\n\n private destroyMask() {\n this.iMask?.destroy();\n this.iMask = null;\n }\n\n private checkCustomTooltip() {\n this.uiStates.hasCustomTooltip =\n this.tooltipElement &&\n this.tooltipElement.nativeElement &&\n this.tooltipElement.nativeElement.children.length > 0;\n this.customTooltipChecked = true;\n this.changeDetector.detectChanges();\n }\n\n validate() {\n if (this.maskValidation && this.mask && !this.iMask.masked.isComplete) {\n return {mask: true};\n }\n return null;\n }\n}\n","<label class=\"evo-input\" [evoUiClass]=\"inputClass\">\n <div class=\"evo-input__prefix-content\">\n <ng-content select=\"[evoInputPrefixContent]\" />\n </div>\n <div class=\"evo-input__prefix-icon\">\n <ng-content select=\"[evoInputIcon]\" />\n </div>\n\n @if (prefix) {\n <span class=\"evo-input__prefix\" [evoUiClass]=\"{focused: (!isDisabled && !!value) || uiStates.isFocused}\">\n {{ prefix }}\n </span>\n }\n\n <input\n #input\n type=\"{{ type }}\"\n placeholder=\"{{ placeholder }}\"\n class=\"evo-input__field\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.data-cp]=\"dataCp\"\n [disabled]=\"isDisabled\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (compositionstart)=\"_compositionStart()\"\n (compositionend)=\"_compositionEnd($event.target.value)\"\n />\n\n @if (loading) {\n <evo-circular-loader class=\"evo-input__loading-spinner\" />\n } @else {\n @if (isClearable) {\n <div class=\"evo-input__clearable\" (click)=\"onClear()\">\n <evo-icon shape=\"decline\" class=\"evo-input__icon-clear\" />\n </div>\n }\n @if (hasAdditional) {\n <div class=\"evo-input__additional\">\n @if (tooltip || uiStates.hasCustomTooltip) {\n <evo-icon\n shape=\"help\"\n class=\"evo-input__tooltip\"\n (mouseenter)=\"showTooltip()\"\n (mouseleave)=\"hideTooltip()\"\n (click)=\"onTooltipClick($event)\"\n />\n }\n @if (icon) {\n <div class=\"evo-input__icon\">\n <img [attr.src]=\"icon\" />\n </div>\n }\n </div>\n }\n }\n\n @if (!customTooltipChecked || uiStates.isTooltipVisible) {\n <div\n #tooltipContainer\n [hidden]=\"!customTooltipChecked\"\n [ngClass]=\"{'evo-input__tooltip-container': tooltip}\"\n (click)=\"onTooltipClick($event)\"\n (mouseenter)=\"showTooltip()\"\n (mouseleave)=\"hideTooltip()\"\n >\n {{ tooltip }}\n <ng-content select=\"[tooltip]\" />\n </div>\n }\n</label>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[evoInputIcon]',\n standalone: true,\n})\nexport class EvoInputIconDirective {}\n","import {NgModule} from '@angular/core';\nimport {EvoInputComponent} from './evo-input.component';\nimport {EvoInputIconDirective} from './evo-input-icon/evo-input-icon.directive';\n\n@NgModule({\n imports: [EvoInputComponent, EvoInputIconDirective],\n exports: [EvoInputComponent, EvoInputIconDirective],\n})\nexport class EvoInputModule {}\n","import {NgModule} from '@angular/core';\nimport {EvoControlErrorComponent} from './evo-control-error.component';\n\n@NgModule({\n imports: [EvoControlErrorComponent],\n exports: [EvoControlErrorComponent],\n})\nexport class EvoControlErrorModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NgControl} from '@angular/forms';\nimport {merge, Subject} from 'rxjs';\nimport {NgSelectComponent, NgSelectModule} from '@ng-select/ng-select';\nimport {delay, takeUntil, tap} from 'rxjs/operators';\nimport {isNull} from 'lodash-es';\nimport {EvoInputTheme} from '../../../evo-input';\nimport {EvoAutocompleteSize} from '../../types/evo-autocomplete-size';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {NgIf, NgTemplateOutlet} from '@angular/common';\nimport {EvoControlErrorModule} from '../../../evo-control-error';\nimport {EvoIconService} from '../../../evo-icon';\nimport {EvoUiClassDirective} from '../../../../directives/evo-ui-class.directive';\nimport {EVO_ICON_RESOLVER} from '../../../../common/tokens';\n\nexport type DropdownPosition = 'bottom' | 'top' | 'auto';\n// eslint-disable-next-line\nexport type AddTagFn = (term: string) => any | Promise<any>;\n// eslint-disable-next-line\nexport type SearchFn = (term: string, item: any) => boolean;\n// eslint-disable-next-line\nexport type CompareWithFn = (a: any, b: any) => boolean;\n// eslint-disable-next-line\nexport type GroupValueFn = (key: string | object, children: any[]) => string | object;\n\nconst DEFAULT_NOT_FOUND_TEXT = 'Не найдено';\n\n@Component({\n // eslint-disable-next-line\n selector: 'evo-autocomplete',\n templateUrl: './evo-autocomplete.component.html',\n styleUrls: ['./evo-autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [EvoUiClassDirective, NgSelectModule, FormsModule, NgTemplateOutlet, NgIf, EvoControlErrorModule],\n})\nexport class EvoAutocompleteComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n theme: EvoInputTheme = EvoInputTheme.default;\n\n @Input() size: EvoAutocompleteSize = 'normal';\n\n isFocused = false;\n isSelectbox = false;\n\n // eslint-disable-next-line\n @Input() isOpen;\n // eslint-disable-next-line\n @Input() items: any[];\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() markFirst = true;\n @Input() placeholder: string;\n @Input() typeToSearchText: string;\n @Input() addTagText = 'Добавить тэг';\n @Input() loadingText = 'Идет поиск...';\n @Input() clearAllText: string;\n @Input() dropdownPosition: DropdownPosition = 'auto';\n @Input() appendTo: string;\n @Input() loading: boolean;\n @Input() closeOnSelect = true;\n @Input() hideSelected: boolean;\n @Input() selectOnTab: boolean;\n @Input() openOnEnter: boolean;\n @Input() maxSelectedItems: number;\n // eslint-disable-next-line\n @Input() groupBy: string | ((value: any) => any);\n @Input() groupValue: GroupValueFn;\n @Input() bufferAmount = 4;\n @Input() virtualScroll: boolean;\n @Input() selectableGroup: boolean;\n @Input() selectableGroupAsModel = true;\n // eslint-disable-next-line\n @Input() searchFn: SearchFn;\n @Input() clearOnBackspace = true;\n @Input() typeahead: Subject<string>;\n @Input() multiple: boolean;\n @Input() multipleInline: boolean;\n @Input() addTag: boolean | AddTagFn;\n @Input() clearable = true;\n @Input() errorsMessages: {[key: string]: string};\n @Input() compareWith: CompareWithFn;\n @Input('notFoundText') _notFoundText: string;\n\n // Fix: https://github.com/ng-select/ng-select/pull/1257\n // Don't work with custom template - labelTemp\n @Input() editQuery = false;\n\n // Outputs\n /* eslint-disable @angular-eslint/no-output-rename */\n @Output('blur') blurEvent = new EventEmitter();\n @Output('focus') focusEvent = new EventEmitter();\n @Output('change') changeEvent = new EventEmitter();\n @Output('open') openEvent = new EventEmitter();\n @Output('close') closeEvent = new EventEmitter();\n // eslint-disable-next-line\n @Output('search') searchEvent = new EventEmitter<{term: string; items: any[]}>();\n @Output('clear') clearEvent = new EventEmitter();\n @Output('add') addEvent = new EventEmitter();\n @Output('remove') removeEvent = new EventEmitter();\n @Output('scroll') scrollEvent = new EventEmitter<{start: number; end: number}>();\n @Output('scrollToEnd') scrollToEndEvent = new EventEmitter();\n /* eslint-enable @angular-eslint/no-output-rename */\n\n @ViewChild(NgSelectComponent)\n ngSelectComponent: NgSelectComponent;\n\n // eslint-disable-next-line\n @ContentChild('labelTemp', {read: TemplateRef}) labelTemp: TemplateRef<any>;\n // eslint-disable-next-line\n @ContentChild('multiLabelTemp', {read: TemplateRef}) multiLabelTemp: TemplateRef<any>;\n // eslint-disable-next-line\n @ContentChild('optionTemp', {read: TemplateRef}) optionTemp: TemplateRef<any>;\n // eslint-disable-next-line\n @ContentChild('optgroupTemp', {read: TemplateRef}) optgroupTemp: TemplateRef<any>;\n // eslint-disable-next-line\n @ContentChild('headerTemp', {read: TemplateRef}) headerTemp: TemplateRef<any>;\n // eslint-disable-next-line\n @ContentChild('footerTemp', {read: TemplateRef}) footerTemp: TemplateRef<any>;\n // eslint-disable-next-line\n @ContentChild('notFoundTemp', {read: TemplateRef}) notFoundTemp: TemplateRef<any>;\n\n protected inputVal: string;\n\n protected readonly _destroy$ = new Subject<void>();\n\n // eslint-disable-next-line\n protected _value: any;\n\n protected inputEl: HTMLInputElement;\n protected _searchable;\n\n get notFoundText(): string {\n if (this.isSelectbox) {\n return this._notFoundText || '';\n }\n return this._notFoundText || DEFAULT_NOT_FOUND_TEXT;\n }\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n public control: NgControl,\n private readonly evoIconService: EvoIconService,\n private readonly sanitizer: DomSanitizer,\n @Inject(EVO_ICON_RESOLVER) private readonly iconResolver: (s: string) => string,\n ) {\n control.valueAccessor = this;\n }\n\n @Input() set searchable(searchable: boolean) {\n this._searchable = searchable;\n }\n\n get searchable(): boolean {\n return this._searchable ?? !this.isSelectbox;\n }\n\n @Input('isSelectbox') set setSelectbox(isSelectbox: boolean) {\n this.clearable = false;\n this.editQuery = false;\n this.isSelectbox = isSelectbox;\n }\n\n @Input('theme') set setTheme(theme: string | EvoInputTheme) {\n if (EvoInputTheme[theme]) {\n this.theme = EvoInputTheme[theme];\n }\n }\n\n get hasErrors(): boolean {\n return this.control.dirty && this.control.touched && this.control.invalid;\n }\n\n get classes(): {[key: string]: boolean} {\n return {\n 'is-multiple-inline': this.multipleInline,\n 'is-edit-query': this.editQuery,\n 'is-selectbox': this.isSelectbox,\n disabled: this.control.disabled,\n touched: this.control.touched,\n valid: this.control.valid,\n invalid: this.control.invalid,\n [`theme-${this.theme}`]: true,\n [`size-${this.size}`]: true,\n };\n }\n\n // eslint-disable-next-line\n get value(): any {\n return this._value;\n }\n\n // eslint-disable-next-line\n set value(value: any) {\n if (value !== this._value) {\n this._value = value;\n this._onChange(value);\n }\n }\n\n // eslint-disable-next-line\n getMultipleInlineItemsLabels(items: any[]): string {\n if (!items || !Array.isArray(items) || items.length === 0) {\n return '';\n }\n return items\n .map((item) => item[this.bindLabel] || '')\n .filter((item) => item !== '')\n .join(', ');\n }\n\n ngAfterViewInit(): void {\n if (this.editQuery) {\n this.editQueryMode();\n }\n\n this.patchClearButtonIcon();\n\n // prevent option click to close evo-modal\n this.ngSelectComponent.element.addEventListener('click', (e) => {\n if ((e.target as HTMLElement).closest('.ng-option')) {\n e.stopPropagation();\n }\n });\n\n // Allows to mark view for check\n // if control was validated with FormHelper.validate\n // and it's touched\n this.control.control.statusChanges\n .pipe(\n takeUntil(this._destroy$),\n tap(() => this.cdr.markForCheck()),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n // eslint-disable-next-line\n writeValue(value: any): void {\n this.value = value;\n if (this.ngSelectComponent) {\n this.ngSelectComponent.writeValue(value);\n }\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (this.ngSelectComponent) {\n this.ngSelectComponent.setDisabledState(isDisabled);\n }\n }\n\n // TODO: investigate and remove\n editQueryMode(): void {\n const ngSelectEl: HTMLElement = this.ngSelectComponent.element;\n this.inputEl = ngSelectEl.querySelector('.ng-input input');\n const streams$ = [\n this.changeEvent.pipe(\n delay(0),\n tap(() => {\n this.resetSearchQuery();\n this.inputEl.value = this.inputVal || '';\n }),\n ),\n this.closeEvent.pipe(\n delay(0),\n tap(() => {\n this.resetSearchQuery();\n if (ngSelectEl.classList.contains('ng-select-focused')) {\n this.inputEl.value = this.inputVal || '';\n }\n }),\n ),\n this.focusEvent.pipe(\n tap(() => {\n this.resetSearchQuery();\n this.inputEl.value = this.inputVal || '';\n }),\n ),\n this.blurEvent.pipe(\n tap(() => {\n this.inputEl.value = '';\n }),\n ),\n ];\n\n if (this.control.valueChanges) {\n streams$.push(\n this.control.valueChanges.pipe(\n tap((value) => {\n if (!isNull(value)) {\n this.resetSearchQuery();\n return;\n }\n this.inputVal = '';\n this.inputEl.value = '';\n }),\n ),\n );\n }\n\n merge(...streams$)\n .pipe(takeUntil(this._destroy$))\n .subscribe();\n }\n\n resetSearchQuery(): void {\n const currentItem = this.ngSelectComponent.selectedItems[0];\n this.inputVal = currentItem?.label || '';\n }\n\n focus(): void {\n this.ngSelectComponent.focus();\n }\n\n blur(): void {\n this.ngSelectComponent.blur();\n }\n\n open(): void {\n this.ngSelectComponent.open();\n }\n\n close(): void {\n this.ngSelectComponent.close();\n }\n\n onFocus(event: FocusEvent): void {\n this.isFocused = true;\n this._onTouched();\n if (this.control.value) {\n this.focusEvent.emit(event);\n }\n }\n\n onBlur(event: FocusEvent): void {\n this.isFocused = false;\n this.blurEvent.emit(event);\n }\n\n onClearClick(): void {\n this.ngSelectComponent.handleClearClick();\n }\n\n protected _onChange = (value) => {};\n\n protected _onTouched = () => {};\n\n /**\n * Try to patch clear button icon\n */\n protected patchClearButtonIcon(): void {\n const originalShowClearFn = this.ngSelectComponent.showClear;\n const ngSelectElement = this.ngSelectComponent;\n let fetchIconSubscription = null;\n\n const safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.iconResolver('decline'));\n const icon$ = this.evoIconService.fetchIcon(safeUrl);\n\n this.ngSelectComponent.showClear = function () {\n const isClearButtonVisible = originalShowClearFn.bind(this)();\n\n if (isClearButtonVisible) {\n fetchIconSubscription?.unsubscribe();\n\n fetchIconSubscription = icon$.subscribe((iconDecline) => {\n const ngClearWrapperElement = ngSelectElement.element.querySelector('.ng-clear-wrapper');\n if (!ngClearWrapperElement) {\n return;\n }\n // eslint-disable-next-line:max-line-length\n ngClearWrapperElement.innerHTML = `<span class=\"ng-clear ng-clear_patched\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">${iconDecline}</svg></span>`;\n });\n }\n\n return isClearButtonVisible;\n };\n }\n}\n","<div class=\"evo-autocomplete\" [evoUiClass]=\"classes\">\n <ng-select\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [markFirst]=\"markFirst\"\n [placeholder]=\"placeholder\"\n [notFoundText]=\"notFoundText\"\n [typeToSearchText]=\"typeToSearchText\"\n [addTagText]=\"addTagText\"\n [loadingText]=\"loadingText\"\n [clearAllText]=\"clearAllText\"\n [dropdownPosition]=\"dropdownPosition\"\n [appendTo]=\"appendTo\"\n [loading]=\"loading\"\n [closeOnSelect]=\"closeOnSelect\"\n [hideSelected]=\"hideSelected\"\n [selectOnTab]=\"selectOnTab\"\n [openOnEnter]=\"openOnEnter\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [groupBy]=\"groupBy\"\n [groupValue]=\"groupValue\"\n [bufferAmount]=\"bufferAmount\"\n [virtualScroll]=\"virtualScroll\"\n [selectableGroup]=\"selectableGroup\"\n [selectableGroupAsModel]=\"selectableGroupAsModel\"\n [searchFn]=\"searchFn\"\n [clearOnBackspace]=\"clearOnBackspace\"\n [typeahead]=\"typeahead\"\n [multiple]=\"multiple || multipleInline\"\n [addTag]=\"addTag\"\n [searchable]=\"searchable\"\n [clearable]=\"clearable\"\n [isOpen]=\"isOpen\"\n [editableSearchTerm]=\"editQuery\"\n [disabled]=\"control.disabled\"\n [compareWith]=\"compareWith\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (change)=\"changeEvent.emit($event)\"\n (open)=\"openEvent.emit($event)\"\n (close)=\"closeEvent.emit($event)\"\n (search)=\"searchEvent.emit($event)\"\n (clear)=\"clearEvent.emit($event)\"\n (add)=\"addEvent.emit($event)\"\n (remove)=\"removeEvent.emit($event)\"\n (scroll)=\"scrollEvent.emit($event)\"\n (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\n >\n <!-- Selected Item Template -->\n @if (labelTemp) {\n <ng-template ng-label-tmp let-item=\"item\">\n <ng-template *ngTemplateOutlet=\"labelTemp; context: {item: item}\" />\n </ng-template>\n }\n\n <!-- Overall Label For All Selected Items Template -->\n @if (multiLabelTemp) {\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div class=\"evo-autocomplete__label\">\n <ng-template *ngTemplateOutlet=\"multiLabelTemp; context: {items: items, clear: clear}\" />\n </div>\n </ng-template>\n }\n @if (headerTemp) {\n <!-- Options header template -->\n <ng-template ng-header-tmp>\n <ng-template *ngTemplateOutlet=\"headerTemp; context: {items: items}\" />\n </ng-template>\n }\n\n <!-- Option Template -->\n @if (optionTemp) {\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\" let-item$=\"item$\">\n <ng-template\n *ngTemplateOutlet=\"\n optionTemp;\n context: {item: item, index: index, searchTerm: search, item$: item$}\n \"\n />\n </ng-template>\n }\n\n @if (multipleInline && !multiLabelTemp) {\n <ng-template ng-multi-label-tmp let-items=\"items\">\n <div class=\"ng-value evo-autocomplete__label\">{{ getMultipleInlineItemsLabels(items) }}</div>\n </ng-template>\n }\n\n @if (optgroupTemp) {\n <!-- Options group template -->\n <ng-template ng-optgroup-tmp let-item=\"item\" let-index=\"index\">\n <ng-template *ngTemplateOutlet=\"optgroupTemp; context: {item: item, index: index}\" />\n </ng-template>\n }\n\n <!-- Search Text Templates -->\n <ng-template ng-typetosearch-tmp>\n @if (typeToSearchText) {\n <div class=\"ng-option disabled\">{{ typeToSearchText }}</div>\n }\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">{{ loadingText }}</div>\n </ng-template>\n\n @if (notFoundTemp) {\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <ng-template *ngTemplateOutlet=\"notFoundTemp; context: {searchTerm: searchTerm}\" />\n </ng-template>\n } @else {\n <ng-template ng-notfound-tmp>\n <div class=\"ng-option disabled\">{{ notFoundText }}</div>\n </ng-template>\n }\n\n @if (footerTemp) {\n <!-- Options footer template -->\n <ng-template ng-footer-tmp>\n <ng-template *ngTemplateOutlet=\"footerTemp; context: {items: items}\" />\n </ng-template>\n }\n </ng-select>\n\n @if (hasErrors && errorsMessages) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n }\n</div>\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Injector,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EvoControlStates} from '../../common/evo-control-state-manager/evo-control-states.enum';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {EvoControlErrorComponent} from '../evo-control-error/evo-control-error.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-checkbox',\n templateUrl: './evo-checkbox.component.html',\n styleUrls: ['./evo-checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoCheckboxComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [FormsModule, EvoUiClassDirective, EvoControlErrorComponent],\n})\nexport class EvoCheckboxComponent extends EvoBaseControl implements ControlValueAccessor {\n @Input('indeterminate') set setIndeterminate(value) {\n this.indeterminate = value;\n }\n\n @Output() indeterminateChange = new EventEmitter<boolean>();\n\n @ViewChild('inputElement') inputElement: ElementRef;\n\n indeterminate = undefined;\n\n disabled = false;\n private _value: boolean;\n\n constructor(\n protected injector: Injector,\n private readonly cdr: ChangeDetectorRef,\n ) {\n super(injector);\n }\n\n onChange(_) {}\n\n onTouched() {}\n\n get value(): boolean {\n return this._value;\n }\n\n set value(value: boolean) {\n this._value = value;\n this.onChange(value);\n this.cdr.detectChanges();\n }\n\n get checkboxClass() {\n return {\n invalid: this.currentState[EvoControlStates.invalid],\n };\n }\n\n onInputChange(value) {\n this.value = value;\n if (this.indeterminate === true) {\n this.indeterminate = false;\n this.indeterminateChange.emit(false);\n }\n }\n\n writeValue(value: boolean): void {\n this._value = value;\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(state: boolean): void {\n this.disabled = state;\n this.cdr.detectChanges();\n }\n}\n","<label class=\"evo-checkbox\">\n <input\n #inputElement\n type=\"checkbox\"\n class=\"evo-checkbox__input\"\n [indeterminate]=\"indeterminate\"\n [evoUiClass]=\"checkboxClass\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onInputChange($event)\"\n />\n <span class=\"evo-checkbox__text\">\n <ng-content />\n </span>\n</label>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n","import {NgModule} from '@angular/core';\nimport {EvoCheckboxComponent} from './evo-checkbox.component';\n\n@NgModule({\n imports: [EvoCheckboxComponent],\n exports: [EvoCheckboxComponent],\n})\nexport class EvoCheckboxModule {}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {EvoCheckboxModule} from '../../../evo-checkbox/evo-checkbox.module';\n\n@Component({\n selector: 'evo-autocomplete-default-option',\n templateUrl: './evo-autocomplete-default-option.component.html',\n styleUrls: ['./evo-autocomplete-default-option.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoCheckboxModule, FormsModule],\n})\nexport class EvoAutocompleteDefaultOptionComponent {\n @Input() hasCheckbox: boolean;\n\n @Input() label: string;\n @Input() description: string;\n @Input() isDisabled: boolean;\n @Input() isSelected: boolean;\n\n @HostBinding('class.has-checkbox') get hasCheckboxClass(): boolean {\n return this.hasCheckbox;\n }\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n onSelectedChange(e): void {\n this.cdr.markForCheck();\n }\n\n onCheckboxClick(e: Event): void {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (e.target) {\n (e.target as HTMLElement).closest('.ng-option')?.dispatchEvent(new Event('click'));\n }\n }\n}\n","@if (hasCheckbox) {\n <div class=\"option option_has-checkbox\">\n <evo-checkbox\n [ngModel]=\"isSelected\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"isDisabled\"\n (click)=\"onCheckboxClick($event)\"\n (change)=\"onCheckboxClick($event)\"\n (ngModelChange)=\"onSelectedChange($event)\"\n >\n {{ label }}\n </evo-checkbox>\n\n @if (description) {\n <div class=\"option__description\">{{ description }}</div>\n }\n </div>\n} @else {\n <div class=\"option\">\n <div class=\"option__label\">{{ label }}</div>\n\n @if (description) {\n <div class=\"option__description\">{{ description }}</div>\n }\n </div>\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'evo-autocomplete-header',\n templateUrl: './evo-autocomplete-header.component.html',\n styleUrls: ['./evo-autocomplete-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class EvoAutocompleteHeaderComponent {}\n","<div class=\"evo-autocomplete-header\">\n <ng-content />\n</div>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'evo-autocomplete-footer',\n templateUrl: './evo-autocomplete-footer.component.html',\n styleUrls: ['./evo-autocomplete-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class EvoAutocompleteFooterComponent {}\n","<div class=\"evo-autocomplete-footer\">\n <ng-content />\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoAutocompleteComponent} from './components/evo-autocomplete/evo-autocomplete.component';\n\nimport {EvoAutocompleteDefaultOptionComponent} from './components/evo-autocomplete-default-option/evo-autocomplete-default-option.component';\nimport {EvoAutocompleteHeaderComponent} from './components/evo-autocomplete-header/evo-autocomplete-header.component';\nimport {EvoAutocompleteFooterComponent} from './components/evo-autocomplete-footer/evo-autocomplete-footer.component';\n\n@NgModule({\n imports: [EvoAutocompleteComponent, EvoAutocompleteDefaultOptionComponent,EvoAutocompleteHeaderComponent,\n EvoAutocompleteFooterComponent,],\n exports: [EvoAutocompleteComponent, EvoAutocompleteDefaultOptionComponent,EvoAutocompleteHeaderComponent,\n EvoAutocompleteFooterComponent,],\n})\nexport class EvoAutocompleteModule {}\n","import {concat, Observable, of, Subject} from 'rxjs';\nimport {debounceTime, distinctUntilChanged, switchMap} from 'rxjs/operators';\n\nexport function switchQueryToList(\n queryStream: Subject<string>,\n // eslint-disable-next-line\n switchMapFn: (query: string) => Observable<any[]>,\n initialList = [],\n debounce = 300,\n // eslint-disable-next-line\n): Observable<any[]> {\n return concat(\n of(initialList),\n queryStream.pipe(debounceTime(debounce), distinctUntilChanged(), switchMap(switchMapFn)),\n // eslint-disable-next-line\n ) as Observable<any[]>;\n}\n","/**\n * @deprecated use an DadataCompanyType\n */\nexport enum DaDataEntityTypes {\n legal = 'LEGAL',\n individual = 'INDIVIDUAL',\n}\n\n/**\n * @deprecated use an DadataPartySuggestion\n */\nexport class DaDataParty {\n name: {\n full: string,\n full_with_opf: string,\n latin: string,\n short: string,\n short_with_opf: string,\n };\n\n management: {\n name: string,\n post: string,\n };\n\n address: {\n value: string,\n // eslint-disable-next-line\n data: any,\n };\n\n inn: string;\n kpp: string;\n okpo: string;\n ogrn: string;\n okved: string;\n okato: string;\n\n type: DaDataEntityTypes;\n\n // eslint-disable-next-line\n constructor(data?: any) {\n Object.assign(this, data);\n }\n\n get legalName(): string {\n return this.name ? this.name.short_with_opf || this.name.full_with_opf : null;\n }\n\n get contactPerson(): string {\n if (this.management) {\n return this.management.name;\n } else {\n return this.name ? this.name.full : '';\n }\n }\n}\n","export enum DadataFounderShareType {\n PERCENT = 'PERCENT',\n DECIMAL = 'DECIMAL',\n FRACTION = 'FRACTION',\n}\n\nexport enum DadataCompanyType {\n LEGAL = 'LEGAL',\n INDIVIDUAL = 'INDIVIDUAL',\n}\n\nexport enum DadataCompanyBranchType {\n MAIN = 'MAIN',\n BRANCH = 'BRANCH',\n}\n\nexport enum DadataCompanyStatus {\n ACTIVE = 'ACTIVE',\n LIQUIDATING = 'LIQUIDATING',\n LIQUIDATED = 'LIQUIDATED',\n REORGANIZING = 'REORGANIZING',\n BANKRUPT = 'BANKRUPT',\n}\n\nexport enum DadataBankStatus {\n ACTIVE = 'ACTIVE',\n LIQUIDATING = 'LIQUIDATING',\n LIQUIDATED = 'LIQUIDATED',\n}\n\nexport enum DadataBankType {\n CBR = 'CBR',\n BANK = 'BANK',\n BANK_BRANCH = 'BANK_BRANCH',\n NKO = 'NKO',\n NKO_BRANCH = 'NKO_BRANCH',\n RKC = 'RKC',\n TREASURY = 'TREASURY',\n OTHER = 'OTHER'\n}\n\nexport enum DadataManagerType {\n EMPLOYEE = 'EMPLOYEE',\n FOREIGNER = 'FOREIGNER',\n LEGAL = 'LEGAL',\n}\n\nexport interface DadataMetro {\n name: string;\n line: string;\n distance: string;\n}\n\nexport interface DadataFio {\n gender?: string;\n name: string;\n patronymic: string;\n // eslint-disable-next-line\n qc?: any;\n source?: string;\n surname: string;\n}\n\nexport interface DadataManager {\n ogrn: string;\n inn: string;\n name: string;\n fio: DadataFio;\n post: string;\n hid: string;\n type: DadataManagerType;\n}\n\nexport interface DadataReorganized {\n ogrn: string;\n inn: string;\n name: string;\n}\n\nexport interface DadataPartyOPF {\n code: string;\n full: string;\n short: string;\n type: string;\n}\n\nexport interface DadataFounderShare {\n type: DadataFounderShareType;\n value?: number;\n numerator?: number;\n denominator?: number;\n}\n\nexport interface DadataFounder {\n ogrn: string;\n inn: string;\n name: string;\n fio: DadataFio;\n hid: string;\n type: string;\n share: DadataFounderShare;\n}\n\nexport interface DadataFioSuggestion {\n surname: string;\n name: string;\n patronymic: string;\n gender: string;\n source: string;\n qc: string;\n}\n\nexport interface DadataFTSSuggestion {\n type: string;\n name: string;\n code: string;\n address: string;\n}\n\nexport interface DadataAuthoritiesSuggestion {\n fts_registration?: DadataFTSSuggestion;\n fts_report?: DadataFTSSuggestion;\n pf?: DadataFTSSuggestion;\n sif?: DadataFTSSuggestion;\n}\n\nexport interface DadataFinance {\n tax_system?: string;\n income?: number;\n expense?: number;\n debt?: number;\n penalty?: number;\n year?: number;\n}\n\nexport interface DadataState<T> {\n actuality_date?: number;\n registration_date?: number;\n liquidation_date?: number;\n code?: string;\n status?: T;\n}\n\nexport interface DadataSecondaryOKVED {\n main: boolean;\n type: string;\n code: string;\n name: string;\n}\n\nexport interface DadataPartyDocumentRegistration {\n type: string;\n series: string;\n number: string;\n issue_date: number;\n issue_authority: string;\n}\n\nexport interface DadataPartyDocument {\n fts_registration: DadataPartyDocumentRegistration;\n pf_registration: DadataPartyDocumentRegistration;\n sif_registration: DadataPartyDocumentRegistration;\n smb: {\n type: string;\n category: string;\n issue_date: number;\n };\n}\n\nexport interface DadataPartyLicence {\n series: string;\n number: string;\n issue_date: number;\n issue_authority: string;\n suspend_date: number;\n suspend_authority: string;\n valid_from: number;\n valid_to: number;\n activities: string[];\n addresses: string[];\n}\n\n/**\n * @see https://confluence.hflabs.ru/pages/viewpage.action?pageId=262996078\n */\nexport interface DadataBankSuggestion {\n bic?: string;\n swift?: string;\n inn?: string;\n kpp?: string;\n correspondent_account?: string;\n treasury_accounts?: string[];\n registration_number?: string;\n name?: {\n payment?: string;\n short?: string;\n };\n payment_city?: string;\n opf?: {\n type?: DadataBankType;\n };\n address?: DadataSuggestion<DadataAddressSuggestion>;\n source?: string;\n qc?: string;\n state?: DadataState<DadataBankStatus>;\n}\n\n/**\n * @see https://confluence.hflabs.ru/pages/viewpage.action?pageId=204669107\n */\nexport interface DadataAddressSuggestion {\n postal_code?: string;\n country?: string;\n country_iso_code?: string;\n federal_district?: string;\n region_fias_id?: string;\n region_kladr_id: string;\n region_iso_code?: string;\n region_with_type?: string;\n region_type?: string;\n region_type_full?: string;\n region?: string;\n area_fias_id?: string;\n area_kladr_id?: string;\n area_with_type?: string;\n area_type?: string;\n area_type_full?: string;\n area?: string;\n city_fias_id?: string;\n city_kladr_id?: string;\n city_with_type?: string;\n city_type?: string;\n city_type_full?: string;\n city?: string;\n city_district_fias_id?: string;\n city_district_kladr_id?: string;\n city_district_with_type?: string;\n city_district_type?: string;\n city_district_type_full?: string;\n city_district?: string;\n settlement_fias_id?: string;\n settlement_kladr_id?: string;\n settlement_with_type?: string;\n settlement_type?: string;\n settlement_type_full?: string;\n settlement?: string;\n street_fias_id?: string;\n street_kladr_id?: string;\n street_with_type?: string;\n street_type?: string;\n street_type_full?: string;\n street?: string;\n house_fias_id?: string;\n house_kladr_id?: string;\n house_type?: string;\n house_type_full?: string;\n house?: string;\n block_type?: string;\n block_type_full?: string;\n block?: string;\n flat_fias_id?: string;\n flat_type?: string;\n flat_type_full?: string;\n flat?: string;\n postal_box?: string;\n fias_id?: string;\n fias_level?: string;\n kladr_id?: string;\n geoname_id?: string;\n capital_marker?: string;\n okato?: string;\n oktmo?: string;\n tax_office?: string;\n tax_office_legal?: string;\n source?: string;\n history_values?: string[];\n geo_lat?: string;\n geo_lon?: string;\n qc_geo?: string;\n fias_code?: string;\n fias_actuality_state?: string;\n city_area?: string;\n beltway_hit?: string;\n beltway_distance?: string;\n flat_area?: string;\n square_meter_price?: string;\n flat_price?: string;\n timezone?: string;\n metro?: DadataMetro[];\n}\n\n/**\n * @see https://confluence.hflabs.ru/pages/viewpage.action?pageId=204669122\n */\nexport interface DadataPartySuggestion {\n address?: DadataSuggestion<DadataAddressSuggestion>;\n branch_count?: number;\n branch_type?: DadataCompanyBranchType;\n fio?: DadataFio;\n inn?: string;\n kpp?: string;\n ogrn?: string;\n ogrn_date?: number;\n hid?: string;\n management?: {\n name: string;\n post: string;\n disqualified: boolean;\n };\n name?: {\n full_with_opf?: string;\n short_with_opf?: string;\n };\n okato?: string;\n oktmo?: string;\n okpo?: string;\n okogu?: string;\n okfs?: string;\n finance?: DadataFinance;\n okved?: string;\n okved_type?: string;\n opf?: DadataPartyOPF;\n state?: DadataState<DadataCompanyStatus>;\n type?: DadataCompanyType;\n employee_count: number;\n okveds?: DadataSecondaryOKVED[];\n authorities?: DadataAuthoritiesSuggestion;\n founders?: DadataFounder[];\n managers?: DadataManager[];\n predecessors?: DadataReorganized[];\n successors?: DadataReorganized[];\n capital?: {\n type: string;\n value: number;\n };\n documents?: DadataPartyDocument[];\n licenses?: DadataPartyLicence[];\n}\n\nexport interface DadataSuggestion<T> {\n data: T;\n value?: string;\n unrestricted_value?: string;\n}\n\nexport interface DadataSuggestionsResponse<T> {\n suggestions: DadataSuggestion<T>[];\n}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {EvoBadgeColor, EvoBadgeSize} from './types';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-badge',\n templateUrl: './evo-badge.component.html',\n styleUrls: ['./evo-badge.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoUiClassDirective],\n})\nexport class EvoBadgeComponent {\n @Input() color: EvoBadgeColor;\n @Input() size: EvoBadgeSize;\n @Input() multiline = false;\n\n // eslint-disable-next-line:no-input-rename\n @Input('width.px') widthPixels: number;\n // eslint-disable-next-line:no-input-rename\n @Input('width.%') widthPercents: number;\n\n get classes(): string[] {\n const classes: string[] = [];\n\n if (this.size) {\n classes.push(this.size);\n }\n\n if (this.color) {\n classes.push(this.color);\n }\n\n if (this.multiline) {\n classes.push('multiline');\n }\n\n return classes;\n }\n}\n","<div class=\"evo-badge\" [evoUiClass]=\"classes\" [style.width.px]=\"widthPixels\" [style.width.%]=\"widthPercents\">\n <div class=\"evo-badge__content\">\n <ng-content />\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoBadgeComponent} from './evo-badge.component';\n\n@NgModule({\n imports: [EvoBadgeComponent],\n exports: [EvoBadgeComponent],\n})\nexport class EvoBadgeModule {}\n","import {EvoButtonTheme, EvoButtonThemeParams} from '../types';\n\nexport const EVO_BUTTON_THEMES_MAP: Map<EvoButtonTheme, EvoButtonThemeParams> = new Map([\n [\n 'rectangle-outline',\n {\n shape: 'rectangle',\n isOutline: true,\n },\n ],\n [\n 'rounded-outline',\n {\n shape: 'rounded',\n isOutline: true,\n },\n ],\n [\n 'rounded-solid',\n {\n shape: 'rounded',\n isOutline: false,\n },\n ],\n [\n 'semi-rectangle-solid',\n {\n shape: 'semi-rectangle',\n isOutline: false,\n },\n ],\n]);\n","import {ChangeDetectionStrategy, Component, ElementRef, Input} from '@angular/core';\nimport {EvoButtonColor, EvoButtonShape, EvoButtonSize, EvoButtonTheme, EvoButtonThemeParams} from '../../types';\nimport {EVO_BUTTON_THEMES_MAP} from '../../constants/evo-button-themes-map';\nimport {EvoCircularLoaderComponent} from '../../../evo-loader/evo-circular-loader.component';\nimport {NgStyle} from '@angular/common';\nimport {EvoUiClassDirective} from '../../../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'button[evoButton], a[evoButton]',\n templateUrl: './evo-button.component.html',\n styleUrls: ['./evo-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoUiClassDirective, NgStyle, EvoCircularLoaderComponent],\n})\nexport class EvoButtonComponent {\n @Input() size: EvoButtonSize = 'normal';\n @Input() color: EvoButtonColor = 'success';\n\n /**\n * `theme` is a complex prop, that sets a number of inner parameters, described in `EvoButtonThemeParams`\n */\n @Input() set theme(value: EvoButtonTheme) {\n const selectedTheme: EvoButtonThemeParams =\n EVO_BUTTON_THEMES_MAP.get(value) ?? EVO_BUTTON_THEMES_MAP.get('rounded-solid');\n this.shape = selectedTheme.shape;\n this._isOutline = selectedTheme.isOutline;\n }\n\n @Input() set disabled(value: boolean) {\n this._isDisabled = value;\n\n if (!this.isLoading) {\n this.elRef.nativeElement.disabled = value;\n }\n }\n\n @Input() set loading(value: boolean) {\n this._isLoading = value;\n\n if (!this._isDisabled) {\n this.elRef.nativeElement.disabled = value;\n }\n }\n\n private shape: EvoButtonShape = 'rounded';\n private _isOutline = false;\n private _isDisabled = false;\n private _isLoading = false;\n\n constructor(private readonly elRef: ElementRef) {}\n\n get isLoading(): boolean {\n return this._isLoading;\n }\n\n get buttonClasses(): string[] {\n const classes: string[] = [];\n\n if (this.color) {\n classes.push(`color_${this.color}`);\n }\n\n if (this.shape) {\n classes.push(`shape_${this.shape}`);\n }\n\n if (this.size) {\n classes.push(`size_${this.size}`);\n }\n\n if (this._isOutline) {\n classes.push(`is-outline`);\n }\n\n if (this._isDisabled) {\n classes.push('is-disabled');\n }\n\n if (this.isLoading) {\n classes.push('is-loading');\n }\n\n return classes;\n }\n\n get buttonStyles(): Record<string, string> {\n const result: Record<string, string> = {};\n\n if (this.isLoading) {\n result['visibility'] = 'hidden';\n }\n\n return result;\n }\n}\n","<div class=\"evo-button\" [evoUiClass]=\"buttonClasses\">\n <span class=\"evo-button__content\" [ngStyle]=\"buttonStyles\">\n <ng-content />\n </span>\n\n @if (isLoading) {\n <evo-circular-loader class=\"evo-button__loader\" />\n }\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoButtonComponent} from './components/evo-button/evo-button.component';\n\n@NgModule({\n imports: [EvoButtonComponent],\n exports: [EvoButtonComponent],\n})\nexport class EvoButtonModule {}\n","import {AfterViewInit, Component, EventEmitter, forwardRef, Input, OnInit, Output} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {EvoControlStates} from '../../common/evo-control-state-manager/evo-control-states.enum';\nimport {EvoIconComponent} from '../evo-icon/evo-icon.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\nexport enum EvoChipType {\n radio = 'radio', // default\n checkbox = 'checkbox',\n label = 'label',\n}\n\nexport enum EvoChipTheme {\n grey = 'grey', // default\n white = 'white',\n custom = 'custom',\n}\n\n@Component({\n selector: 'evo-chip',\n templateUrl: 'evo-chip.component.html',\n styleUrls: ['evo-chip.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoChipComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [EvoUiClassDirective, FormsModule, EvoIconComponent],\n})\nexport class EvoChipComponent extends EvoBaseControl implements ControlValueAccessor, OnInit, AfterViewInit {\n @Input() type: EvoChipType | string;\n @Input() theme: EvoChipTheme | string;\n @Input() counter: number;\n @Input() disabled: boolean;\n @Input() name: string;\n @Input() closable: boolean;\n @Input() closeTitle = '';\n\n // eslint-disable-next-line\n @Input('value') set setInitialValue(value: any) {\n this.inheritedValue = value;\n }\n\n @Output() close = new EventEmitter<Event>();\n\n // eslint-disable-next-line\n inheritedValue: any;\n\n templateVariables = {\n chipTypes: EvoChipType,\n chipThemes: EvoChipTheme,\n };\n\n // eslint-disable-next-line\n private _value: any;\n\n get classes(): string[] {\n const states = {\n touched: this.control?.touched,\n valid: this.currentState[EvoControlStates.valid],\n invalid: this.currentState[EvoControlStates.invalid],\n disabled: this.control?.disabled,\n };\n\n const result = Object.keys(states).filter((key: string) => states[key]);\n\n result.push(`theme-${this.theme || EvoChipTheme.grey}`);\n\n result.push(`type-${this.type}`);\n\n return result;\n }\n\n // eslint-disable-next-line\n get value(): any {\n return this._value;\n }\n\n // eslint-disable-next-line\n set value(value: any) {\n this._value = value;\n this.onChange(value);\n this.onTouched();\n }\n\n ngOnInit(): void {\n this.initDefaultParams();\n }\n\n ngAfterViewInit() {\n if (this.control) {\n this.control.valueChanges.subscribe(() => {\n this.writeValue(this.control.value);\n });\n }\n }\n\n // eslint-disable-next-line\n writeValue(value: any): void {\n this._value = value;\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n onInputChange(value): void {\n this.value = value;\n }\n\n onCloseClick(e: Event): void {\n this.close.emit(e);\n }\n\n private initDefaultParams(): void {\n if (!this.type) {\n this.type = EvoChipType.radio;\n }\n if (!this.theme) {\n this.theme = EvoChipTheme.grey;\n }\n }\n\n private onChange(value): void {}\n\n private onTouched(): void {}\n}\n","<label class=\"chip\" [evoUiClass]=\"classes\">\n @switch (type) {\n @case (templateVariables?.chipTypes.checkbox) {\n <input\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n [value]=\"inheritedValue\"\n [name]=\"name\"\n (ngModelChange)=\"onInputChange($event)\"\n />\n }\n @case (templateVariables?.chipTypes.radio) {\n <input\n type=\"radio\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n [value]=\"inheritedValue\"\n [name]=\"name\"\n (ngModelChange)=\"onInputChange($event)\"\n />\n }\n }\n\n <div class=\"chip__label\" [evoUiClass]=\"{disabled: disabled}\">\n <span class=\"chip__text\">\n <ng-content />\n </span>\n\n @if ((type !== templateVariables?.chipTypes.label || !closable) && counter !== undefined) {\n <div class=\"chip__counter\">\n <span class=\"chip__counter-value\">\n {{ counter }}\n </span>\n </div>\n }\n\n @if (closable) {\n <button\n type=\"button\"\n class=\"chip__close\"\n [disabled]=\"disabled\"\n [title]=\"closeTitle\"\n (click)=\"onCloseClick($event)\"\n >\n <evo-icon shape=\"decline\" />\n </button>\n }\n </div>\n</label>\n","import {NgModule} from '@angular/core';\nimport {EvoChipComponent} from './evo-chip.component';\n\n@NgModule({\n imports: [EvoChipComponent],\n exports: [EvoChipComponent],\n})\nexport class EvoChipModule {}\n","import {Component, Input, TemplateRef} from '@angular/core';\nimport {NgTemplateOutlet} from '@angular/common';\n\n@Component({\n selector: 'evo-control-label',\n templateUrl: './evo-control-label.component.html',\n styleUrls: ['./evo-control-label.component.scss'],\n standalone: true,\n imports: [NgTemplateOutlet],\n})\nexport class EvoControlLabelComponent {\n // eslint-disable-next-line\n @Input() label: string | TemplateRef<any>;\n @Input() context: object | null;\n\n get isStringLabel(): boolean {\n return typeof this.label === 'string';\n }\n}\n","<div class=\"evo-control-label\">\n <label class=\"evo-control-label__text\">\n @if (isStringLabel) {\n {{ label || ' ' }}\n } @else {\n <ng-container [ngTemplateOutlet]=\"label\" [ngTemplateOutletContext]=\"context\" />\n }\n </label>\n <div class=\"evo-control-label__content\">\n <ng-content />\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoControlLabelComponent} from './evo-control-label.component';\n\n@NgModule({\n imports: [EvoControlLabelComponent],\n exports: [EvoControlLabelComponent],\n})\nexport class EvoControlLabelModule {}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\nexport enum EvoCounterSize {\n small = 'small',\n normal = 'normal',\n}\n\n@Component({\n selector: 'evo-counter',\n templateUrl: './evo-counter.component.html',\n styleUrls: ['./evo-counter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoUiClassDirective],\n})\nexport class EvoCounterComponent {\n @Input() value: number;\n @Input() disabled: boolean;\n\n size: EvoCounterSize = EvoCounterSize.normal;\n\n @Input('size') set setSize(size: EvoCounterSize | string) {\n if (EvoCounterSize[size]) {\n this.size = EvoCounterSize[size];\n }\n }\n\n get blockClasses(): {[cssClass: string]: boolean} {\n return {\n disabled: this.disabled,\n [`size-${this.size}`]: this.size !== EvoCounterSize.normal,\n };\n }\n}\n","<div class=\"evo-counter\" [evoUiClass]=\"blockClasses\">\n <span class=\"evo-counter__value\">{{value}}</span>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoCounterComponent} from './evo-counter.component';\n\n@NgModule({\n imports: [EvoCounterComponent],\n exports: [EvoCounterComponent],\n})\nexport class EvoCounterModule {}\n","export const cssClasses = {\n DESCRIPTION: 'evo-datepicker__description',\n INPUT: 'evo-datepicker__input',\n TIME_PICKER: 'evo-datepicker__time-picker',\n TIME_LABEL: 'evo-datepicker__time-label',\n TIME_LABEL_FROM: 'evo-datepicker__time-label_from',\n TIME_LABEL_UNTIL: 'evo-datepicker__time-label_until',\n SELECTORS: 'evo-datepicker__selectors',\n SELECT: 'evo-datepicker__select',\n SELECTOR_HOUR: 'evo-datepicker__select_hour',\n SELECTOR_MINUTE: 'evo-datepicker__select_minute',\n SELECT_WRAPPER: 'evo-datepicker__select-wrapper',\n APPLY: 'evo-datepicker__apply',\n SELECT_FIELD: 'evo-datepicker__select-field'\n};\n\n export const renderRangeTime = (classes) => {\n const template = `\n <div class=\"${classes.TIME_PICKER}\">\n <label class=\"${classes.TIME_LABEL} ${classes.TIME_LABEL_FROM}\"></label>\n <div class=\"${classes.SELECTORS}\">\n <label class=\"${classes.SELECT_WRAPPER}\">\n <div class=\"${classes.SELECT_FIELD}\">00</div>\n <select value class=\"${classes.SELECT} ${classes.SELECTOR_HOUR}\">\n <option selected>00</option>\n <option>01</option>\n <option>02</option>\n <option>03</option>\n <option>04</option>\n <option>05</option>\n <option>06</option>\n <option>07</option>\n <option>08</option>\n <option>09</option>\n <option>10</option>\n <option>11</option>\n <option>12</option>\n <option>13</option>\n <option>14</option>\n <option>15</option>\n <option>16</option>\n <option>17</option>\n <option>18</option>\n <option>19</option>\n <option>20</option>\n <option>21</option>\n <option>22</option>\n <option>23</option>\n </select>\n </label>\n <span>:</span>\n <label class=\"${classes.SELECT_WRAPPER}\">\n <div class=\"${classes.SELECT_FIELD}\">00</div>\n <select class=\"${classes.SELECT} ${classes.SELECTOR_MINUTE}\">\n <option selected>00</option>\n <option>15</option>\n <option>30</option>\n <option>45</option>\n </select>\n </label>\n </div>\n </div>\n\n <div class=\"${classes.TIME_PICKER}\">\n <label class=\"${classes.TIME_LABEL} ${classes.TIME_LABEL_UNTIL}\"></label>\n\n <div class=\"${classes.SELECTORS}\">\n <label class=\"${classes.SELECT_WRAPPER}\">\n <div class=\"${classes.SELECT_FIELD}\">23</div>\n <select value class=\"${classes.SELECT} ${classes.SELECTOR_HOUR}\">\n <option>00</option>\n <option>01</option>\n <option>02</option>\n <option>03</option>\n <option>04</option>\n <option>05</option>\n <option>06</option>\n <option>07</option>\n <option>08</option>\n <option>09</option>\n <option>10</option>\n <option>11</option>\n <option>12</option>\n <option>13</option>\n <option>14</option>\n <option>15</option>\n <option>16</option>\n <option>17</option>\n <option>18</option>\n <option>19</option>\n <option>20</option>\n <option>21</option>\n <option>22</option>\n <option selected>23</option>\n </select>\n </label>\n <span>:</span>\n <label class=\"${classes.SELECT_WRAPPER}\">\n <div class=\"${classes.SELECT_FIELD}\">59</div>\n <select class=\"${classes.SELECT} ${classes.SELECTOR_MINUTE}\">\n <option selected>00</option>\n <option>15</option>\n <option>30</option>\n <option>45</option>\n <option selected>59</option>\n </select>\n </label>\n </div>\n </div>\n\n <button class=\"${classes.APPLY}\"> Применить </button>\n `;\n return template;\n};\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Injector,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {FlatpickrOptions} from './flatpickr-options.interface';\nimport {cloneDeep, isEqual} from 'lodash-es';\nimport {cssClasses, renderRangeTime} from './templates';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {EvoControlStates} from '../../common/evo-control-state-manager/evo-control-states.enum';\nimport flatpickr from 'flatpickr';\nimport {EvoControlErrorComponent} from '../evo-control-error/evo-control-error.component';\nimport {IMaskDirective} from 'angular-imask';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\nexport * from './flatpickr-options.interface';\n\nenum DatepickerModes {\n RANGE = 'range',\n}\n\ninterface Option {\n disabled: boolean;\n value: string;\n}\n\ntype SelectedDates = string[] | Date[];\n\n@Component({\n selector: 'evo-datepicker',\n templateUrl: './evo-datepicker.component.html',\n styleUrls: ['./evo-datepicker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoDatepickerComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [EvoUiClassDirective, IMaskDirective, EvoControlErrorComponent],\n})\nexport class EvoDatepickerComponent\n extends EvoBaseControl\n implements AfterViewInit, ControlValueAccessor, OnChanges, OnInit, OnDestroy\n{\n @ViewChild('flatpickr', {static: true})\n flatpickrElement: ElementRef;\n\n @Input()\n config: FlatpickrOptions;\n\n @Input()\n maskedInput: boolean;\n\n @Input() theme?: string;\n\n @Input() folded = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n setDate: SelectedDates;\n\n @Input()\n description: string;\n\n @Input()\n maxRangeDays: number;\n\n @Input()\n appendToBody = true;\n\n @Output()\n closePicker = new EventEmitter<[Date, Date]>();\n\n disabled = false;\n\n uiState = {\n isOpen: false,\n isEmptyField: false,\n };\n\n // eslint-disable-next-line\n elements: any = {};\n\n // eslint-disable-next-line\n maskConfig: {mask: any; pattern?: string; max?: Date};\n\n // eslint-disable-next-line\n private flatpickr: any;\n\n constructor(\n private readonly zone: NgZone,\n private readonly elementRef: ElementRef,\n protected injector: Injector,\n ) {\n super(injector);\n }\n\n onChange = (value) => {};\n onTouched = () => {};\n\n writeValue(value: SelectedDates) {\n this.updatePickerIfNeed(value);\n this.propagateChange(value);\n this.onChange(value);\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any) {\n this.onChange = fn;\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // eslint-disable-next-line\n propagateChange = (_: any) => {};\n\n handleMaskComplete(value) {\n if (this.maskedInput) {\n const date = this.flatpickrElement.nativeElement._flatpickr.parseDate(value, this.config.dateFormat);\n this.setDateFromInput(date);\n }\n }\n\n setDateFromInput(date: SelectedDates) {\n this.flatpickrElement.nativeElement._flatpickr.setDate(date, true);\n }\n\n ngAfterViewInit() {\n const config = this.getConfig();\n\n this.zone.runOutsideAngular(() => {\n this.flatpickr = flatpickr(this.flatpickrElement.nativeElement, config);\n });\n\n if (this.setDate) {\n this.setDateFromInput(this.setDate);\n }\n this.customizePicker();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.hasOwnProperty('setDate') && changes['setDate'].currentValue) {\n this.setDateFromInput(changes['setDate'].currentValue);\n }\n }\n\n ngOnInit() {\n this.initMask();\n }\n\n ngOnDestroy() {\n this.flatpickr = null;\n this.flatpickrElement.nativeElement._flatpickr.destroy();\n }\n\n get inputClass(): {[cssClass: string]: boolean} {\n return {\n disabled: this.disabled,\n hidden: !this.isValueExist(),\n valid: this.currentState[EvoControlStates.valid],\n invalid: this.currentState[EvoControlStates.invalid],\n };\n }\n\n get totalClasses(): string[] {\n const classes: string[] = [];\n\n if (this.theme) {\n classes.push(this.theme);\n }\n\n if (this.uiState.isOpen) {\n classes.push('opened');\n }\n\n if (this.folded) {\n classes.push('folded');\n }\n\n return classes;\n }\n\n initMask() {\n if (this.config.allowInput && this.maskedInput) {\n this.maskConfig = {\n pattern: this.config.dateFormat,\n max: this.config.maxDate as Date,\n mask: Date,\n };\n }\n }\n\n onDatepickerClick(event: MouseEvent) {\n if (\n (this.config.allowInput && (event.target as HTMLElement).classList.contains(cssClasses.INPUT)) ||\n this.disabled\n ) {\n return;\n }\n\n this.toggleDatepicker();\n }\n\n toggleDatepicker(): void {\n this.flatpickr.toggle();\n }\n\n setDisabledState(state: boolean) {\n this.disabled = state;\n }\n\n isValueExist(): boolean {\n if (!this.flatpickr) {\n const defaultDate = this.config.defaultDate;\n\n return Array.isArray(defaultDate) ? (this.config.defaultDate as Date[]).length > 0 : !!defaultDate;\n } else {\n return this.flatpickr.selectedDates.length > 0;\n }\n }\n\n isRange(): boolean {\n return this.config.mode === DatepickerModes.RANGE;\n }\n\n shouldShowEmptyText(): boolean {\n return !this.isValueExist() && !this.config.altInput;\n }\n\n getDefaultFlatpickrOptions(): FlatpickrOptions {\n return {\n wrap: true,\n clickOpens: false,\n onChange: (selectedDates: Date[]) => {\n this.setEmptyFieldState(false);\n this.setRangeConstraints(selectedDates);\n this.setTimeConstraints(selectedDates);\n this.updateLabelValues(selectedDates);\n\n this.writeValue(selectedDates);\n },\n onClose: (selectedDates: [Date, Date]) => {\n this.handleSingleSelectedValueInRange(selectedDates);\n this.setEmptyFieldStateIfNeed();\n this.resetConstraints();\n this.setOpenedState(false);\n this.closePicker.emit(selectedDates);\n },\n onOpen: () => {\n this.setOpenedState(true);\n this.resetTimeAfterOpen();\n this.updateLabelValues(this.flatpickr.selectedDates);\n this.onTouched();\n },\n ...(!this.appendToBody && {appendTo: this.elementRef.nativeElement}),\n };\n }\n\n getConfig() {\n return {\n ...this.getDefaultFlatpickrOptions(),\n ...(this.config || {}),\n };\n }\n\n /**\n * Customization of the flatpickr's view to ui-kit state\n */\n private customizePicker(): void {\n this.changeNextIcon();\n this.addDescriptionIfNeed();\n this.addTimeSelectors();\n }\n\n /**\n * Sets new state of the picker openness\n * @param state new state\n */\n private setOpenedState(state: boolean): void {\n this.uiState.isOpen = state;\n }\n\n private setEmptyFieldState(state: boolean): void {\n this.uiState.isEmptyField = state;\n }\n\n private addTimeSelectors() {\n if (this.isRangeWithTime()) {\n const timeWrapper = document.createElement('div');\n timeWrapper.innerHTML = renderRangeTime(cssClasses);\n this.saveTimeRangeElements(timeWrapper);\n this.addListenersOnTimeSelectors();\n this.elements.apply.onclick = this.onApply.bind(this);\n\n this.flatpickr.rContainer.appendChild(timeWrapper);\n }\n }\n\n private saveTimeRangeElements(timeWrapper: HTMLElement) {\n this.elements = {\n apply: timeWrapper.getElementsByClassName(cssClasses.APPLY)[0],\n from: {\n hour: timeWrapper.getElementsByClassName(cssClasses.SELECTOR_HOUR)[0],\n minute: timeWrapper.getElementsByClassName(cssClasses.SELECTOR_MINUTE)[0],\n label: timeWrapper.getElementsByClassName(cssClasses.TIME_LABEL_FROM)[0],\n },\n until: {\n hour: timeWrapper.getElementsByClassName(cssClasses.SELECTOR_HOUR)[1],\n minute: timeWrapper.getElementsByClassName(cssClasses.SELECTOR_MINUTE)[1],\n label: timeWrapper.getElementsByClassName(cssClasses.TIME_LABEL_UNTIL)[0],\n },\n };\n\n this.elements.from.hourField = this.elements.from.hour.previousElementSibling;\n this.elements.from.minuteField = this.elements.from.minute.previousElementSibling;\n\n this.elements.until.hourField = this.elements.until.hour.previousElementSibling;\n this.elements.until.minuteField = this.elements.until.minute.previousElementSibling;\n }\n\n private onApply() {\n this.setTime();\n this.flatpickr.close();\n }\n\n private setTime() {\n const {fromHour, fromMinute} = this.getSelectedFrom();\n const {untilHour, untilMinute} = this.getSelectedUntil();\n\n const selectedDates = cloneDeep(this.flatpickr.selectedDates);\n\n selectedDates[0].setHours(fromHour, fromMinute);\n\n if (selectedDates[1]) {\n selectedDates[1].setHours(untilHour, untilMinute);\n }\n\n this.setDateFromInput(selectedDates);\n }\n\n private updateLabelValues(selectedDates: Date[]) {\n if (!selectedDates || !selectedDates[0] || !selectedDates[1]) {\n return;\n }\n if (this.isRangeWithTime()) {\n this.elements.from.label.innerText = `Период с ${this.flatpickr.formatDate(selectedDates[0], 'D d.m.Y')}`;\n\n if (selectedDates[1]) {\n this.elements.until.label.innerText = `по ${this.flatpickr.formatDate(selectedDates[1], 'D d.m.Y')}`;\n }\n }\n }\n\n private setTimeConstraints(selectedDates: Date[]) {\n if (this.isRangeWithTime()) {\n if (this.isSameDate(selectedDates[0], selectedDates[1])) {\n this.resetTimeIfNeed();\n this.setUntilTimeConstraint(selectedDates);\n } else {\n this.resetAllConstraints();\n }\n }\n }\n\n private resetAllConstraints() {\n Array.from(this.elements.from.hour.options).forEach((option: Option) => {\n option.disabled = false;\n });\n\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n\n Array.from(this.elements.until.hour.options).forEach((option: Option) => {\n option.disabled = false;\n });\n\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n }\n\n private addListenersOnTimeSelectors() {\n this.elements.from.hour.onchange = this.onChangeTimeFrom.bind(this);\n this.elements.from.minute.onchange = this.onChangeTimeFrom.bind(this);\n\n this.elements.until.hour.onchange = this.onChangeTimeUntil.bind(this);\n this.elements.until.minute.onchange = this.onChangeTimeUntil.bind(this);\n }\n\n private onChangeTimeFrom(event: Event) {\n if (this.isSameDate(this.flatpickr.selectedDates[0], this.flatpickr.selectedDates[1])) {\n this.disableTimeUntilSelectors();\n }\n this.updateTimeFieldsContent();\n }\n\n private handleSingleSelectedValueInRange(selectedDates: [Date, Date]) {\n if (this.isRange() && !selectedDates[1]) {\n const untilDate = new Date(selectedDates[0]);\n untilDate.setHours(23, 59, 0, 0);\n\n const updatedDates = [selectedDates[0], untilDate];\n this.writeValue(updatedDates);\n }\n }\n\n private onChangeTimeUntil(event: Event) {\n if (this.isSameDate(this.flatpickr.selectedDates[0], this.flatpickr.selectedDates[1])) {\n this.disableTimeFromSelectors();\n }\n this.updateTimeFieldsContent();\n }\n\n private updateTimeFieldsContent() {\n const {fromHour, fromMinute, untilHour, untilMinute} = this.getSelectorVaulesAsString();\n\n this.elements.from.hourField.innerText = fromHour;\n this.elements.from.minuteField.innerText = fromMinute;\n\n this.elements.until.hourField.innerText = untilHour;\n this.elements.until.minuteField.innerText = untilMinute;\n }\n\n private disableTimeUntilSelectors() {\n const {fromHour, fromMinute} = this.getSelectedFrom();\n const {untilHour, untilMinute} = this.getSelectedUntil();\n\n Array.from(this.elements.until.hour.options).forEach((option: Option) => {\n option.disabled = Number(option.value) < fromHour;\n });\n\n if (fromHour === untilHour) {\n if (fromMinute > untilMinute) {\n this.elements.until.minute.selectedIndex = 4;\n\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n }\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = Number(option.value) < fromMinute;\n });\n } else {\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n }\n }\n\n private disableTimeFromSelectors() {\n const {fromHour, fromMinute} = this.getSelectedFrom();\n const {untilHour, untilMinute} = this.getSelectedUntil();\n\n Array.from(this.elements.from.hour.options).forEach((option: Option) => {\n option.disabled = Number(option.value) > untilHour;\n });\n\n if (fromHour === untilHour) {\n if (fromMinute > untilMinute) {\n this.elements.until.minute.selectedIndex = 4;\n }\n const {untilMinute: untilMinuteAfterUpdate} = this.getSelectedUntil();\n\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = Number(option.value) > untilMinuteAfterUpdate;\n });\n\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = Number(option.value) < fromMinute;\n });\n } else {\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n }\n }\n\n private setUntilTimeConstraint(selectedDates: Date[]) {\n this.disableTimeUntilSelectors();\n }\n\n private resetTimeIfNeed() {\n const {fromHour, fromMinute} = this.getSelectedFrom();\n const {untilHour, untilMinute} = this.getSelectedUntil();\n\n if (fromHour > untilHour || (fromHour === untilHour && fromMinute > untilMinute)) {\n this.resetTime();\n }\n }\n\n private resetTime() {\n this.elements.from.hour.selectedIndex = 0;\n this.elements.from.minute.selectedIndex = 0;\n\n this.elements.until.hour.selectedIndex = 23;\n this.elements.until.minute.selectedIndex = 4;\n\n this.updateTimeFieldsContent();\n }\n\n private getSelectorVaulesAsString(): {\n fromHour: string;\n fromMinute: string;\n untilHour: string;\n untilMinute: string;\n } {\n return {\n fromHour: this.elements.from.hour.options[this.elements.from.hour.selectedIndex].value,\n fromMinute: this.elements.from.minute.options[this.elements.from.minute.selectedIndex].value,\n untilHour: this.elements.until.hour.options[this.elements.until.hour.selectedIndex].value,\n untilMinute: this.elements.until.minute.options[this.elements.until.minute.selectedIndex].value,\n };\n }\n\n private getSelectedFrom(): {fromHour: number; fromMinute: number} {\n return {\n fromHour: Number(this.elements.from.hour.options[this.elements.from.hour.selectedIndex].value),\n fromMinute: Number(this.elements.from.minute.options[this.elements.from.minute.selectedIndex].value),\n };\n }\n\n private getSelectedUntil(): {untilHour: number; untilMinute: number} {\n return {\n untilHour: Number(this.elements.until.hour.options[this.elements.until.hour.selectedIndex].value),\n untilMinute: Number(this.elements.until.minute.options[this.elements.until.minute.selectedIndex].value),\n };\n }\n\n private setRangeConstraints(selectedDates: Date[]) {\n if (this.isRange() && this.maxRangeDays) {\n if (selectedDates.length === 1) {\n const minDate = new Date(selectedDates[0]);\n const maxDate = new Date(selectedDates[0]);\n\n minDate.setDate(minDate.getDate() - this.maxRangeDays);\n maxDate.setDate(maxDate.getDate() + this.maxRangeDays);\n\n this.flatpickr.config.minDate = minDate;\n this.flatpickr.config.maxDate = maxDate;\n } else {\n this.resetConstraints();\n }\n }\n }\n\n private resetConstraints() {\n this.flatpickr.config.minDate = this.config.minDate;\n this.flatpickr.config.maxDate = this.config.maxDate;\n }\n\n private isRangeWithTime(): boolean {\n return this.isRange() && this.config.enableTime;\n }\n\n private setEmptyFieldStateIfNeed(): void {\n if (this.isRange() && this.flatpickr.selectedDates.length !== 2) {\n this.setEmptyFieldState(true);\n }\n }\n\n private updatePickerIfNeed(value: SelectedDates): void {\n if (this.flatpickr) {\n const selectedDates = this.getSelectedDatesWithDatePickerFormat(this.flatpickr.selectedDates);\n const values = this.getSelectedDatesWithDatePickerFormat(value);\n\n if (!isEqual(values, selectedDates)) {\n this.setDateFromInput(value);\n }\n }\n }\n\n private getSelectedDatesWithDatePickerFormat(dateRange: SelectedDates): string[] {\n if (dateRange && dateRange.length && typeof dateRange[0] !== 'string') {\n return (dateRange as Date[]).map((date) => this.toDatePickerFormat(date));\n }\n\n return dateRange as string[];\n }\n\n private toDatePickerFormat(date?: Date): string {\n if (!date) {\n return '';\n }\n\n return `${date.getDate()}.${date.getMonth() + 1}.${date.getFullYear()}`;\n }\n\n /**\n * Substitution of icons\n */\n private changeNextIcon(): void {\n const Icons = {\n PREV: `\n <svg height=\"16\" viewBox=\"0 0 6 16\" width=\"6\" xmlns=\"http://www.w3.org/2000/svg\">\n <path _ngcontent-c0=\"\" d=\"M6 0L0 8L6 16V0Z\" fill=\"white\" transform=\"translate(6 16) rotate(180)\"></path>\n </svg>`,\n NEXT: `\n <svg height=\"16\" viewBox=\"0 0 6 16\" width=\"6\" xmlns=\"http://www.w3.org/2000/svg\">\n <path _ngcontent-c0=\"\" d=\"M6 0L0 8L6 16V0Z\" fill=\"white\"></path>\n </svg>`,\n };\n\n this.flatpickr.nextMonthNav.innerHTML = Icons.PREV;\n this.flatpickr.prevMonthNav.innerHTML = Icons.NEXT;\n }\n\n private addDescriptionIfNeed() {\n if (this.description) {\n const descriptionElement = document.createElement('p');\n descriptionElement.className = cssClasses.DESCRIPTION;\n descriptionElement.innerHTML = this.description;\n\n this.flatpickr.rContainer.appendChild(descriptionElement);\n }\n }\n\n private isSameDate(firstDate: Date, secondDate: Date): boolean {\n return (\n firstDate &&\n secondDate &&\n firstDate.getDate() === secondDate.getDate() &&\n firstDate.getMonth() === secondDate.getMonth() &&\n firstDate.getFullYear() === secondDate.getFullYear()\n );\n }\n\n private getSelectedIndexByMinutes(minutes: number): number {\n return (Math.round(minutes / 5) * 5) / 15;\n }\n\n private resetTimeAfterOpen() {\n if (this.isRangeWithTime()) {\n const selectedDates = this.flatpickr.selectedDates;\n if (selectedDates[0] && selectedDates[1]) {\n this.elements.from.hour.selectedIndex = selectedDates[0].getHours();\n this.elements.from.minute.selectedIndex = this.getSelectedIndexByMinutes(selectedDates[0].getMinutes());\n\n this.elements.until.hour.selectedIndex = selectedDates[1].getHours();\n this.elements.until.minute.selectedIndex = this.getSelectedIndexByMinutes(\n selectedDates[1].getMinutes(),\n );\n this.addConstraintsAfterOpen(selectedDates);\n this.updateTimeFieldsContent();\n }\n }\n }\n\n private addConstraintsAfterOpen(selectedDates: [Date, Date]) {\n if (this.isSameDate(selectedDates[0], selectedDates[1])) {\n const {fromHour, fromMinute} = this.getSelectedFrom();\n const {untilHour, untilMinute} = this.getSelectedUntil();\n\n Array.from(this.elements.from.hour.options).forEach((option: Option) => {\n option.disabled = Number(option.value) > untilHour;\n });\n\n Array.from(this.elements.until.hour.options).forEach((option: Option) => {\n option.disabled = Number(option.value) < fromHour;\n });\n\n if (fromHour === untilHour) {\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = Number(option.value) > untilMinute;\n });\n\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = Number(option.value) < fromMinute;\n });\n } else {\n Array.from(this.elements.from.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n\n Array.from(this.elements.until.minute.options).forEach((option: Option) => {\n option.disabled = false;\n });\n }\n }\n }\n}\n","<div #flatpickr class=\"evo-datepicker\" [evoUiClass]=\"totalClasses\" (click)=\"onDatepickerClick($event)\">\n <input\n #input\n type=\"text\"\n data-input\n class=\"evo-datepicker__input\"\n [evoUiClass]=\"inputClass\"\n [imask]=\"maskConfig\"\n [placeholder]=\"placeholder\"\n [readonly]=\"disabled\"\n (complete)=\"handleMaskComplete($event)\"\n />\n\n @if (isRange() && input.value) {\n <span class=\"evo-datepicker__value\">{{ input.value }}</span>\n }\n\n @if (shouldShowEmptyText()) {\n <span class=\"evo-datepicker__empty-text\">{{ isRange() ? 'За период' : 'Дата' }}</span>\n }\n\n @if (!disabled) {\n <span class=\"evo-datepicker__opener\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M20 3H19V2C19 1.45 18.55 1 18 1C17.45 1 17 1.45 17 2V3H7V2C7 1.45 6.55 1 6 1C5.45 1 5 1.45 5 2V3H4C2.9 3 2 3.9 2 5V21C2 22.1 2.9 23 4 23H20C21.1 23 22 22.1 22 21V5C22 3.9 21.1 3 20 3ZM19 21H5C4.45 21 4 20.55 4 20V8H20V20C20 20.55 19.55 21 19 21Z\"\n />\n </svg>\n </span>\n }\n\n @if (!uiState.isEmptyField) {\n <span class=\"evo-datepicker__opener-triangle\"></span>\n }\n</div>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n","import {NgModule} from '@angular/core';\nimport {EvoDatepickerComponent} from './evo-datepicker.component';\n\n@NgModule({\n imports: [EvoDatepickerComponent],\n exports: [EvoDatepickerComponent],\n})\nexport class EvoDatepickerModule {}\n","import {ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\nimport {EvoIconButtonColor, EvoIconButtonSize} from './types';\nimport {NgClass} from '@angular/common';\nimport {EvoCircularLoaderComponent} from '../evo-loader';\n\nconst wrapperSelector = 'evo-icon-button';\n\n@Component({\n // eslint-disable-next-line:component-selector\n selector: 'button[evo-icon-button], a[evo-icon-button]',\n templateUrl: './evo-icon-button.component.html',\n styleUrls: ['./evo-icon-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass, EvoCircularLoaderComponent],\n})\nexport class EvoIconButtonComponent implements OnInit, OnChanges {\n @Input() disabled: boolean;\n @Input() loading: boolean;\n @Input() color: EvoIconButtonColor = 'link';\n @Input() size: EvoIconButtonSize;\n @Input() notificationDot = false;\n\n classes: string[] = [];\n\n @HostBinding('disabled') get isDisabled(): boolean {\n return this.disabled || this.loading;\n }\n\n ngOnInit(): void {\n this.updateClassesList();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.color !== undefined || changes.theme !== undefined || changes.notificationDot) {\n this.updateClassesList();\n }\n }\n\n private updateClassesList(): void {\n this.classes = [];\n // TODO in new version UI-kit rename classes modifier name (like size_normal)\n if (this.size) {\n this.classes.push(`${wrapperSelector}_size-${this.size}`);\n }\n\n if (this.color) {\n this.classes.push(`${wrapperSelector}_color-${this.color}`);\n }\n if (this.notificationDot) {\n this.classes.push(`${wrapperSelector}_notification-dot`);\n }\n }\n}\n","<div [ngClass]=\"classes\" class=\"evo-icon-button\">\n @if (!loading) {\n <div class=\"evo-icon-button__icon-wrapper\">\n <ng-content select=\"evo-icon\" />\n </div>\n } @else {\n <evo-circular-loader class=\"evo-icon-button__loader\" />\n }\n\n <span class=\"evo-icon-button__label\"><ng-content /></span>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoIconButtonComponent} from './evo-icon-button.component';\n\n@NgModule({\n imports: [EvoIconButtonComponent],\n exports: [EvoIconButtonComponent],\n})\nexport class EvoIconButtonModule {}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\n\n@Component({\n selector: 'evo-icon-number',\n templateUrl: './evo-icon-number.component.html',\n styleUrls: ['./evo-icon-number.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class EvoIconNumberComponent {\n @Input() number: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';\n}\n","<svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"evo-icon-number\">\n <circle cx=\"28\" cy=\"28\" r=\"18\" class=\"evo-icon-number__shadow\" />\n <circle cx=\"24\" cy=\"24\" r=\"18\" class=\"evo-icon-number__background\" />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M24 7C21.5785 7 19.2778 7.50567 17.1955 8.41623C16.6895 8.63751 16.0999 8.40668 15.8786 7.90066C15.6574 7.39464 15.8882 6.80505 16.3942 6.58377C18.7244 5.56481 21.2976 5 24 5C34.4934 5 43 13.5066 43 24C43 34.4934 34.4934 43 24 43C13.5066 43 5 34.4934 5 24C5 20.7567 5.81344 17.7005 7.24826 15.0271C7.50943 14.5405 8.11565 14.3577 8.60228 14.6189C9.0889 14.8801 9.27167 15.4863 9.01049 15.9729C7.72792 18.3626 7 21.0948 7 24C7 33.3888 14.6112 41 24 41C33.3888 41 41 33.3888 41 24C41 14.6112 33.3888 7 24 7Z\"\n class=\"evo-icon-number__border\"\n />\n <!-- prettier-ignore -->\n @switch (+number) {\n @case (1) {\n <path d=\"M24.5729 33C24.2529 33 23.9729 32.88 23.7329 32.64C23.4929 32.4 23.3729 32.112 23.3729 31.776V17.136L21.6209 17.88C21.3489 17.992 21.0929 18.048 20.8529 18.048C20.5009 18.048 20.2049 17.936 19.9649 17.712C19.7409 17.488 19.6289 17.2 19.6289 16.848C19.6289 16.592 19.6929 16.36 19.8209 16.152C19.9489 15.944 20.1489 15.792 20.4209 15.696L24.1649 14.352C24.2449 14.32 24.3249 14.296 24.4049 14.28C24.4849 14.264 24.5569 14.256 24.6209 14.256C24.9889 14.256 25.2769 14.376 25.4849 14.616C25.7089 14.84 25.8209 15.136 25.8209 15.504V31.776C25.8209 32.112 25.7009 32.4 25.4609 32.64C25.2209 32.88 24.9249 33 24.5729 33Z\" class=\"evo-icon-number__number\" />\n }\n @case (2) {\n <path d=\"M19.7294 33C19.3774 33 19.0814 32.88 18.8414 32.64C18.6174 32.4 18.5054 32.112 18.5054 31.776C18.5054 31.424 18.6174 31.136 18.8414 30.912L25.6574 22.944C26.1374 22.384 26.5054 21.856 26.7614 21.36C27.0334 20.864 27.1694 20.392 27.1694 19.944C27.1694 18.904 26.8974 18.072 26.3534 17.448C25.8254 16.824 25.0974 16.512 24.1694 16.512C23.5614 16.512 23.0094 16.672 22.5134 16.992C22.0334 17.296 21.6494 17.712 21.3614 18.24C21.0894 18.752 20.9534 19.32 20.9534 19.944C20.9534 20.264 20.8334 20.544 20.5934 20.784C20.3694 21.024 20.0814 21.144 19.7294 21.144C19.3934 21.144 19.1054 21.024 18.8654 20.784C18.6254 20.544 18.5054 20.264 18.5054 19.944C18.5054 18.856 18.7534 17.888 19.2494 17.04C19.7454 16.176 20.4174 15.496 21.2654 15C22.1294 14.504 23.0974 14.256 24.1694 14.256C25.2574 14.256 26.2014 14.488 27.0014 14.952C27.8014 15.416 28.4174 16.072 28.8494 16.92C29.2974 17.768 29.5214 18.776 29.5214 19.944C29.5214 20.456 29.4094 20.976 29.1854 21.504C28.9774 22.032 28.7054 22.536 28.3694 23.016C28.0494 23.496 27.7214 23.928 27.3854 24.312L21.8894 30.552H28.6094C28.9614 30.552 29.2574 30.68 29.4974 30.936C29.7374 31.176 29.8574 31.456 29.8574 31.776C29.8574 32.112 29.7374 32.4 29.4974 32.64C29.2574 32.88 28.9614 33 28.6094 33H19.7294Z\" class=\"evo-icon-number__number\" />\n }\n @case (3) {\n <path d=\"M24.3042 33C23.1042 33 22.0402 32.752 21.1122 32.256C20.1842 31.744 19.4562 31.056 18.9282 30.192C18.4002 29.312 18.1362 28.328 18.1362 27.24C18.1362 26.872 18.2402 26.576 18.4482 26.352C18.6722 26.112 18.9362 25.992 19.2402 25.992C19.5602 25.992 19.8242 26.112 20.0322 26.352C20.2402 26.576 20.3442 26.872 20.3442 27.24C20.3442 27.896 20.5122 28.504 20.8482 29.064C21.1842 29.608 21.6402 30.048 22.2162 30.384C22.7922 30.704 23.4402 30.864 24.1602 30.864C25.2162 30.864 26.0642 30.576 26.7042 30C27.3602 29.408 27.6882 28.584 27.6882 27.528C27.6882 26.856 27.5442 26.256 27.2562 25.728C26.9682 25.184 26.5762 24.752 26.0802 24.432C25.5842 24.112 25.0242 23.952 24.4002 23.952C24.0482 23.952 23.7522 23.832 23.5122 23.592C23.2882 23.352 23.1762 23.056 23.1762 22.704C23.1762 22.352 23.2882 22.064 23.5122 21.84C23.7522 21.6 24.0482 21.48 24.4002 21.48C24.8482 21.48 25.2802 21.368 25.6962 21.144C26.1122 20.904 26.4562 20.592 26.7282 20.208C27.0002 19.808 27.1362 19.36 27.1362 18.864C27.1362 18.16 26.8802 17.568 26.3682 17.088C25.8562 16.608 25.2002 16.368 24.4002 16.368C23.7922 16.368 23.2322 16.488 22.7202 16.728C22.2242 16.968 21.8242 17.288 21.5202 17.688C21.2322 18.088 21.0882 18.536 21.0882 19.032C21.0882 19.4 20.9842 19.712 20.7762 19.968C20.5682 20.208 20.3042 20.328 19.9842 20.328C19.6802 20.328 19.4162 20.216 19.1922 19.992C18.9842 19.752 18.8802 19.456 18.8802 19.104C18.8802 18.176 19.1202 17.344 19.6002 16.608C20.0802 15.872 20.7362 15.296 21.5682 14.88C22.4002 14.448 23.3282 14.232 24.3522 14.232C25.2962 14.232 26.1442 14.44 26.8962 14.856C27.6642 15.256 28.2642 15.808 28.6962 16.512C29.1442 17.2 29.3682 17.984 29.3682 18.864C29.3682 19.488 29.2242 20.04 28.9362 20.52C28.6642 21 28.3122 21.416 27.8802 21.768C27.4482 22.104 26.9922 22.384 26.5122 22.608C27.7762 23.04 28.6882 23.696 29.2482 24.576C29.8242 25.44 30.1122 26.432 30.1122 27.552C30.1122 28.592 29.8482 29.528 29.3202 30.36C28.7922 31.176 28.0882 31.824 27.2082 32.304C26.3282 32.768 25.3602 33 24.3042 33Z\" class=\"evo-icon-number__number\" />\n }\n @case (4) {\n <path d=\"M26.5082 33C26.1882 33 25.9162 32.88 25.6922 32.64C25.4682 32.4 25.3562 32.112 25.3562 31.776V28.752H17.3642C16.9962 28.752 16.7082 28.64 16.5002 28.416C16.2922 28.192 16.1722 27.936 16.1402 27.648C16.1242 27.344 16.2042 27.072 16.3802 26.832L25.5722 14.784C25.7002 14.624 25.8442 14.496 26.0042 14.4C26.1802 14.304 26.3722 14.256 26.5802 14.256C26.9162 14.256 27.1882 14.376 27.3962 14.616C27.6042 14.856 27.7082 15.152 27.7082 15.504V26.544H29.1482C29.4842 26.544 29.7722 26.624 30.0122 26.784C30.2522 26.944 30.3722 27.232 30.3722 27.648C30.3722 27.952 30.2522 28.216 30.0122 28.44C29.7722 28.648 29.4842 28.752 29.1482 28.752H27.7082V31.776C27.7082 32.112 27.5962 32.4 27.3722 32.64C27.1482 32.88 26.8602 33 26.5082 33ZM25.3562 26.544V18.6L19.3082 26.544H25.3562Z\" class=\"evo-icon-number__number\" />\n }\n @case (5) {\n <path d=\"M23.6092 33C22.4572 33 21.4172 32.736 20.4892 32.208C19.5772 31.664 18.8492 30.928 18.3052 30C17.7772 29.072 17.5132 28.032 17.5132 26.88C17.5132 26.528 17.6252 26.24 17.8492 26.016C18.0732 25.776 18.3612 25.656 18.7132 25.656C19.0652 25.656 19.3612 25.776 19.6012 26.016C19.8412 26.24 19.9612 26.528 19.9612 26.88C19.9612 27.568 20.1212 28.192 20.4412 28.752C20.7612 29.312 21.1932 29.752 21.7372 30.072C22.2972 30.392 22.9212 30.552 23.6092 30.552C24.3132 30.552 24.9372 30.392 25.4812 30.072C26.0412 29.752 26.4812 29.312 26.8012 28.752C27.1212 28.192 27.2812 27.568 27.2812 26.88C27.2812 26.176 27.1212 25.552 26.8012 25.008C26.4812 24.448 26.0412 24.008 25.4812 23.688C24.9372 23.368 24.3132 23.208 23.6092 23.208H19.6012C19.2492 23.208 18.9612 23.096 18.7372 22.872C18.5132 22.632 18.4012 22.336 18.4012 21.984V15.504C18.4012 15.152 18.5132 14.856 18.7372 14.616C18.9612 14.376 19.2492 14.256 19.6012 14.256H27.6172C27.9532 14.256 28.2412 14.384 28.4812 14.64C28.7212 14.88 28.8412 15.168 28.8412 15.504C28.8412 15.824 28.7212 16.104 28.4812 16.344C28.2572 16.584 27.9692 16.704 27.6172 16.704H20.8252V20.76H23.6092C24.7772 20.76 25.8172 21.032 26.7292 21.576C27.6572 22.104 28.3852 22.832 28.9132 23.76C29.4572 24.672 29.7292 25.712 29.7292 26.88C29.7292 28.032 29.4572 29.072 28.9132 30C28.3852 30.928 27.6572 31.664 26.7292 32.208C25.8172 32.736 24.7772 33 23.6092 33Z\" class=\"evo-icon-number__number\" />\n }\n @case (6) {\n <path d=\"M23.7514 33C22.6474 33 21.6634 32.76 20.7994 32.28C19.9514 31.784 19.2874 31.112 18.8074 30.264C18.3274 29.4 18.0874 28.416 18.0874 27.312C18.0874 26.08 18.3914 24.992 18.9994 24.048L24.4474 14.952C24.7354 14.504 25.1034 14.28 25.5514 14.28C25.8874 14.28 26.1674 14.376 26.3914 14.568C26.6154 14.76 26.7514 15 26.7994 15.288C26.8634 15.576 26.8074 15.864 26.6314 16.152L23.3434 21.624C23.4714 21.608 23.6074 21.6 23.7514 21.6C24.8554 21.6 25.8314 21.848 26.6794 22.344C27.5274 22.824 28.1914 23.496 28.6714 24.36C29.1514 25.208 29.3914 26.192 29.3914 27.312C29.3914 28.416 29.1514 29.4 28.6714 30.264C28.1914 31.112 27.5274 31.784 26.6794 32.28C25.8314 32.76 24.8554 33 23.7514 33ZM23.7274 30.84C24.7194 30.84 25.5274 30.512 26.1514 29.856C26.7754 29.2 27.0874 28.352 27.0874 27.312C27.0874 26.272 26.7754 25.424 26.1514 24.768C25.5274 24.096 24.7194 23.76 23.7274 23.76C22.7514 23.76 21.9514 24.096 21.3274 24.768C20.7034 25.424 20.3914 26.272 20.3914 27.312C20.3914 28.352 20.7034 29.2 21.3274 29.856C21.9514 30.512 22.7514 30.84 23.7274 30.84Z\" class=\"evo-icon-number__number\" />\n }\n @case (7) {\n <path d=\"M20.3694 33C20.0494 33 19.7694 32.88 19.5294 32.64C19.2894 32.4 19.1694 32.112 19.1694 31.776C19.1694 31.552 19.2414 31.296 19.3854 31.008L26.2734 16.704H18.9774C18.6254 16.704 18.3294 16.592 18.0894 16.368C17.8654 16.128 17.7534 15.832 17.7534 15.48C17.7534 15.128 17.8654 14.84 18.0894 14.616C18.3294 14.376 18.6254 14.256 18.9774 14.256H28.1214C28.4574 14.256 28.7454 14.376 28.9854 14.616C29.2254 14.856 29.3454 15.144 29.3454 15.48C29.3454 15.592 29.3294 15.704 29.2974 15.816C29.2654 15.912 29.2254 16.016 29.1774 16.128L21.4974 32.328C21.2414 32.776 20.8654 33 20.3694 33Z\" class=\"evo-icon-number__number\" />\n }\n @case (8) {\n <path d=\"M23.5113 32.976C22.4553 32.976 21.5033 32.728 20.6553 32.232C19.8233 31.72 19.1673 31.032 18.6873 30.168C18.2073 29.288 17.9673 28.304 17.9673 27.216C17.9673 26.192 18.1993 25.272 18.6633 24.456C19.1273 23.624 19.7513 22.968 20.5353 22.488C19.9913 22.072 19.5593 21.56 19.2393 20.952C18.9193 20.328 18.7593 19.64 18.7593 18.888C18.7593 17.976 18.9673 17.168 19.3833 16.464C19.7993 15.744 20.3593 15.176 21.0633 14.76C21.7833 14.328 22.5993 14.112 23.5113 14.112C24.4233 14.096 25.2313 14.296 25.9353 14.712C26.6553 15.128 27.2233 15.696 27.6393 16.416C28.0553 17.136 28.2553 17.96 28.2393 18.888C28.2393 19.64 28.0793 20.328 27.7593 20.952C27.4393 21.56 27.0073 22.064 26.4633 22.464C27.2473 22.944 27.8713 23.6 28.3353 24.432C28.7993 25.264 29.0313 26.192 29.0313 27.216C29.0313 28.304 28.7833 29.288 28.2873 30.168C27.8073 31.032 27.1513 31.72 26.3193 32.232C25.4873 32.728 24.5513 32.976 23.5113 32.976ZM23.5113 21.432C24.1833 21.432 24.7353 21.176 25.1673 20.664C25.6153 20.152 25.8473 19.536 25.8633 18.816C25.8793 18.096 25.6633 17.504 25.2153 17.04C24.7673 16.576 24.1993 16.344 23.5113 16.344C22.8393 16.344 22.2793 16.576 21.8313 17.04C21.3833 17.504 21.1513 18.096 21.1353 18.816C21.1193 19.536 21.3353 20.152 21.7833 20.664C22.2473 21.176 22.8233 21.432 23.5113 21.432ZM23.5113 30.768C24.1033 30.768 24.6313 30.608 25.0953 30.288C25.5753 29.968 25.9513 29.544 26.2233 29.016C26.4953 28.472 26.6313 27.872 26.6313 27.216C26.6473 26.576 26.5193 26.008 26.2473 25.512C25.9753 25 25.5993 24.6 25.1193 24.312C24.6553 24.008 24.1193 23.856 23.5113 23.856C22.9193 23.856 22.3833 24.008 21.9033 24.312C21.4233 24.6 21.0473 25 20.7753 25.512C20.5033 26.008 20.3673 26.576 20.3673 27.216C20.3673 27.872 20.4953 28.472 20.7513 29.016C21.0233 29.544 21.3993 29.968 21.8793 30.288C22.3593 30.608 22.9033 30.768 23.5113 30.768Z\" class=\"evo-icon-number__number\" />\n }\n @case (9) {\n <path d=\"M24.2474 14.232C25.3514 14.232 26.3274 14.48 27.1754 14.976C28.0394 15.456 28.7114 16.128 29.1914 16.992C29.6714 17.84 29.9114 18.816 29.9114 19.92C29.9114 21.152 29.6074 22.24 28.9994 23.184L23.5514 32.28C23.2634 32.728 22.8954 32.952 22.4474 32.952C22.1114 32.952 21.8314 32.856 21.6074 32.664C21.3834 32.472 21.2394 32.232 21.1754 31.944C21.1274 31.656 21.1914 31.368 21.3674 31.08L24.6554 25.608C24.5274 25.624 24.3914 25.632 24.2474 25.632C23.1434 25.632 22.1674 25.392 21.3194 24.912C20.4714 24.416 19.8074 23.744 19.3274 22.896C18.8474 22.032 18.6074 21.04 18.6074 19.92C18.6074 18.816 18.8474 17.84 19.3274 16.992C19.8074 16.128 20.4714 15.456 21.3194 14.976C22.1674 14.48 23.1434 14.232 24.2474 14.232ZM24.2714 16.392C23.2794 16.392 22.4714 16.72 21.8474 17.376C21.2234 18.032 20.9114 18.88 20.9114 19.92C20.9114 20.96 21.2234 21.816 21.8474 22.488C22.4714 23.144 23.2794 23.472 24.2714 23.472C25.2474 23.472 26.0474 23.144 26.6714 22.488C27.2954 21.816 27.6074 20.96 27.6074 19.92C27.6074 18.88 27.2954 18.032 26.6714 17.376C26.0474 16.72 25.2474 16.392 24.2714 16.392Z\" class=\"evo-icon-number__number\" />\n }\n }\n</svg>\n","import {NgModule} from '@angular/core';\nimport {EvoIconNumberComponent} from './components/evo-icon-number/evo-icon-number.component';\n\n@NgModule({\n imports: [EvoIconNumberComponent],\n exports: [EvoIconNumberComponent],\n})\nexport class EvoIconNumberModule {}\n","export function clearMultiline(value: string, isMultiline: boolean): string {\n if (typeof value === 'string') {\n value = isMultiline ? value : value?.replace(/\\n/g, '');\n }\n\n return value;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Injector,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {EvoControlStates} from '../../common/evo-control-state-manager/evo-control-states.enum';\nimport {clearMultiline} from './utils/clear-multiline';\nimport {EvoControlErrorComponent} from '../evo-control-error/evo-control-error.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\nimport {EvoInputContenteditableSize} from './types/evo-input-contenteditable-size';\n\n@Component({\n selector: 'evo-input-contenteditable',\n templateUrl: './evo-input-contenteditable.component.html',\n styleUrls: ['./evo-input-contenteditable.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoInputContenteditableComponent),\n multi: true,\n },\n {\n provide: EvoBaseControl,\n useExisting: forwardRef(() => EvoInputContenteditableComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [EvoUiClassDirective, EvoControlErrorComponent],\n})\nexport class EvoInputContenteditableComponent extends EvoBaseControl implements OnInit, ControlValueAccessor {\n static readonly STYLE_KEYCODES = [\n 66, // B b\n 73, // I i\n 85, // U u\n ];\n\n @ViewChild('contenteditable', {read: ElementRef, static: true}) readonly contenteditable: ElementRef;\n\n @Output() blur = new EventEmitter<FocusEvent>();\n\n @Input() size: EvoInputContenteditableSize = 'normal';\n @Input() multiline = true;\n @Input() placeholder: string;\n @Input() autoFocus: boolean;\n @Input() maxLines = 3;\n @Input() minLines = 0;\n\n @Input() private readonly disabled = false;\n @Input() private readonly preventStylingHotkeys = true;\n\n // eslint-disable-next-line\n private onChange: any;\n private onTouched: () => void;\n private _isDisabled = false;\n\n constructor(\n private readonly cd: ChangeDetectorRef,\n protected injector: Injector,\n ) {\n super(injector);\n }\n\n get isDisabled(): boolean {\n return this._isDisabled || this.disabled;\n }\n\n get inputClass(): {[cssClass: string]: boolean} {\n return {\n open: this.minLines > 0,\n single: !this.multiline,\n disabled: this._isDisabled,\n valid: this.currentState[EvoControlStates.valid],\n invalid: this.currentState[EvoControlStates.invalid],\n [`size_${this.size}`]: this.size !== 'normal',\n };\n }\n\n ngOnInit(): void {\n this.wrapSetValue();\n\n if (this.autoFocus) {\n this.focus();\n }\n }\n\n focus(): void {\n this.contenteditable.nativeElement.focus();\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n writeValue(value: string): void {\n this.contenteditable.nativeElement.innerText = this.clearMultiline(value);\n }\n\n onBlur(event: FocusEvent): void {\n this.blur.emit(event);\n }\n\n /**\n * New line triggers changes in both modes\n * Handle this case here if you found this behaviour redundant\n */\n onInput(event: Event): void {\n if (this.onTouched) {\n this.onTouched();\n }\n\n if (this.onChange) {\n const value = ((event as InputEvent).target as HTMLElement).innerText;\n this.onChange(this.clearMultiline(value));\n }\n }\n\n onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n const content = event.clipboardData?.getData('text/plain');\n document.execCommand('insertText', false, this.clearMultiline(content));\n }\n\n onKeydown(event: KeyboardEvent): void {\n if (\n this.preventStylingHotkeys &&\n (event.ctrlKey || event.metaKey) &&\n EvoInputContenteditableComponent.STYLE_KEYCODES.includes(event.keyCode)\n ) {\n event.preventDefault();\n }\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._isDisabled = isDisabled;\n this.cd.detectChanges();\n }\n\n private clearMultiline(value: string): string {\n return clearMultiline(value, this.multiline);\n }\n\n private wrapSetValue() {\n const originalSetValue = this.control.setValue;\n\n this.control.setValue = (value: unknown, options?: object) => {\n if (typeof value === 'string') {\n value = this.clearMultiline(value);\n }\n return originalSetValue.call(this.control, value, options);\n };\n }\n}\n","<div\n class=\"evo-contenteditable-input\"\n [evoUiClass]=\"inputClass\"\n [style.--evo-contenteditable-lines]=\"multiline ? maxLines : 0\"\n>\n <span\n #contenteditable\n class=\"evo-contenteditable-input__content\"\n [evoUiClass]=\"{'open-lines': minLines > 0}\"\n [attr.contenteditable]=\"!isDisabled\"\n [attr.placeholder]=\"placeholder\"\n [style.--evo-contenteditable-min-lines]=\"multiline ? minLines : 0\"\n (blur)=\"onBlur($event)\"\n (input)=\"onInput($event)\"\n (paste)=\"onPaste($event)\"\n (dragover)=\"$event.preventDefault()\"\n (keydown)=\"onKeydown($event)\"\n ></span>\n</div>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n","import {NgModule} from '@angular/core';\nimport {EvoInputContenteditableComponent} from './evo-input-contenteditable.component';\n\n@NgModule({\n imports: [EvoInputContenteditableComponent],\n exports: [EvoInputContenteditableComponent],\n})\nexport class EvoInputContenteditableModule {}\n","import {InjectionToken} from '@angular/core';\nimport {EvoModalConfig} from \"./interfaces\";\n\nexport const EVO_MODAL_CONFIG = new InjectionToken<EvoModalConfig>('EVO_MODAL_CONFIG');\n\n// Root ID\nexport const EVO_MODAL_DEFAULT_ROOT_ID = 'EVO_MODAL_ROOT_ID';\nexport const EVO_MODAL_ROOT_ID = new InjectionToken<string>('EvoModal default root ID');\n\n// Config\nexport const EVO_MODAL_DEFAULT_CONFIG: EvoModalConfig = {\n host: 'body',\n};\n\n// Modal Data\nexport const EVO_MODAL_DATA = new InjectionToken('EVO_MODAL_DATA');\n","import {Injector, ViewContainerRef} from '@angular/core';\n\nexport class EvoPortalOutlet {\n constructor(public injector: Injector, public viewContainerRef: ViewContainerRef) {}\n}\n","// eslint-disable-next-line:max-line-length\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n Injector,\n TemplateRef,\n Type,\n ViewRef,\n} from '@angular/core';\nimport {EvoPortalOutlet} from './evo-portal-outlet.class';\n\nexport type EvoPortalHostType = EvoPortalOutlet | HTMLElement | string;\n\nexport abstract class EvoAbstractPortal {\n abstract hasAttachedPortal(): boolean;\n\n abstract attach(host: EvoPortalHostType): void;\n\n abstract detach(): void;\n}\n\n@Injectable()\nexport class EvoPortalService {\n constructor(\n protected appRef: ApplicationRef,\n protected injector: Injector,\n protected cfr: ComponentFactoryResolver,\n ) {}\n\n // eslint-disable-next-line\n attachComponent<T = any>(portal: Type<T>, host: EvoPortalHostType, injector?: Injector): ComponentRef<T> {\n if (host instanceof EvoPortalOutlet) {\n return this.attachToHost<T>(portal, host, injector);\n } else {\n return this.attachToDomElement<T>(portal, host, injector);\n }\n }\n\n // eslint-disable-next-line\n attachToDomElement<T = any>(\n portal: Type<T>,\n elementOrSelector: HTMLElement | string,\n injector?: Injector,\n ): ComponentRef<T> {\n let element: HTMLElement;\n\n if (this.isElementSelector(elementOrSelector)) {\n element = document.querySelector(elementOrSelector as string);\n if (!element) {\n this.errNotFoundBySelector(elementOrSelector as string);\n }\n } else if (this.isHTMLElement(elementOrSelector)) {\n element = elementOrSelector as HTMLElement;\n }\n\n // TODO: rewrite without deprecated ComponentFactoryResolver\n const factory = this.cfr.resolveComponentFactory<T>(portal);\n\n const compRef = factory.create(injector || this.injector);\n\n this.appRef.attachView(compRef.hostView);\n\n element.appendChild(this.getRootNode(compRef));\n\n return compRef;\n }\n\n // eslint-disable-next-line\n attachToHost<T = any>(portal: Type<T>, portalHost: EvoPortalOutlet, injector?: Injector): ComponentRef<T> {\n const factory = this.cfr.resolveComponentFactory<T>(portal);\n\n return portalHost.viewContainerRef.createComponent<T>(\n factory,\n portalHost.viewContainerRef.length,\n injector || portalHost.injector,\n );\n }\n\n // eslint-disable-next-line\n attachTemplate<T = any>(template: TemplateRef<T>, host: EvoPortalHostType, context?: T): EmbeddedViewRef<T> {\n if (host instanceof EvoPortalOutlet) {\n return host.viewContainerRef.createEmbeddedView(template, context, host.viewContainerRef.length);\n } else if (this.isHTMLElement(host)) {\n return this.attachTemplateToElement(template, host as HTMLElement, context);\n } else {\n const hostEl: HTMLElement = document.querySelector(host as string);\n if (!hostEl) {\n this.errNotFoundBySelector(host as string);\n return;\n }\n return this.attachTemplateToElement(template, hostEl, context);\n }\n }\n\n // eslint-disable-next-line\n detach<T = any>(portal: ComponentRef<T> | EmbeddedViewRef<T> | ViewRef) {\n portal.destroy();\n }\n\n protected attachTemplateToElement<T>(\n template: TemplateRef<T>,\n element: HTMLElement,\n context?: T,\n ): EmbeddedViewRef<T> {\n const viewRef = template.createEmbeddedView(context);\n this.appRef.attachView(viewRef);\n element.appendChild(viewRef.rootNodes[0] as HTMLElement);\n return viewRef;\n }\n\n // eslint-disable-next-line\n protected getRootNode(ref: ComponentRef<any> | EmbeddedViewRef<any>): HTMLElement {\n if (ref instanceof ComponentRef) {\n // eslint-disable-next-line\n return (ref.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n } else {\n return ref.rootNodes[0] as HTMLElement;\n }\n }\n\n // eslint-disable-next-line\n protected isElementSelector(selector: any): boolean {\n return selector && typeof selector === 'string' && !!selector.trim().length;\n }\n\n // eslint-disable-next-line\n protected isHTMLElement(element: any): boolean {\n return element && (element instanceof Element || element instanceof HTMLDocument);\n }\n\n protected errNotFoundBySelector(selector: string) {\n throw new Error(`Element with selector '${selector}' not found`);\n }\n}\n","import {Directive, Injector, ViewContainerRef} from '@angular/core';\nimport {EvoPortalOutlet} from './evo-portal-outlet.class';\n\n@Directive({\n selector: '[evoPortalOutlet]',\n standalone: true,\n})\nexport class EvoPortalOutletDirective extends EvoPortalOutlet {\n constructor(\n public injector: Injector,\n public viewContainerRef: ViewContainerRef,\n ) {\n super(injector, viewContainerRef);\n }\n}\n","import {NgModule} from '@angular/core';\nimport {EvoPortalService} from './evo-portal.service';\nimport {EvoPortalOutletDirective} from './evo-portal-outlet.directive';\n\n@NgModule({\n imports: [EvoPortalOutletDirective],\n providers: [EvoPortalService],\n exports: [EvoPortalOutletDirective],\n})\nexport class EvoPortalModule {}\n","import {ApplicationRef, ComponentFactoryResolver, ComponentRef, Injectable, Injector} from '@angular/core';\nimport {EvoAbstractPortal, EvoPortalService} from '../evo-portal';\nimport {EvoModalComponent} from './evo-modal.component';\n\n@Injectable()\nexport class EvoModalPortal extends EvoPortalService implements EvoAbstractPortal {\n\n attachedPortal: ComponentRef<EvoModalComponent>;\n\n constructor(\n public appRef: ApplicationRef,\n public injector: Injector,\n public cfr: ComponentFactoryResolver,\n ) {\n super(appRef, injector, cfr);\n }\n\n attach(host: string) {\n this.attachedPortal = this.attachComponent(EvoModalComponent, host, this.injector);\n this.attachedPortal.changeDetectorRef.detectChanges();\n }\n\n detach() {\n super.detach(this.attachedPortal);\n this.attachedPortal = null;\n }\n\n hasAttachedPortal() {\n return !!this.attachedPortal;\n }\n}\n","import {\n EvoConfiguredComponentModalParams,\n EvoConfiguredModalParams, EvoConfiguredTemplateModalParams,\n EvoDynamicModalParams,\n EvoModalCombinedParams\n} from './interfaces';\n\nexport function isDynamicModalParams(params?: EvoModalCombinedParams): params is EvoDynamicModalParams {\n return params && !isConfiguredModalParams(params) && params?.hasOwnProperty('component');\n}\n\nexport function isConfiguredModalParams(params?: EvoModalCombinedParams): params is EvoConfiguredModalParams {\n return params &&\n (params.hasOwnProperty('titleText') ||\n params.hasOwnProperty('acceptText') ||\n params.hasOwnProperty('declineText') ||\n params.hasOwnProperty('acceptButtonColor') ||\n params.hasOwnProperty('acceptButtonTheme') ||\n params.hasOwnProperty('declineButtonColor') ||\n params.hasOwnProperty('declineButtonTheme') ||\n params.hasOwnProperty('asyncAccept'));\n}\n\nexport function isConfiguredTemplateModalParams(params?: EvoModalCombinedParams): params is EvoConfiguredTemplateModalParams<unknown> {\n return params && isConfiguredModalParams(params) && params.hasOwnProperty('template');\n}\n\nexport function isConfiguredComponentModalParams(params?: EvoModalCombinedParams): params is EvoConfiguredComponentModalParams<unknown> {\n return params && isConfiguredModalParams(params) && params.hasOwnProperty('component');\n}\n","import {distinctUntilChanged, filter} from 'rxjs/operators';\nimport {inject, Injectable} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\nimport {isEqual} from 'lodash-es';\nimport {EvoSidebarState} from '../evo-sidebar';\nimport {EvoModalPortal} from \"./evo-modal-portal\";\nimport {EVO_MODAL_CONFIG, EVO_MODAL_ROOT_ID} from './tokens';\nimport {\n EvoConfiguredModalParams,\n EvoDynamicModalParams,\n EvoModalConfig,\n EvoModalParams,\n EvoModalState\n} from './interfaces';\nimport {isConfiguredModalParams, isDynamicModalParams} from './utils';\n\n@Injectable({providedIn: 'root'})\nexport class EvoModalService {\n\n private readonly portal = inject(EvoModalPortal);\n private readonly config = inject<EvoModalConfig>(EVO_MODAL_CONFIG);\n private readonly evoModalRootId = inject(EVO_MODAL_ROOT_ID);\n\n private readonly modalEvents$ = new Subject<EvoModalState>();\n private readonly registeredModals = new Map<string, EvoModalState>();\n\n register(id: string): void {\n this.registeredModals.set(id, {id, isOpen: false});\n }\n\n unregister(id: string): void {\n this.registeredModals.delete(id);\n }\n\n open<T>(params: EvoConfiguredModalParams<T>);\n open(params: EvoDynamicModalParams);\n open(id: string, params?: EvoModalParams);\n open(idOrParams: string | EvoDynamicModalParams | EvoConfiguredModalParams, params?: EvoModalParams): void {\n if (typeof idOrParams === 'string') {\n this.modalEvents$.next({id: idOrParams, isOpen: true, params});\n } else if (isDynamicModalParams(idOrParams)) {\n this.openDynamicModal(idOrParams);\n } else if (isConfiguredModalParams(idOrParams)) {\n this.openConfiguredModal(idOrParams);\n }\n }\n\n close(id = this.evoModalRootId, agreement = false, params?: EvoModalParams): void {\n this.modalEvents$.next({id, isOpen: false, agreement, params});\n }\n\n getEventsSubscription(id: string): Observable<EvoModalState> {\n return this.modalEvents$.pipe(\n filter(({id: currentId}: EvoSidebarState) => currentId === id),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n );\n }\n\n openDynamicModal(params: EvoDynamicModalParams): void {\n this.attachPortal();\n\n this.modalEvents$.next({id: this.evoModalRootId, isOpen: true, params});\n }\n\n openConfiguredModal(idOrParams: EvoConfiguredModalParams): void {\n this.attachPortal();\n\n this.modalEvents$.next({id: this.evoModalRootId, isOpen: true, params: idOrParams});\n }\n\n cleanupDefaultHost(): void {\n if (!this.portal.hasAttachedPortal()) {\n return;\n }\n\n this.portal.detach();\n }\n\n private attachPortal(): void {\n if (this.portal.hasAttachedPortal()) {\n return;\n }\n\n this.portal.attach(this.config.host);\n }\n}\n","export enum EvoModalCloseTargets {\n BACKGROUND = 'background',\n BUTTON = 'button',\n DEFAULT = 'default',\n ESC = 'escape',\n}\n","import {EvoModalCombinedParams} from '../interfaces';\nimport {EvoModalComponent} from '../evo-modal.component';\n\nexport abstract class EvoModalDrawingStrategy {\n abstract draw(this: EvoModalComponent, params: EvoModalCombinedParams): void;\n}\n","import {EvoModalDrawingStrategy} from './EvoModalDrawingStrategy';\nimport {EvoDynamicModalParams} from '../interfaces';\nimport {EvoModalComponent} from '../evo-modal.component';\n\nexport class EvoDynamicModalDrawingStrategy extends EvoModalDrawingStrategy {\n draw(this: EvoModalComponent, params: EvoDynamicModalParams): void {\n this.isDynamicContent.set(true);\n this.clearView();\n this.insertComponent(params);\n }\n}\n","import {EvoModalDrawingStrategy} from './EvoModalDrawingStrategy';\nimport {EvoConfiguredModalParams} from '../interfaces';\nimport {EvoModalComponent} from '../evo-modal.component';\n\nexport abstract class EvoConfiguredModalDrawingStrategy extends EvoModalDrawingStrategy {\n draw(this: EvoModalComponent, params: EvoConfiguredModalParams): void {\n this.titleText.set(params.titleText);\n this.acceptText.set(params.acceptText);\n this.declineText.set(params.declineText);\n this.acceptButtonColor.update((color) => params.acceptButtonColor || color);\n this.acceptButtonTheme.update((theme) => params.acceptButtonTheme || theme);\n this.declineButtonColor.update((color) => params.declineButtonColor || color);\n this.declineButtonTheme.update((theme) => params.declineButtonTheme || theme);\n this.asyncAccept.set(params.asyncAccept);\n }\n}\n","import {EvoConfiguredModalDrawingStrategy} from './EvoConfiguredModalDrawingStrategy';\nimport {EvoConfiguredComponentModalParams} from '../interfaces';\nimport {EvoModalComponent} from '../evo-modal.component';\n\nexport class EvoConfiguredComponentModalDrawingStrategy extends EvoConfiguredModalDrawingStrategy {\n override draw(this: EvoModalComponent, params: EvoConfiguredComponentModalParams<unknown>): void {\n super.draw(params);\n this.insertComponent(params, 'content');\n }\n}\n","import {EvoConfiguredModalDrawingStrategy} from './EvoConfiguredModalDrawingStrategy';\nimport {EvoConfiguredTemplateModalParams} from '../interfaces';\nimport {EvoModalComponent} from '../evo-modal.component';\n\nexport class EvoConfiguredTemplateModalDrawingStrategy extends EvoConfiguredModalDrawingStrategy {\n override draw(this: EvoModalComponent, params: EvoConfiguredTemplateModalParams<unknown>): void {\n super.draw(params);\n this.modalContent.set({\n template: params.template,\n context: params.data,\n });\n }\n}\n","import {Component, input, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'evo-modal-buttons, [evo-modal-buttons]',\n standalone: true,\n imports: [],\n template: '<ng-content select=\"[evoButton]\"/>',\n styleUrl: './evo-modal-buttons.component.scss',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n class: 'evo-modal-buttons',\n '[class.evo-modal-buttons_single-btn]': 'single()',\n },\n encapsulation: ViewEncapsulation.None,\n})\nexport class EvoModalButtonsComponent {\n\n single = input<boolean>(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n createComponent,\n DestroyRef,\n ElementRef,\n EnvironmentInjector,\n inject,\n Injector,\n model,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {filter, finalize, fromEvent, Observable} from 'rxjs';\nimport {takeWhile} from 'rxjs/operators';\nimport {EvoButtonColor, EvoButtonComponent, EvoButtonTheme} from '../evo-button';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\nimport {EVO_MODAL_DATA, EVO_MODAL_ROOT_ID} from './tokens';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {EvoDynamicModalParams, EvoModalCombinedParams, EvoModalState} from './interfaces';\nimport {EvoModalService} from './evo-modal.service';\nimport {isConfiguredComponentModalParams, isConfiguredTemplateModalParams, isDynamicModalParams} from './utils';\nimport {EvoModalCloseTargets} from './enums';\nimport {EvoModalDrawingStrategy} from './classes/EvoModalDrawingStrategy';\nimport {EvoDynamicModalDrawingStrategy} from './classes/EvoDynamicModalDrawingStrategy';\nimport {EvoConfiguredComponentModalDrawingStrategy} from './classes/EvoConfiguredComponentModalDrawingStrategy';\nimport {EvoConfiguredTemplateModalDrawingStrategy} from './classes/EvoConfiguredTemplateModalDrawingStrategy';\nimport {EvoModalButtonsComponent} from './evo-modal-buttons/evo-modal-buttons.component';\n\ntype InsertionContainerType = 'modal' | 'content';\n\n@Component({\n selector: 'evo-modal',\n templateUrl: './evo-modal.component.html',\n styleUrls: ['./evo-modal.component.scss'],\n standalone: true,\n imports: [\n EvoButtonComponent,\n NgTemplateOutlet,\n EvoModalButtonsComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EvoModalComponent implements OnInit, OnDestroy {\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n private readonly evoModalRootId = inject(EVO_MODAL_ROOT_ID);\n\n acceptText = model<string>('');\n acceptButtonColor = model<EvoButtonColor>(`success`);\n acceptButtonTheme = model<EvoButtonTheme>(`rounded-solid`);\n asyncAccept = model<() => Observable<unknown> | null>(null);\n declineText = model<string>('');\n declineButtonColor = model<EvoButtonColor>('secondary');\n declineButtonTheme = model<EvoButtonTheme>('rounded-outline');\n id = model<string>(this.evoModalRootId);\n titleText = model<string>('');\n\n readonly contentContainer = viewChild('contentContainer', {read: ViewContainerRef});\n readonly contentContainer$ = toObservable(this.contentContainer);\n readonly drawingStrategy = signal<EvoModalDrawingStrategy | null>(null);\n readonly isDynamicContent = signal<boolean>(false);\n readonly isLoading = signal<boolean>(false);\n readonly isVisible = computed((): boolean => this.modalState()?.isOpen || false);\n readonly modalContainer = viewChild('modalContainer', {read: ViewContainerRef});\n readonly modalContainer$ = toObservable(this.modalContainer);\n readonly modalContent = signal<{template: TemplateRef<{data: unknown}>, context: unknown} | null>(null);\n readonly modalElement = viewChild('modal', {read: ElementRef});\n readonly modalState = signal<EvoModalState | null>(null);\n readonly showButtons = computed((): string => this.acceptText() || this.declineText());\n\n readonly closeTargets = EvoModalCloseTargets;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly evoModalService = inject(EvoModalService);\n\n ngOnInit(): void {\n this.evoModalService.register(this.id());\n this.subscribeModalEvents();\n }\n\n ngOnDestroy(): void {\n this.evoModalService.unregister(this.id());\n }\n\n onAcceptClick(): void {\n const asyncAcceptAction = this.asyncAccept()?.();\n\n if (!asyncAcceptAction) {\n return this.close(true, EvoModalCloseTargets.BUTTON);\n }\n\n this.isLoading.set(true);\n\n asyncAcceptAction.pipe(\n finalize((): void => this.isLoading.set(false)),\n takeUntilDestroyed(this.destroyRef),\n ).subscribe((): void => this.close(true, EvoModalCloseTargets.BUTTON));\n }\n\n onBackgroundClick(event: Event): void {\n if (this.canCloseByBackground(event)) {\n this.close(false, EvoModalCloseTargets.BACKGROUND);\n }\n }\n\n onDeclineClick(): void {\n if (this.isLoading()) {\n return;\n }\n\n this.close(false, EvoModalCloseTargets.BUTTON);\n }\n\n protected clearView(): void {\n this.modalContainer()?.clear();\n }\n\n protected insertComponent(\n {data, injector, component}: Pick<EvoDynamicModalParams, 'data' | 'component' | 'injector'>,\n target: InsertionContainerType = 'modal',\n ): void {\n const dynamicComponentRef = createComponent(component, {\n environmentInjector: this.environmentInjector,\n elementInjector: Injector.create({\n providers: [\n {\n provide: EVO_MODAL_DATA,\n useValue: data,\n },\n ],\n parent: injector,\n }),\n });\n\n this.getInsertionContainer(target).pipe(\n filter((container): container is ViewContainerRef => !!container),\n takeUntilDestroyed(this.destroyRef),\n ).subscribe((container): void => {\n container.insert(dynamicComponentRef.hostView);\n dynamicComponentRef.changeDetectorRef.markForCheck();\n });\n }\n\n private canCloseByBackground(event: Event): boolean {\n return (this.declineText() || this.isDynamicContent()) &&\n !this.isLoading() &&\n this.modalState().isOpen &&\n event?.target &&\n !this.modalElement().nativeElement.contains(event.target);\n }\n\n private close(agreement: boolean, closeTarget: EvoModalCloseTargets): void {\n this.evoModalService.close(this.id(), agreement, {closeTarget});\n this.clearView();\n\n if (this.id() !== this.evoModalRootId) {\n return;\n }\n\n this.evoModalService.unregister(this.evoModalRootId);\n this.evoModalService.cleanupDefaultHost();\n }\n\n private getInsertionContainer(target: InsertionContainerType): Observable<ViewContainerRef> {\n return target === 'modal' ? this.modalContainer$ : this.contentContainer$;\n }\n\n private initKeyboardListener(): void {\n fromEvent(document.body, 'keydown').pipe(\n takeWhile((): boolean => this.modalState().isOpen),\n filter((event: KeyboardEvent): boolean => (this.declineText() || this.isDynamicContent()) && event.key === 'Escape'),\n takeUntilDestroyed(this.destroyRef),\n ).subscribe((): void => this.close(false, this.closeTargets.ESC));\n }\n\n private setDrawingStrategy(params: EvoModalCombinedParams): void {\n switch (true) {\n case isDynamicModalParams(params):\n return this.drawingStrategy.set(new EvoDynamicModalDrawingStrategy());\n case isConfiguredComponentModalParams(params):\n return this.drawingStrategy.set(new EvoConfiguredComponentModalDrawingStrategy());\n case isConfiguredTemplateModalParams(params):\n return this.drawingStrategy.set(new EvoConfiguredTemplateModalDrawingStrategy());\n default:\n return;\n }\n }\n\n private subscribeModalEvents(): void {\n this.evoModalService.getEventsSubscription(this.id()).pipe(\n takeUntilDestroyed(this.destroyRef),\n ).subscribe((modalState: EvoModalState): void => {\n this.modalState.set(modalState);\n\n if (!modalState.isOpen) {\n return;\n }\n\n this.initKeyboardListener();\n this.setDrawingStrategy(modalState.params);\n this.drawingStrategy()?.draw.call(this, modalState.params);\n });\n }\n}\n","@if (isVisible()) {\n <div class=\"evo-modal__background\" (mousedown)=\"onBackgroundClick($event)\"></div>\n\n <div class=\"evo-modal__wrapper\" (mousedown)=\"onBackgroundClick($event)\">\n <div class=\"evo-modal\" #modal>\n @if (isDynamicContent()) {\n <ng-template #modalContainer/>\n } @else {\n <div class=\"evo-modal__icon\">\n <ng-content select=\"evo-icon\"/>\n </div>\n\n @if (titleText()) {\n <h2 class=\"evo-modal__title\">{{ titleText() }}</h2>\n }\n\n <div class=\"evo-modal__content\">\n <ng-content/>\n\n <ng-container *ngTemplateOutlet=\"modalContent()?.template; context: {data: modalContent()?.context}\"/>\n\n <ng-template #contentContainer/>\n </div>\n\n @if (showButtons()) {\n <evo-modal-buttons [single]=\"!declineText() || !acceptText()\">\n @if (declineText()) {\n <button\n class=\"evo-modal__button_decline\"\n evoButton\n [color]=\"declineButtonColor()\"\n [theme]=\"declineButtonTheme()\"\n [disabled]=\"isLoading()\"\n (click)=\"onDeclineClick()\"\n >{{ declineText() }}</button>\n }\n\n @if (acceptText()) {\n <button\n class=\"evo-modal__button_accept\"\n evoButton\n [color]=\"acceptButtonColor()\"\n [theme]=\"acceptButtonTheme()\"\n [loading]=\"isLoading()\"\n (click)=\"onAcceptClick()\"\n >{{ acceptText() }}</button>\n }\n </evo-modal-buttons>\n }\n }\n </div>\n </div>\n}\n","import {NgModule} from '@angular/core';\nimport {EvoModalComponent} from './evo-modal.component';\nimport {EvoModalService} from './evo-modal.service';\n\n@NgModule({\n imports: [EvoModalComponent],\n exports: [EvoModalComponent],\n providers: [EvoModalService],\n})\nexport class EvoModalModule {}\n","import {EnvironmentProviders, makeEnvironmentProviders} from \"@angular/core\";\nimport {EvoModalPortal} from './evo-modal-portal';\nimport {EVO_MODAL_CONFIG, EVO_MODAL_DEFAULT_CONFIG, EVO_MODAL_DEFAULT_ROOT_ID, EVO_MODAL_ROOT_ID} from './tokens';\nimport {EvoModalConfig} from './interfaces';\nimport {merge} from 'lodash-es';\n\nexport function provideModal(config: EvoModalConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([\n EvoModalPortal,\n {\n provide: EVO_MODAL_ROOT_ID,\n useValue: EVO_MODAL_DEFAULT_ROOT_ID,\n },\n {\n provide: EVO_MODAL_CONFIG,\n useValue: merge(EVO_MODAL_DEFAULT_CONFIG, config),\n },\n ]);\n}\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, Output, booleanAttribute, input} from '@angular/core';\nimport {EvoNoteType} from './types/evo-note-type';\nimport {EvoIconComponent} from '../evo-icon/evo-icon.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-note',\n templateUrl: './evo-note.component.html',\n styleUrls: ['./evo-note.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoUiClassDirective, EvoIconComponent],\n})\nexport class EvoNoteComponent {\n closable = input(false, {transform: booleanAttribute});\n @Input() iconSrc: string;\n @Input() type: EvoNoteType = 'success';\n\n @Output() close = new EventEmitter<MouseEvent>();\n\n get totalClasses(): string[] {\n const classes: string[] = [];\n\n if (this.type) {\n classes.push('type-' + this.type);\n }\n\n if (this.closable()) {\n classes.push('is-closable');\n }\n\n return classes;\n }\n\n onCloseClick(event: MouseEvent): void {\n this.close.emit(event);\n }\n}\n","<div class=\"evo-note\" [evoUiClass]=\"totalClasses\">\n @if (closable()) {\n <a class=\"evo-note__close\" (click)=\"$event.preventDefault(); onCloseClick($event)\">\n <evo-icon shape=\"close\" class=\"evo-note__close-icon\" />\n </a>\n }\n\n @if (iconSrc) {\n <div class=\"evo-note__icon\">\n <img alt=\"\" [src]=\"iconSrc\" />\n </div>\n }\n\n <div class=\"evo-note__content\">\n <ng-content />\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoNoteComponent} from './evo-note.component';\n\n@NgModule({\n imports: [EvoNoteComponent],\n exports: [EvoNoteComponent],\n})\nexport class EvoNoteModule {}\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {NgClass, NgTemplateOutlet} from '@angular/common';\nimport {EvoLetDirective} from \"../../directives\";\n\nexport interface PageEvent {\n currentPage: number;\n previousPage: number;\n pageSize: number;\n pagesTotal: number;\n}\n\nenum PaginatorLayout {\n SHORT = 'SHORT',\n BEGINNING = 'BEGINNING',\n MIDDLE = 'MIDDLE',\n END = 'END',\n}\n\nconst SHORT_STATE_PAGES_LIMIT = 5;\nconst CORNER_STATE_PAGE_MAX_OFFSET = 3;\n\nconst DEFAULT_PAGE_SIZE = 10;\n\n@Component({\n selector: 'evo-paginator',\n templateUrl: './evo-paginator.component.html',\n styleUrls: ['./evo-paginator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass, EvoLetDirective, NgTemplateOutlet],\n})\nexport class EvoPaginatorComponent {\n @Input('currentPage') set setCurrentPage(value: string | number) {\n this.currentPage = parseInt(value as string, 10) || 1;\n }\n\n @Input('itemsTotal') set setItemsTotal(itemsTotal: number) {\n this.itemsTotal = itemsTotal > 0 ? itemsTotal : 0;\n this.pagesTotal = Math.ceil(this.itemsTotal / this.pageSize) || 1;\n }\n\n @Input('pageSize') set setPageSize(pageSize: number) {\n this.pageSize = pageSize > 0 ? pageSize : 10;\n this.pagesTotal = Math.ceil(this.itemsTotal / this.pageSize) || 1;\n }\n\n @Output() pageClick = new EventEmitter<PageEvent>();\n\n currentPage = 1; // starts with 1\n pagesTotal = 1;\n\n readonly CORNER_STATE_PAGE_MAX_OFFSET = CORNER_STATE_PAGE_MAX_OFFSET;\n readonly PaginatorLayout = PaginatorLayout;\n\n private pageSize = DEFAULT_PAGE_SIZE;\n private itemsTotal = 0;\n\n get currentLayout(): PaginatorLayout {\n if (this.pagesTotal <= SHORT_STATE_PAGES_LIMIT) {\n return PaginatorLayout.SHORT;\n }\n\n // first CORNER_STATE_PAGE_MAX_OFFSET pages\n // ex: CORNER_STATE_PAGE_MAX_OFFSET = 3, currentPage = 1 | 2 | 3\n if (this.currentPage <= CORNER_STATE_PAGE_MAX_OFFSET) {\n return PaginatorLayout.BEGINNING;\n }\n\n // last CORNER_STATE_PAGE_MAX_OFFSET pages\n // ex: CORNER_STATE_PAGE_MAX_OFFSET = 3, pagesTotal = 100, currentPage = 98 | 99 | 100\n if (this.pagesTotal - this.currentPage < CORNER_STATE_PAGE_MAX_OFFSET) {\n return PaginatorLayout.END;\n }\n\n return PaginatorLayout.MIDDLE;\n }\n\n onPageClick(page: number): void {\n if (page === this.currentPage) {\n return;\n }\n\n const payload: PageEvent = {\n currentPage: page,\n previousPage: this.currentPage,\n pageSize: this.pageSize,\n pagesTotal: this.pagesTotal,\n };\n this.currentPage = page;\n this.pageClick.emit(payload);\n }\n\n isSelectedPage(page: string | number): boolean {\n return parseInt(page as string, 10) === this.currentPage;\n }\n}\n","<div class=\"paginator\">\n @switch (currentLayout) {\n @case (PaginatorLayout.SHORT) {\n <ng-container [ngTemplateOutlet]=\"shortTpl\" />\n }\n @case (PaginatorLayout.BEGINNING) {\n <ng-container [ngTemplateOutlet]=\"beginningTpl\" />\n }\n @case (PaginatorLayout.MIDDLE) {\n <ng-container [ngTemplateOutlet]=\"middleTpl\" />\n }\n @case (PaginatorLayout.END) {\n <ng-container [ngTemplateOutlet]=\"endTpl\" />\n }\n }\n</div>\n\n<!-- SIMPLE LAYOUT, just pages in line -->\n<!-- ex: (1) 2 3 4 5 -->\n<ng-template #shortTpl>\n @for (item of [].constructor(pagesTotal); let i = $index; track i) {\n <button\n *evoLet=\"i + 1 as page\"\n class=\"paginator__btn\"\n [class.paginator__btn_selected]=\"isSelectedPage(page)\"\n (click)=\"onPageClick(page)\"\n >\n {{ page }}\n </button>\n }\n</ng-template>\n\n<!-- BEGINNING LAYOUT, when selected some of first pages -->\n<!-- ex: 1 (2) 3 4 ... 99 -->\n<ng-template #beginningTpl>\n @for (item of [].constructor(CORNER_STATE_PAGE_MAX_OFFSET + 1); let i = $index; track i) {\n <button\n *evoLet=\"i + 1 as page\"\n class=\"paginator__btn\"\n [class.paginator__btn_selected]=\"isSelectedPage(page)\"\n (click)=\"onPageClick(page)\"\n >\n {{ page }}\n </button>\n }\n\n <div class=\"paginator__separator\">...</div>\n <button class=\"paginator__btn\" (click)=\"onPageClick(pagesTotal)\">{{ pagesTotal }}</button>\n</ng-template>\n\n<!-- MIDDLE LAYOUT, when selected page is not in the begging nor at the end -->\n<!-- ex: 1 ... 35 (36) 37 ... 99 -->\n<ng-template #middleTpl>\n <button class=\"paginator__btn\" (click)=\"onPageClick(1)\">1</button>\n <div class=\"paginator__separator\">...</div>\n\n @for (page of [currentPage - 1, currentPage, currentPage + 1]; track page) {\n <button\n class=\"paginator__btn\"\n [class.paginator__btn_selected]=\"isSelectedPage(page)\"\n (click)=\"onPageClick(page)\"\n >\n {{ page }}\n </button>\n }\n\n <div class=\"paginator__separator\">...</div>\n <button class=\"paginator__btn\" (click)=\"onPageClick(pagesTotal)\">{{ pagesTotal }}</button>\n</ng-template>\n\n<!-- END LAYOUT, when selected some of last pages -->\n<!-- ex: 1 ... 96 (97) 98 99 -->\n<ng-template #endTpl>\n <button class=\"paginator__btn\" (click)=\"onPageClick(1)\">1</button>\n <div class=\"paginator__separator\">...</div>\n\n @for (item of [].constructor(CORNER_STATE_PAGE_MAX_OFFSET + 1); let i = $index; track pagesTotal + i) {\n <button\n *evoLet=\"pagesTotal - CORNER_STATE_PAGE_MAX_OFFSET + i as page\"\n class=\"paginator__btn\"\n [class.paginator__btn_selected]=\"isSelectedPage(page)\"\n (click)=\"onPageClick(page)\"\n >\n {{ page }}\n </button>\n }\n</ng-template>\n","import {NgModule} from '@angular/core';\nimport {EvoPaginatorComponent} from './evo-paginator.component';\n\n@NgModule({\n imports: [EvoPaginatorComponent],\n exports: [EvoPaginatorComponent],\n})\nexport class EvoPaginatorModule {}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostListener,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport {createPopper, Instance, Modifier, Placement, PositioningStrategy} from '@popperjs/core';\nimport {asyncScheduler, Subject} from 'rxjs';\nimport {observeOn, takeUntil, tap} from 'rxjs/operators';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\nimport {EvoClickOutsideDirective} from '../../directives/evo-click-outside.directive';\n\nexport type EvoPopoverPosition = 'center' | Placement;\n\nexport interface EvoPopoverDelay {\n show?: number;\n hide?: number;\n}\n\nconst DEFAULT_DELAY = {\n show: 0,\n hide: 100,\n};\n\n@Component({\n selector: 'evo-popover',\n templateUrl: 'evo-popover.component.html',\n styleUrls: ['evo-popover.component.scss'],\n standalone: true,\n imports: [EvoClickOutsideDirective, EvoUiClassDirective],\n})\nexport class EvoPopoverComponent implements AfterViewInit, OnChanges, OnDestroy {\n // TODO: This prop only for support old API. Remove later\n // eslint-disable-next-line\n @Input('media-tablet-position') mediaTabletPosition: 'right' | 'left' | 'center' = 'center';\n\n @Input('position') set position(position: EvoPopoverPosition) {\n this.placement = position === 'center' ? (this.positionMap[position] as Placement) : position;\n }\n\n @Input() show = false;\n // eslint-disable-next-line\n @Input() modifiers: Partial<Modifier<any, any>>[] = [];\n @Input() strategy: PositioningStrategy = 'absolute';\n\n // eslint-disable-next-line\n @Input('delay') set setDelay(value: any) {\n if (typeof value === 'number' && value >= 0) {\n this.delay = {\n show: value,\n hide: value,\n };\n return;\n }\n\n if (typeof value === 'object') {\n this.delay = {\n show: value.show >= 0 ? value.show : DEFAULT_DELAY.show,\n hide: value.hide >= 0 ? value.hide : DEFAULT_DELAY.hide,\n };\n return;\n }\n\n this.delay.show = DEFAULT_DELAY.show;\n this.delay.hide = DEFAULT_DELAY.hide;\n }\n\n @ViewChild('popover') el: ElementRef;\n @ViewChild('popoverWrap') popoverWrap: ElementRef;\n\n private popper: Instance;\n private placement: Placement = 'bottom';\n private delay: EvoPopoverDelay = {};\n private visibilityTimeout = null;\n // Old API Map\n private readonly positionMap = {center: 'bottom'};\n private readonly update$ = new Subject<void>();\n private readonly subscriptions$ = new Subject<void>();\n\n constructor(private readonly zone: NgZone) {}\n\n ngAfterViewInit() {\n this.create();\n this.update$\n .pipe(\n observeOn(asyncScheduler),\n tap(() => {\n if (this.popper) {\n this.popper.update();\n }\n }),\n takeUntil(this.subscriptions$),\n )\n .subscribe();\n }\n\n ngOnDestroy() {\n this.destroy();\n this.subscriptions$.next();\n this.subscriptions$.complete();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const position = changes.position;\n if (position && !position.firstChange) {\n this.destroy();\n this.create();\n }\n }\n\n create() {\n this.zone.runOutsideAngular(() => {\n this.popper = createPopper(this.el.nativeElement, this.popoverWrap.nativeElement, {\n strategy: this.strategy,\n placement: this.placement,\n modifiers: this.modifiers,\n });\n this.update$.next();\n });\n }\n\n destroy() {\n if (this.popper) {\n this.zone.runOutsideAngular(() => {\n this.popper.destroy();\n });\n\n this.popper = null;\n }\n }\n\n @HostListener('mouseenter')\n onEnter() {\n this.onMouseoverPopover();\n }\n\n @HostListener('touchend')\n onTouchEnd() {\n this.onMouseoverPopover();\n }\n\n @HostListener('mouseleave')\n onLeave() {\n this.onMouseleavePopover();\n }\n\n onClickOutside(): void {\n this.hidePopover();\n }\n\n showPopover(): void {\n this.popper.update();\n this.show = true;\n }\n\n hidePopover() {\n this.show = false;\n }\n\n private onMouseoverPopover() {\n this.togglePopover(true);\n }\n\n private onMouseleavePopover() {\n this.togglePopover(false);\n }\n\n private togglePopover(show: boolean = false) {\n const action = show ? 'show' : 'hide';\n const delayValue = this.delay && this.delay[action] > 0 ? this.delay[action] : 0;\n const toggle = () => {\n if (show) {\n this.showPopover();\n } else {\n this.hidePopover();\n }\n };\n if (this.visibilityTimeout) {\n clearTimeout(this.visibilityTimeout);\n }\n if (delayValue > 0) {\n this.visibilityTimeout = setTimeout(() => {\n toggle();\n }, delayValue);\n } else {\n toggle();\n }\n }\n}\n","<span #popover evoClickOutside class=\"evo-popover\" (evoClickOutside)=\"onClickOutside()\">\n <ng-content />\n <div #popoverWrap class=\"evo-popover__tip\" [evoUiClass]=\"{visible: show}\">\n <div class=\"evo-popover__tip-inner\">\n <ng-content select=\"[popover-body]\" />\n <div data-popper-arrow class=\"evo-popover__arrow\">\n <div class=\"evo-popover__arrow-inner\"></div>\n </div>\n </div>\n </div>\n</span>\n","import {NgModule} from '@angular/core';\nimport {EvoPopoverComponent} from './evo-popover.component';\n\n@NgModule({\n imports: [EvoPopoverComponent],\n exports: [EvoPopoverComponent],\n})\nexport class EvoPopoverModule {}\n","import {Component, forwardRef, Input} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {isEqual} from 'lodash-es';\n\n@Component({\n selector: 'evo-radio',\n templateUrl: './evo-radio.component.html',\n styleUrls: ['./evo-radio.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoRadioComponent),\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class EvoRadioComponent extends EvoBaseControl implements ControlValueAccessor {\n @Input() forceChecked: boolean;\n // eslint-disable-next-line\n @Input() value: any;\n @Input() name: string;\n\n disabled: boolean;\n\n onChange = (_) => {};\n onTouch = () => {};\n\n get checked() {\n return this.control ? isEqual(this.control.value, this.value) || this.forceChecked : this.forceChecked;\n }\n\n handleOnChange() {\n this.onChange(this.value);\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // eslint-disable-next-line\n writeValue(obj: any): void {}\n}\n","<label class=\"evo-radio\">\n <input\n type=\"radio\"\n class=\"evo-radio__input\"\n [name]=\"name\"\n [value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"handleOnChange()\"\n />\n <span class=\"evo-radio__element\"></span>\n <span class=\"evo-radio__content\">\n <ng-content />\n </span>\n</label>\n","import {NgModule} from '@angular/core';\nimport {EvoRadioComponent} from './evo-radio.component';\n\n@NgModule({\n imports: [EvoRadioComponent],\n exports: [EvoRadioComponent],\n})\nexport class EvoRadioModule {}\n","import {Component, forwardRef, Input} from '@angular/core';\nimport {EvoBaseControl} from '../../../common/evo-base-control';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {isEqual} from 'lodash-es';\nimport {NgClass} from '@angular/common';\n\n@Component({\n selector: 'evo-radioshape',\n templateUrl: 'evo-radioshape.component.html',\n styleUrls: ['evo-radioshape.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoRadioshapeComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [NgClass],\n})\nexport class EvoRadioshapeComponent extends EvoBaseControl implements ControlValueAccessor {\n @Input() forceChecked: boolean;\n // eslint-disable-next-line\n @Input() value: any;\n @Input() name = Math.random();\n\n disabled: boolean;\n\n onChange = (_) => {};\n onTouch = () => {};\n\n get checked() {\n return this.control ? isEqual(this.control.value, this.value) || this.forceChecked : this.forceChecked;\n }\n\n handleOnChange() {\n this.onChange(this.value);\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // eslint-disable-next-line\n writeValue(obj: any): void {}\n}\n","<div class=\"evo-radioshape\" [ngClass]=\"{'evo-radioshape_checked': checked, 'evo-radioshape_disabled': disabled}\">\n @if (value || forceChecked) {\n <label class=\"evo-radioshape__label\">\n <input\n type=\"radio\"\n class=\"evo-radioshape__input\"\n [name]=\"name\"\n [value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"handleOnChange()\"\n />\n <span class=\"evo-radioshape__control\"></span>\n </label>\n }\n\n <div class=\"evo-radioshape__content\">\n <ng-content />\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoRadioshapeComponent} from './components/evo-radioshape.component';\n\n@NgModule({\n imports: [EvoRadioshapeComponent],\n exports: [EvoRadioshapeComponent],\n})\nexport class EvoRadioshapeModule {}\n","import {InjectionToken} from '@angular/core';\nimport {EvoSidebarConfig} from './interfaces';\n\n// Root ID\nexport const evoSidebarRootId = 'EVO_SIDEBAR_ROOT_ID';\nexport const EVO_SIDEBAR_ROOT_ID = new InjectionToken<string>(\n evoSidebarRootId\n);\n\n// Config\nexport const evoSidebarDefaultConfig: EvoSidebarConfig = {\n host: 'body',\n};\n\nexport const EVO_SIDEBAR_CONFIG = new InjectionToken<EvoSidebarConfig>('EVO_SIDEBAR_CONFIG');\n\n// Sidebar Data\nexport const EVO_SIDEBAR_DATA = new InjectionToken('EVO_SIDEBAR_DATA');\n","import {inject, Injectable} from '@angular/core';\nimport {cloneDeep, isEqual} from 'lodash-es';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged, filter, take, tap} from 'rxjs/operators';\nimport {EvoAbstractPortal} from '../evo-portal';\nimport {EvoOpenedSidebarActions, EvoSidebarConfig, EvoSidebarParams, EvoSidebarState} from './interfaces';\nimport {EVO_SIDEBAR_CONFIG, evoSidebarRootId} from './tokens';\n\n@Injectable({providedIn: 'root'})\nexport class EvoSidebarService {\n private readonly portal = inject(EvoAbstractPortal); // EvoSidebarPortal provided\n private readonly config = inject<EvoSidebarConfig>(EVO_SIDEBAR_CONFIG);\n private readonly sidebarEvents$ = new Subject<EvoSidebarState>();\n private registeredSidebars: {[id: string]: EvoSidebarState} = {};\n\n deregister(id: string) {\n delete this.registeredSidebars[id];\n }\n\n register(id: string) {\n if (this.registeredSidebars[id]) {\n throw Error(`[EvoUiKit]: Another evo-sidebar with id = \"${id}\" already registered!`);\n } else {\n this.registeredSidebars[id] = {id, isOpen: false};\n }\n }\n\n open(params: EvoSidebarParams): EvoOpenedSidebarActions;\n open(id: string, params?: EvoSidebarParams): EvoOpenedSidebarActions;\n open(idOrParams: string | EvoSidebarParams, params?: EvoSidebarParams): EvoOpenedSidebarActions {\n if (typeof idOrParams === 'string') {\n this.sidebarEvents$.next({\n id: idOrParams,\n isOpen: true,\n params,\n });\n return this.getOpenedSidebarActions(idOrParams);\n } else {\n this.openWithDefaultHost(idOrParams);\n return this.getOpenedSidebarActions(evoSidebarRootId);\n }\n }\n\n openWithDefaultHost(params: EvoSidebarParams) {\n if (!this.portal.hasAttachedPortal()) {\n this.portal.attach(this.config.host);\n setTimeout(() => {\n this.open(evoSidebarRootId, params);\n }, 0);\n } else {\n this.open(evoSidebarRootId, params);\n }\n }\n\n close(params?: EvoSidebarParams): void;\n close(id: string, params?: EvoSidebarParams): void;\n close(idOrParams?: string | EvoSidebarParams, params?: EvoSidebarParams): void {\n if (typeof idOrParams === 'string') {\n this.sidebarEvents$.next({id: idOrParams, isOpen: false, params});\n } else {\n this.closeWithDefaultHost(idOrParams);\n }\n }\n\n closeWithDefaultHost(params?: EvoSidebarParams) {\n this.sidebarEvents$.next({id: evoSidebarRootId, isOpen: false, params});\n }\n\n getEventsSubscription(id: string, immediate?: boolean): Observable<EvoSidebarState> {\n return this.sidebarEvents$.pipe(\n filter((data: EvoSidebarState) => data.id === id),\n filter((data: EvoSidebarState) => {\n if (!data.isOpen) {\n return data.params && data.params.closeTarget ? true : immediate;\n }\n\n return true;\n }),\n distinctUntilChanged((prev: EvoSidebarState, next: EvoSidebarState) => {\n return immediate ? false : isEqual(prev, next);\n }),\n tap((data: EvoSidebarState) => {\n if (!immediate) {\n this.registeredSidebars[data.id] = cloneDeep(data);\n }\n }),\n );\n }\n\n cleanupDefaultHost() {\n if (!this.portal.hasAttachedPortal()) {\n return;\n }\n this.portal.detach();\n }\n\n getOpenedSidebarActions(id: string): EvoOpenedSidebarActions {\n return {\n afterClosed: () => {\n return this.getEventsSubscription(id).pipe(\n filter(({isOpen}) => !isOpen),\n take(1),\n );\n },\n };\n }\n}\n","export enum EvoSidebarCloseTargets {\n BACKGROUND = 'background',\n BUTTON = 'button',\n DEFAULT = 'default',\n ESC = 'escape',\n}\n","export enum EvoSidebarStates {\n HIDDEN = 'hidden',\n VISIBLE = 'visible',\n}\n","export enum EvoSidebarSizes {\n NORMAL = 'normal',\n MIDDLE = 'middle',\n LARGE = 'large',\n}\n","import {Signal} from \"@angular/core\";\nimport {EvoSidebarCloseTargets} from \"./enums/evo-sidebar-close-targets\";\n\nexport abstract class EvoSidebarToken {\n abstract backButton: Signal<boolean>;\n abstract relativeFooter: Signal<boolean>;\n\n abstract closeSidebar(target: EvoSidebarCloseTargets): void;\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'evo-sidebar-footer, [evo-sidebar-footer]',\n templateUrl: './evo-sidebar-footer.component.html',\n styleUrls: ['./evo-sidebar-footer.component.scss'],\n // eslint-disable-next-line\n host: {\n class: 'evo-sidebar__footer-wrapper',\n },\n standalone: true,\n})\nexport class EvoSidebarFooterComponent {}\n","<div class=\"evo-sidebar__footer\"><ng-content /></div>\n<!--чтобы :empty работал, не должно быть внутри evo-sidebar__footer вообще ничего, даже пробела-->\n","import {booleanAttribute, Component, computed, inject, input, OnInit} from '@angular/core';\nimport {EvoSidebarToken} from \"../evo-sidebar.token\";\n\n@Component({\n selector: 'evo-sidebar-content, [evo-sidebar-content]',\n templateUrl: './evo-sidebar-content.component.html',\n styleUrls: ['./evo-sidebar-content.component.scss'],\n standalone: true,\n // eslint-disable-next-line\n host: {\n class: 'evo-sidebar__content',\n '[class.evo-sidebar__content_relative-footer]': 'this.computedRelativeFooter()',\n },\n})\nexport class EvoSidebarContentComponent implements OnInit {\n\n relativeFooter = input(false, {transform: booleanAttribute});\n\n readonly computedRelativeFooter = computed(() => this.relativeFooter() || this.sidebar.relativeFooter());\n\n private readonly sidebar = inject(EvoSidebarToken);\n\n ngOnInit() {\n if (!this.sidebar) {\n throw new Error(`EvoSidebarContentComponent must be used inside EvoSidebarComponent only!`);\n }\n }\n}\n","<ng-content />\n","import {booleanAttribute, Component, computed, inject, input, OnInit, output} from '@angular/core';\nimport {EvoSidebarCloseTargets} from '../enums/evo-sidebar-close-targets';\nimport {EvoSidebarToken} from \"../evo-sidebar.token\";\nimport {EvoIconComponent} from '../../evo-icon/evo-icon.component';\n\n@Component({\n selector: 'evo-sidebar-header, [evo-sidebar-header]',\n templateUrl: './evo-sidebar-header.component.html',\n styleUrls: ['./evo-sidebar-header.component.scss'],\n // eslint-disable-next-line\n host: {\n class: 'evo-sidebar__header',\n },\n standalone: true,\n imports: [EvoIconComponent],\n})\nexport class EvoSidebarHeaderComponent implements OnInit {\n\n backButton = input(false, {transform: booleanAttribute});\n\n readonly back = output<void>();\n readonly computedBackButton = computed(() => this.backButton() || this.sidebar.backButton());\n\n private readonly sidebar = inject(EvoSidebarToken);\n\n ngOnInit() {\n if (!this.sidebar) {\n throw new Error(`EvoSidebarHeaderComponent must be used inside EvoSidebarComponent only!`);\n }\n }\n\n handleBackClick() {\n this.back.emit();\n }\n\n closeSidebar() {\n this.sidebar.closeSidebar(EvoSidebarCloseTargets.BUTTON);\n }\n}\n","@if (computedBackButton()) {\n <div class=\"evo-sidebar__back\" (click)=\"handleBackClick()\">\n <evo-icon shape=\"chevron-left\" class=\"evo-sidebar__icon\" />\n </div>\n}\n\n<div class=\"evo-sidebar__title\">\n <ng-content />\n</div>\n\n<div class=\"evo-sidebar__close\" (click)=\"closeSidebar()\">\n <evo-icon shape=\"close\" class=\"evo-sidebar__icon\" />\n</div>\n","import {\n ChangeDetectorRef,\n Component,\n computed,\n createComponent,\n DestroyRef,\n EnvironmentInjector,\n inject,\n Injector,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n output,\n signal,\n Type,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {fromEvent, SubscriptionLike} from 'rxjs';\nimport {EvoSidebarService} from './evo-sidebar.service';\nimport {AnimationEvent} from '@angular/animations';\nimport {delay, filter, takeWhile, tap} from 'rxjs/operators';\nimport {enterZone} from '../../operators';\nimport {Location} from '@angular/common';\nimport {EvoSidebarParams, EvoSidebarState} from './interfaces';\nimport {EVO_SIDEBAR_DATA, evoSidebarRootId} from './tokens';\nimport {sidebarAnimation} from '../../common/animations/sidebar.animation';\nimport {EvoSidebarCloseTargets} from './enums/evo-sidebar-close-targets';\nimport {EvoSidebarStates} from './enums/evo-sidebar-states';\nimport {EvoSidebarSizes} from './enums/evo-sidebar-sizes';\nimport {EvoSidebarToken} from \"./evo-sidebar.token\";\nimport {EvoSidebarFooterComponent} from './evo-sidebar-footer/evo-sidebar-footer.component';\nimport {EvoSidebarContentComponent} from './evo-sidebar-content/evo-sidebar-content.component';\nimport {EvoSidebarHeaderComponent} from './evo-sidebar-header/evo-sidebar-header.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\n\n@Component({\n selector: 'evo-sidebar',\n styleUrls: ['./evo-sidebar.component.scss'],\n templateUrl: './evo-sidebar.component.html',\n animations: [sidebarAnimation],\n viewProviders: [\n {\n provide: EvoSidebarToken,\n useExisting: EvoSidebarComponent,\n },\n ],\n standalone: true,\n imports: [\n EvoUiClassDirective,\n EvoSidebarHeaderComponent,\n EvoSidebarContentComponent,\n EvoSidebarFooterComponent,\n ],\n})\nexport class EvoSidebarComponent implements OnDestroy, OnInit {\n\n contentContainer = viewChild.required('sidebarContentContainer', {read: ViewContainerRef});\n\n backButton = input(false);\n id = input(evoSidebarRootId);\n header = input<string>();\n size = input(EvoSidebarSizes.NORMAL);\n relativeFooter = input(false);\n\n readonly back = output<void>();\n\n readonly closeTargets = EvoSidebarCloseTargets;\n readonly computedSize = computed(() => this.localSize() || this.size());\n readonly isDynamicContent = signal(false);\n readonly isVisible = signal(false);\n readonly localSize = signal<EvoSidebarSizes | null>(null);\n readonly totalClasses = computed(() => {\n const classes: string[] = [];\n\n if (this.isVisible()) {\n classes.push(EvoSidebarStates.VISIBLE);\n }\n\n classes.push(this.computedSize() ?? EvoSidebarSizes.NORMAL);\n return classes;\n })\n private readonly closeTarget = signal(EvoSidebarCloseTargets.DEFAULT);\n\n private locationSubscription: SubscriptionLike;\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly location = inject(Location);\n private readonly sidebarService = inject(EvoSidebarService);\n private readonly zone = inject(NgZone);\n\n ngOnDestroy() {\n this.clearView();\n this.sidebarService.deregister(this.id());\n this.locationSubscription?.unsubscribe();\n }\n\n ngOnInit() {\n this.sidebarService.register(this.id());\n this.sidebarService\n .getEventsSubscription(this.id(), true)\n .pipe(\n // async hack to avoid \"Expression has changed after it was checked\" error\n delay(0),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((sidebarState: EvoSidebarState) => {\n const {isOpen, params} = sidebarState;\n\n if (isOpen) {\n this.subscribeToKeyEvent();\n } else {\n this.closeTarget.set(EvoSidebarCloseTargets.DEFAULT);\n }\n\n // Dynamic content strategy\n if (isOpen && params?.component) {\n const {component, closeOnNavigation, size} = params;\n\n this.isDynamicContent.set(true);\n this.clearView();\n this.insertComponent(component, params);\n\n if (size) {\n this.localSize.set(size);\n }\n\n if (!this.locationSubscription && closeOnNavigation !== false) {\n this.closeOnLocationUpdates();\n }\n }\n\n this.isVisible.set(isOpen);\n this.cdr.markForCheck();\n });\n }\n\n get currentState(): string {\n return this.isVisible() ? EvoSidebarStates.VISIBLE : EvoSidebarStates.HIDDEN;\n }\n\n closeSidebar(source: EvoSidebarCloseTargets) {\n this.isVisible.set(false);\n this.closeTarget.set(source);\n }\n\n handleAnimationDone(event: AnimationEvent) {\n const isClosed = event.fromState === EvoSidebarStates.VISIBLE;\n\n if (isClosed && !this.isVisible()) {\n this.sidebarService.close(this.id(), {closeTarget: this.closeTarget()});\n this.clearView();\n if (this.id() === evoSidebarRootId) {\n this.sidebarService.deregister(evoSidebarRootId);\n this.sidebarService.cleanupDefaultHost();\n }\n }\n }\n\n handleBackClick() {\n this.back.emit();\n }\n\n private subscribeToKeyEvent() {\n this.zone.runOutsideAngular(() => {\n fromEvent(document.body, 'keyup')\n .pipe(\n takeWhile(() => this.isVisible()),\n filter((event: KeyboardEvent) => event.code === 'Escape'),\n enterZone(this.zone),\n tap(() => this.closeSidebar(EvoSidebarCloseTargets.ESC)),\n )\n .subscribe();\n });\n }\n\n // eslint-disable-next-line\n private insertComponent(component: Type<unknown>, {data, injector}: EvoSidebarParams) {\n const dynamicComponentRef = createComponent(component, {\n environmentInjector: this.environmentInjector,\n elementInjector: Injector.create({\n providers: [\n {\n provide: EVO_SIDEBAR_DATA,\n useValue: data,\n },\n {\n provide: EvoSidebarToken,\n useValue: this,\n },\n ],\n parent: injector,\n }),\n });\n\n this.contentContainer().insert(dynamicComponentRef.hostView);\n }\n\n private clearView() {\n this.contentContainer().clear();\n }\n\n private closeOnLocationUpdates() {\n this.locationSubscription = this.location.subscribe(() => this.closeSidebar(EvoSidebarCloseTargets.DEFAULT));\n }\n}\n","@if (isVisible()) {\n <div class=\"evo-sidebar__background\" (click)=\"closeSidebar(closeTargets.BACKGROUND)\"></div>\n}\n\n<div\n class=\"evo-sidebar\"\n [@open]=\"currentState\"\n [evoUiClass]=\"totalClasses()\"\n (@open.done)=\"handleAnimationDone($event)\"\n>\n <ng-template #sidebarContentContainer />\n\n @if (!isDynamicContent()) {\n <div evo-sidebar-header [backButton]=\"backButton()\" (back)=\"handleBackClick()\">\n {{ header() }}\n </div>\n <div evo-sidebar-content [relativeFooter]=\"relativeFooter()\">\n <ng-content select=\"[content]\" />\n </div>\n <div evo-sidebar-footer>\n <ng-content select=\"[footer]\" />\n </div>\n }\n</div>\n","import {ApplicationRef, ComponentFactoryResolver, ComponentRef, Injector} from '@angular/core';\nimport {EvoAbstractPortal, EvoPortalService} from '../evo-portal';\nimport {EvoSidebarComponent} from './evo-sidebar.component';\n\nexport class EvoSidebarPortal extends EvoPortalService implements EvoAbstractPortal {\n attachedPortal: ComponentRef<EvoSidebarComponent>;\n\n constructor(public appRef: ApplicationRef, public injector: Injector, public cfr: ComponentFactoryResolver) {\n super(appRef, injector, cfr);\n }\n\n attach(host: string) {\n this.attachedPortal = this.attachComponent(EvoSidebarComponent, host, this.injector);\n }\n\n detach() {\n super.detach(this.attachedPortal);\n this.attachedPortal = null;\n }\n\n hasAttachedPortal() {\n return !!this.attachedPortal;\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n EnvironmentProviders,\n Injector,\n Provider,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport {merge} from 'lodash-es';\nimport {EvoAbstractPortal} from '../evo-portal';\nimport {EvoSidebarPortal} from './evo-sidebar-portal';\nimport {EvoSidebarConfig} from './interfaces';\nimport {EVO_SIDEBAR_CONFIG, evoSidebarDefaultConfig} from './tokens';\n\nexport const portalProvider: Provider = {\n provide: EvoAbstractPortal,\n useClass: EvoSidebarPortal,\n deps: [ApplicationRef, Injector, ComponentFactoryResolver],\n};\n\nexport function provideSidebar(config: EvoSidebarConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([\n portalProvider,\n {\n provide: EVO_SIDEBAR_CONFIG,\n useValue: merge(evoSidebarDefaultConfig, config),\n },\n ]);\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\nimport {filter} from 'rxjs/operators';\n\nexport enum EvoStepperEvent {\n LABEL_CHANGED = 'LABEL_CHANGED',\n}\n\n@Injectable()\nexport class EvoStepperEvents {\n private readonly events$ = new Subject<EvoStepperEvent>();\n\n getEvents(type: EvoStepperEvent): Observable<EvoStepperEvent> {\n return this.events$.pipe(filter((event) => event === type));\n }\n\n emit(type: EvoStepperEvent) {\n this.events$.next(type);\n }\n}\n","import {Component, ContentChild, Host, Input, OnChanges, SimpleChanges, TemplateRef} from '@angular/core';\nimport {EvoStepperEvent, EvoStepperEvents} from '../evo-stepper-events';\nimport {NgTemplateOutlet} from '@angular/common';\n\n@Component({\n selector: 'evo-stepper-item',\n templateUrl: './evo-stepper-item.component.html',\n styleUrls: ['./evo-stepper-item.component.scss'],\n standalone: true,\n imports: [NgTemplateOutlet],\n})\nexport class EvoStepperItemComponent implements OnChanges {\n @Input() label: string;\n\n isSelected = false;\n\n // eslint-disable-next-line\n @ContentChild(TemplateRef) contentTemp: TemplateRef<any>;\n\n constructor(\n @Host()\n private readonly stepperEvents: EvoStepperEvents,\n ) {}\n\n ngOnChanges(changes: SimpleChanges) {\n const {firstChange} = changes.label;\n\n if (!firstChange) {\n this.stepperEvents.emit(EvoStepperEvent.LABEL_CHANGED);\n }\n }\n}\n","@if (isSelected) {\n <div class=\"evo-stepper-content\">\n @if (contentTemp) {\n <ng-container *ngTemplateOutlet=\"contentTemp\" />\n } @else {\n <ng-content />\n }\n </div>\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n} from '@angular/core';\nimport {EvoStepperItemComponent} from './evo-stepper-item/evo-stepper-item.component';\nimport {map} from 'rxjs/operators';\nimport {asyncScheduler, concat, merge, Observable, of, scheduled} from 'rxjs';\nimport {EvoStepperEvent, EvoStepperEvents} from './evo-stepper-events';\nimport {AsyncPipe} from '@angular/common';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-stepper',\n templateUrl: './evo-stepper.component.html',\n styleUrls: ['./evo-stepper.component.scss'],\n providers: [EvoStepperEvents],\n standalone: true,\n imports: [EvoUiClassDirective, AsyncPipe],\n})\nexport class EvoStepperComponent implements AfterViewInit, OnChanges {\n stepsList$: Observable<{label: string}[]>;\n\n @ContentChildren(EvoStepperItemComponent) stepComponentsList: QueryList<EvoStepperItemComponent>;\n\n @Input() currentStepIndex = 0;\n\n @Input() clickableItems = false;\n\n @Output() onChange = new EventEmitter<number>();\n\n @Output() clickItem = new EventEmitter<number>();\n\n constructor(\n private readonly cd: ChangeDetectorRef,\n private readonly stepperEvents: EvoStepperEvents,\n ) {}\n\n ngAfterViewInit() {\n this.stepsList$ = concat(\n scheduled(of(null), asyncScheduler),\n merge(this.stepComponentsList.changes, this.stepperEvents.getEvents(EvoStepperEvent.LABEL_CHANGED)),\n ).pipe(map(() => this.getStepsList()));\n this.cd.detectChanges();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.stepComponentsList && changes.currentStepIndex !== undefined) {\n const index = changes.currentStepIndex.currentValue;\n this.changeCurrentStep(index);\n }\n }\n\n getStepsList() {\n const currentStepComponent = this.stepComponentsList.find((stepComponent, i) => i === this.currentStepIndex);\n currentStepComponent.isSelected = true;\n return this.stepComponentsList.map(({label}) => ({label}));\n }\n\n changeCurrentStep(index: number) {\n this.stepComponentsList.forEach((step, i) => (step.isSelected = index === i));\n this.currentStepIndex = index;\n this.onChange.emit(index);\n this.cd.markForCheck();\n }\n\n handleItemClick(index: number) {\n if (this.clickableItems) {\n this.clickItem.emit(index);\n }\n }\n}\n","<div class=\"evo-stepper\">\n @if (stepsList$ | async; as stepsList) {\n <div class=\"evo-stepper__current-step-name\">\n {{ stepsList[currentStepIndex].label }}\n </div>\n <!-- List -->\n <div class=\"evo-stepper__list\">\n @for (step of stepsList; track step.label; let i = $index) {\n <div\n class=\"evo-stepper__item\"\n [evoUiClass]=\"{\n active: currentStepIndex == i,\n completed: i < currentStepIndex,\n clickable: clickableItems,\n }\"\n >\n <div class=\"evo-stepper__item-inner\" (click)=\"handleItemClick(i)\">\n <div class=\"evo-stepper__item-point\">\n <div class=\"evo-stepper__item-number\">{{ i + 1 }}</div>\n </div>\n <div class=\"evo-stepper__item-name\">{{ step.label }}</div>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Content -->\n <ng-content />\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoStepperComponent} from './evo-stepper.component';\nimport {EvoStepperItemComponent} from './evo-stepper-item/evo-stepper-item.component';\n\n@NgModule({\n imports: [EvoStepperComponent, EvoStepperItemComponent],\n exports: [EvoStepperComponent, EvoStepperItemComponent],\n})\nexport class EvoStepperModule {}\n","import {Component, ContentChild, Input, TemplateRef} from '@angular/core';\n\n@Component({\n selector: 'evo-table-column',\n templateUrl: './evo-table-column.component.html',\n styleUrls: ['./evo-table-column.component.scss'],\n standalone: true,\n})\nexport class EvoTableColumnComponent {\n @Input() prop: string = undefined;\n @Input() label = '';\n @Input() className = '';\n // eslint-disable-next-line\n @ContentChild('header', {read: TemplateRef}) header: any;\n // eslint-disable-next-line\n @ContentChild('content', {read: TemplateRef}) content: any;\n\n constructor() {}\n\n // eslint-disable-next-line\n @Input() formatter: (row: number, col: number, cellValue: any, item: any) => any = (row, col, cellValue) =>\n cellValue;\n}\n","<ng-content />\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {EvoTableColumnComponent} from '../evo-table-column/evo-table-column.component';\nimport {NgClass, NgTemplateOutlet} from '@angular/common';\n\nexport class EvoTableRowClickEvent {\n payload: {\n // eslint-disable-next-line\n item: any;\n rowIndex: number;\n };\n event: MouseEvent;\n}\n\n@Component({\n selector: 'evo-table',\n templateUrl: './evo-table.component.html',\n styleUrls: ['./evo-table.component.scss'],\n standalone: true,\n imports: [NgClass, NgTemplateOutlet],\n})\nexport class EvoTableComponent implements OnInit, AfterContentInit, OnChanges {\n filteredColumns: EvoTableColumnComponent[] = [];\n\n // eslint-disable-next-line\n @Input() data: any[];\n // eslint-disable-next-line\n @Input() showHeader = true;\n @Input() stripe = false;\n @Input() visibleColumns: string[];\n // eslint-disable-next-line\n @Input() rowClasses?: NgClass['ngClass'] | ((row: number, item: any) => NgClass['ngClass']);\n // eslint-disable-next-line\n @Input() rowTitle?: string | ((row: number, item: any) => string);\n\n @Output() rowClick: EventEmitter<EvoTableRowClickEvent> = new EventEmitter<EvoTableRowClickEvent>();\n @ContentChildren(EvoTableColumnComponent) columns: EvoTableColumnComponent[];\n\n states = {\n isRowClickable: false,\n };\n\n ngOnChanges(changes: SimpleChanges) {\n if ('visibleColumns' in changes) {\n this.filterColumns();\n }\n }\n\n ngOnInit() {\n this.states.isRowClickable = this.rowClick.observers.length > 0;\n }\n\n ngAfterContentInit() {\n this.filteredColumns = this.columns;\n this.filterColumns();\n }\n\n getRowClasses() {\n return {\n striped: this.stripe,\n };\n }\n\n onRowClick(rowIndex, item, event) {\n this.rowClick.emit({\n payload: {rowIndex, item},\n event: event,\n });\n }\n\n getClasses(row: number, item) {\n return typeof this.rowClasses === 'function' ? this.rowClasses(row, item) : this.rowClasses;\n }\n\n getTitle(row: number, item) {\n return typeof this.rowTitle === 'function' ? this.rowTitle(row, item) : this.rowTitle;\n }\n\n private filterColumns() {\n if (this.visibleColumns && this.columns) {\n this.filteredColumns = this.columns.filter((col) => this.visibleColumns.includes(col.prop));\n }\n }\n}\n","<div class=\"evo-table\" [ngClass]=\"{'evo-table_row-clickable': states.isRowClickable}\">\n @if (showHeader) {\n <div class=\"evo-table__row evo-table__row_head mobile-hide\">\n @for (column of filteredColumns; track column.label) {\n <div class=\"evo-table__cell evo-table__cell_head\" [ngClass]=\"column.className\">\n @if (column.header; as header) {\n <ng-container *ngTemplateOutlet=\"header; context: {label: column.label}\" />\n } @else {\n {{ column.label }}\n }\n </div>\n }\n </div>\n }\n\n @for (item of data; track item; let row = $index) {\n <div\n class=\"evo-table__row\"\n [title]=\"getTitle(row, item) || ''\"\n [ngClass]=\"getClasses(row, item)\"\n (click)=\"onRowClick(row, item, $event)\"\n >\n @for (column of filteredColumns; track column.label; let col = $index) {\n <div class=\"evo-table__cell\" [ngClass]=\"column.className\">\n @if (column.label) {\n <div class=\"evo-table__label mobile-show\">\n @if (column.header; as header) {\n <ng-container *ngTemplateOutlet=\"header; context: {label: column.label}\" />\n } @else {\n {{ column.label }}\n }\n </div>\n }\n\n @if (column.content; as content) {\n <div class=\"evo-table__data\">\n <ng-container *ngTemplateOutlet=\"content; context: {row: row, col: col, item: item}\" />\n </div>\n } @else {\n {{ column.formatter(row, col, column.prop !== undefined ? item[column.prop] : item, item) }}\n }\n </div>\n }\n </div>\n }\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoTableComponent} from './evo-table/evo-table.component';\nimport {EvoTableColumnComponent} from './evo-table-column/evo-table-column.component';\n\n@NgModule({\n imports: [EvoTableComponent, EvoTableColumnComponent],\n exports: [EvoTableComponent, EvoTableColumnComponent],\n})\nexport class EvoTableModule {}\n","export enum EvoTabsSize {\n small = 'small',\n normal = 'normal',\n}\n","export interface EvoTabState {\n name: string;\n isActive: boolean;\n params?: object;\n}\n\nexport class EvoTabStateCollection extends Array<EvoTabState> implements Array<EvoTabState> {\n\n // eslint-disable-next-line\n private constructor(items?: Array<any>) {\n super(...items);\n }\n\n // eslint-disable-next-line\n static create(tabs: any[]): EvoTabStateCollection {\n const array: EvoTabStateCollection = Object.create(EvoTabStateCollection.prototype);\n\n for (let i = 0; i < tabs.length; i++) {\n array.push(tabs[i]);\n }\n\n return array;\n }\n\n initTab(name: string) {\n this.push({name: name, isActive: false});\n }\n\n hasTab(name: string): boolean {\n return this.some((state) => state.name === name);\n }\n\n getTab(name: string): EvoTabState {\n return this.find((state) => state.name === name);\n }\n\n getActiveTab(): EvoTabState {\n return this.find((state) => state.isActive);\n }\n\n removeTab(name: string) {\n const tabToRemove = this.getTab(name);\n const index = this.indexOf(tabToRemove);\n\n if (index > -1) {\n this.splice(index, 1);\n }\n }\n\n setTab(name: string, params?: object) {\n const prevActiveTab = this.find((state) => state.isActive);\n\n if (prevActiveTab) {\n prevActiveTab.isActive = false;\n }\n\n const newActiveTab = this.getTab(name);\n newActiveTab.isActive = true;\n\n if (params) {\n newActiveTab.params = params;\n }\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged, filter, map, tap} from 'rxjs/operators';\nimport {cloneDeep, isEqual} from 'lodash-es';\nimport {EvoTabState, EvoTabStateCollection} from './evo-tab-state.collection';\n\nexport interface EvoTabsGroup {\n tabs: EvoTabStateCollection;\n name: string;\n}\n\n@Injectable()\nexport class EvoTabsService {\n\n private readonly tabsState$ = new Subject<Map<string, EvoTabsGroup>>();\n private readonly tabsGroupsMap: Map<string, EvoTabsGroup> = new Map();\n\n registerTabsGroup(groupName) {\n this.tabsGroupsMap.set(groupName, {name: groupName, tabs: EvoTabStateCollection.create([])});\n }\n\n registerTab(groupName: string, tabName: string) {\n const tabsGroup = this.getRegisteredTabsGroup(groupName);\n\n if (tabsGroup.tabs.hasTab(tabName)) {\n throw Error(`[EvoUiKit]: trying to register existing tab name('${tabName}') of '${groupName}' group`);\n }\n\n tabsGroup.tabs.initTab(tabName);\n\n if (tabsGroup.tabs.length === 1) {\n this.setTab(groupName, tabName);\n }\n }\n\n setTab(groupName: string, tabName: string, params?: object) {\n const tabsGroup = this.getRegisteredTabsGroup(groupName);\n\n if (!tabsGroup) {\n throw Error(`[EvoUiKit]: trying to set tab for not registered group ${groupName}`);\n }\n\n if (!tabsGroup.tabs.hasTab(tabName)) {\n throw Error(`[EvoUiKit]: trying to set tab with not registered name ${tabName}`);\n }\n\n tabsGroup.tabs.setTab(tabName, params);\n this.tabsState$.next(this.tabsGroupsMap);\n }\n\n getTabEventsSubscription(groupName: string, tabName: string): Observable<EvoTabState> {\n return this.tabsState$.pipe(\n map((tabsGroupsMap: Map<string, EvoTabsGroup>) => {\n return tabsGroupsMap.get(groupName);\n }),\n filter((tabsGroup: EvoTabsGroup) => {\n return tabsGroup.tabs.hasTab(tabName);\n }),\n tap((tabsGroup: EvoTabsGroup) => {\n this.tabsGroupsMap.set(groupName, cloneDeep(tabsGroup));\n }),\n map((tabsGroup: EvoTabsGroup) => {\n return tabsGroup.tabs.getTab(tabName);\n }),\n distinctUntilChanged((prevTabState: EvoTabState, nextTabState: EvoTabState) => {\n return isEqual(prevTabState, nextTabState);\n }),\n );\n }\n\n getGroupEventsSubscription(groupName: string): Observable<EvoTabsGroup> {\n return this.tabsState$.pipe(\n map((tabsGroupsMap: Map<string, EvoTabsGroup>) => {\n return tabsGroupsMap.get(groupName);\n }),\n distinctUntilChanged((prevTabsGroup: EvoTabsGroup, nextTabsGroup: EvoTabsGroup) => {\n return isEqual(prevTabsGroup, nextTabsGroup);\n }),\n tap((tabsGroup: EvoTabsGroup) => {\n this.tabsGroupsMap.set(groupName, cloneDeep(tabsGroup));\n }),\n );\n }\n\n getRegisteredTabsGroup(groupName: string): EvoTabsGroup {\n return this.tabsGroupsMap.get(groupName);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {EvoTabsSize} from './enums/evo-tabs-size';\n\n@Injectable()\nexport class EvoTabsSizeService {\n sizeChanges$: Observable<EvoTabsSize>;\n private readonly size$ = new BehaviorSubject<EvoTabsSize>(EvoTabsSize.normal);\n\n constructor() {\n this.sizeChanges$ = this.size$.asObservable();\n }\n\n set size(value: EvoTabsSize) {\n if (value !== this.size$.value) {\n this.size$.next(value);\n }\n }\n\n get size(): EvoTabsSize {\n return this.size$.value;\n }\n}\n","import {AfterViewInit, ChangeDetectorRef, Component, Input, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {EvoTabsService} from '../evo-tabs.service';\nimport {filter, takeUntil} from 'rxjs/operators';\nimport {EvoTabState} from '../evo-tab-state.collection';\nimport {NavigationEnd, Router, RouterLink} from '@angular/router';\nimport {Subject} from 'rxjs';\nimport {EvoTabsSizeService} from '../evo-tabs-size.service';\nimport {EvoTabsSize} from '../enums/evo-tabs-size';\nimport {EvoUiClassDirective} from '../../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-tab, [evoTab]',\n templateUrl: './evo-tab.component.html',\n styleUrls: ['./evo-tab.component.scss'],\n standalone: true,\n imports: [EvoUiClassDirective],\n})\nexport class EvoTabComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() name: string;\n\n selected = false;\n size = this.sizeService.size;\n\n private _groupName: string;\n private readonly destroy$ = new Subject<void>();\n\n constructor(\n private readonly tabsService: EvoTabsService,\n private readonly cd: ChangeDetectorRef,\n private readonly sizeService: EvoTabsSizeService,\n @Optional() private readonly routerLink: RouterLink,\n @Optional() private readonly routerLinkWithHref: RouterLink,\n @Optional() private readonly router: Router,\n ) {}\n\n set groupName(tabGroupId: string) {\n this._groupName = tabGroupId;\n this.subscribeToTabChanges();\n }\n\n get groupName(): string {\n return this._groupName;\n }\n\n get wrapperClasses(): {[cssClass: string]: boolean} {\n return {\n selected: this.selected,\n 'size-small': this.size === EvoTabsSize.small,\n };\n }\n\n ngOnInit() {\n this.subscribeOnNavigationEnd();\n }\n\n ngAfterViewInit(): void {\n this.initByUrl();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onChangeTabClick() {\n this.setTabActive();\n }\n\n private initByUrl(): void {\n const urlTree = this.routerLink?.urlTree || this.routerLinkWithHref?.urlTree;\n if (!(urlTree && this.router.isActive(urlTree, true))) {\n return;\n }\n this.setTabActive();\n }\n\n private setTabActive() {\n this.tabsService.setTab(this.groupName, this.name);\n }\n\n private subscribeOnNavigationEnd() {\n this.router?.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n takeUntil(this.destroy$),\n )\n .subscribe(() => this.initByUrl());\n }\n\n private subscribeToTabChanges() {\n this.tabsService\n .getTabEventsSubscription(this.groupName, this.name)\n .pipe(takeUntil(this.destroy$))\n .subscribe((data: EvoTabState) => {\n this.selected = data.isActive;\n this.cd.detectChanges();\n });\n }\n}\n","<div class=\"evo-tab\" [evoUiClass]=\"wrapperClasses\" (click)=\"onChangeTabClick()\">\n <ng-content />\n</div>\n","import {AfterContentChecked, Component, ContentChildren, Input, OnInit, QueryList} from '@angular/core';\nimport {EvoTabsService} from './evo-tabs.service';\nimport {EvoTabComponent} from './evo-tab/evo-tab.component';\nimport {EvoTabState} from './evo-tab-state.collection';\nimport {isEqual} from 'lodash-es';\nimport {EvoTabsSizeService} from './evo-tabs-size.service';\nimport {EvoTabsSize} from './enums/evo-tabs-size';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-tabs',\n templateUrl: './evo-tabs.component.html',\n styleUrls: ['./evo-tabs.component.scss'],\n providers: [EvoTabsSizeService],\n standalone: true,\n imports: [EvoUiClassDirective],\n})\nexport class EvoTabsComponent implements OnInit, AfterContentChecked {\n @Input() name: string;\n\n @ContentChildren(EvoTabComponent) tabComponentsList: QueryList<EvoTabComponent>;\n\n size: EvoTabsSize = EvoTabsSize.normal;\n\n get hasRegisteredTabs() {\n return this.tabsService.getRegisteredTabsGroup(this.name).tabs.length > 0;\n }\n\n get blockClasses(): {[cssClass: string]: boolean} {\n return {\n [`size-${this.size}`]: this.size !== EvoTabsSize.normal,\n };\n }\n\n constructor(\n public tabsService: EvoTabsService,\n public sizeService: EvoTabsSizeService,\n ) {}\n\n @Input('size') set setSize(size: EvoTabsSize | string) {\n if (EvoTabsSize[size]) {\n const tabsSize = EvoTabsSize[size];\n this.size = tabsSize;\n this.sizeService.size = tabsSize;\n }\n }\n\n ngOnInit() {\n this.tabsService.registerTabsGroup(this.name);\n }\n\n ngAfterContentChecked() {\n const getRegisteredTabsGroupTabs = this.tabsService.getRegisteredTabsGroup(this.name).tabs;\n\n this.tabComponentsList.forEach((tab: EvoTabComponent) => {\n // check tabs with same names\n if (\n this.tabComponentsList.filter((iteratedTab: EvoTabComponent) => iteratedTab.name === tab.name).length >\n 1\n ) {\n throw Error('[EvoUiKit]: some evo-tab components have the same name attribute!');\n }\n\n if (!tab.name) {\n throw Error('[EvoUiKit]: some evo-tab component has no name attribute!');\n }\n\n if (!getRegisteredTabsGroupTabs.hasTab(tab.name)) {\n tab.groupName = this.name;\n this.tabsService.registerTab(this.name, tab.name);\n }\n });\n\n // check redundant tabs\n const registeredTabsNames = getRegisteredTabsGroupTabs.map((tab: EvoTabState) => tab.name);\n const renderedTabsNames = this.tabComponentsList.map((tabComponent: EvoTabComponent) => tabComponent.name);\n\n if (!isEqual(registeredTabsNames, renderedTabsNames)) {\n registeredTabsNames.forEach((tabName: string) => {\n // if we have registered tab which not exists in DOM - delete it\n if (\n !renderedTabsNames.some((renderedTabName: string) => {\n return renderedTabName === tabName;\n })\n ) {\n getRegisteredTabsGroupTabs.removeTab(tabName);\n }\n });\n\n if (!!getRegisteredTabsGroupTabs.length && !getRegisteredTabsGroupTabs.getActiveTab()) {\n this.tabsService.setTab(this.name, getRegisteredTabsGroupTabs[0].name);\n }\n }\n }\n}\n","@if (hasRegisteredTabs) {\n <div class=\"evo-tabs\" [evoUiClass]=\"blockClasses\">\n <div class=\"evo-tabs__container\">\n <ng-content />\n </div>\n </div>\n}\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport {EvoTabsService} from '../evo-tabs.service';\nimport {takeUntil} from 'rxjs/operators';\nimport {EvoTabState} from '../evo-tab-state.collection';\nimport {Subject} from 'rxjs';\n\n@Component({\n selector: 'evo-tab-content, [evoTabContent]',\n templateUrl: './evo-tab-content.component.html',\n standalone: true,\n})\nexport class EvoTabContentComponent implements OnInit, OnDestroy {\n @Input() set tabsRef(tabsRef: string) {\n [this.groupName, this.tabName] = tabsRef.split('#');\n\n if (!this.groupName || !this.tabName) {\n throw Error('[EvoUiKit]: specify both group and name divided by # for evo-tab-content!');\n }\n }\n\n isActive = false;\n\n private groupName: string;\n private tabName: string;\n private readonly destroy$ = new Subject<void>();\n\n constructor(private readonly tabsService: EvoTabsService) {}\n\n ngOnInit() {\n this.tabsService\n .getTabEventsSubscription(this.groupName, this.tabName)\n .pipe(takeUntil(this.destroy$))\n .subscribe((data: EvoTabState) => {\n this.isActive = data.isActive;\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","@if (isActive) {\n <div>\n <ng-content />\n </div>\n}\n","import {NgModule} from '@angular/core';\nimport {EvoTabsComponent} from './evo-tabs.component';\nimport {EvoTabComponent} from './evo-tab/evo-tab.component';\nimport {EvoTabsService} from './evo-tabs.service';\nimport {EvoTabContentComponent} from './evo-tab-content/evo-tab-content.component';\n\n@NgModule({\n imports: [EvoTabsComponent, EvoTabComponent, EvoTabContentComponent],\n providers: [EvoTabsService],\n exports: [EvoTabsComponent, EvoTabComponent, EvoTabContentComponent],\n})\nexport class EvoTabsModule {}\n","import {Component, EventEmitter, forwardRef, Input, Output} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {EvoControlStates} from '../../common/evo-control-state-manager/evo-control-states.enum';\nimport {EvoControlErrorComponent} from '../evo-control-error/evo-control-error.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\nimport {EvoTextareaSize} from './types/evo-textarea-size';\n\n@Component({\n selector: 'evo-textarea',\n templateUrl: './evo-textarea.component.html',\n styleUrls: ['./evo-textarea.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoTextareaComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [FormsModule, EvoUiClassDirective, EvoControlErrorComponent],\n})\nexport class EvoTextareaComponent extends EvoBaseControl implements ControlValueAccessor {\n @Input() size: EvoTextareaSize = 'normal';\n @Input() placeholder = '';\n @Input() rows = 3;\n\n @Output() blur = new EventEmitter<void>();\n\n _value: string;\n disabled = false;\n focused = false;\n\n get value(): string {\n return this._value;\n }\n\n get textareaClasses(): {[cssClass: string]: boolean} {\n return {\n focused: this.focused,\n disabled: this.disabled,\n valid: this.currentState[EvoControlStates.valid],\n invalid: this.currentState[EvoControlStates.invalid],\n [`size_${this.size}`]: this.size !== 'normal',\n };\n }\n\n set value(value: string) {\n this._value = value.trim();\n this.onChange(this.value);\n }\n\n onFocus(): void {\n if (!this.focused) {\n this.focused = true;\n }\n }\n\n onBlur(): void {\n this.focused = false;\n this.onTouched();\n this.blur.emit();\n }\n\n onChange = (_) => {};\n onTouched = () => {};\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: string): void {\n this.value = value;\n }\n}\n","<textarea\n class=\"evo-textarea\"\n [evoUiClass]=\"textareaClasses\"\n [placeholder]=\"placeholder\"\n [rows]=\"rows\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n></textarea>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n","import {NgModule} from '@angular/core';\nimport {EvoTextareaComponent} from './evo-textarea.component';\n\n@NgModule({\n imports: [EvoTextareaComponent],\n exports: [EvoTextareaComponent],\n})\nexport class EvoTextareaModule {}\n","import {Injectable, TemplateRef} from '@angular/core';\nimport {EvoToastTypes} from './evo-toast.component';\nimport {Subject} from 'rxjs';\n\nexport interface EvoToast {\n type?: EvoToastTypes;\n message?: string;\n // eslint-disable-next-line\n templateRef?: TemplateRef<any>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EvoToastService {\n\n pushEvents: Subject<EvoToast> = new Subject<EvoToast>();\n\n private isComponentRegistered = false;\n private isToastInProgress = false;\n private queue: EvoToast[] = [];\n\n constructor() {\n\n }\n\n force(toast: EvoToast) {\n this.queue = [toast];\n this.isToastInProgress = true;\n this.pushEvents.next(toast);\n }\n\n push(toast: EvoToast) {\n this.queue.push(toast);\n\n if (!this.isToastInProgress) {\n this.isToastInProgress = true;\n this.pushEvents.next(this.queue[0]);\n }\n }\n\n toastComplete() {\n this.queue.shift();\n\n if (this.queue.length) {\n this.pushEvents.next(this.queue[0]);\n } else {\n this.isToastInProgress = false;\n }\n }\n\n register() {\n if (this.isComponentRegistered) {\n throw Error('[EvoUiKit]: Another evo-toast already registered. Only one toast component available in app!');\n } else {\n this.isComponentRegistered = true;\n }\n }\n}\n","import {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {EvoToast, EvoToastService} from './evo-toast.service';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {delay, filter, map, mergeMap, take, tap} from 'rxjs/operators';\nimport {BehaviorSubject, of, Subscription} from 'rxjs';\nimport {EvoIconComponent} from '../evo-icon/evo-icon.component';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\nexport enum EvoToastTypes {\n DEFAULT = 'default',\n DANGER = 'danger',\n SUCCESS = 'success',\n}\n\n@Component({\n selector: 'evo-toast',\n templateUrl: './evo-toast.component.html',\n styleUrls: ['./evo-toast.component.scss'],\n animations: [\n trigger('appear', [\n transition('void => in', [\n style({\n bottom: '-100px',\n }),\n animate(\n '250ms cubic-bezier(0, 0, 0.2, 1.40)',\n style({\n bottom: '32px',\n }),\n ),\n ]),\n transition('in => void', [\n animate(\n '250ms ease-in',\n style({\n bottom: '-100px',\n }),\n ),\n ]),\n ]),\n ],\n standalone: true,\n imports: [EvoUiClassDirective, NgTemplateOutlet, EvoIconComponent],\n})\nexport class EvoToastComponent implements OnInit {\n toast: EvoToast;\n\n private $appearTimeout: Subscription;\n private isForced = false;\n private readonly isOpen$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly toastService: EvoToastService,\n private readonly cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.toastService.register();\n this.subscribeToToastPushes();\n }\n\n handleAnimationDone() {\n if (this.toast) {\n this.$appearTimeout = of({})\n .pipe(delay(5000))\n .subscribe(() => {\n this.toast = null;\n this.cdr.detectChanges();\n });\n } else if (!this.isForced) {\n this.toastService.toastComplete();\n }\n\n this.isOpen$.next(!!this.toast);\n }\n\n close() {\n this.$appearTimeout.unsubscribe();\n this.toast = null;\n this.cdr.detectChanges();\n }\n\n private subscribeToToastPushes() {\n this.toastService.pushEvents\n .pipe(\n tap(() => {\n this.toast = null;\n\n if (this.$appearTimeout && !this.$appearTimeout.closed) {\n this.isForced = true;\n this.$appearTimeout.unsubscribe();\n }\n }),\n mergeMap((toast: EvoToast) => {\n return this.isOpen$.pipe(\n filter((isOpen: boolean) => !isOpen),\n take(1),\n map(() => toast),\n );\n }),\n )\n .subscribe((toast: EvoToast) => {\n this.toast = toast;\n this.isForced = false;\n this.cdr.detectChanges();\n });\n }\n}\n","@if (toast) {\n <div class=\"evo-toast__wrapper\" [@appear]=\"toast ? 'in' : null\" (@appear.done)=\"handleAnimationDone()\">\n <div class=\"evo-toast\" [evoUiClass]=\"toast?.type || ''\">\n @if (toast?.message) {\n <div class=\"evo-toast__message\" [innerHTML]=\"toast?.message\"></div>\n }\n\n @if (toast?.templateRef) {\n <div class=\"evo-toast__message\">\n <ng-container [ngTemplateOutlet]=\"toast?.templateRef\" />\n </div>\n }\n\n <evo-icon shape=\"close\" class=\"evo-toast__close\" (click)=\"close()\" />\n </div>\n </div>\n}\n","import {NgModule} from '@angular/core';\nimport {EvoToastComponent} from './evo-toast.component';\n\n@NgModule({\n imports: [EvoToastComponent],\n exports: [EvoToastComponent],\n})\nexport class EvoToastModule {}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\n@Component({\n selector: 'evo-toggle',\n templateUrl: './evo-toggle.component.html',\n styleUrls: ['./evo-toggle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoToggleComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [EvoUiClassDirective, FormsModule],\n})\nexport class EvoToggleComponent implements ControlValueAccessor {\n isDisabled = false;\n\n private _value: boolean;\n\n constructor(private readonly changeDetector: ChangeDetectorRef) {}\n\n get value(): boolean {\n return this._value;\n }\n\n set value(value: boolean) {\n if (value !== this._value) {\n this._value = value;\n this.onChange(value);\n }\n }\n\n get totalClasses(): string[] {\n const classes: string[] = [];\n\n if (this.isDisabled) {\n classes.push('disabled');\n }\n\n return classes;\n }\n\n onChange = (_value) => {};\n onTouched = () => {};\n\n // eslint-disable-next-line\n writeValue(value: any): void {\n if (value !== this._value) {\n this._value = value;\n this.changeDetector.detectChanges();\n }\n }\n\n // eslint-disable-next-line\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(state: boolean): void {\n this.isDisabled = state;\n this.changeDetector.detectChanges();\n }\n}\n","<label class=\"evo-toggle\" [evoUiClass]=\"totalClasses\">\n <input type=\"checkbox\" [(ngModel)]=\"value\" [disabled]=\"isDisabled\">\n <span class=\"slider\"></span>\n</label>\n","import {NgModule} from '@angular/core';\nimport {EvoToggleComponent} from './evo-toggle.component';\n\n@NgModule({\n imports: [EvoToggleComponent],\n exports: [EvoToggleComponent],\n})\nexport class EvoToggleModule {}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {isUndefined} from 'lodash-es';\n\n@Pipe({\n name: 'declination',\n standalone: true,\n})\nexport class DeclinationPipe implements PipeTransform {\n transform(value: number | string, titles: string[], noNum: boolean = false): string {\n if (isUndefined(value)) {\n return null;\n }\n\n const preparedValue: number | string = typeof value === 'string' ? (value as string).replace(',', '.') : value;\n\n let result = null;\n let count = +preparedValue % 100;\n if (count >= 5 && count <= 20) {\n result = titles['2'];\n } else {\n count = count % 10;\n if (count === 1) {\n result = titles['0'];\n } else if (count >= 2 && count <= 4) {\n result = titles['1'];\n } else {\n result = titles['2'];\n }\n }\n return noNum ? result : preparedValue + ' ' + result;\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Injector,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n} from '@angular/forms';\nimport autobind from 'autobind-decorator';\nimport bytes from 'bytes';\nimport * as mime from 'mime';\nimport {EvoBaseControl} from '../../common/evo-base-control';\nimport {SafeHtmlPipe} from '../../pipes/safe-html.pipe';\nimport {DeclinationPipe} from '../../pipes/declination.pipe';\nimport {EvoButtonComponent} from '../evo-button/components/evo-button/evo-button.component';\nimport {EvoNoteComponent} from '../evo-note/evo-note.component';\nimport {EvoIconComponent} from '../evo-icon/evo-icon.component';\nimport {EvoUiClassDirective} from '../../directives/evo-ui-class.directive';\n\nexport interface EvoUploadItemClickEvent {\n file: File;\n index: number;\n}\n\n@Component({\n selector: 'evo-upload',\n styleUrls: ['./evo-upload.component.scss'],\n templateUrl: './evo-upload.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EvoUploadComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [\n EvoUiClassDirective,\n EvoIconComponent,\n EvoNoteComponent,\n EvoButtonComponent,\n DeclinationPipe,\n SafeHtmlPipe,\n ],\n})\nexport class EvoUploadComponent extends EvoBaseControl implements ControlValueAccessor, AfterContentInit, OnInit {\n @Input() set accept(extensions: string) {\n if (extensions) {\n this.acceptedMimeTypes = extensions.split(',').map((extension) => mime.getType(extension));\n }\n }\n @Input() dropZoneLabel = 'Перетащите сюда файлы для загрузки';\n @Input() dropZoneHint: string;\n @Input() hideClearButton = false;\n @Input() hideSubmitButton = false;\n @Input() clickableFiles = false;\n @Input() earlyValidation = false;\n\n @Input() set fileSizeLimit(fileSize: string) {\n this.filesSizeLimitText = fileSize;\n this.filesSizeLimitInBytes = bytes(fileSize);\n }\n\n @Input() maxFiles: number;\n @Input() loading = false;\n\n @Output() submit = new EventEmitter<FileList>();\n @Output() addFiles = new EventEmitter<FileList>();\n @Output() remove = new EventEmitter<number>();\n @Output() clickFile = new EventEmitter<EvoUploadItemClickEvent>();\n\n @ViewChild('inputFile') inputFileElement: ElementRef;\n\n isDisabled = false;\n filesForm = this.formBuilder.array([], [this.maxFilesValidator]);\n filesSizeLimitText: string;\n filesSizeLimitInBytes: number;\n states = {\n isDragOver: false,\n };\n acceptedMimeTypes: string[];\n\n constructor(\n private readonly formBuilder: UntypedFormBuilder,\n protected injector: Injector,\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscribeOnFormChanges();\n }\n\n ngAfterContentInit() {\n this.mergeControlsErrors();\n }\n\n onChange = (value) => {};\n onTouched = () => {};\n\n registerOnChange(fn: () => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.isDisabled = isDisabled;\n\n if (!isDisabled) {\n this.mergeControlsErrors();\n }\n }\n\n writeValue(fileList: FileList | File[]) {\n if (fileList && fileList.length > 0) {\n if (fileList instanceof Array || fileList instanceof FileList) {\n this.wipeUploadList();\n if (this.earlyValidation) {\n this.earlyValidationFn(fileList);\n if (this.filesForm.errors) {\n return;\n }\n }\n this.processFiles(fileList as FileList);\n } else {\n throw Error(\n '[EvoUiKit]: wrong initial value passed to \"evo-upload\" component. Only FileList and File[] are allowed',\n );\n }\n }\n }\n\n getControlError(control: AbstractControl): string {\n if (!control.errors) {\n return null;\n }\n\n return Object.keys(control.errors)[0];\n }\n\n handleDragOver(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.loading) {\n return;\n }\n this.states.isDragOver = true;\n }\n\n handleDragLeave(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this.states.isDragOver = false;\n }\n\n handleDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n const files = event.dataTransfer.files;\n\n this.states.isDragOver = false;\n if (files.length) {\n if (this.earlyValidation) {\n this.earlyValidationFn(files);\n if (this.filesForm.errors) {\n return;\n }\n }\n this.addFiles.emit(files);\n this.processFiles(files);\n }\n }\n\n handleItemRemove(index) {\n if (this.loading || this.isDisabled) {\n return;\n }\n this.filesForm.removeAt(index);\n this.remove.emit(index);\n }\n\n handleResetButtonClick() {\n if (this.loading || this.isDisabled) {\n return;\n }\n\n this.wipeUploadList();\n }\n\n handleSubmitButtonClick() {\n this.submit.emit(this.filesForm.value);\n }\n\n inputChange(files: FileList) {\n if (this.earlyValidation) {\n this.earlyValidationFn(files);\n if (this.filesForm.errors) {\n return;\n }\n }\n this.addFiles.emit(files);\n this.processFiles(files);\n }\n\n earlyValidationFn(files: FileList | File[]) {\n this.filesForm.setErrors(null);\n const filesArray = Array.from(files);\n const errors = [];\n if (this.maxFiles && this.isFilesLengthValid(filesArray)) {\n errors.push({maxFiles: true});\n }\n if (this.filesSizeLimitInBytes && !this.isFilesSizeValid(filesArray)) {\n errors.push({size: true});\n }\n if (this.acceptedMimeTypes && !this.isFilesExtensionValid(filesArray)) {\n errors.push({extension: true});\n }\n if (errors.length) {\n this.filesForm.setErrors(Object.assign({}, ...errors));\n this.mergeControlsErrors();\n }\n }\n\n isFilesLengthValid(files: File[]): boolean {\n return this.maxFiles < files.length + this.filesForm.controls.length;\n }\n\n isFilesSizeValid(files: File[]): boolean {\n return !files.some(({size}) => this.filesSizeLimitInBytes < size);\n }\n\n isFilesExtensionValid(files: File[]): boolean {\n return files.every(({type}) => {\n return this.acceptedMimeTypes.includes(type);\n });\n }\n\n processFiles(files: FileList) {\n if (this.loading) {\n return;\n }\n\n Array.from(files).forEach((file: File) => {\n // tslint:disable:no-for-each-push\n this.filesForm.push(new UntypedFormControl(file, [this.fileExtensionValidator, this.fileSizeValidator]));\n });\n\n if (this.inputFileElement && this.inputFileElement.nativeElement) {\n this.inputFileElement.nativeElement.value = '';\n }\n }\n\n wipeUploadList() {\n while (this.filesForm.controls.length) {\n this.filesForm.removeAt(0);\n }\n }\n\n private mergeControlsErrors() {\n if (!this.control) {\n return;\n }\n\n const errors = Object.assign({}, this.filesForm.errors);\n this.filesForm.controls.forEach((control: UntypedFormControl) => {\n Object.assign(errors, control.errors);\n });\n this.control.setErrors(Object.keys(errors).length ? errors : null);\n }\n\n private subscribeOnFormChanges() {\n this.filesForm.valueChanges.subscribe((value) => {\n this.onChange(value);\n this.mergeControlsErrors();\n });\n }\n\n @autobind\n private fileSizeValidator(control: AbstractControl) {\n if (!this.filesSizeLimitInBytes) {\n return null;\n }\n\n return control.value.size > this.filesSizeLimitInBytes ? {size: true} : null;\n }\n\n @autobind\n private fileExtensionValidator(control: AbstractControl) {\n if (!this.acceptedMimeTypes) {\n return null;\n }\n\n const fileType = (control.value as File).type;\n const isExtensionAllowed = this.acceptedMimeTypes.includes(fileType);\n\n return isExtensionAllowed ? null : {extension: true};\n }\n\n @autobind\n private maxFilesValidator(control: UntypedFormArray) {\n if (!this.maxFiles) {\n return;\n }\n\n return control.controls.length > this.maxFiles ? {maxFiles: true} : null;\n }\n}\n","<div class=\"evo-upload\">\n <label\n class=\"evo-upload__wrapper\"\n [evoUiClass]=\"{over: states.isDragOver, disabled: isDisabled || loading}\"\n (click)=\"onTouched()\"\n (dragover)=\"handleDragOver($event)\"\n (dragleave)=\"handleDragLeave($event)\"\n (drop)=\"handleDrop($event)\"\n >\n <evo-icon shape=\"upload\" class=\"evo-upload__upload-icon\" [evoUiClass]=\"{disabled: isDisabled || loading}\" />\n <span class=\"evo-upload__title\" [evoUiClass]=\"{disabled: isDisabled || loading}\">{{ dropZoneLabel }}</span>\n\n <span class=\"evo-upload__hint\" [evoUiClass]=\"{disabled: isDisabled || loading}\">\n или\n <span class=\"evo-upload__fake-link\" [evoUiClass]=\"{disabled: isDisabled || loading}\">загрузите</span>\n @if (dropZoneHint) {\n (\n <span class=\"evo-upload__additional-hint\" [innerHTML]=\"dropZoneHint | safeHtml\"></span>\n )\n }\n </span>\n\n <input\n #inputFile\n type=\"file\"\n class=\"evo-upload__input\"\n [accept]=\"accept\"\n [disabled]=\"loading || isDisabled\"\n [attr.multiple]=\"maxFiles === 1 ? null : true\"\n (change)=\"inputChange($event.target.files)\"\n />\n </label>\n\n @if (!earlyValidation && filesForm.errors?.maxFiles) {\n <evo-note type=\"danger\">\n Нельзя загрузить более {{ maxFiles || 1 | declination: ['файла', 'файлов', 'файлов'] }}\n </evo-note>\n }\n\n @if (earlyValidation && filesForm.errors) {\n <evo-note type=\"danger\">\n <ul class=\"evo-list\">\n @if (filesForm.errors.maxFiles) {\n <li>Нельзя загрузить более {{ maxFiles || 1 | declination: ['файла', 'файлов', 'файлов'] }}</li>\n }\n\n @if (filesForm.errors.size) {\n <li>Максимальный размер одного файла не более {{ filesSizeLimitText }}</li>\n }\n\n @if (filesForm.errors.extension) {\n <li>Выбран файл недопустимого формата</li>\n }\n </ul>\n </evo-note>\n }\n\n <ul class=\"evo-upload__list\">\n @for (file of filesForm.controls; track file.value.name; let i = $index) {\n <li class=\"evo-upload__list-item\">\n <div class=\"evo-upload__item-inner\">\n <evo-icon shape=\"file\" svgWidth=\"24\" svgHeight=\"24\" class=\"evo-upload__file-icon\" />\n @if (clickableFiles) {\n <span class=\"evo-upload__link evo-link\" (click)=\"clickFile.emit({file: file.value, index: i})\">\n {{ file.value.name }}\n </span>\n } @else {\n <span>{{ file.value.name }}</span>\n }\n </div>\n <evo-icon\n shape=\"decline\"\n svgWidth=\"24\"\n svgHeight=\"24\"\n class=\"evo-upload__button-remove\"\n [evoUiClass]=\"{disabled: loading || isDisabled}\"\n (click)=\"handleItemRemove(i)\"\n />\n <div class=\"evo-upload__list-delimiter\" [evoUiClass]=\"{error: filesForm.controls[i].errors}\">\n @switch (getControlError(filesForm.controls[i])) {\n @case ('size') {\n Размер файла превышает допустимый\n }\n @case ('extension') {\n Неверный формат файла\n }\n }\n </div>\n </li>\n }\n </ul>\n\n @if (filesForm.controls.length) {\n <div class=\"evo-upload__controls\">\n @if (!hideClearButton) {\n <button\n evoButton\n color=\"secondary\"\n theme=\"rounded-outline\"\n [disabled]=\"loading || isDisabled\"\n [loading]=\"loading\"\n (click)=\"handleResetButtonClick()\"\n >\n Удалить всё\n </button>\n }\n\n @if (!hideSubmitButton) {\n <button\n evoButton\n color=\"success\"\n class=\"evo-upload__submit\"\n [disabled]=\"filesForm.invalid || loading || isDisabled\"\n [loading]=\"loading\"\n (click)=\"handleSubmitButtonClick()\"\n >\n Загрузить\n </button>\n }\n </div>\n }\n</div>\n","import {NgModule} from '@angular/core';\nimport {EvoUploadComponent} from './evo-upload.component';\n\n@NgModule({\n imports: [EvoUploadComponent],\n exports: [EvoUploadComponent],\n})\nexport class EvoUploadModule {}\n","import {ConnectedPosition} from '@angular/cdk/overlay';\nimport {EvoDropdownPositions} from './types/evo-dropdown-positions';\n\nexport const EVO_DROPDOWN_POSITION_DESCRIPTION: Record<EvoDropdownPositions, ConnectedPosition> = {\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n 'top-center': {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n 'bottom-center': {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n },\n 'left-center': {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n 'right-center': {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n ViewContainerRef,\n} from '@angular/core';\nimport {EvoDropdownOriginDirective} from './evo-dropdown-origin.directive';\nimport {CdkConnectedOverlay, ConnectedPosition} from '@angular/cdk/overlay';\nimport {EVO_DROPDOWN_POSITION_DESCRIPTION} from './evo-dropdown-position-description';\nimport {EvoDropdownPositions} from './types/evo-dropdown-positions';\nimport {fromEvent, Subject, Subscription} from 'rxjs';\nimport {filter, take, takeUntil, throttleTime} from 'rxjs/operators';\n\ntype Position = EvoDropdownPositions | ConnectedPosition;\n\nconst DEFAULT_POSITION = [EVO_DROPDOWN_POSITION_DESCRIPTION['bottom-right']];\n\n@Component({\n selector: 'evo-dropdown',\n templateUrl: './evo-dropdown.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CdkConnectedOverlay],\n})\nexport class EvoDropdownComponent implements OnDestroy {\n @Input() closeOnOutsideClick = true;\n @Input() scrollStrategy: 'noop' | 'close' = 'close';\n @Input() dropdownOrigin!: EvoDropdownOriginDirective;\n\n @Output() isOpenChange = new EventEmitter<boolean>();\n @Output() outsideClick = new EventEmitter<MouseEvent>();\n\n connectedPositions: ConnectedPosition[] = DEFAULT_POSITION;\n\n private scrollEventSubscription: Subscription;\n private readonly destroy$ = new Subject<void>();\n private _isOpen = false;\n\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n @Input() set isOpen(value: boolean) {\n this._isOpen = value;\n\n if (value) {\n this.listenScroll();\n }\n }\n\n @Input() set positions(value: Position[] | Position) {\n this.connectedPositions = value\n ? [].concat(value).map((p) => EVO_DROPDOWN_POSITION_DESCRIPTION[p] || p)\n : DEFAULT_POSITION;\n }\n\n private get element(): HTMLElement | null {\n if (!this.viewContainerRef) {\n return;\n }\n\n return this.viewContainerRef?.element instanceof ElementRef\n ? (this.viewContainerRef.element?.nativeElement as HTMLElement)\n : (this.viewContainerRef.element as HTMLElement);\n }\n\n constructor(\n protected readonly viewContainerRef: ViewContainerRef,\n private readonly ngZone: NgZone,\n private readonly cdr: ChangeDetectorRef,\n ) {}\n\n toggle(): void {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n open(): void {\n if (this.isOpen) {\n return;\n }\n\n this.isOpen = true;\n this.isOpenChange.emit(this.isOpen);\n this.cdr.detectChanges();\n }\n\n close(): void {\n if (!this.isOpen) {\n return;\n }\n\n this.isOpen = false;\n this.isOpenChange.emit(this.isOpen);\n\n if (this.scrollEventSubscription && !this.scrollEventSubscription.closed) {\n this.scrollEventSubscription.unsubscribe();\n }\n\n this.cdr.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.unsubscribe();\n }\n\n onOverlayOutsideClick(event: MouseEvent): void {\n this.outsideClick.emit(event);\n\n const originNativeElement = this.dropdownOrigin?.elementRef?.nativeElement;\n\n // check if origin is clicked through overlay\n if (this.closeOnOutsideClick && !originNativeElement?.contains(event.target)) {\n this.close();\n }\n }\n\n /**\n * Listens to the scroll in the dropdown container and closes it\n */\n private listenScroll() {\n if (this.scrollStrategy === 'noop') {\n return;\n }\n\n this.scrollEventSubscription = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'scroll', {capture: true})\n .pipe(\n throttleTime(10),\n filter((scrollEvent: Event) => {\n return (\n (scrollEvent.target instanceof HTMLElement || scrollEvent.target instanceof HTMLDocument) &&\n (scrollEvent.target.contains(this.element) || !this.element)\n );\n }),\n take(1),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.ngZone.run(() => {\n this.close();\n });\n });\n });\n }\n}\n","<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"dropdownOrigin\"\n [cdkConnectedOverlayPositions]=\"connectedPositions\"\n (detach)=\"close()\"\n (overlayOutsideClick)=\"onOverlayOutsideClick($event)\"\n>\n <ng-content />\n</ng-template>\n","import {ChangeDetectorRef, Directive, ElementRef} from '@angular/core';\nimport {CdkOverlayOrigin} from '@angular/cdk/overlay';\n\n@Directive({\n selector: '[evoDropdownOrigin]',\n exportAs: 'evoDropdownOrigin',\n standalone: true,\n})\nexport class EvoDropdownOriginDirective extends CdkOverlayOrigin {\n get isDropdownOpen(): boolean {\n return this._isDropdownOpen;\n }\n\n set isDropdownOpen(value: boolean) {\n this._isDropdownOpen = value;\n this.cdr.markForCheck();\n }\n private _isDropdownOpen = false;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n elementRef: ElementRef,\n ) {\n super(elementRef);\n }\n\n open(): void {\n this.isDropdownOpen = true;\n }\n\n close(): void {\n this.isDropdownOpen = false;\n }\n\n toggle(): void {\n if (this.isDropdownOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n}\n","import {NgModule} from '@angular/core';\nimport {EvoDropdownComponent} from './evo-dropdown.component';\nimport {EvoDropdownOriginDirective} from './evo-dropdown-origin.directive';\n\n@NgModule({\n imports: [EvoDropdownComponent, EvoDropdownOriginDirective],\n exports: [EvoDropdownComponent, EvoDropdownOriginDirective],\n})\nexport class EvoDropdownModule {}\n","export const CSS_BREAKPOINTS = {\n mobile: 500,\n tablet: 768,\n desktopS: 992,\n desktopM: 1200,\n desktopL: 1680,\n desktopXL: 2500,\n};\n","import {InjectionToken, Provider} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {BreakpointObserver} from '@angular/cdk/layout';\nimport {map} from 'rxjs/operators';\nimport {CSS_BREAKPOINTS} from './css-breakpoints';\n\nexport const MOBILE_VIEW = new InjectionToken<Observable<boolean>>('MOBILE_VIEW');\n\nexport const MobileViewProvider: Provider = {\n provide: MOBILE_VIEW,\n useFactory: (breakpointObserver: BreakpointObserver) =>\n breakpointObserver.observe(`(max-width: ${ CSS_BREAKPOINTS.tablet - 1 }px)`).pipe(map((breakpointState) => breakpointState.matches)),\n deps: [BreakpointObserver],\n};\n\nexport const TABLET_VIEW = new InjectionToken<Observable<boolean>>('TABLET_VIEW');\n\nexport const TabletViewProvider: Provider = {\n provide: TABLET_VIEW,\n useFactory: (breakpointObserver: BreakpointObserver) =>\n breakpointObserver.observe(`(min-width: ${ CSS_BREAKPOINTS.tablet }px)`).pipe(map((breakpointState) => breakpointState.matches)),\n deps: [BreakpointObserver],\n};\n\nexport const DESKTOP_SMALL_VIEW = new InjectionToken<Observable<boolean>>('DESKTOP_SMALL_VIEW');\n\nexport const DesktopSmallViewProvider: Provider = {\n provide: DESKTOP_SMALL_VIEW,\n useFactory: (breakpointObserver: BreakpointObserver) =>\n breakpointObserver.observe(`(min-width: ${ CSS_BREAKPOINTS.desktopS }px)`).pipe(map((breakpointState) => breakpointState.matches)),\n deps: [BreakpointObserver],\n};\n\nexport const VIEW_BREAKPOINTS_PROVIDERS = [MobileViewProvider, TabletViewProvider, DesktopSmallViewProvider];\n","import {ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewChild} from '@angular/core';\nimport {ConnectedPosition} from '@angular/cdk/overlay';\nimport {EvoDropdownOriginDirective} from '../../evo-dropdown';\nimport {NavItem} from '../types/nav-item';\nimport {EvoDropdownComponent} from '../../evo-dropdown/evo-dropdown.component';\nimport {RouterLink, RouterLinkActive} from '@angular/router';\nimport {NgFor, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {EvoLetDirective} from '../../../directives/evo-let/evo-let.directive';\nimport {NavItemMainInfo} from '../interfaces/nav-item-main-info';\nimport {NavItemHref} from '../interfaces/nav-item.href';\n\n@Component({\n selector: 'evo-navbar-item',\n templateUrl: './evo-navbar-item.component.html',\n styleUrls: ['./evo-navbar-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n EvoLetDirective,\n NgIf,\n EvoDropdownOriginDirective,\n NgTemplateOutlet,\n RouterLink,\n RouterLinkActive,\n EvoDropdownComponent,\n NgFor,\n ],\n})\nexport class EvoNavbarItemComponent {\n @Input() item!: NavItem;\n /**\n * Is a secondary link\n */\n @Input() isNested?: boolean;\n @Input() isMobileView?: boolean;\n @Input() subMenuPositions?: ConnectedPosition[];\n @Input() closeOnOutsideClick = true;\n @Input() closeOnMouseLeave = true;\n\n @Output() openSubMenu = new EventEmitter<EvoDropdownOriginDirective>();\n @Output() closeSubMenu = new EventEmitter<EvoDropdownOriginDirective>();\n\n @ViewChild('origin') dropdownOrigin: EvoDropdownOriginDirective;\n\n @HostBinding('attr.id') get id(): NavItem['id'] {\n return this.item.id || '';\n }\n\n @HostBinding('class') get ngClass(): NavItem['ngClass'] {\n return this.item.ngClass;\n }\n\n toggle(): void {\n if (this.isSubMenuOpen()) {\n this.closeSubMenu.emit(this.dropdownOrigin);\n } else {\n this.openSubMenu.emit(this.dropdownOrigin);\n }\n }\n\n open(): void {\n if (!this.isSubMenuOpen()) {\n this.openSubMenu.emit(this.dropdownOrigin);\n }\n }\n\n close(): void {\n if (this.isSubMenuOpen()) {\n this.closeSubMenu.emit(this.dropdownOrigin);\n }\n }\n\n isSubMenuOpen() {\n return this.dropdownOrigin.isDropdownOpen;\n }\n\n handleMouseLeave(): void {\n if (this.closeOnMouseLeave) {\n this.close();\n }\n }\n\n protected isNativeLink(item: NavItem): item is NavItemMainInfo & NavItemHref {\n return 'href' in item;\n }\n}\n","<ng-container *evoLet=\"isMobileView && !!item.subItems?.length as isRootItemJustOpenSubMenu\">\n @if (isNativeLink(item)) {\n @if (isRootItemJustOpenSubMenu) {\n <span\n #origin=\"evoDropdownOrigin\"\n evoDropdownOrigin\n class=\"evo-navbar__link evo-navbar__link_external\"\n [class.evo-navbar__link_highlighted]=\"origin.isDropdownOpen\"\n (click)=\"toggle()\"\n (mouseleave)=\"handleMouseLeave()\"\n >\n <span class=\"evo-navbar__link-title\">{{ item.title }}</span>\n\n <ng-container *ngTemplateOutlet=\"subNav; context: {origin: origin}\" />\n </span>\n } @else {\n <a\n #origin=\"evoDropdownOrigin\"\n evoDropdownOrigin\n class=\"evo-navbar__link evo-navbar__link_external\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target\"\n [class.evo-navbar__link_nested]=\"isNested\"\n [class.evo-navbar__link_highlighted]=\"origin.isDropdownOpen\"\n (mouseenter)=\"open()\"\n (mouseleave)=\"handleMouseLeave()\"\n >\n <span class=\"evo-navbar__link-title\">{{ item.title }}</span>\n\n <ng-container *ngTemplateOutlet=\"subNav; context: {origin: origin}\" />\n </a>\n }\n } @else {\n @if (isRootItemJustOpenSubMenu) {\n <span\n #origin=\"evoDropdownOrigin\"\n evoDropdownOrigin\n class=\"evo-navbar__link\"\n [class.evo-navbar__link_highlighted]=\"origin.isDropdownOpen\"\n (click)=\"toggle()\"\n (mouseleave)=\"handleMouseLeave()\"\n >\n <span class=\"evo-navbar__link-title\">{{ item.title }}</span>\n\n <ng-container *ngTemplateOutlet=\"subNav; context: {origin: origin}\" />\n </span>\n } @else {\n <a\n #origin=\"evoDropdownOrigin\"\n evoDropdownOrigin\n class=\"evo-navbar__link\"\n [class.evo-navbar__link_nested]=\"isNested\"\n [class.evo-navbar__link_highlighted]=\"origin.isDropdownOpen\"\n [routerLink]=\"item.routerLink\"\n [routerLinkActive]=\"isNested ? ['evo-navbar__link_active'] : []\"\n [routerLinkActiveOptions]=\"{exact: !!item.isExactPath}\"\n [preserveFragment]=\"!!item.preserveFragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [fragment]=\"item.fragment\"\n [queryParams]=\"item.queryParams\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n (mouseenter)=\"open()\"\n (mouseleave)=\"handleMouseLeave()\"\n >\n <span class=\"evo-navbar__link-title\">{{ item.title }}</span>\n\n <ng-container *ngTemplateOutlet=\"subNav; context: {origin: origin}\" />\n </a>\n }\n }\n</ng-container>\n\n<ng-template #subNav let-origin=\"origin\">\n @if (item.subItems?.length) {\n <evo-dropdown\n [positions]=\"subMenuPositions\"\n [dropdownOrigin]=\"origin\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n [(isOpen)]=\"origin.isDropdownOpen\"\n >\n <section class=\"evo-navbar__sub\" (mouseenter)=\"open()\" (mouseleave)=\"handleMouseLeave()\">\n <div class=\"evo-navbar__sub-content\">\n @for (subItem of item.subItems; track subItem.title) {\n <evo-navbar-item\n [attr.id]=\"item.id ? item.id : ''\"\n [item]=\"subItem\"\n [isNested]=\"true\"\n [isMobileView]=\"isMobileView\"\n (click)=\"close()\"\n />\n }\n </div>\n </section>\n </evo-dropdown>\n }\n</ng-template>\n","import {ChangeDetectionStrategy, Component, Inject, Input, QueryList, ViewChildren} from '@angular/core';\nimport {ConnectedPosition} from '@angular/cdk/overlay';\nimport {Observable} from 'rxjs';\nimport {MOBILE_VIEW} from '../../common/constants/view-breakpoint-streams';\nimport {EvoDropdownOriginDirective} from '../evo-dropdown';\nimport {NavItem} from './types/nav-item';\nimport {AsyncPipe} from '@angular/common';\nimport {EvoNavbarItemComponent} from './evo-navbar-item/evo-navbar-item.component';\n\n@Component({\n selector: 'evo-navbar',\n templateUrl: './evo-navbar.component.html',\n styleUrls: ['./evo-navbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoNavbarItemComponent, AsyncPipe],\n})\nexport class EvoNavbarComponent {\n @Input() subMenuPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ];\n @Input() items!: NavItem[];\n\n @ViewChildren(EvoNavbarItemComponent) children: QueryList<EvoNavbarItemComponent>;\n\n lastOpenedSubMenu?: EvoDropdownOriginDirective;\n\n constructor(\n @Inject(MOBILE_VIEW)\n readonly isMobileView$: Observable<boolean>,\n ) {}\n\n closeLastOpenedSubMenu(): void {\n if (this.lastOpenedSubMenu) {\n this.closeSubMenu(this.lastOpenedSubMenu);\n }\n }\n\n toggleSubMenu(origin: EvoDropdownOriginDirective): void {\n if (origin.isDropdownOpen) {\n this.closeSubMenu(origin);\n } else {\n this.openSubMenu(origin);\n }\n }\n\n openSubMenu(origin: EvoDropdownOriginDirective): void {\n origin.open();\n this.lastOpenedSubMenu = origin;\n }\n\n closeSubMenu(origin: EvoDropdownOriginDirective): void {\n origin.close();\n this.lastOpenedSubMenu = undefined;\n }\n}\n","<nav class=\"evo-navbar\" (scroll)=\"closeLastOpenedSubMenu()\">\n @for (item of items; track item.title) {\n <evo-navbar-item\n [attr.id]=\"item.id ? item.id : ''\"\n [item]=\"item\"\n [isMobileView]=\"isMobileView$ | async\"\n [subMenuPositions]=\"subMenuPositions\"\n (openSubMenu)=\"openSubMenu($event)\"\n (closeSubMenu)=\"closeSubMenu($event)\"\n />\n }\n</nav>\n","import {NgModule} from '@angular/core';\nimport {EvoNavbarComponent} from './evo-navbar.component';\nimport {EvoNavbarItemComponent} from './evo-navbar-item/evo-navbar-item.component';\nimport {MobileViewProvider} from '../../common/constants/view-breakpoint-streams';\n\n@NgModule({\n imports: [EvoNavbarComponent, EvoNavbarItemComponent],\n exports: [EvoNavbarComponent],\n providers: [MobileViewProvider],\n})\nexport class EvoNavbarModule {}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {EvoIconComponent} from '../evo-icon/evo-icon.component';\n\n@Component({\n selector: 'evo-navigation-button',\n templateUrl: './evo-navigation-button.component.html',\n styleUrls: ['./evo-navigation-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EvoIconComponent],\n})\nexport class EvoNavigationButtonComponent {}\n","<button class=\"evo-navigation-button\">\n <div class=\"evo-navigation-button__icon-wrapper\">\n <evo-icon shape=\"chevron-left\" class=\"evo-navigation-button__icon\" />\n </div>\n <span class=\"evo-navigation-button__label\"><ng-content /></span>\n</button>\n","import {NgModule} from '@angular/core';\nimport {EvoNavigationButtonComponent} from './evo-navigation-button.component';\n\n@NgModule({\n imports: [EvoNavigationButtonComponent],\n exports: [EvoNavigationButtonComponent],\n})\nexport class EvoNavigationButtonModule {}\n","import {animate, state, style, transition, trigger} from '@angular/animations';\n\nexport const EVO_TOOLTIP_FADEIN_ANIMATION = trigger('fadeIn', [\n state('void', style({opacity: 0})),\n state('*', style({opacity: 1})),\n transition(':enter', animate('0.3s ease-in')),\n transition(':leave', animate('0.3s ease-out')),\n]);\n","export enum EvoTooltipPosition {\n TOP_START = 'top-start',\n TOP = 'top',\n TOP_END = 'top-end',\n BOTTOM_START = 'bottom-start',\n BOTTOM = 'bottom',\n BOTTOM_END = 'bottom-end',\n RIGHT_START = 'right-start',\n RIGHT = 'right',\n RIGHT_END = 'right-end',\n LEFT_START = 'left-start',\n LEFT = 'left',\n LEFT_END = 'left-end',\n}\n","// Размер стрелки тултипа\nexport const EVO_TOOLTIP_ARROW_SIZE = 16;\n","// Радиус тултипа\nexport const EVO_TOOLTIP_RADIUS = 8;\n","export enum EvoTooltipVariableArrowPosition {\n HORIZONTAL_POSITION_ARROW = '--evo-tooltip-horizontal-position-arrow',\n VERTICAL_POSITION_ARROW = '--evo-tooltip-vertical-position-arrow',\n}\n","import {EvoTooltipConfig} from '../interfaces/evo-tooltip-config';\n\nexport const EVO_TOOLTIP_CONFIG: EvoTooltipConfig = {\n hideDelay: 300,\n showDelay: 100,\n};\n","import {ConnectedPosition} from '@angular/cdk/overlay';\nimport {EvoTooltipPosition} from '../enums/evo-tooltip-position';\n\nexport const EVO_CONNECTED_POSITION = (offset: number): {[key in EvoTooltipPosition]: ConnectedPosition} => ({\n [EvoTooltipPosition.TOP]: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -offset,\n panelClass: EvoTooltipPosition.TOP,\n },\n [EvoTooltipPosition.BOTTOM]: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: offset,\n panelClass: EvoTooltipPosition.BOTTOM,\n },\n [EvoTooltipPosition.LEFT]: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -offset,\n panelClass: EvoTooltipPosition.LEFT,\n },\n [EvoTooltipPosition.RIGHT]: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: offset,\n panelClass: EvoTooltipPosition.RIGHT,\n },\n [EvoTooltipPosition.TOP_START]: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -offset,\n panelClass: EvoTooltipPosition.TOP_START,\n },\n [EvoTooltipPosition.TOP_END]: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -offset,\n panelClass: EvoTooltipPosition.TOP_END,\n },\n [EvoTooltipPosition.RIGHT_START]: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: offset,\n panelClass: EvoTooltipPosition.RIGHT_START,\n },\n [EvoTooltipPosition.RIGHT_END]: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: offset,\n panelClass: EvoTooltipPosition.RIGHT_END,\n },\n [EvoTooltipPosition.BOTTOM_END]: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: offset,\n panelClass: EvoTooltipPosition.BOTTOM_END,\n },\n [EvoTooltipPosition.BOTTOM_START]: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: offset,\n panelClass: EvoTooltipPosition.BOTTOM_START,\n },\n [EvoTooltipPosition.LEFT_END]: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -offset,\n panelClass: EvoTooltipPosition.LEFT_END,\n },\n [EvoTooltipPosition.LEFT_START]: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -offset,\n panelClass: EvoTooltipPosition.LEFT_START,\n },\n});\n","import {EvoTooltipPosition} from '../enums/evo-tooltip-position';\n\nexport const EVO_PRIORITY_POSITIONS_ORDER: {[key in EvoTooltipPosition]?: EvoTooltipPosition[]} = {\n [EvoTooltipPosition.TOP]: [EvoTooltipPosition.TOP, EvoTooltipPosition.BOTTOM],\n [EvoTooltipPosition.BOTTOM]: [EvoTooltipPosition.BOTTOM, EvoTooltipPosition.TOP],\n [EvoTooltipPosition.LEFT]: [EvoTooltipPosition.LEFT, EvoTooltipPosition.RIGHT],\n [EvoTooltipPosition.RIGHT]: [EvoTooltipPosition.RIGHT, EvoTooltipPosition.LEFT],\n};\n","import {EvoTooltipPosition} from '../enums/evo-tooltip-position';\n\nexport const EVO_DEFAULT_POSITIONS_ORDER: EvoTooltipPosition[] = [\n EvoTooltipPosition.TOP,\n EvoTooltipPosition.TOP_END,\n EvoTooltipPosition.RIGHT_START,\n EvoTooltipPosition.RIGHT,\n EvoTooltipPosition.RIGHT_END,\n EvoTooltipPosition.BOTTOM_END,\n EvoTooltipPosition.BOTTOM,\n EvoTooltipPosition.BOTTOM_START,\n EvoTooltipPosition.LEFT_END,\n EvoTooltipPosition.LEFT,\n EvoTooltipPosition.LEFT_START,\n EvoTooltipPosition.TOP_START,\n];\n","// Смещение тултипа\nexport const EVO_TOOLTIP_OFFSET = (hasArrow: boolean): number => (hasArrow ? 14 : 8);\n","import {ComponentRef, ElementRef, Injectable, Injector, TemplateRef} from '@angular/core';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayPositionBuilder,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {BehaviorSubject, EMPTY, fromEvent, merge, Observable, Subject} from 'rxjs';\nimport {catchError, debounceTime, filter, first, map} from 'rxjs/operators';\nimport {EvoTooltipConfig} from '../interfaces/evo-tooltip-config';\nimport {EVO_TOOLTIP_CONFIG} from '../constants/evo-tooltip-config';\nimport {EvoTooltipComponent} from '../evo-tooltip.component';\nimport {EvoTooltipPosition} from '../enums/evo-tooltip-position';\nimport {EVO_CONNECTED_POSITION} from '../constants/evo-tooltip-connected-position';\nimport {EVO_PRIORITY_POSITIONS_ORDER} from '../constants/evo-tooltip-priority-positions-order';\nimport {EVO_DEFAULT_POSITIONS_ORDER} from '../constants/evo-tooltip-default-positions-order';\nimport {EVO_TOOLTIP_ARROW_SIZE} from '../constants/evo-tooltip-arrow-size';\nimport {EVO_TOOLTIP_RADIUS} from '../constants/evo-tooltip-radius';\nimport {EvoTooltipStyles} from '../interfaces/evo-tooltip-styles';\nimport {EVO_TOOLTIP_OFFSET} from '../constants/evo-tooltip-offset';\n\n@Injectable()\nexport class EvoTooltipService {\n readonly stringContent$: Observable<string | null> = EMPTY;\n readonly templateContent$: Observable<TemplateRef<HTMLElement> | null> = EMPTY;\n readonly position$: Observable<EvoTooltipPosition> = EMPTY;\n readonly parentRef$: Observable<ElementRef> = EMPTY;\n readonly tooltipClasses$: Observable<string[]> = EMPTY;\n readonly styles$: Observable<EvoTooltipStyles> = EMPTY;\n readonly visibleArrow$: Observable<boolean> = EMPTY;\n readonly isOpen$: Observable<boolean> = EMPTY;\n\n private readonly _stringContent$ = new BehaviorSubject<string | null>(null);\n private readonly _templateContent$ = new BehaviorSubject<TemplateRef<HTMLElement> | null>(null);\n private readonly _position$ = new BehaviorSubject<EvoTooltipPosition>(EvoTooltipPosition.BOTTOM);\n private readonly _parentRef$ = new BehaviorSubject<ElementRef>(null);\n private readonly _tooltipClasses$ = new BehaviorSubject<string[]>([]);\n private readonly _config$ = new BehaviorSubject<EvoTooltipConfig>(EVO_TOOLTIP_CONFIG);\n private readonly _styles$ = new BehaviorSubject<EvoTooltipStyles>(null);\n private readonly _visibleArrow$ = new BehaviorSubject<boolean>(true);\n private readonly _isOpen$ = new Subject<boolean>();\n\n private overlayRef: OverlayRef;\n private positionStrategy: FlexibleConnectedPositionStrategy;\n private tooltipComponentRef: ComponentRef<EvoTooltipComponent> | null;\n private targetElement: EventTarget | null;\n\n constructor(\n private readonly overlay: Overlay,\n private readonly overlayPositionBuilder: OverlayPositionBuilder,\n private readonly injector: Injector,\n ) {\n this.stringContent$ = this._stringContent$.asObservable();\n this.templateContent$ = this._templateContent$.asObservable();\n this.position$ = this._position$.asObservable();\n this.parentRef$ = this._parentRef$.asObservable();\n this.tooltipClasses$ = this._tooltipClasses$.asObservable();\n this.styles$ = this._styles$.asObservable();\n this.visibleArrow$ = this._visibleArrow$.asObservable();\n this.isOpen$ = this._isOpen$.asObservable();\n }\n\n showTooltip(\n parentRef: ElementRef,\n content: string | TemplateRef<HTMLElement>,\n position: EvoTooltipPosition,\n config: EvoTooltipConfig,\n targetElement?: EventTarget | null,\n ): void {\n this._parentRef$.next(parentRef);\n this.targetElement = targetElement ?? null;\n\n this.setContent(content);\n this._position$.next(position);\n this._config$.next(config);\n this.createOverlay(parentRef, position);\n this.createPortal();\n\n this._isOpen$.next(this.overlayRef.hasAttached());\n this.initSubscriptions();\n }\n\n hideTooltip(): void {\n if (this.tooltipComponentRef) {\n this.tooltipComponentRef.destroy();\n this.tooltipComponentRef = null;\n }\n\n this.overlayRef?.detach();\n this._isOpen$.next(!!this.overlayRef?.hasAttached());\n }\n\n setArrowVisibility(hasArrow: boolean): void {\n this._visibleArrow$.next(hasArrow);\n }\n\n setTooltipStyles(tooltipStyles: EvoTooltipStyles): void {\n this._styles$.next(tooltipStyles);\n }\n\n setTooltipClass(tooltipClassOrClasses: string | string[]): void {\n this._tooltipClasses$.next(\n !tooltipClassOrClasses\n ? []\n : Array.isArray(tooltipClassOrClasses)\n ? tooltipClassOrClasses\n : [tooltipClassOrClasses],\n );\n }\n\n get hasAttached(): boolean {\n return this.overlayRef?.hasAttached() ?? false;\n }\n\n get config(): EvoTooltipConfig {\n return this._config$.value;\n }\n\n private get parentRef(): ElementRef {\n return this._parentRef$.value;\n }\n\n private setContent(content: string | TemplateRef<HTMLElement> | undefined): void {\n if (typeof content === 'string') {\n this._stringContent$.next(content);\n } else if (content instanceof TemplateRef) {\n this._templateContent$.next(content);\n }\n }\n\n private createOverlay(elementRef: ElementRef, position: EvoTooltipPosition): void {\n this.positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(elementRef)\n .withPositions(this.getPositions(position));\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n this.overlayRef = this.overlay.create({positionStrategy: this.positionStrategy, scrollStrategy});\n }\n\n private createPortal(): void {\n const tooltipPortal = new ComponentPortal(EvoTooltipComponent, null, this.injector);\n this.tooltipComponentRef = this.overlayRef.attach(tooltipPortal);\n }\n\n private initSubscriptions(): void {\n const parentElement = this.targetElement ? this.targetElement : this.parentRef?.nativeElement;\n const overlayElement = this.overlayRef.overlayElement;\n\n const mouseLeaveParentElement$ = fromEvent(parentElement, 'mouseleave').pipe(map(() => overlayElement));\n const mouseLeaveOverlayElement$ = fromEvent(overlayElement, 'mouseleave').pipe(map(() => parentElement));\n\n merge(mouseLeaveParentElement$, mouseLeaveOverlayElement$)\n .pipe(\n filter((element) => !element.matches(':hover')),\n debounceTime(this.config?.hideDelay ?? EVO_TOOLTIP_CONFIG.hideDelay),\n filter(() => !parentElement.matches(':hover') && !overlayElement.matches(':hover')),\n first(),\n catchError(() => {\n this.hideTooltip();\n return EMPTY;\n }),\n )\n .subscribe(() => {\n this.hideTooltip();\n });\n\n this.positionStrategy.positionChanges.subscribe((value) => {\n this._position$.next(value.connectionPair.panelClass as EvoTooltipPosition);\n });\n }\n\n private getPositions(position: EvoTooltipPosition): ConnectedPosition[] {\n return this.getPositionsOrder(position).map((key) => {\n const offset = EVO_TOOLTIP_OFFSET(this._visibleArrow$.value);\n const position = {...EVO_CONNECTED_POSITION(offset)[key]};\n const width = this.parentRef.nativeElement.offsetWidth;\n const height = this.parentRef.nativeElement.offsetHeight;\n const maxSize = EVO_TOOLTIP_ARROW_SIZE + EVO_TOOLTIP_RADIUS * 2;\n\n // Добавляем смещение тултипа для мелких обьектов\n if (width <= maxSize) {\n switch (key) {\n case EvoTooltipPosition.BOTTOM_START:\n case EvoTooltipPosition.TOP_START:\n position.offsetX = -(maxSize - width) / 2;\n break;\n case EvoTooltipPosition.BOTTOM_END:\n case EvoTooltipPosition.TOP_END:\n position.offsetX = (maxSize - width) / 2;\n break;\n }\n }\n\n // Добавляем смещение тултипа для мелких обьектов\n if (height <= maxSize) {\n switch (key) {\n case EvoTooltipPosition.LEFT_START:\n case EvoTooltipPosition.RIGHT_START:\n position.offsetY = -(maxSize - height) / 2;\n break;\n case EvoTooltipPosition.LEFT_END:\n case EvoTooltipPosition.RIGHT_END:\n position.offsetY = (maxSize - height) / 2;\n break;\n }\n }\n\n return position;\n });\n }\n\n private getPositionsOrder(position: EvoTooltipPosition): EvoTooltipPosition[] {\n const priorityPositions = EVO_PRIORITY_POSITIONS_ORDER[position];\n\n if (priorityPositions) {\n return [\n ...priorityPositions,\n ...EVO_DEFAULT_POSITIONS_ORDER.filter(\n (defaultPosition) => !priorityPositions.includes(defaultPosition),\n ),\n ];\n }\n\n const indexPositionKey: number = EVO_DEFAULT_POSITIONS_ORDER.indexOf(position);\n return EVO_DEFAULT_POSITIONS_ORDER.slice(indexPositionKey).concat(\n EVO_DEFAULT_POSITIONS_ORDER.slice(0, indexPositionKey),\n );\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n OnDestroy,\n OnInit,\n Renderer2,\n TemplateRef,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, EMPTY, Observable, Subject} from 'rxjs';\nimport {filter, map, pairwise, startWith, takeUntil, tap} from 'rxjs/operators';\nimport {EVO_TOOLTIP_FADEIN_ANIMATION} from './constants/evo-tooltip-fadein.animation';\nimport {EvoTooltipService} from './services/evo-tooltip.service';\nimport {EvoTooltipStyles} from './interfaces/evo-tooltip-styles';\nimport {EvoTooltipPosition} from './enums/evo-tooltip-position';\nimport {EVO_TOOLTIP_ARROW_SIZE} from './constants/evo-tooltip-arrow-size';\nimport {EVO_TOOLTIP_RADIUS} from './constants/evo-tooltip-radius';\nimport {EvoTooltipVariableArrowPosition} from './enums/evo-tooltip-variable-arrow-position';\n\n@Component({\n selector: 'evo-tooltip',\n templateUrl: './evo-tooltip.component.html',\n styleUrls: ['./evo-tooltip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [EVO_TOOLTIP_FADEIN_ANIMATION],\n})\nexport class EvoTooltipComponent implements OnInit, AfterViewInit, OnDestroy {\n readonly position$: Observable<EvoTooltipPosition> = this.tooltipService.position$;\n readonly stringContent$: Observable<string> = this.tooltipService.stringContent$;\n readonly templateContent$: Observable<TemplateRef<unknown>> = this.tooltipService.templateContent$;\n readonly visibleArrow$: Observable<boolean> = this.tooltipService.visibleArrow$;\n readonly styles$: Observable<EvoTooltipStyles> = EMPTY;\n\n @HostBinding('@fadeIn') fadeIn = true;\n\n private readonly _positionArrowStyles$ = new BehaviorSubject<EvoTooltipStyles>(null);\n private readonly _destroy$ = new Subject<void>();\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly tooltipService: EvoTooltipService,\n private readonly renderer: Renderer2,\n ) {\n this.styles$ = combineLatest([this.tooltipService.styles$, this._positionArrowStyles$]).pipe(\n map(([style1, style2]) => ({...style1, ...style2})),\n );\n }\n\n ngOnInit(): void {\n combineLatest([this.position$, this.tooltipService.parentRef$, this.visibleArrow$])\n .pipe(\n filter(([_position, _parentRef, visibleArrow]) => visibleArrow),\n // Вычисление стрелки нужно только для угловых позиций\n filter(([position]) => {\n switch (position) {\n case EvoTooltipPosition.TOP:\n case EvoTooltipPosition.RIGHT:\n case EvoTooltipPosition.BOTTOM:\n case EvoTooltipPosition.LEFT:\n return false;\n default:\n return true;\n }\n }),\n tap(([_, parentRef]) => {\n this.setArrowPosition(parentRef);\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n ngAfterViewInit(): void {\n this.tooltipService.tooltipClasses$\n .pipe(\n startWith([]),\n pairwise(),\n tap(([a, b]: [string[], string[]]) => {\n (a || []).forEach((oldClass) => this.renderer.removeClass(this.elementRef.nativeElement, oldClass));\n (b || []).forEach((newClass) => this.renderer.addClass(this.elementRef.nativeElement, newClass));\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this.fadeIn = false;\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private setArrowPosition(parentRef: ElementRef): void {\n // Для того чтобы стрелка тянулась к центру родителя - берем середину\n const widthParent = parentRef.nativeElement.offsetWidth / 2;\n const heightParent = parentRef.nativeElement.offsetHeight / 2;\n const isParentLonger = widthParent >= this.elementRef.nativeElement.offsetWidth;\n const isParentHigher = heightParent >= this.elementRef.nativeElement.offsetHeight;\n // Если середина родителя оказывается меньше тултипа - берем середину родителя иначе размер тултипа\n // Это проверка на максимальное смещение, смещение стрелки не должно быть больше размера тултипа\n const width = isParentLonger ? this.elementRef.nativeElement.offsetWidth : widthParent;\n const height = isParentHigher ? this.elementRef.nativeElement.offsetHeight : heightParent;\n\n const positionArrow = (size: number, isParentBigger: boolean): number =>\n // Если середина родителя больше тултипа\n // То берем размер тултипа и отнимаем размер стрелки и радиуса\n // Иначе берем середину родителя и отнимаем половину стрелки\n // Это условие нужно чтобы стрелка не смещалась\n isParentBigger ? size - EVO_TOOLTIP_ARROW_SIZE - EVO_TOOLTIP_RADIUS : size - EVO_TOOLTIP_ARROW_SIZE / 2;\n let verticalPositionArrow = positionArrow(height, isParentHigher);\n let horizontalPositionArrow = positionArrow(width, isParentLonger);\n\n // Проверка на минимальное смещение, смещение стрелки не должно быть меньше размера радиуса тултипа 8px\n horizontalPositionArrow =\n horizontalPositionArrow > EVO_TOOLTIP_RADIUS ? horizontalPositionArrow : EVO_TOOLTIP_RADIUS;\n verticalPositionArrow = verticalPositionArrow > EVO_TOOLTIP_RADIUS ? verticalPositionArrow : EVO_TOOLTIP_RADIUS;\n\n this._positionArrowStyles$.next({\n [EvoTooltipVariableArrowPosition.VERTICAL_POSITION_ARROW]: `${verticalPositionArrow}px`,\n [EvoTooltipVariableArrowPosition.HORIZONTAL_POSITION_ARROW]: `${horizontalPositionArrow}px`,\n });\n }\n}\n","<ng-container\n *ngIf=\"{position: position$ | async, styles: styles$ | async, visibleArrow: visibleArrow$ | async} as asyncData\"\n>\n <div\n class=\"evo-tooltip\"\n [class]=\"'evo-tooltip_' + asyncData.position\"\n [class.evo-tooltip_not-arrow]=\"!asyncData.visibleArrow\"\n [style]=\"asyncData.styles\"\n >\n <ng-container *ngIf=\"stringContent$ | async as content; else templateRef\">{{ content }}</ng-container>\n </div>\n</ng-container>\n\n<ng-template #templateRef>\n <ng-container *ngIf=\"templateContent$ | async as content\" [ngTemplateOutlet]=\"content\" />\n</ng-template>\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {fromEvent, Observable, Subject} from 'rxjs';\nimport {takeUntil, tap, throttleTime} from 'rxjs/operators';\nimport {EvoTooltipService} from '../services/evo-tooltip.service';\nimport {EvoTooltipPositionType} from '../types/evo-tooltip-position-type';\nimport {EvoTooltipConfig} from '../interfaces/evo-tooltip-config';\nimport {EVO_TOOLTIP_CONFIG} from '../constants/evo-tooltip-config';\nimport {EvoTooltipPosition} from '../enums/evo-tooltip-position';\nimport {EvoTooltipStyles} from '../interfaces/evo-tooltip-styles';\n\n@Directive({\n selector: '[evoTooltip]',\n exportAs: 'evoTooltip',\n providers: [EvoTooltipService],\n})\nexport class EvoTooltipDirective implements OnInit, OnDestroy {\n @Input('evoTooltip') content: string | TemplateRef<HTMLElement>;\n @Input('evoTooltipPosition') position: EvoTooltipPositionType | string = EvoTooltipPosition.BOTTOM;\n @Input('evoTooltipDisabled') disabled = false;\n @Input('evoTooltipConfig') config: Partial<EvoTooltipConfig>;\n @Input() set evoTooltipVisibleArrow(visibleArrow: boolean) {\n this.tooltipService.setArrowVisibility(visibleArrow);\n }\n @Input() set evoTooltipStyles(tooltipStyles: EvoTooltipStyles) {\n this.tooltipService.setTooltipStyles(tooltipStyles);\n }\n @Input() set evoTooltipClass(tooltipClass: string | string[]) {\n this.tooltipService.setTooltipClass(tooltipClass);\n }\n\n @Output() evoTooltipOpen = new EventEmitter<void>();\n @Output() evoTooltipClose = new EventEmitter<void>();\n\n @HostBinding('class') get hostClasses(): string[] {\n return ['evo-tooltip-trigger', ...(this.disabled ? ['evo-tooltip-trigger_disabled'] : [])];\n }\n\n readonly isOpen$: Observable<boolean> = this.tooltipService.isOpen$;\n\n private readonly destroy$ = new Subject<void>();\n\n constructor(private readonly elementRef: ElementRef, private readonly tooltipService: EvoTooltipService) {}\n\n ngOnInit(): void {\n this.initSubscriptions();\n }\n\n ngOnDestroy(): void {\n this.hide();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n hide(): void {\n this.tooltipService.hideTooltip();\n }\n\n show(event?: MouseEvent): void {\n if (!this.content || this.tooltipService.hasAttached || this.disabled) {\n return;\n }\n\n this.tooltipService.showTooltip(\n this.elementRef,\n this.content,\n this.position as EvoTooltipPosition,\n {...EVO_TOOLTIP_CONFIG, ...this.config},\n event?.target,\n );\n }\n\n private initSubscriptions(): void {\n fromEvent(this.elementRef.nativeElement, 'mouseenter')\n .pipe(\n throttleTime(this.config?.showDelay ?? EVO_TOOLTIP_CONFIG.showDelay),\n tap(() => {\n this.show();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n\n this.tooltipService.isOpen$\n .pipe(\n tap((isOpen) => {\n isOpen ? this.evoTooltipOpen.emit() : this.evoTooltipClose.emit();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {EvoTooltipComponent} from './evo-tooltip.component';\nimport {EvoTooltipDirective} from './directives/evo-tooltip.directive';\nimport {OverlayModule} from '@angular/cdk/overlay';\n\n@NgModule({\n imports: [OverlayModule, CommonModule],\n declarations: [EvoTooltipComponent, EvoTooltipDirective],\n exports: [EvoTooltipDirective],\n})\nexport class EvoTooltipModule {}\n","import {ChangeDetectionStrategy, Component, HostBinding, input} from '@angular/core';\n\n@Component({\n selector: 'button[evo-link-button], a[evo-link-button]',\n templateUrl: './evo-link-button.component.html',\n styleUrls: ['./evo-link-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class EvoLinkButtonComponent {\n readonly disabled = input(false);\n readonly loading = input(false);\n readonly loadingLabel = input('Подождите');\n\n @HostBinding('attr.disabled') get isDisabled(): boolean {\n return this.disabled() || this.loading() || null;\n }\n\n getContainerClasses(containerClass: string): string[] {\n const result = [];\n\n if (this.disabled()) {\n result.push(`${containerClass}_disabled`);\n }\n\n if (this.loading()) {\n result.push(`${containerClass}_loading`);\n }\n\n return result;\n }\n}\n","<div class=\"evo-link-button\" [class]=\"getContainerClasses('evo-link-button')\">\n @if (!loading()) {\n <ng-content />\n } @else {\n {{ loadingLabel() }}\n }\n</div>\n","import {NgModule} from '@angular/core';\nimport {SafeHtmlPipe} from './safe-html.pipe';\nimport {DeclinationPipe} from './declination.pipe';\n\nconst pipes = [DeclinationPipe, SafeHtmlPipe];\n\n@NgModule({\n imports: pipes,\n exports: pipes,\n})\nexport class EvoPipesModule {}\n","export class Serializable {\n constructor(data) {\n Object.assign(this, data);\n }\n}\n","/*\n * Public API Surface of evo-ui-kit\n */\n\nexport * from './lib/evo-ui-kit.module';\n\nexport * from './lib/common/form-helper/form-helper';\nexport * from './lib/common/evo-control-state-manager/evo-control-state-manager';\nexport * from './lib/common/evo-control-state-manager/evo-control-states.enum';\nexport * from './lib/common/evo-control-state-manager/evo-control-state.interface';\nexport * from './lib/common/evo-base-control';\n\n// Animations\nexport * from './lib/common/animations/index';\n\n// Collection\nexport * from './lib/common/collection/index';\n\n// Decorators\nexport * from './lib/decorators/index';\n\n// Directives\nexport * from './lib/directives/index';\n\n// Operators\nexport * from './lib/operators/index';\n\n// Components\nexport * from './lib/components/evo-accordion/index';\nexport * from './lib/components/evo-autocomplete/index';\nexport * from './lib/components/evo-badge/index';\nexport * from './lib/components/evo-button/index';\nexport * from './lib/components/evo-checkbox/index';\nexport * from './lib/components/evo-chip/index';\nexport * from './lib/components/evo-control-error/index';\nexport * from './lib/components/evo-control-label/index';\nexport * from './lib/components/evo-counter/index';\nexport * from './lib/components/evo-datepicker/index';\nexport * from './lib/components/evo-icon/index';\nexport * from './lib/components/evo-icon-button/index';\nexport * from './lib/components/evo-icon-number/index';\nexport * from './lib/components/evo-input/index';\nexport * from './lib/components/evo-input-contenteditable/index';\nexport * from './lib/components/evo-loader/index';\nexport * from './lib/components/evo-modal/index';\nexport * from './lib/components/evo-note/index';\nexport * from './lib/components/evo-paginator/index';\nexport * from './lib/components/evo-popover/index';\nexport * from './lib/components/evo-portal/index';\nexport * from './lib/components/evo-radio/index';\nexport * from './lib/components/evo-radioshape/index';\nexport * from './lib/components/evo-sidebar/index';\nexport * from './lib/components/evo-stepper/index';\nexport * from './lib/components/evo-table/index';\nexport * from './lib/components/evo-tabs/index';\nexport * from './lib/components/evo-textarea/index';\nexport * from './lib/components/evo-toast/index';\nexport * from './lib/components/evo-toggle/index';\nexport * from './lib/components/evo-upload/index';\nexport * from './lib/components/evo-dropdown/index';\nexport * from './lib/components/evo-navbar/index';\nexport * from './lib/components/evo-navigation-button/index';\nexport * from './lib/components/evo-tooltip/index';\nexport * from './lib/components/evo-link-button/index';\n\nexport * from './lib/pipes/index';\n\n// Services\nexport * from './lib/services/index';\nexport * from './lib/components/evo-portal/index';\n\nexport * from './lib/common/evo-control-state-manager/evo-control-state-manager';\nexport * from './lib/common/form-helper/form-helper';\nexport * from './lib/common/constants/css-breakpoints';\nexport * from './lib/common/constants/view-breakpoint-streams';\nexport * from './lib/common/types/index';\nexport * from './lib/common/evo-base-control';\nexport * from './lib/common/Serializable';\nexport * from './lib/common/tokens';\n\nexport * from './lib/utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["stringify","i1.EvoExpandedService","i1","i1.EvoIsExpandedDirective","i2.EvoExpandedService","i5.EvoControlErrorComponent","i2","filter","merge","i1.EvoStepperEvents","i1.EvoTabsService","i2.EvoTabsSizeService","i1.EvoToastService","i1.EvoTooltipService"],"mappings":"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"}
|