myrta-ui 1.1.100 → 13.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +1 -1
  2. package/esm2020/lib/components/form/select/enums/index.mjs +2 -0
  3. package/esm2020/lib/components/form/select/enums/select-size.enum.mjs +6 -0
  4. package/esm2020/lib/components/form/select/helpers/clean-selected-items.helper.mjs +3 -0
  5. package/esm2020/lib/components/form/select/helpers/get-inner-items.helper.mjs +13 -0
  6. package/esm2020/lib/components/form/select/helpers/get-inner-selected.helper.mjs +13 -0
  7. package/esm2020/lib/components/form/select/helpers/get-selected-items.helper.mjs +6 -0
  8. package/esm2020/lib/components/form/select/helpers/modify-origin-items.helper.mjs +21 -0
  9. package/esm2020/lib/components/form/select/models/index.mjs +4 -0
  10. package/esm2020/lib/components/form/select/models/select-inner-item.model.mjs +2 -0
  11. package/esm2020/lib/components/form/select/models/select-item.model.mjs +2 -0
  12. package/esm2020/lib/components/form/select/models/template-output.model.mjs +2 -0
  13. package/esm2020/lib/components/form/select/select.component.mjs +339 -0
  14. package/esm2020/lib/components/form/select/select.enum.mjs +2 -0
  15. package/esm2020/lib/components/form/select/select.module.mjs +67 -0
  16. package/esm2020/lib/components/popup/components/popup/popup.component.mjs +26 -8
  17. package/esm2020/lib/components/popup/components/popup-item/popup-item.component.mjs +19 -5
  18. package/esm2020/lib/components/popup/directives/popup-trigger.directive.mjs +83 -16
  19. package/esm2020/lib/components/popup/popup.module.mjs +10 -5
  20. package/esm2020/public-api.mjs +6 -1
  21. package/fesm2015/myrta-ui.mjs +694 -158
  22. package/fesm2015/myrta-ui.mjs.map +1 -1
  23. package/fesm2020/myrta-ui.mjs +691 -158
  24. package/fesm2020/myrta-ui.mjs.map +1 -1
  25. package/lib/components/form/select/enums/index.d.ts +1 -0
  26. package/lib/components/form/select/enums/select-size.enum.d.ts +5 -0
  27. package/lib/components/form/select/helpers/clean-selected-items.helper.d.ts +3 -0
  28. package/lib/components/form/select/helpers/get-inner-items.helper.d.ts +3 -0
  29. package/lib/components/form/select/helpers/get-inner-selected.helper.d.ts +2 -0
  30. package/lib/components/form/select/helpers/get-selected-items.helper.d.ts +2 -0
  31. package/lib/components/form/select/helpers/modify-origin-items.helper.d.ts +2 -0
  32. package/lib/components/form/select/models/index.d.ts +3 -0
  33. package/lib/components/form/select/models/select-inner-item.model.d.ts +6 -0
  34. package/lib/components/form/select/models/select-item.model.d.ts +5 -0
  35. package/lib/components/form/select/models/template-output.model.d.ts +8 -0
  36. package/lib/components/form/select/select.component.d.ts +96 -0
  37. package/lib/components/form/select/select.enum.d.ts +5 -0
  38. package/lib/components/form/select/select.module.d.ts +17 -0
  39. package/lib/components/popup/components/popup/popup.component.d.ts +9 -3
  40. package/lib/components/popup/components/popup-item/popup-item.component.d.ts +5 -1
  41. package/lib/components/popup/directives/popup-trigger.directive.d.ts +22 -9
  42. package/lib/components/popup/popup.module.d.ts +4 -3
  43. package/package.json +1 -1
  44. package/public-api.d.ts +5 -0
@@ -16,7 +16,7 @@ import { OverlayModule, OverlayContainer, FullscreenOverlayContainer } from '@an
16
16
  import { createPopper } from '@popperjs/core';
17
17
  import * as i1$3 from '@ng-select/ng-select';
18
18
  import { NgSelectModule } from '@ng-select/ng-select';
19
- import { Subscription, Subject, timer, fromEvent, EMPTY } from 'rxjs';
19
+ import { Subscription, asyncScheduler, Subject, timer, fromEvent, EMPTY } from 'rxjs';
20
20
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
21
21
  import { first, switchMap, map, mergeMap, filter, startWith, distinctUntilChanged, pairwise, catchError } from 'rxjs/operators';
22
22
  import * as i2 from '@angular/cdk/layout';
@@ -42,6 +42,7 @@ import tz from 'dayjs/plugin/timezone';
42
42
  import utc from 'dayjs/plugin/utc';
43
43
  import * as i1$8 from 'jodit-angular';
44
44
  import { JoditAngularModule } from 'jodit-angular';
45
+ import isEqual from 'lodash-es/isEqual';
45
46
  import * as i2$3 from 'ngx-file-drop';
46
47
  import { NgxFileDropModule } from 'ngx-file-drop';
47
48
  import { __awaiter } from 'tslib';
@@ -1733,15 +1734,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
1733
1734
 
1734
1735
  class PopupItemComponent {
1735
1736
  constructor() {
1737
+ this.custom = false;
1738
+ this.id = '';
1739
+ this.disabled = false;
1736
1740
  this.clicked = new EventEmitter();
1737
1741
  }
1742
+ itemClick() {
1743
+ if (!this.disabled) {
1744
+ this.clicked.emit();
1745
+ }
1746
+ }
1738
1747
  }
1739
1748
  PopupItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1740
- PopupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: PopupItemComponent, selector: "mrx-popup-item", outputs: { clicked: "clicked" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\r\n <div class=\"mrx-popup-item\" (click)=\"clicked.emit()\">\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n", styles: [".mrx-popup-item{padding:8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer}.mrx-popup-item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}\n"] });
1749
+ PopupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: PopupItemComponent, selector: "mrx-popup-item", inputs: { custom: "custom", id: "id", disabled: "disabled" }, outputs: { clicked: "clicked" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template let-item=\"item\" let-first=\"first\" let-last=\"last\">\r\n <div\r\n class=\"mrx-popup-item\"\r\n [class.mrx-popup-item--default]=\"!custom\"\r\n [class.cursor-default]=\"disabled\"\r\n [class.--disabled]=\"disabled\"\r\n [class.--first]=\"first\"\r\n [class.--last]=\"last\"\r\n (click)=\"itemClick()\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n", styles: [".mrx-popup-item--default{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer}.mrx-popup-item--default:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-popup-item.--disabled{background-color:var(--neutral-bg-disabled, #EEF0F4)}.mrx-popup-item.--first{border-top-left-radius:4px;border-top-right-radius:4px}.mrx-popup-item.--last{border-bottom-left-radius:4px;border-bottom-right-radius:4px}\n"] });
1741
1750
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupItemComponent, decorators: [{
1742
1751
  type: Component,
1743
- args: [{ selector: 'mrx-popup-item', template: "<ng-template>\r\n <div class=\"mrx-popup-item\" (click)=\"clicked.emit()\">\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n", styles: [".mrx-popup-item{padding:8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer}.mrx-popup-item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}\n"] }]
1744
- }], propDecorators: { templateRef: [{
1752
+ args: [{ selector: 'mrx-popup-item', template: "<ng-template let-item=\"item\" let-first=\"first\" let-last=\"last\">\r\n <div\r\n class=\"mrx-popup-item\"\r\n [class.mrx-popup-item--default]=\"!custom\"\r\n [class.cursor-default]=\"disabled\"\r\n [class.--disabled]=\"disabled\"\r\n [class.--first]=\"first\"\r\n [class.--last]=\"last\"\r\n (click)=\"itemClick()\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n", styles: [".mrx-popup-item--default{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer}.mrx-popup-item--default:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-popup-item.--disabled{background-color:var(--neutral-bg-disabled, #EEF0F4)}.mrx-popup-item.--first{border-top-left-radius:4px;border-top-right-radius:4px}.mrx-popup-item.--last{border-bottom-left-radius:4px;border-bottom-right-radius:4px}\n"] }]
1753
+ }], propDecorators: { custom: [{
1754
+ type: Input
1755
+ }], id: [{
1756
+ type: Input
1757
+ }], disabled: [{
1758
+ type: Input
1759
+ }], templateRef: [{
1745
1760
  type: ViewChild,
1746
1761
  args: [TemplateRef, { static: true }]
1747
1762
  }], clicked: [{
@@ -1751,68 +1766,158 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
1751
1766
  class PopupComponent {
1752
1767
  constructor() {
1753
1768
  this.closeAfterClick = true;
1754
- this.maxWidth = '800px';
1755
- this.closed = new EventEmitter();
1769
+ this.minWidth = '';
1770
+ this.toggle = new EventEmitter();
1771
+ this._toggleInner = new EventEmitter();
1772
+ this._updateInner = new EventEmitter();
1773
+ }
1774
+ togglePopup(value) {
1775
+ this._toggleInner.emit(value);
1776
+ }
1777
+ updatePopup() {
1778
+ this._updateInner.emit();
1756
1779
  }
1757
1780
  }
1758
1781
  PopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1759
- PopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: PopupComponent, selector: "mrx-popup", inputs: { closeAfterClick: "closeAfterClick", maxWidth: "maxWidth" }, outputs: { closed: "closed" }, queries: [{ propertyName: "popupItemComponents", predicate: PopupItemComponent }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\r\n <div class=\"mrx-popup-content\" [style.width]=\"maxWidth\">\r\n <ng-container *ngFor=\"let item of popupItemComponents; let index = index; let first = first; let last = last\">\r\n <ng-container *ngTemplateOutlet=\"item.templateRef\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [".mrx-popup-content{padding:8px 0;background-color:#fff;border-radius:4px;box-shadow:0 1px 4px #3a3a3a4d}\n"], directives: [{ type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
1782
+ PopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: PopupComponent, selector: "mrx-popup", inputs: { closeAfterClick: "closeAfterClick", minWidth: "minWidth" }, outputs: { toggle: "toggle", _toggleInner: "_toggleInner", _updateInner: "_updateInner" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true }, { propertyName: "footerTemplate", first: true, predicate: ["footerTemplate"], descendants: true }, { propertyName: "popupItemComponents", predicate: PopupItemComponent }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\r\n <div class=\"mrx-popup-content\" [style.width]=\"'100%'\" [style.min-width]=\"minWidth\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n\r\n <div class=\"mrx-popup-content__items\" [style.max-height]=\"'280px'\">\r\n <ng-container *ngFor=\"let item of popupItemComponents; let first = first; let last = last\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"item.templateRef\"\r\n [ngTemplateOutletContext]=\"{item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [".mrx-popup-content{background-color:#fff;border-radius:4px;box-shadow:0 1px 4px #3a3a3a4d}.mrx-popup-content__items{overflow-y:auto}\n"], directives: [{ type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1760
1783
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupComponent, decorators: [{
1761
1784
  type: Component,
1762
- args: [{ selector: 'mrx-popup', template: "<ng-template>\r\n <div class=\"mrx-popup-content\" [style.width]=\"maxWidth\">\r\n <ng-container *ngFor=\"let item of popupItemComponents; let index = index; let first = first; let last = last\">\r\n <ng-container *ngTemplateOutlet=\"item.templateRef\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [".mrx-popup-content{padding:8px 0;background-color:#fff;border-radius:4px;box-shadow:0 1px 4px #3a3a3a4d}\n"] }]
1785
+ args: [{ selector: 'mrx-popup', template: "<ng-template>\r\n <div class=\"mrx-popup-content\" [style.width]=\"'100%'\" [style.min-width]=\"minWidth\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n\r\n <div class=\"mrx-popup-content__items\" [style.max-height]=\"'280px'\">\r\n <ng-container *ngFor=\"let item of popupItemComponents; let first = first; let last = last\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"item.templateRef\"\r\n [ngTemplateOutletContext]=\"{item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [".mrx-popup-content{background-color:#fff;border-radius:4px;box-shadow:0 1px 4px #3a3a3a4d}.mrx-popup-content__items{overflow-y:auto}\n"] }]
1763
1786
  }], propDecorators: { closeAfterClick: [{
1764
1787
  type: Input
1765
- }], maxWidth: [{
1788
+ }], minWidth: [{
1766
1789
  type: Input
1767
1790
  }], templateRef: [{
1768
1791
  type: ViewChild,
1769
1792
  args: [TemplateRef, { static: true }]
1793
+ }], headerTemplate: [{
1794
+ type: ContentChild,
1795
+ args: ['headerTemplate']
1796
+ }], footerTemplate: [{
1797
+ type: ContentChild,
1798
+ args: ['footerTemplate']
1770
1799
  }], popupItemComponents: [{
1771
1800
  type: ContentChildren,
1772
1801
  args: [PopupItemComponent]
1773
- }], closed: [{
1802
+ }], toggle: [{
1803
+ type: Output
1804
+ }], _toggleInner: [{
1805
+ type: Output
1806
+ }], _updateInner: [{
1774
1807
  type: Output
1775
1808
  }] } });
1776
1809
 
1777
- class PopupModule {
1778
- }
1779
- PopupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1780
- PopupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, declarations: [PopupComponent,
1781
- PopupItemComponent], imports: [CommonModule,
1782
- OverlayModule], exports: [PopupComponent,
1783
- PopupItemComponent] });
1784
- PopupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, imports: [[
1785
- CommonModule,
1786
- OverlayModule
1787
- ]] });
1788
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, decorators: [{
1789
- type: NgModule,
1790
- args: [{
1791
- declarations: [
1792
- PopupComponent,
1793
- PopupItemComponent
1794
- ],
1795
- imports: [
1796
- CommonModule,
1797
- OverlayModule
1798
- ],
1799
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
1800
- exports: [
1801
- PopupComponent,
1802
- PopupItemComponent
1803
- ]
1804
- }]
1805
- }] });
1810
+ const topPosition = {
1811
+ originX: 'center',
1812
+ originY: 'top',
1813
+ overlayX: 'center',
1814
+ overlayY: 'bottom',
1815
+ panelClass: 'top',
1816
+ };
1817
+ const bottomPosition = {
1818
+ originX: 'center',
1819
+ originY: 'bottom',
1820
+ overlayX: 'center',
1821
+ overlayY: 'top',
1822
+ panelClass: 'bottom',
1823
+ };
1824
+ const leftPosition = {
1825
+ originX: 'start',
1826
+ originY: 'center',
1827
+ overlayX: 'end',
1828
+ overlayY: 'center',
1829
+ panelClass: 'start',
1830
+ };
1831
+ const rightPosition = {
1832
+ originX: 'end',
1833
+ originY: 'center',
1834
+ overlayX: 'start',
1835
+ overlayY: 'center',
1836
+ panelClass: 'end',
1837
+ };
1838
+ const topStartPosition = {
1839
+ originX: 'start',
1840
+ originY: 'top',
1841
+ overlayX: 'start',
1842
+ overlayY: 'bottom',
1843
+ panelClass: 'top-start',
1844
+ };
1845
+ const topEndPosition = {
1846
+ originX: 'end',
1847
+ originY: 'top',
1848
+ overlayX: 'end',
1849
+ overlayY: 'bottom',
1850
+ panelClass: 'top-end',
1851
+ };
1852
+ const bottomStartPosition = {
1853
+ originX: 'start',
1854
+ originY: 'bottom',
1855
+ overlayX: 'start',
1856
+ overlayY: 'top',
1857
+ panelClass: 'bottom-start',
1858
+ };
1859
+ const bottomEndPosition = {
1860
+ originX: 'end',
1861
+ originY: 'bottom',
1862
+ overlayX: 'end',
1863
+ overlayY: 'top',
1864
+ panelClass: 'bottom-end',
1865
+ };
1866
+ var PositionEnum;
1867
+ (function (PositionEnum) {
1868
+ PositionEnum["Top"] = "top";
1869
+ PositionEnum["Bottom"] = "bottom";
1870
+ PositionEnum["Left"] = "left";
1871
+ PositionEnum["Right"] = "right";
1872
+ PositionEnum["TopStart"] = "top-start";
1873
+ PositionEnum["TopEnd"] = "top-end";
1874
+ PositionEnum["BottomStart"] = "bottom-start";
1875
+ PositionEnum["BottomEnd"] = "bottom-end";
1876
+ })(PositionEnum || (PositionEnum = {}));
1877
+ const PositionStrategyEnum = {
1878
+ [PositionEnum.Top]: [topPosition, bottomPosition, leftPosition, rightPosition],
1879
+ [PositionEnum.Bottom]: [bottomPosition, topPosition, leftPosition, rightPosition],
1880
+ [PositionEnum.Left]: [leftPosition, rightPosition, topPosition, bottomPosition],
1881
+ [PositionEnum.Right]: [rightPosition, leftPosition, topPosition, bottomPosition],
1882
+ [PositionEnum.TopStart]: [topStartPosition, topPosition, bottomStartPosition, bottomPosition],
1883
+ [PositionEnum.TopEnd]: [topEndPosition, topPosition, bottomEndPosition, bottomPosition],
1884
+ [PositionEnum.BottomStart]: [bottomStartPosition, bottomPosition, topStartPosition, topPosition],
1885
+ [PositionEnum.BottomEnd]: [bottomEndPosition, bottomPosition, topEndPosition, topPosition],
1886
+ };
1806
1887
 
1807
1888
  class PopupTriggerDirective {
1808
- constructor(overlay, elementRef, viewContainerRef, dispatcher) {
1889
+ constructor(overlay, elementRef, viewContainerRef, dispatcher, scrollDispatcher) {
1809
1890
  this.overlay = overlay;
1810
1891
  this.elementRef = elementRef;
1811
1892
  this.viewContainerRef = viewContainerRef;
1812
1893
  this.dispatcher = dispatcher;
1813
- this._subscriber$ = new Subscription();
1894
+ this.scrollDispatcher = scrollDispatcher;
1895
+ this._subscriberDetach$ = new Subscription();
1896
+ this._subscriberAttach$ = new Subscription();
1814
1897
  this._isDropdownOpen = false;
1815
1898
  this.popupPosition = 'bottom-start';
1899
+ this.isFullWidthDropdown = false;
1900
+ this.minWidthDropdown = '120px';
1901
+ this.scrollStrategy = 'close';
1902
+ }
1903
+ get getMinWidthDropdown() {
1904
+ return this.isFullWidthDropdown ? this.elementRef.nativeElement.getBoundingClientRect().width : this.minWidthDropdown;
1905
+ }
1906
+ get getMaxWidthDropdown() {
1907
+ return this.isFullWidthDropdown ? this.elementRef.nativeElement.getBoundingClientRect().width : this.maxWidthDropdown;
1908
+ }
1909
+ ngAfterViewInit() {
1910
+ this.popupPanel._toggleInner.subscribe(isOpen => {
1911
+ if (isOpen && !this._isDropdownOpen) {
1912
+ this.openDropdown();
1913
+ }
1914
+ if (!isOpen && this._isDropdownOpen) {
1915
+ this.closeDropdown();
1916
+ }
1917
+ });
1918
+ this.popupPanel._updateInner.subscribe(() => {
1919
+ asyncScheduler.schedule(() => this.updatePosition());
1920
+ });
1816
1921
  }
1817
1922
  togglePopup() {
1818
1923
  this._isDropdownOpen ? this.destroyDropdown() : this.openDropdown();
@@ -1823,25 +1928,52 @@ class PopupTriggerDirective {
1823
1928
  this._overlayRef = this.overlay.create({
1824
1929
  positionStrategy: this.getPositionStrategy(),
1825
1930
  hasBackdrop: false,
1826
- scrollStrategy: this.overlay.scrollStrategies.close(),
1931
+ scrollStrategy: this.scrollStrategy === 'reposition' ? this.overlay.scrollStrategies.reposition() : this.overlay.scrollStrategies.close(),
1827
1932
  backdropClass: 'cdk-overlay-transparent-backdrop',
1828
- panelClass: 'mrx-popup'
1933
+ panelClass: 'mrx-popup',
1934
+ minWidth: this.getMinWidthDropdown,
1935
+ maxWidth: this.getMaxWidthDropdown,
1829
1936
  });
1830
1937
  const templatePortal = new TemplatePortal(this.popupPanel.templateRef, this.viewContainerRef);
1831
1938
  this._overlayRef.attach(templatePortal);
1832
- this._subscriber$ = this._overlayRef.detachments().subscribe(_ => {
1939
+ this.popupPanel.toggle.emit(true);
1940
+ this._subscriberDetach$ = this._overlayRef.detachments().subscribe(_ => {
1833
1941
  this._isDropdownOpen = false;
1834
- this.popupPanel.closed.emit();
1942
+ this.popupPanel.toggle.emit(false);
1943
+ });
1944
+ this.scrollDispatcher.scrolled().subscribe((scrollable) => {
1945
+ var _a;
1946
+ if (scrollable &&
1947
+ this.scrollContainerRef &&
1948
+ scrollable.getElementRef().nativeElement === this.scrollContainerRef.nativeElement) {
1949
+ (_a = this._overlayRef) === null || _a === void 0 ? void 0 : _a.updatePosition();
1950
+ }
1835
1951
  });
1836
1952
  }
1837
- close() {
1953
+ closeDropdown() {
1838
1954
  this.destroyDropdown();
1839
1955
  }
1956
+ updatePosition() {
1957
+ if (this._overlayRef) {
1958
+ this._overlayRef.updatePosition();
1959
+ }
1960
+ }
1961
+ updateSize() {
1962
+ if (this._overlayRef) {
1963
+ this._overlayRef.updateSize({
1964
+ minWidth: this.elementRef.nativeElement.getBoundingClientRect().width
1965
+ });
1966
+ }
1967
+ }
1840
1968
  getPositionStrategy() {
1841
- return this.overlay
1969
+ const overlay = this.overlay
1842
1970
  .position()
1843
1971
  .flexibleConnectedTo(this.elementRef)
1844
- .withPositions(positionStrategy[this.popupPosition]);
1972
+ .withPositions(PositionStrategyEnum[this.popupPosition]);
1973
+ if (this.scrollContainerRef) {
1974
+ overlay.withScrollableContainers([this.scrollContainerRef.nativeElement]);
1975
+ }
1976
+ return overlay;
1845
1977
  }
1846
1978
  destroyDropdown() {
1847
1979
  if (!this._overlayRef || !this._isDropdownOpen) {
@@ -1860,7 +1992,8 @@ class PopupTriggerDirective {
1860
1992
  if (this._overlayRef) {
1861
1993
  this._overlayRef.dispose();
1862
1994
  }
1863
- this._subscriber$.unsubscribe();
1995
+ this._subscriberDetach$.unsubscribe();
1996
+ this._subscriberAttach$.unsubscribe();
1864
1997
  }
1865
1998
  handleClick(event) {
1866
1999
  if (this.elementRef.nativeElement.contains(event.target))
@@ -1874,9 +2007,12 @@ class PopupTriggerDirective {
1874
2007
  }
1875
2008
  }
1876
2009
  }
2010
+ handleResize() {
2011
+ this.updateSize();
2012
+ }
1877
2013
  }
1878
- PopupTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupTriggerDirective, deps: [{ token: i1$2.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$2.OverlayOutsideClickDispatcher }], target: i0.ɵɵFactoryTarget.Directive });
1879
- PopupTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.4.0", type: PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: { popupPanel: ["mrxPopupTrigger", "popupPanel"], popupPosition: "popupPosition" }, host: { listeners: { "click": "togglePopup()", "document:click": "handleClick($event)" } }, ngImport: i0 });
2014
+ PopupTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupTriggerDirective, deps: [{ token: i1$2.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$2.OverlayOutsideClickDispatcher }, { token: i1$2.ScrollDispatcher }], target: i0.ɵɵFactoryTarget.Directive });
2015
+ PopupTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.4.0", type: PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: { popupPanel: ["mrxPopupTrigger", "popupPanel"], popupPosition: "popupPosition", isFullWidthDropdown: "isFullWidthDropdown", minWidthDropdown: "minWidthDropdown", maxWidthDropdown: "maxWidthDropdown", scrollContainerRef: "scrollContainerRef", scrollStrategy: "scrollStrategy" }, host: { listeners: { "click": "togglePopup()", "document:click": "handleClick($event)", "window:resize": "handleResize($event)" } }, ngImport: i0 });
1880
2016
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupTriggerDirective, decorators: [{
1881
2017
  type: Directive,
1882
2018
  args: [{
@@ -1885,16 +2021,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
1885
2021
  '(click)': 'togglePopup()'
1886
2022
  }
1887
2023
  }]
1888
- }], ctorParameters: function () { return [{ type: i1$2.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$2.OverlayOutsideClickDispatcher }]; }, propDecorators: { popupPanel: [{
2024
+ }], ctorParameters: function () { return [{ type: i1$2.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$2.OverlayOutsideClickDispatcher }, { type: i1$2.ScrollDispatcher }]; }, propDecorators: { popupPanel: [{
1889
2025
  type: Input,
1890
2026
  args: ['mrxPopupTrigger']
1891
2027
  }], popupPosition: [{
1892
2028
  type: Input
2029
+ }], isFullWidthDropdown: [{
2030
+ type: Input
2031
+ }], minWidthDropdown: [{
2032
+ type: Input
2033
+ }], maxWidthDropdown: [{
2034
+ type: Input
2035
+ }], scrollContainerRef: [{
2036
+ type: Input
2037
+ }], scrollStrategy: [{
2038
+ type: Input
1893
2039
  }], handleClick: [{
1894
2040
  type: HostListener,
1895
2041
  args: ['document:click', ['$event']]
2042
+ }], handleResize: [{
2043
+ type: HostListener,
2044
+ args: ['window:resize', ['$event']]
1896
2045
  }] } });
1897
2046
 
2047
+ class PopupModule {
2048
+ }
2049
+ PopupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2050
+ PopupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, declarations: [PopupComponent,
2051
+ PopupItemComponent,
2052
+ PopupTriggerDirective], imports: [CommonModule,
2053
+ OverlayModule], exports: [PopupComponent,
2054
+ PopupItemComponent,
2055
+ PopupTriggerDirective] });
2056
+ PopupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, imports: [[
2057
+ CommonModule,
2058
+ OverlayModule
2059
+ ]] });
2060
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, decorators: [{
2061
+ type: NgModule,
2062
+ args: [{
2063
+ declarations: [
2064
+ PopupComponent,
2065
+ PopupItemComponent,
2066
+ PopupTriggerDirective
2067
+ ],
2068
+ imports: [
2069
+ CommonModule,
2070
+ OverlayModule
2071
+ ],
2072
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
2073
+ exports: [
2074
+ PopupComponent,
2075
+ PopupItemComponent,
2076
+ PopupTriggerDirective
2077
+ ]
2078
+ }]
2079
+ }] });
2080
+
1898
2081
  class ErrorMessageComponent {
1899
2082
  constructor() {
1900
2083
  this.invalid = true;
@@ -5657,7 +5840,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
5657
5840
  }]
5658
5841
  }] });
5659
5842
 
5660
- const maskConfigFunction$8 = () => {
5843
+ const maskConfigFunction$9 = () => {
5661
5844
  return {
5662
5845
  validation: false,
5663
5846
  };
@@ -5676,7 +5859,7 @@ InputTextareaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
5676
5859
  CharsLeftModule,
5677
5860
  ErrorMessageModule,
5678
5861
  SaveStateModule,
5679
- NgxMaskModule.forRoot(maskConfigFunction$8),
5862
+ NgxMaskModule.forRoot(maskConfigFunction$9),
5680
5863
  AutosizeModule
5681
5864
  ]] });
5682
5865
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputTextareaModule, decorators: [{
@@ -5689,7 +5872,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
5689
5872
  CharsLeftModule,
5690
5873
  ErrorMessageModule,
5691
5874
  SaveStateModule,
5692
- NgxMaskModule.forRoot(maskConfigFunction$8),
5875
+ NgxMaskModule.forRoot(maskConfigFunction$9),
5693
5876
  AutosizeModule
5694
5877
  ],
5695
5878
  exports: [InputTextareaComponent],
@@ -6008,7 +6191,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
6008
6191
  type: Output
6009
6192
  }] } });
6010
6193
 
6011
- const maskConfigFunction$7 = () => {
6194
+ const maskConfigFunction$8 = () => {
6012
6195
  return {
6013
6196
  validation: false,
6014
6197
  };
@@ -6029,7 +6212,7 @@ InputTextModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
6029
6212
  ErrorMessageModule,
6030
6213
  SaveStateModule,
6031
6214
  CdkTooltipModule,
6032
- NgxMaskModule.forRoot(maskConfigFunction$7)
6215
+ NgxMaskModule.forRoot(maskConfigFunction$8)
6033
6216
  ]] });
6034
6217
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputTextModule, decorators: [{
6035
6218
  type: NgModule,
@@ -6042,7 +6225,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
6042
6225
  ErrorMessageModule,
6043
6226
  SaveStateModule,
6044
6227
  CdkTooltipModule,
6045
- NgxMaskModule.forRoot(maskConfigFunction$7)
6228
+ NgxMaskModule.forRoot(maskConfigFunction$8)
6046
6229
  ],
6047
6230
  exports: [InputTextComponent],
6048
6231
  }]
@@ -8525,7 +8708,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
8525
8708
  args: ['phoneInput']
8526
8709
  }] } });
8527
8710
 
8528
- const maskConfigFunction$6 = () => {
8711
+ const maskConfigFunction$7 = () => {
8529
8712
  return {
8530
8713
  validation: false,
8531
8714
  };
@@ -8546,7 +8729,7 @@ InputPhoneModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
8546
8729
  DropdownModule,
8547
8730
  SaveStateModule,
8548
8731
  ErrorMessageModule,
8549
- NgxMaskModule.forRoot(maskConfigFunction$6)
8732
+ NgxMaskModule.forRoot(maskConfigFunction$7)
8550
8733
  ]] });
8551
8734
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputPhoneModule, decorators: [{
8552
8735
  type: NgModule,
@@ -8560,7 +8743,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
8560
8743
  DropdownModule,
8561
8744
  SaveStateModule,
8562
8745
  ErrorMessageModule,
8563
- NgxMaskModule.forRoot(maskConfigFunction$6)
8746
+ NgxMaskModule.forRoot(maskConfigFunction$7)
8564
8747
  ],
8565
8748
  exports: [InputPhoneComponent]
8566
8749
  }]
@@ -8737,7 +8920,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
8737
8920
  type: Output
8738
8921
  }] } });
8739
8922
 
8740
- const maskConfigFunction$5 = () => {
8923
+ const maskConfigFunction$6 = () => {
8741
8924
  return {
8742
8925
  validation: false,
8743
8926
  };
@@ -8754,7 +8937,7 @@ InputSearchModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
8754
8937
  FormsModule,
8755
8938
  CharsLeftModule,
8756
8939
  ErrorMessageModule,
8757
- NgxMaskModule.forRoot(maskConfigFunction$5),
8940
+ NgxMaskModule.forRoot(maskConfigFunction$6),
8758
8941
  SaveStateModule
8759
8942
  ]] });
8760
8943
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputSearchModule, decorators: [{
@@ -8766,7 +8949,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
8766
8949
  FormsModule,
8767
8950
  CharsLeftModule,
8768
8951
  ErrorMessageModule,
8769
- NgxMaskModule.forRoot(maskConfigFunction$5),
8952
+ NgxMaskModule.forRoot(maskConfigFunction$6),
8770
8953
  SaveStateModule
8771
8954
  ],
8772
8955
  exports: [InputSearchComponent],
@@ -9295,7 +9478,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
9295
9478
  type: Output
9296
9479
  }] } });
9297
9480
 
9298
- const maskConfigFunction$4 = () => {
9481
+ const maskConfigFunction$5 = () => {
9299
9482
  return {
9300
9483
  validation: false,
9301
9484
  };
@@ -9314,7 +9497,7 @@ InputDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
9314
9497
  SaveStateModule,
9315
9498
  ErrorMessageModule,
9316
9499
  LabelModule,
9317
- NgxMaskModule.forRoot(maskConfigFunction$4),
9500
+ NgxMaskModule.forRoot(maskConfigFunction$5),
9318
9501
  ]] });
9319
9502
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDatepickerModule, decorators: [{
9320
9503
  type: NgModule,
@@ -9326,7 +9509,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
9326
9509
  SaveStateModule,
9327
9510
  ErrorMessageModule,
9328
9511
  LabelModule,
9329
- NgxMaskModule.forRoot(maskConfigFunction$4),
9512
+ NgxMaskModule.forRoot(maskConfigFunction$5),
9330
9513
  ],
9331
9514
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
9332
9515
  exports: [InputDatepickerComponent],
@@ -9639,84 +9822,6 @@ var InputDateSizesEnum$1;
9639
9822
  InputDateSizesEnum["large"] = "mrx-input-date-lg";
9640
9823
  })(InputDateSizesEnum$1 || (InputDateSizesEnum$1 = {}));
9641
9824
 
9642
- const topPosition = {
9643
- originX: 'center',
9644
- originY: 'top',
9645
- overlayX: 'center',
9646
- overlayY: 'bottom',
9647
- panelClass: 'top',
9648
- };
9649
- const bottomPosition = {
9650
- originX: 'center',
9651
- originY: 'bottom',
9652
- overlayX: 'center',
9653
- overlayY: 'top',
9654
- panelClass: 'bottom',
9655
- };
9656
- const leftPosition = {
9657
- originX: 'start',
9658
- originY: 'center',
9659
- overlayX: 'end',
9660
- overlayY: 'center',
9661
- panelClass: 'start',
9662
- };
9663
- const rightPosition = {
9664
- originX: 'end',
9665
- originY: 'center',
9666
- overlayX: 'start',
9667
- overlayY: 'center',
9668
- panelClass: 'end',
9669
- };
9670
- const topStartPosition = {
9671
- originX: 'start',
9672
- originY: 'top',
9673
- overlayX: 'start',
9674
- overlayY: 'bottom',
9675
- panelClass: 'top-start',
9676
- };
9677
- const topEndPosition = {
9678
- originX: 'end',
9679
- originY: 'top',
9680
- overlayX: 'end',
9681
- overlayY: 'bottom',
9682
- panelClass: 'top-end',
9683
- };
9684
- const bottomStartPosition = {
9685
- originX: 'start',
9686
- originY: 'bottom',
9687
- overlayX: 'start',
9688
- overlayY: 'top',
9689
- panelClass: 'bottom-start',
9690
- };
9691
- const bottomEndPosition = {
9692
- originX: 'end',
9693
- originY: 'bottom',
9694
- overlayX: 'end',
9695
- overlayY: 'top',
9696
- panelClass: 'bottom-end',
9697
- };
9698
- var PositionEnum;
9699
- (function (PositionEnum) {
9700
- PositionEnum["Top"] = "top";
9701
- PositionEnum["Bottom"] = "bottom";
9702
- PositionEnum["Left"] = "left";
9703
- PositionEnum["Right"] = "right";
9704
- PositionEnum["TopStart"] = "top-start";
9705
- PositionEnum["TopEnd"] = "top-end";
9706
- PositionEnum["BottomStart"] = "bottom-start";
9707
- PositionEnum["BottomEnd"] = "bottom-end";
9708
- })(PositionEnum || (PositionEnum = {}));
9709
- const PositionStrategyEnum = {
9710
- [PositionEnum.Top]: [topPosition, bottomPosition, leftPosition, rightPosition],
9711
- [PositionEnum.Bottom]: [bottomPosition, topPosition, leftPosition, rightPosition],
9712
- [PositionEnum.Left]: [leftPosition, rightPosition, topPosition, bottomPosition],
9713
- [PositionEnum.Right]: [rightPosition, leftPosition, topPosition, bottomPosition],
9714
- [PositionEnum.TopStart]: [topStartPosition, topPosition, bottomStartPosition, bottomPosition],
9715
- [PositionEnum.TopEnd]: [topEndPosition, topPosition, bottomEndPosition, bottomPosition],
9716
- [PositionEnum.BottomStart]: [bottomStartPosition, bottomPosition, topStartPosition, topPosition],
9717
- [PositionEnum.BottomEnd]: [bottomEndPosition, bottomPosition, topEndPosition, topPosition],
9718
- };
9719
-
9720
9825
  class InputDateComponent {
9721
9826
  constructor(_overlay, _detector, _elementRef) {
9722
9827
  this._overlay = _overlay;
@@ -10020,7 +10125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
10020
10125
  args: ['dateInput']
10021
10126
  }] } });
10022
10127
 
10023
- const maskConfigFunction$3 = () => {
10128
+ const maskConfigFunction$4 = () => {
10024
10129
  return {
10025
10130
  validation: false,
10026
10131
  };
@@ -10040,7 +10145,7 @@ InputDateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
10040
10145
  ErrorMessageModule,
10041
10146
  LabelModule,
10042
10147
  SaveStateModule,
10043
- NgxMaskModule.forRoot(maskConfigFunction$3)
10148
+ NgxMaskModule.forRoot(maskConfigFunction$4)
10044
10149
  ]] });
10045
10150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDateModule, decorators: [{
10046
10151
  type: NgModule,
@@ -10055,7 +10160,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
10055
10160
  ErrorMessageModule,
10056
10161
  LabelModule,
10057
10162
  SaveStateModule,
10058
- NgxMaskModule.forRoot(maskConfigFunction$3)
10163
+ NgxMaskModule.forRoot(maskConfigFunction$4)
10059
10164
  ],
10060
10165
  exports: [
10061
10166
  InputDateComponent
@@ -10650,7 +10755,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
10650
10755
  type: Output
10651
10756
  }] } });
10652
10757
 
10653
- const maskConfigFunction$2 = () => {
10758
+ const maskConfigFunction$3 = () => {
10654
10759
  return {
10655
10760
  validation: false,
10656
10761
  };
@@ -10669,7 +10774,7 @@ InputDateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
10669
10774
  SaveStateModule,
10670
10775
  ErrorMessageModule,
10671
10776
  LabelModule,
10672
- NgxMaskModule.forRoot(maskConfigFunction$2),
10777
+ NgxMaskModule.forRoot(maskConfigFunction$3),
10673
10778
  ]] });
10674
10779
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDateTimeModule, decorators: [{
10675
10780
  type: NgModule,
@@ -10681,7 +10786,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
10681
10786
  SaveStateModule,
10682
10787
  ErrorMessageModule,
10683
10788
  LabelModule,
10684
- NgxMaskModule.forRoot(maskConfigFunction$2),
10789
+ NgxMaskModule.forRoot(maskConfigFunction$3),
10685
10790
  ],
10686
10791
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
10687
10792
  exports: [InputDateTimeComponent],
@@ -11044,7 +11149,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
11044
11149
  type: Output
11045
11150
  }] } });
11046
11151
 
11047
- const maskConfigFunction$1 = () => {
11152
+ const maskConfigFunction$2 = () => {
11048
11153
  return {
11049
11154
  validation: false,
11050
11155
  };
@@ -11063,7 +11168,7 @@ InputTimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
11063
11168
  SaveStateModule,
11064
11169
  ErrorMessageModule,
11065
11170
  LabelModule,
11066
- NgxMaskModule.forRoot(maskConfigFunction$1),
11171
+ NgxMaskModule.forRoot(maskConfigFunction$2),
11067
11172
  ]] });
11068
11173
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputTimepickerModule, decorators: [{
11069
11174
  type: NgModule,
@@ -11075,7 +11180,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
11075
11180
  SaveStateModule,
11076
11181
  ErrorMessageModule,
11077
11182
  LabelModule,
11078
- NgxMaskModule.forRoot(maskConfigFunction$1),
11183
+ NgxMaskModule.forRoot(maskConfigFunction$2),
11079
11184
  ],
11080
11185
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
11081
11186
  exports: [InputTimepickerComponent],
@@ -12372,7 +12477,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
12372
12477
  type: Output
12373
12478
  }] } });
12374
12479
 
12375
- const maskConfigFunction = () => {
12480
+ const maskConfigFunction$1 = () => {
12376
12481
  var _a, _b;
12377
12482
  // системный формат числа с дробной частью и группой разраядов (тысячи)
12378
12483
  const c = Intl.NumberFormat().formatToParts(1234.5);
@@ -12400,7 +12505,7 @@ InputNumberModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
12400
12505
  CharsLeftModule,
12401
12506
  SaveStateModule,
12402
12507
  ErrorMessageModule,
12403
- NgxMaskModule.forRoot(maskConfigFunction)
12508
+ NgxMaskModule.forRoot(maskConfigFunction$1)
12404
12509
  ]] });
12405
12510
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputNumberModule, decorators: [{
12406
12511
  type: NgModule,
@@ -12413,13 +12518,444 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
12413
12518
  CharsLeftModule,
12414
12519
  SaveStateModule,
12415
12520
  ErrorMessageModule,
12416
- NgxMaskModule.forRoot(maskConfigFunction)
12521
+ NgxMaskModule.forRoot(maskConfigFunction$1)
12417
12522
  ],
12418
12523
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
12419
12524
  exports: [InputNumberComponent],
12420
12525
  }]
12421
12526
  }] });
12422
12527
 
12528
+ var SelectSizeEnum;
12529
+ (function (SelectSizeEnum) {
12530
+ SelectSizeEnum["medium"] = "mrx-select-md";
12531
+ SelectSizeEnum["large"] = "mrx-select-lg";
12532
+ })(SelectSizeEnum || (SelectSizeEnum = {}));
12533
+
12534
+ const modifyOriginItems = (selected, bindValue) => {
12535
+ if (bindValue) {
12536
+ const modifiedSelected = [];
12537
+ for (let item of selected) {
12538
+ for (let key in item) {
12539
+ if (item.hasOwnProperty(bindValue) && key === bindValue) {
12540
+ modifiedSelected.push(item[bindValue]);
12541
+ }
12542
+ if (!item.hasOwnProperty(bindValue)) {
12543
+ modifiedSelected.push(null);
12544
+ break;
12545
+ }
12546
+ }
12547
+ }
12548
+ return modifiedSelected;
12549
+ }
12550
+ else {
12551
+ return selected;
12552
+ }
12553
+ };
12554
+
12555
+ const cleanSelectItems = (innerList) => innerList.map(cleanSelectItem);
12556
+ const cleanSelectItem = (innerItem) => innerItem.__origin;
12557
+
12558
+ const getSelectedItems = (innerItems, bindValue) => {
12559
+ return modifyOriginItems(cleanSelectItems(innerItems.filter(item => item.__selected)), bindValue);
12560
+ };
12561
+
12562
+ const getInnerItems = (items, selectedItems = [], bindValue) => {
12563
+ return items.map((item, idx) => {
12564
+ const findItem = selectedItems.find(i => isEqual(i, item));
12565
+ if (typeof item === 'object' && !Array.isArray(item)) {
12566
+ return { __origin: item, __id: item['id'] || idx, __selected: !!findItem };
12567
+ }
12568
+ else {
12569
+ return { __origin: item, __id: idx, __selected: !!findItem };
12570
+ }
12571
+ });
12572
+ };
12573
+
12574
+ const getInnerSelected = (items, selected, bindValue) => {
12575
+ const arr = items.filter(i => {
12576
+ if (bindValue) {
12577
+ return selected.some(x => isEqual(x, i[bindValue]));
12578
+ }
12579
+ else {
12580
+ return selected.some(x => isEqual(x, i));
12581
+ }
12582
+ });
12583
+ return arr;
12584
+ };
12585
+
12586
+ class SelectComponent {
12587
+ constructor() {
12588
+ this.searchValue = '';
12589
+ this.isOpen = false;
12590
+ this.originSelected = [];
12591
+ this.originItems = [];
12592
+ this.selected = [];
12593
+ this.innerItems = [];
12594
+ this.form = new MrxFormValidator();
12595
+ this.model = {
12596
+ label: '',
12597
+ };
12598
+ // SAVE STATE
12599
+ this.uuid = v4();
12600
+ this.fields = [];
12601
+ this.multiple = false;
12602
+ this.isLoading = false;
12603
+ this.searchable = false;
12604
+ this.clearable = true;
12605
+ this.closable = true;
12606
+ this.size = 'large';
12607
+ this.bindValue = null;
12608
+ this.bindLabel = null;
12609
+ this.bindIcon = null;
12610
+ this.emptyText = 'Не найдено';
12611
+ this.placeholder = 'Выберите значение';
12612
+ this.searchPlaceholder = 'Введите значение';
12613
+ this.multiCollapseCount = null;
12614
+ this.optionValidation = null;
12615
+ this.extraOptionPlaceholder = 'Введите значение';
12616
+ this.use = 'default';
12617
+ this.sortIcon = null;
12618
+ this.sortPlaceholder = '';
12619
+ this.isFullWidthDropdown = true;
12620
+ this.withoutSelected = false;
12621
+ this.hideSelected = false;
12622
+ this.disabled = false;
12623
+ this.readonly = false;
12624
+ this.invalid = false;
12625
+ this.invalidMessage = '';
12626
+ this.checkInvalid = null;
12627
+ this.popupPosition = PositionEnum.BottomStart;
12628
+ this.singleChange = false;
12629
+ this.scrollStrategy = 'close';
12630
+ this.changed = new EventEmitter();
12631
+ this.modelChange = new EventEmitter();
12632
+ this.onChange = (value) => {
12633
+ };
12634
+ this.onTouched = () => {
12635
+ };
12636
+ }
12637
+ set items(items) {
12638
+ this.originItems = items;
12639
+ this._updateSelected(this.originItems, this.originSelected);
12640
+ }
12641
+ ngOnInit() {
12642
+ if (this.optionValidation) {
12643
+ this.form.initFields(this.model, this.optionValidation);
12644
+ }
12645
+ }
12646
+ get readonlyClass() {
12647
+ return this.readonly ? 'mrx-input__readonly' : '';
12648
+ }
12649
+ get checkValidClasses() {
12650
+ return this.checkInvalid === false ?
12651
+ 'mrx-input-checked-success' :
12652
+ this.checkInvalid === true ? 'mrx-input-checked-error' : '';
12653
+ }
12654
+ get getClasses() {
12655
+ return `${SelectSizeEnum[this.size]} ${this.readonlyClass} ${this.checkValidClasses}`;
12656
+ }
12657
+ get getSelectedLabels() {
12658
+ if (this.withoutSelected) {
12659
+ return [];
12660
+ }
12661
+ else {
12662
+ return this.innerItems.filter(i => i.__selected);
12663
+ }
12664
+ }
12665
+ get filteredItems() {
12666
+ if (this.customSearchFn) {
12667
+ return this.innerItems.filter(item => {
12668
+ var _a, _b;
12669
+ return (_b = (_a = this.customSearchFn) === null || _a === void 0 ? void 0 : _a.call(this, this.searchValue, item.__origin)) !== null && _b !== void 0 ? _b : false;
12670
+ });
12671
+ }
12672
+ else {
12673
+ return this.innerItems.filter(i => {
12674
+ if (this.hideSelected) {
12675
+ if (this.bindLabel) {
12676
+ return String(i.__origin[this.bindLabel]).toLowerCase().includes(this.searchValue.toLocaleLowerCase()) && !i.__selected;
12677
+ }
12678
+ else {
12679
+ if (i.__origin['label']) {
12680
+ return String(i.__origin['label']).toLowerCase().includes(this.searchValue.toLocaleLowerCase()) && !i.__selected;
12681
+ }
12682
+ else {
12683
+ return String(i.__origin).toLowerCase().includes(this.searchValue.toLocaleLowerCase()) && !i.__selected;
12684
+ }
12685
+ }
12686
+ }
12687
+ else {
12688
+ if (this.bindLabel) {
12689
+ return String(i.__origin[this.bindLabel]).toLowerCase().includes(this.searchValue.toLocaleLowerCase());
12690
+ }
12691
+ else {
12692
+ if (i.__origin['label']) {
12693
+ return String(i.__origin['label']).toLowerCase().includes(this.searchValue.toLocaleLowerCase());
12694
+ }
12695
+ else {
12696
+ return String(i.__origin).toLowerCase().includes(this.searchValue.toLocaleLowerCase());
12697
+ }
12698
+ }
12699
+ }
12700
+ });
12701
+ }
12702
+ }
12703
+ get isInvalidMessage() {
12704
+ var _a;
12705
+ return !!this.invalidMessage || !!((_a = this.invalidMessage) === null || _a === void 0 ? void 0 : _a.length);
12706
+ }
12707
+ get getIconSize() {
12708
+ return this.size === 'medium' ? 'icon-font-16' : 'icon-font-24';
12709
+ }
12710
+ onSelect(item) {
12711
+ if (!this.multiple) {
12712
+ this.innerItems = this.innerItems.map(i => {
12713
+ if (this.singleChange) {
12714
+ return Object.assign(Object.assign({}, i), { __selected: i.__id === item.__id });
12715
+ }
12716
+ if (this.use === 'default') {
12717
+ return Object.assign(Object.assign({}, i), { __selected: i.__id === item.__id ? !i.__selected : false });
12718
+ }
12719
+ else {
12720
+ return Object.assign(Object.assign({}, i), { __selected: i.__id === item.__id });
12721
+ }
12722
+ });
12723
+ }
12724
+ else {
12725
+ this.innerItems = this.innerItems.map(i => {
12726
+ return Object.assign(Object.assign({}, i), { __selected: i.__id === item.__id ? !i.__selected : i.__selected });
12727
+ });
12728
+ }
12729
+ this.dropdown.updatePopup();
12730
+ this._updateValue(this.innerItems);
12731
+ }
12732
+ clearItem(item) {
12733
+ this.onUnselect(item);
12734
+ }
12735
+ onUnselect(item) {
12736
+ this.innerItems.forEach(i => {
12737
+ if (i.__id === item.__id) {
12738
+ i.__selected = false;
12739
+ }
12740
+ });
12741
+ this._updateValue(this.innerItems);
12742
+ }
12743
+ onClear(event) {
12744
+ event.stopPropagation();
12745
+ this.innerItems = this.innerItems.map(item => (Object.assign(Object.assign({}, item), { __selected: false })));
12746
+ this.dropdown.togglePopup(false);
12747
+ this._updateValue([]);
12748
+ }
12749
+ togglePopup(isOpen) {
12750
+ this.isOpen = isOpen;
12751
+ }
12752
+ asOption(option) {
12753
+ return option;
12754
+ }
12755
+ asLabel(label) {
12756
+ return label;
12757
+ }
12758
+ writeValue(selected = []) {
12759
+ this.originSelected = selected;
12760
+ this._updateSelected(this.originItems, this.originSelected);
12761
+ }
12762
+ changeTextValueEmpty() {
12763
+ this.form.initModelChanged(this.model);
12764
+ }
12765
+ onAddNewCustomOption() {
12766
+ if (this.form.isValid()) {
12767
+ this.addOption(this.model.label);
12768
+ this.model.label = '';
12769
+ this.changeTextValueEmpty();
12770
+ }
12771
+ }
12772
+ _updateSelected(items = [], selected = []) {
12773
+ if (this.multiple && Array.isArray(this.originSelected)) {
12774
+ this.selected = getInnerSelected(items, selected, this.bindValue);
12775
+ }
12776
+ else {
12777
+ this.selected = getInnerSelected(items, [selected], this.bindValue);
12778
+ }
12779
+ this.innerItems = getInnerItems(items, this.selected, this.bindValue);
12780
+ }
12781
+ _updateValue(selectedItems) {
12782
+ const clearedSelected = getSelectedItems(selectedItems, this.bindValue);
12783
+ const outputSelected = this.multiple ? clearedSelected : clearedSelected.length ? clearedSelected[0] : null;
12784
+ this.changed.emit(outputSelected);
12785
+ this.modelChange.emit({ value: outputSelected, id: this.uuid });
12786
+ this.onChange(outputSelected);
12787
+ this.onTouched();
12788
+ }
12789
+ registerOnChange(fn) {
12790
+ this.onChange = fn;
12791
+ }
12792
+ registerOnTouched(fn) {
12793
+ this.onTouched = fn;
12794
+ }
12795
+ }
12796
+ SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12797
+ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SelectComponent, selector: "mrx-select", inputs: { fields: "fields", items: "items", multiple: "multiple", isLoading: "isLoading", searchable: "searchable", clearable: "clearable", closable: "closable", size: "size", bindValue: "bindValue", bindLabel: "bindLabel", bindIcon: "bindIcon", emptyText: "emptyText", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", multiCollapseCount: "multiCollapseCount", optionValidation: ["isExtraOption", "optionValidation"], extraOptionPlaceholder: "extraOptionPlaceholder", use: "use", sortIcon: "sortIcon", sortPlaceholder: "sortPlaceholder", isFullWidthDropdown: "isFullWidthDropdown", withoutSelected: "withoutSelected", hideSelected: "hideSelected", addOption: "addOption", customSearchFn: "customSearchFn", disabled: "disabled", readonly: "readonly", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", popupPosition: "popupPosition", singleChange: "singleChange", scrollContainer: "scrollContainer", scrollStrategy: "scrollStrategy" }, outputs: { changed: "changed", modelChange: "modelChange" }, providers: [
12798
+ {
12799
+ provide: NG_VALUE_ACCESSOR,
12800
+ useExisting: forwardRef(() => SelectComponent),
12801
+ multi: true,
12802
+ },
12803
+ ], queries: [{ propertyName: "optionTemplate", first: true, predicate: ["optionTemplate"], descendants: true }, { propertyName: "labelTemplate", first: true, predicate: ["labelTemplate"], descendants: true }, { propertyName: "popupHeaderTemplate", first: true, predicate: ["popupHeaderTemplate"], descendants: true }, { propertyName: "popupFooterTemplate", first: true, predicate: ["popupFooterTemplate"], descendants: true }, { propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"getClasses\"\r\n class=\"mrx-select\"\r\n>\r\n <div class=\"mrx-select__wrapper\">\r\n <ng-container [ngSwitch]=\"use\">\r\n <ng-container *ngSwitchCase=\"'default'\">\r\n <div\r\n class=\"mrx-select__input\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [scrollContainerRef]=\"scrollContainer\"\r\n [scrollStrategy]=\"scrollStrategy\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__values\" *ngIf=\"multiple\">\r\n <ng-container *ngIf=\"multiCollapseCount && getSelectedLabels.length >= multiCollapseCount; else multipleNotCollapse\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {{ getSelectedLabels.length }}</p>\r\n <span *ngIf=\"!disabled && !readonly\" class=\"mrx-icon icon-close icon-font-16\" (click)=\"onClear($event)\"></span>\r\n </div>\r\n </ng-container>\r\n <ng-template #multipleNotCollapse>\r\n <ng-container *ngFor=\"let item of getSelectedLabels; let first = first; let last = last\">\r\n <ng-container *ngIf=\"labelTemplate; else defaultLabelTpl\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last, clear: clearItem.bind(this)}\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultLabelTpl>\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultLabelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-select__input__value\" *ngIf=\"!multiple\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__placeholder\">{{ placeholder }}</div>\r\n </ng-container>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n <mrx-loader\r\n *ngIf=\"isLoading\"\r\n [size]=\"size === 'large' ? 'small' : 'extra-small'\"\r\n [color]=\"'brand'\"\r\n ></mrx-loader>\r\n\r\n <div\r\n *ngIf=\"getSelectedLabels.length && clearable\"\r\n class=\"mrx-icon icon-close mrx-select__input__controls--icon\"\r\n [class]=\"getIconSize\"\r\n (click)=\"onClear($event)\"\r\n ></div>\r\n\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <div\r\n class=\"mrx-select__input-link\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <div class=\"mrx-select__input-link__controls\">\r\n <p *ngIf=\"sortPlaceholder\">{{ sortPlaceholder }}</p>\r\n\r\n <span\r\n *ngIf=\"sortIcon\"\r\n class=\"mrx-icon {{sortIcon === 'asc' ? 'icon-sorting-up' : 'icon-sorting-down'}}\"\r\n [class]=\"getIconSize\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-select__input-link__controls\">\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input-link__value\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"closable\" (toggle)=\"togglePopup($event)\">\r\n <ng-container *ngIf=\"filteredItems.length\">\r\n <ng-container *ngFor=\"let item of filteredItems; let first = first; let last = last\">\r\n <mrx-popup-item [custom]=\"true\" [id]=\"item.__id\" (clicked)=\"onSelect(item)\">\r\n <ng-container *ngIf=\"optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n </mrx-popup-item>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!filteredItems.length\">\r\n <mrx-popup-item [custom]=\"true\">\r\n <div class=\"mrx-select__dropdown__empty\">{{ emptyText }}</div>\r\n </mrx-popup-item>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngIf=\"searchable\">\r\n <div class=\"mrx-select__dropdown__search\">\r\n <mrx-input-search\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [(ngModel)]=\"searchValue\"\r\n ></mrx-input-search>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"contentTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupHeaderTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupHeaderTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngIf=\"!!addOption\">\r\n <div class=\"mrx-select__dropdown__extra-option\">\r\n <mrx-input-text\r\n class=\"flex-grow-1\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"extraOptionPlaceholder\"\r\n [(ngModel)]=\"model.label\"\r\n [maxlength]=\"300\"\r\n [invalid]=\"!!form.errors['label']\"\r\n [invalidMessage]=\"form.errors['label']\"\r\n (ngModelChange)=\"changeTextValueEmpty()\"\r\n ></mrx-input-text>\r\n\r\n <mrx-button\r\n [iconOnly]=\"true\"\r\n icon=\"<span class='mrx-icon icon-plus icon-font-24'></span>\"\r\n size=\"medium\"\r\n type=\"secondary\"\r\n (click)=\"onAddNewCustomOption()\"\r\n ></mrx-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupFooterTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupFooterTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </mrx-popup>\r\n </div>\r\n\r\n <ng-container *ngIf=\"invalid && isInvalidMessage\">\r\n <mrx-error-message [invalidMessage]=\"invalidMessage\"></mrx-error-message>\r\n </ng-container>\r\n\r\n <mrx-save-state [fields]=\"fields\" [id]=\"uuid\" [type]=\"'input'\"></mrx-save-state>\r\n</div>\r\n\r\n<ng-template #defaultLabelTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asLabel(item) as label\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>{{ bindLabel ? label.__origin[bindLabel] : label.__origin['label'] || label.__origin }}</p>\r\n <span class=\"mrx-icon icon-close icon-font-16\" (click)=\"onUnselect(label)\"></span>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultOptionTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <div class=\"mrx-select__dropdown__item\">\r\n <div class=\"mrx-select__dropdown__item--content\">\r\n <ng-container *ngIf=\"bindIcon && option.__origin[bindIcon]\">\r\n <span class=\"mrx-icon icon-font-24\" [class]=\"option[bindIcon]\"></span>\r\n </ng-container>\r\n\r\n <p>{{ bindLabel ? option.__origin[bindLabel] : option.__origin['label'] || option.__origin }}</p>\r\n </div>\r\n\r\n <ng-container *ngIf=\"option.__selected\">\r\n <span class=\"mrx-icon icon-check icon-font-24\"></span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mrx-select__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;height:100%;max-height:200px;overflow-y:auto}.mrx-select__input:focus,.mrx-select__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-select__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-select__input__box{flex-grow:1}.mrx-select__input__controls{display:flex;align-items:center;gap:8px;padding:5px 0}.mrx-select__input__controls--icon{position:relative}.mrx-select__input__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select__input-link{border-radius:var(--border-radius-1);background:var(--brand-bg-tertiary-default, #FFF);outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content}.mrx-select__input-link__box{flex-grow:1}.mrx-select__input-link__controls{display:flex;align-items:center;gap:8px}.mrx-select__input-link__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input-link__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input-link__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select.mrx-select-lg .mrx-select__input,.mrx-select.mrx-select-lg .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input__values,.mrx-select.mrx-select-lg .mrx-select__input-link__values{min-height:32px}.mrx-select.mrx-select-lg .mrx-select__input__badge,.mrx-select.mrx-select-lg .mrx-select__input-link__badge{padding:6px 8px 6px 12px}.mrx-select.mrx-select-lg .mrx-select__input__badge p,.mrx-select.mrx-select-lg .mrx-select__input-link__badge p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-3) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-lg .mrx-select__input__placeholder,.mrx-select.mrx-select-lg .mrx-select__input__value{padding:6px 8px}.mrx-select.mrx-select-lg .mrx-select__input__controls--icon{font-size:22px}.mrx-select.mrx-select-lg .mrx-select__input-link{padding:0}.mrx-select.mrx-select-lg .mrx-select__input-link__placeholder,.mrx-select.mrx-select-lg .mrx-select__input-link__value{padding:2px 0}.mrx-select.mrx-select-md .mrx-select__input,.mrx-select.mrx-select-md .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-md .mrx-select__input__values,.mrx-select.mrx-select-md .mrx-select__input-link__values{min-height:24px}.mrx-select.mrx-select-md .mrx-select__input__badge,.mrx-select.mrx-select-md .mrx-select__input-link__badge{padding:4px 4px 4px 8px}.mrx-select.mrx-select-md .mrx-select__input__badge p,.mrx-select.mrx-select-md .mrx-select__input-link__badge p{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-select.mrx-select-md .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-md .mrx-select__input__placeholder,.mrx-select.mrx-select-md .mrx-select__input__value{padding:2px 8px}.mrx-select.mrx-select-md .mrx-select__input-link,.mrx-select.mrx-select-md .mrx-select__input-link__placeholder,.mrx-select.mrx-select-md .mrx-select__input-link__value{padding:0}.mrx-select__input__value{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select__input__values{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.mrx-select__input__badge{display:flex;align-items:center;gap:4px;border-radius:4px;background-color:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-select__input__badge .icon-close{transform:scale(1);transition:transform .2s}.mrx-select__input__badge .icon-close:hover{transform:scale(1.1)}.mrx-select__input__placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-tertiary, #71767E)}.mrx-select__dropdown__item{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.mrx-select__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select__dropdown__item--content{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-grow:1}.mrx-select__dropdown__item--content p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding-top:2px;padding-bottom:2px}.mrx-select__dropdown__search{padding:8px;border-bottom:1.794px solid var(--neutral-bg-divider, #DBDFE5);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-select__dropdown__extra-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px;border-top:1.794px solid var(--neutral-bg-divider, #DBDFE5);border-top:var(--border-width-default) solid var(--neutral-bg-stroke-default)}.mrx-select__dropdown__empty{padding:8px 16px;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-input-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-select.mrx-input-checked-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-success .mrx-select__input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-select.mrx-input-checked-success .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-select.-disabled .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-select.-readonly .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-select.-readonly .mrx-select__input__placeholder{-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}\n"], components: [{ type: LoaderComponent, selector: "mrx-loader", inputs: ["size", "color", "customClasses"] }, { type: PopupComponent, selector: "mrx-popup", inputs: ["closeAfterClick", "minWidth"], outputs: ["toggle", "_toggleInner", "_updateInner"] }, { type: PopupItemComponent, selector: "mrx-popup-item", inputs: ["custom", "id", "disabled"], outputs: ["clicked"] }, { type: InputSearchComponent, selector: "mrx-input-search", inputs: ["fields", "disabled", "required", "readonly", "maxlength", "minlength", "placeholder", "customClasses", "mask", "size", "invalid", "invalidMessage", "checkInvalid", "restrictInput"], outputs: ["changed", "modelChange", "blurred", "cleared", "searched"] }, { type: InputTextComponent, selector: "mrx-input-text", inputs: ["fields", "disabled", "allowPattern", "required", "readonly", "maxlength", "minlength", "placeholder", "customClasses", "size", "isTooltipValue", "icon", "iconColor", "invalid", "invalidMessage", "checkInvalid", "restrictInput", "mask", "maskPrefix", "showMaskTyped", "maskDropSpecialCharacters"], outputs: ["changed", "blurred", "modelChange"] }, { type: ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: ["mrxPopupTrigger", "popupPosition", "isFullWidthDropdown", "minWidthDropdown", "maxWidthDropdown", "scrollContainerRef", "scrollStrategy"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12804
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, decorators: [{
12805
+ type: Component,
12806
+ args: [{ selector: 'mrx-select', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
12807
+ {
12808
+ provide: NG_VALUE_ACCESSOR,
12809
+ useExisting: forwardRef(() => SelectComponent),
12810
+ multi: true,
12811
+ },
12812
+ ], template: "<div\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"getClasses\"\r\n class=\"mrx-select\"\r\n>\r\n <div class=\"mrx-select__wrapper\">\r\n <ng-container [ngSwitch]=\"use\">\r\n <ng-container *ngSwitchCase=\"'default'\">\r\n <div\r\n class=\"mrx-select__input\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [scrollContainerRef]=\"scrollContainer\"\r\n [scrollStrategy]=\"scrollStrategy\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__values\" *ngIf=\"multiple\">\r\n <ng-container *ngIf=\"multiCollapseCount && getSelectedLabels.length >= multiCollapseCount; else multipleNotCollapse\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {{ getSelectedLabels.length }}</p>\r\n <span *ngIf=\"!disabled && !readonly\" class=\"mrx-icon icon-close icon-font-16\" (click)=\"onClear($event)\"></span>\r\n </div>\r\n </ng-container>\r\n <ng-template #multipleNotCollapse>\r\n <ng-container *ngFor=\"let item of getSelectedLabels; let first = first; let last = last\">\r\n <ng-container *ngIf=\"labelTemplate; else defaultLabelTpl\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last, clear: clearItem.bind(this)}\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultLabelTpl>\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultLabelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-select__input__value\" *ngIf=\"!multiple\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__placeholder\">{{ placeholder }}</div>\r\n </ng-container>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n <mrx-loader\r\n *ngIf=\"isLoading\"\r\n [size]=\"size === 'large' ? 'small' : 'extra-small'\"\r\n [color]=\"'brand'\"\r\n ></mrx-loader>\r\n\r\n <div\r\n *ngIf=\"getSelectedLabels.length && clearable\"\r\n class=\"mrx-icon icon-close mrx-select__input__controls--icon\"\r\n [class]=\"getIconSize\"\r\n (click)=\"onClear($event)\"\r\n ></div>\r\n\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <div\r\n class=\"mrx-select__input-link\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <div class=\"mrx-select__input-link__controls\">\r\n <p *ngIf=\"sortPlaceholder\">{{ sortPlaceholder }}</p>\r\n\r\n <span\r\n *ngIf=\"sortIcon\"\r\n class=\"mrx-icon {{sortIcon === 'asc' ? 'icon-sorting-up' : 'icon-sorting-down'}}\"\r\n [class]=\"getIconSize\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-select__input-link__controls\">\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input-link__value\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"closable\" (toggle)=\"togglePopup($event)\">\r\n <ng-container *ngIf=\"filteredItems.length\">\r\n <ng-container *ngFor=\"let item of filteredItems; let first = first; let last = last\">\r\n <mrx-popup-item [custom]=\"true\" [id]=\"item.__id\" (clicked)=\"onSelect(item)\">\r\n <ng-container *ngIf=\"optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n </mrx-popup-item>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!filteredItems.length\">\r\n <mrx-popup-item [custom]=\"true\">\r\n <div class=\"mrx-select__dropdown__empty\">{{ emptyText }}</div>\r\n </mrx-popup-item>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngIf=\"searchable\">\r\n <div class=\"mrx-select__dropdown__search\">\r\n <mrx-input-search\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [(ngModel)]=\"searchValue\"\r\n ></mrx-input-search>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"contentTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupHeaderTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupHeaderTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngIf=\"!!addOption\">\r\n <div class=\"mrx-select__dropdown__extra-option\">\r\n <mrx-input-text\r\n class=\"flex-grow-1\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"extraOptionPlaceholder\"\r\n [(ngModel)]=\"model.label\"\r\n [maxlength]=\"300\"\r\n [invalid]=\"!!form.errors['label']\"\r\n [invalidMessage]=\"form.errors['label']\"\r\n (ngModelChange)=\"changeTextValueEmpty()\"\r\n ></mrx-input-text>\r\n\r\n <mrx-button\r\n [iconOnly]=\"true\"\r\n icon=\"<span class='mrx-icon icon-plus icon-font-24'></span>\"\r\n size=\"medium\"\r\n type=\"secondary\"\r\n (click)=\"onAddNewCustomOption()\"\r\n ></mrx-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupFooterTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupFooterTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </mrx-popup>\r\n </div>\r\n\r\n <ng-container *ngIf=\"invalid && isInvalidMessage\">\r\n <mrx-error-message [invalidMessage]=\"invalidMessage\"></mrx-error-message>\r\n </ng-container>\r\n\r\n <mrx-save-state [fields]=\"fields\" [id]=\"uuid\" [type]=\"'input'\"></mrx-save-state>\r\n</div>\r\n\r\n<ng-template #defaultLabelTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asLabel(item) as label\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>{{ bindLabel ? label.__origin[bindLabel] : label.__origin['label'] || label.__origin }}</p>\r\n <span class=\"mrx-icon icon-close icon-font-16\" (click)=\"onUnselect(label)\"></span>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultOptionTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <div class=\"mrx-select__dropdown__item\">\r\n <div class=\"mrx-select__dropdown__item--content\">\r\n <ng-container *ngIf=\"bindIcon && option.__origin[bindIcon]\">\r\n <span class=\"mrx-icon icon-font-24\" [class]=\"option[bindIcon]\"></span>\r\n </ng-container>\r\n\r\n <p>{{ bindLabel ? option.__origin[bindLabel] : option.__origin['label'] || option.__origin }}</p>\r\n </div>\r\n\r\n <ng-container *ngIf=\"option.__selected\">\r\n <span class=\"mrx-icon icon-check icon-font-24\"></span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mrx-select__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;height:100%;max-height:200px;overflow-y:auto}.mrx-select__input:focus,.mrx-select__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-select__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-select__input__box{flex-grow:1}.mrx-select__input__controls{display:flex;align-items:center;gap:8px;padding:5px 0}.mrx-select__input__controls--icon{position:relative}.mrx-select__input__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select__input-link{border-radius:var(--border-radius-1);background:var(--brand-bg-tertiary-default, #FFF);outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content}.mrx-select__input-link__box{flex-grow:1}.mrx-select__input-link__controls{display:flex;align-items:center;gap:8px}.mrx-select__input-link__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input-link__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input-link__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select.mrx-select-lg .mrx-select__input,.mrx-select.mrx-select-lg .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input__values,.mrx-select.mrx-select-lg .mrx-select__input-link__values{min-height:32px}.mrx-select.mrx-select-lg .mrx-select__input__badge,.mrx-select.mrx-select-lg .mrx-select__input-link__badge{padding:6px 8px 6px 12px}.mrx-select.mrx-select-lg .mrx-select__input__badge p,.mrx-select.mrx-select-lg .mrx-select__input-link__badge p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-3) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-lg .mrx-select__input__placeholder,.mrx-select.mrx-select-lg .mrx-select__input__value{padding:6px 8px}.mrx-select.mrx-select-lg .mrx-select__input__controls--icon{font-size:22px}.mrx-select.mrx-select-lg .mrx-select__input-link{padding:0}.mrx-select.mrx-select-lg .mrx-select__input-link__placeholder,.mrx-select.mrx-select-lg .mrx-select__input-link__value{padding:2px 0}.mrx-select.mrx-select-md .mrx-select__input,.mrx-select.mrx-select-md .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-md .mrx-select__input__values,.mrx-select.mrx-select-md .mrx-select__input-link__values{min-height:24px}.mrx-select.mrx-select-md .mrx-select__input__badge,.mrx-select.mrx-select-md .mrx-select__input-link__badge{padding:4px 4px 4px 8px}.mrx-select.mrx-select-md .mrx-select__input__badge p,.mrx-select.mrx-select-md .mrx-select__input-link__badge p{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-select.mrx-select-md .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-md .mrx-select__input__placeholder,.mrx-select.mrx-select-md .mrx-select__input__value{padding:2px 8px}.mrx-select.mrx-select-md .mrx-select__input-link,.mrx-select.mrx-select-md .mrx-select__input-link__placeholder,.mrx-select.mrx-select-md .mrx-select__input-link__value{padding:0}.mrx-select__input__value{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select__input__values{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.mrx-select__input__badge{display:flex;align-items:center;gap:4px;border-radius:4px;background-color:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-select__input__badge .icon-close{transform:scale(1);transition:transform .2s}.mrx-select__input__badge .icon-close:hover{transform:scale(1.1)}.mrx-select__input__placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-tertiary, #71767E)}.mrx-select__dropdown__item{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.mrx-select__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select__dropdown__item--content{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-grow:1}.mrx-select__dropdown__item--content p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding-top:2px;padding-bottom:2px}.mrx-select__dropdown__search{padding:8px;border-bottom:1.794px solid var(--neutral-bg-divider, #DBDFE5);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-select__dropdown__extra-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px;border-top:1.794px solid var(--neutral-bg-divider, #DBDFE5);border-top:var(--border-width-default) solid var(--neutral-bg-stroke-default)}.mrx-select__dropdown__empty{padding:8px 16px;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-input-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-select.mrx-input-checked-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-success .mrx-select__input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-select.mrx-input-checked-success .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-select.-disabled .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-select.-readonly .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-select.-readonly .mrx-select__input__placeholder{-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}\n"] }]
12813
+ }], propDecorators: { fields: [{
12814
+ type: Input
12815
+ }], items: [{
12816
+ type: Input
12817
+ }], multiple: [{
12818
+ type: Input
12819
+ }], isLoading: [{
12820
+ type: Input
12821
+ }], searchable: [{
12822
+ type: Input
12823
+ }], clearable: [{
12824
+ type: Input
12825
+ }], closable: [{
12826
+ type: Input
12827
+ }], size: [{
12828
+ type: Input
12829
+ }], bindValue: [{
12830
+ type: Input
12831
+ }], bindLabel: [{
12832
+ type: Input
12833
+ }], bindIcon: [{
12834
+ type: Input
12835
+ }], emptyText: [{
12836
+ type: Input
12837
+ }], placeholder: [{
12838
+ type: Input
12839
+ }], searchPlaceholder: [{
12840
+ type: Input
12841
+ }], multiCollapseCount: [{
12842
+ type: Input
12843
+ }], optionValidation: [{
12844
+ type: Input,
12845
+ args: ['isExtraOption']
12846
+ }], extraOptionPlaceholder: [{
12847
+ type: Input
12848
+ }], use: [{
12849
+ type: Input
12850
+ }], sortIcon: [{
12851
+ type: Input
12852
+ }], sortPlaceholder: [{
12853
+ type: Input
12854
+ }], isFullWidthDropdown: [{
12855
+ type: Input
12856
+ }], withoutSelected: [{
12857
+ type: Input
12858
+ }], hideSelected: [{
12859
+ type: Input
12860
+ }], addOption: [{
12861
+ type: Input
12862
+ }], customSearchFn: [{
12863
+ type: Input
12864
+ }], disabled: [{
12865
+ type: Input
12866
+ }], readonly: [{
12867
+ type: Input
12868
+ }], invalid: [{
12869
+ type: Input
12870
+ }], invalidMessage: [{
12871
+ type: Input
12872
+ }], checkInvalid: [{
12873
+ type: Input
12874
+ }], popupPosition: [{
12875
+ type: Input
12876
+ }], singleChange: [{
12877
+ type: Input
12878
+ }], scrollContainer: [{
12879
+ type: Input
12880
+ }], scrollStrategy: [{
12881
+ type: Input
12882
+ }], dropdown: [{
12883
+ type: ViewChild,
12884
+ args: ['dropdown']
12885
+ }], optionTemplate: [{
12886
+ type: ContentChild,
12887
+ args: ['optionTemplate']
12888
+ }], labelTemplate: [{
12889
+ type: ContentChild,
12890
+ args: ['labelTemplate']
12891
+ }], popupHeaderTemplate: [{
12892
+ type: ContentChild,
12893
+ args: ['popupHeaderTemplate']
12894
+ }], popupFooterTemplate: [{
12895
+ type: ContentChild,
12896
+ args: ['popupFooterTemplate']
12897
+ }], contentTemplate: [{
12898
+ type: ContentChild,
12899
+ args: ['contentTemplate']
12900
+ }], changed: [{
12901
+ type: Output
12902
+ }], modelChange: [{
12903
+ type: Output
12904
+ }] } });
12905
+
12906
+ const maskConfigFunction = () => {
12907
+ return {
12908
+ validation: false,
12909
+ };
12910
+ };
12911
+ class SelectModule {
12912
+ }
12913
+ SelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12914
+ SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectModule, declarations: [SelectComponent], imports: [CommonModule,
12915
+ FormsModule,
12916
+ PopupModule,
12917
+ LoaderModule,
12918
+ InputTextModule,
12919
+ ErrorMessageModule,
12920
+ SaveStateModule,
12921
+ ButtonModule,
12922
+ InputSearchModule, i1$7.NgxMaskModule], exports: [SelectComponent] });
12923
+ SelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectModule, imports: [[
12924
+ CommonModule,
12925
+ FormsModule,
12926
+ PopupModule,
12927
+ LoaderModule,
12928
+ InputTextModule,
12929
+ ErrorMessageModule,
12930
+ SaveStateModule,
12931
+ ButtonModule,
12932
+ InputSearchModule,
12933
+ NgxMaskModule.forRoot(maskConfigFunction)
12934
+ ]] });
12935
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectModule, decorators: [{
12936
+ type: NgModule,
12937
+ args: [{
12938
+ declarations: [
12939
+ SelectComponent
12940
+ ],
12941
+ imports: [
12942
+ CommonModule,
12943
+ FormsModule,
12944
+ PopupModule,
12945
+ LoaderModule,
12946
+ InputTextModule,
12947
+ ErrorMessageModule,
12948
+ SaveStateModule,
12949
+ ButtonModule,
12950
+ InputSearchModule,
12951
+ NgxMaskModule.forRoot(maskConfigFunction)
12952
+ ],
12953
+ exports: [
12954
+ SelectComponent
12955
+ ]
12956
+ }]
12957
+ }] });
12958
+
12423
12959
  const bytesInOneMb = 1048576;
12424
12960
  function toBytes(mb) {
12425
12961
  return mb * bytesInOneMb;
@@ -19594,5 +20130,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
19594
20130
  * Generated bundle index. Do not edit.
19595
20131
  */
19596
20132
 
19597
- export { AlertColorClasses, AlertComponent, AlertIconClasses, AlertModule, BadgeColorClassesEnum, BadgeComponent, BadgeGroupComponent, BadgeSizeEnum, BadgeTagTypeClassesEnum, BadgeTargetTypesEnum, BadgeTypeEnum, BadgesModule, BreadcrumbsComponent, BreadcrumbsModule, BreadcrumbsTypeEnum, ButtonColorsEnum, ButtonComponent, ButtonIconPositionEnum, ButtonModule, ButtonSizesEnum, ButtonTypesEnum, CdkTooltipDirective, CdkTooltipModule, CharsLeftComponent, CharsLeftModule, CheckboxComponent, CheckboxGroupComponent, CheckboxGroupModule, CheckboxModule, ColumnComponent, ContentWrapperComponent, ContentWrapperModule, ContentWrapperTypeEnum, ContextMenuAttachDirective, ContextMenuComponent, ContextMenuContentComponent, ContextMenuFixedService, ContextMenuItemDirective, ContextMenuModule, ContextMenuService, ControlsItemComponent, ControlsVisibilityEnum, ControlsWrapperComponent, ControlsWrapperModule, CountriesISO, CountriesRusLabel, CountryISO, CurrencyModule, CurrencyPipe, DateFormatModule, DateFormatPipe, DateTimeFormatPipe, DefaultPagerSettings, DocumentEditorComponent, DocumentEditorModule, DropdownComponent, DropdownModule, EditorComponent, EditorModule, ErrorMessageComponent, ErrorMessageModule, FileUploadService, FormulaEditorComponent, FormulaEditorModule, GalleryComponent, GalleryModule, HideAfterClickDirective, HintErrorMessageComponent, HintErrorMessageModule, IconButtonComponent, IconButtonModule, IconButtonSizeEnum, IconButtonStateEnum, IconButtonTypeEnum, InputDateComponent, InputDateModule, InputDateSizesEnum$2 as InputDateSizesEnum, InputDateTimeComponent, InputDateTimeModule, InputDateTimeSizesEnum, InputDatepickerComponent, InputDatepickerModule, InputEditorModeEnum, InputFileComponent, InputFileImageComponent, InputFileImageModule, InputFileImageTypeEnum, InputFileModule, InputNumberComponent, InputNumberModule, InputNumberSizesEnum, InputOptComponent, InputOptModule, InputPasswordComponent, InputPasswordModule, InputPasswordSizesEnum, InputPhoneComponent, InputPhoneModule, InputSearchComponent, InputSearchModule, InputSearchSizesEnum, InputSelectComponent, InputSelectModule, InputSelectSizeEnum, InputTelComponent, InputTelModule, InputTelSizesEnum, InputTextComponent, InputTextIconColorEnum, InputTextModule, InputTextSizesEnum, InputTextareaComponent, InputTextareaModule, InputTextareaSizesEnum, InputTimepickerComponent, InputTimepickerModule, JsonEditorComponent, JsonEditorModule, JsonEditorOptions, LabelComponent, LabelModule, LinkComponent, LinkModule, LinkSizesEnum, LinkTargetTypesEnum, LinkTypesEnum, LoaderColorEnum, LoaderComponent, LoaderModule, LoaderSizesEnum, ModalAlignButtonsEnum, ModalColorEnum, ModalComponent, ModalModule, ModalSizesEnum, MrxAutoSaveActionsEnum, MrxAutosaveService, MrxFormValidator, NgxOtpBehavior, PagesNavComponent, PagesNavEnum, PagesNavModule, PaginatorComponent, PaginatorModule, PaginatorPositionCss, PdfViewerComponent, PdfViewerComponentModule, PhoneFormatModule, PhoneFormatPipe, PopupComponent, PopupItemComponent, PopupModule, PopupTriggerDirective, PreviewEnum, ProgressClasses, ProgressComponent, ProgressModule, RadioComponent, RadioGroupComponent, RadioGroupModule, RadioModule, RadioTypesEnum, RatingComponent, RatingModule, RatingSizesEnum, RatingValueSizesEnum, RatingWrapperSizesEnum, SafeModule, SafePipe, SaveStateComponent, SaveStateModule, SaveStoreModule, StepperClasses, StepperComponent, StepperModule, SwitchComponent, SwitchModule, SwitchSizeEnum, SwitchTypeEnum, TabComponent, TableComponent, TableModule, TableTypeEnum, TabsClasses, TabsGroupComponent, TabsModule, TabsTypesClasses, Timezone$1 as Timezone, Tooltip, TooltipComponent, TooltipModule, TooltipService, TooltipTextPositionEnum, TooltipTriggerComponent, TooltipTriggerEnum, TruncateDirective, TruncateDirectiveModule, TruncateModule, TruncatePipe, TruncateTextComponent, TruncateTextModule, ValidationMethodsEnum, ValidationOptionsEnum, ValidationTypesEnum, WarningMessageComponent, WarningMessageModule, WidgetWrapperComponent, WidgetWrapperModule, autosaveAddId, autosaveError, autosaveErrorFor, autosaveStart, autosaveStartFor, autosaveStop, autosaveStopFor, autosaveSuccess, autosaveSuccessFor, convertBase64ToFile, countryData, dateTimeFormat, formatBytes, formattingDateRange, formattingIsoToString, getBase64FromUrl, getHashCode, sHashCode, selectFields, selectMrxAutoSaveState, sliceDate, toBytes, toDate, toNumberFormat, wordForm };
20133
+ export { AlertColorClasses, AlertComponent, AlertIconClasses, AlertModule, BadgeColorClassesEnum, BadgeComponent, BadgeGroupComponent, BadgeSizeEnum, BadgeTagTypeClassesEnum, BadgeTargetTypesEnum, BadgeTypeEnum, BadgesModule, BreadcrumbsComponent, BreadcrumbsModule, BreadcrumbsTypeEnum, ButtonColorsEnum, ButtonComponent, ButtonIconPositionEnum, ButtonModule, ButtonSizesEnum, ButtonTypesEnum, CdkTooltipDirective, CdkTooltipModule, CharsLeftComponent, CharsLeftModule, CheckboxComponent, CheckboxGroupComponent, CheckboxGroupModule, CheckboxModule, ColumnComponent, ContentWrapperComponent, ContentWrapperModule, ContentWrapperTypeEnum, ContextMenuAttachDirective, ContextMenuComponent, ContextMenuContentComponent, ContextMenuFixedService, ContextMenuItemDirective, ContextMenuModule, ContextMenuService, ControlsItemComponent, ControlsVisibilityEnum, ControlsWrapperComponent, ControlsWrapperModule, CountriesISO, CountriesRusLabel, CountryISO, CurrencyModule, CurrencyPipe, DateFormatModule, DateFormatPipe, DateTimeFormatPipe, DefaultPagerSettings, DocumentEditorComponent, DocumentEditorModule, DropdownComponent, DropdownModule, EditorComponent, EditorModule, ErrorMessageComponent, ErrorMessageModule, FileUploadService, FormulaEditorComponent, FormulaEditorModule, GalleryComponent, GalleryModule, HideAfterClickDirective, HintErrorMessageComponent, HintErrorMessageModule, IconButtonComponent, IconButtonModule, IconButtonSizeEnum, IconButtonStateEnum, IconButtonTypeEnum, InputDateComponent, InputDateModule, InputDateSizesEnum$2 as InputDateSizesEnum, InputDateTimeComponent, InputDateTimeModule, InputDateTimeSizesEnum, InputDatepickerComponent, InputDatepickerModule, InputEditorModeEnum, InputFileComponent, InputFileImageComponent, InputFileImageModule, InputFileImageTypeEnum, InputFileModule, InputNumberComponent, InputNumberModule, InputNumberSizesEnum, InputOptComponent, InputOptModule, InputPasswordComponent, InputPasswordModule, InputPasswordSizesEnum, InputPhoneComponent, InputPhoneModule, InputSearchComponent, InputSearchModule, InputSearchSizesEnum, InputSelectComponent, InputSelectModule, InputSelectSizeEnum, InputTelComponent, InputTelModule, InputTelSizesEnum, InputTextComponent, InputTextIconColorEnum, InputTextModule, InputTextSizesEnum, InputTextareaComponent, InputTextareaModule, InputTextareaSizesEnum, InputTimepickerComponent, InputTimepickerModule, JsonEditorComponent, JsonEditorModule, JsonEditorOptions, LabelComponent, LabelModule, LinkComponent, LinkModule, LinkSizesEnum, LinkTargetTypesEnum, LinkTypesEnum, LoaderColorEnum, LoaderComponent, LoaderModule, LoaderSizesEnum, ModalAlignButtonsEnum, ModalColorEnum, ModalComponent, ModalModule, ModalSizesEnum, MrxAutoSaveActionsEnum, MrxAutosaveService, MrxFormValidator, NgxOtpBehavior, PagesNavComponent, PagesNavEnum, PagesNavModule, PaginatorComponent, PaginatorModule, PaginatorPositionCss, PdfViewerComponent, PdfViewerComponentModule, PhoneFormatModule, PhoneFormatPipe, PopupComponent, PopupItemComponent, PopupModule, PopupTriggerDirective, PreviewEnum, ProgressClasses, ProgressComponent, ProgressModule, RadioComponent, RadioGroupComponent, RadioGroupModule, RadioModule, RadioTypesEnum, RatingComponent, RatingModule, RatingSizesEnum, RatingValueSizesEnum, RatingWrapperSizesEnum, SafeModule, SafePipe, SaveStateComponent, SaveStateModule, SaveStoreModule, SelectComponent, SelectModule, SelectSizeEnum, StepperClasses, StepperComponent, StepperModule, SwitchComponent, SwitchModule, SwitchSizeEnum, SwitchTypeEnum, TabComponent, TableComponent, TableModule, TableTypeEnum, TabsClasses, TabsGroupComponent, TabsModule, TabsTypesClasses, Timezone$1 as Timezone, Tooltip, TooltipComponent, TooltipModule, TooltipService, TooltipTextPositionEnum, TooltipTriggerComponent, TooltipTriggerEnum, TruncateDirective, TruncateDirectiveModule, TruncateModule, TruncatePipe, TruncateTextComponent, TruncateTextModule, ValidationMethodsEnum, ValidationOptionsEnum, ValidationTypesEnum, WarningMessageComponent, WarningMessageModule, WidgetWrapperComponent, WidgetWrapperModule, autosaveAddId, autosaveError, autosaveErrorFor, autosaveStart, autosaveStartFor, autosaveStop, autosaveStopFor, autosaveSuccess, autosaveSuccessFor, convertBase64ToFile, countryData, dateTimeFormat, formatBytes, formattingDateRange, formattingIsoToString, getBase64FromUrl, getHashCode, sHashCode, selectFields, selectMrxAutoSaveState, sliceDate, toBytes, toDate, toNumberFormat, wordForm };
19598
20134
  //# sourceMappingURL=myrta-ui.mjs.map