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 * as i2$4 from 'ngx-image-cropper';
@@ -1730,15 +1731,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
1730
1731
 
1731
1732
  class PopupItemComponent {
1732
1733
  constructor() {
1734
+ this.custom = false;
1735
+ this.id = '';
1736
+ this.disabled = false;
1733
1737
  this.clicked = new EventEmitter();
1734
1738
  }
1739
+ itemClick() {
1740
+ if (!this.disabled) {
1741
+ this.clicked.emit();
1742
+ }
1743
+ }
1735
1744
  }
1736
1745
  PopupItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1737
- 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"] });
1746
+ 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"] });
1738
1747
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupItemComponent, decorators: [{
1739
1748
  type: Component,
1740
- 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"] }]
1741
- }], propDecorators: { templateRef: [{
1749
+ 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"] }]
1750
+ }], propDecorators: { custom: [{
1751
+ type: Input
1752
+ }], id: [{
1753
+ type: Input
1754
+ }], disabled: [{
1755
+ type: Input
1756
+ }], templateRef: [{
1742
1757
  type: ViewChild,
1743
1758
  args: [TemplateRef, { static: true }]
1744
1759
  }], clicked: [{
@@ -1748,68 +1763,158 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
1748
1763
  class PopupComponent {
1749
1764
  constructor() {
1750
1765
  this.closeAfterClick = true;
1751
- this.maxWidth = '800px';
1752
- this.closed = new EventEmitter();
1766
+ this.minWidth = '';
1767
+ this.toggle = new EventEmitter();
1768
+ this._toggleInner = new EventEmitter();
1769
+ this._updateInner = new EventEmitter();
1770
+ }
1771
+ togglePopup(value) {
1772
+ this._toggleInner.emit(value);
1773
+ }
1774
+ updatePopup() {
1775
+ this._updateInner.emit();
1753
1776
  }
1754
1777
  }
1755
1778
  PopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1756
- 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"] }] });
1779
+ 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"] }] });
1757
1780
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupComponent, decorators: [{
1758
1781
  type: Component,
1759
- 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"] }]
1782
+ 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"] }]
1760
1783
  }], propDecorators: { closeAfterClick: [{
1761
1784
  type: Input
1762
- }], maxWidth: [{
1785
+ }], minWidth: [{
1763
1786
  type: Input
1764
1787
  }], templateRef: [{
1765
1788
  type: ViewChild,
1766
1789
  args: [TemplateRef, { static: true }]
1790
+ }], headerTemplate: [{
1791
+ type: ContentChild,
1792
+ args: ['headerTemplate']
1793
+ }], footerTemplate: [{
1794
+ type: ContentChild,
1795
+ args: ['footerTemplate']
1767
1796
  }], popupItemComponents: [{
1768
1797
  type: ContentChildren,
1769
1798
  args: [PopupItemComponent]
1770
- }], closed: [{
1799
+ }], toggle: [{
1800
+ type: Output
1801
+ }], _toggleInner: [{
1802
+ type: Output
1803
+ }], _updateInner: [{
1771
1804
  type: Output
1772
1805
  }] } });
1773
1806
 
1774
- class PopupModule {
1775
- }
1776
- PopupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1777
- PopupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, declarations: [PopupComponent,
1778
- PopupItemComponent], imports: [CommonModule,
1779
- OverlayModule], exports: [PopupComponent,
1780
- PopupItemComponent] });
1781
- PopupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, imports: [[
1782
- CommonModule,
1783
- OverlayModule
1784
- ]] });
1785
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, decorators: [{
1786
- type: NgModule,
1787
- args: [{
1788
- declarations: [
1789
- PopupComponent,
1790
- PopupItemComponent
1791
- ],
1792
- imports: [
1793
- CommonModule,
1794
- OverlayModule
1795
- ],
1796
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
1797
- exports: [
1798
- PopupComponent,
1799
- PopupItemComponent
1800
- ]
1801
- }]
1802
- }] });
1807
+ const topPosition = {
1808
+ originX: 'center',
1809
+ originY: 'top',
1810
+ overlayX: 'center',
1811
+ overlayY: 'bottom',
1812
+ panelClass: 'top',
1813
+ };
1814
+ const bottomPosition = {
1815
+ originX: 'center',
1816
+ originY: 'bottom',
1817
+ overlayX: 'center',
1818
+ overlayY: 'top',
1819
+ panelClass: 'bottom',
1820
+ };
1821
+ const leftPosition = {
1822
+ originX: 'start',
1823
+ originY: 'center',
1824
+ overlayX: 'end',
1825
+ overlayY: 'center',
1826
+ panelClass: 'start',
1827
+ };
1828
+ const rightPosition = {
1829
+ originX: 'end',
1830
+ originY: 'center',
1831
+ overlayX: 'start',
1832
+ overlayY: 'center',
1833
+ panelClass: 'end',
1834
+ };
1835
+ const topStartPosition = {
1836
+ originX: 'start',
1837
+ originY: 'top',
1838
+ overlayX: 'start',
1839
+ overlayY: 'bottom',
1840
+ panelClass: 'top-start',
1841
+ };
1842
+ const topEndPosition = {
1843
+ originX: 'end',
1844
+ originY: 'top',
1845
+ overlayX: 'end',
1846
+ overlayY: 'bottom',
1847
+ panelClass: 'top-end',
1848
+ };
1849
+ const bottomStartPosition = {
1850
+ originX: 'start',
1851
+ originY: 'bottom',
1852
+ overlayX: 'start',
1853
+ overlayY: 'top',
1854
+ panelClass: 'bottom-start',
1855
+ };
1856
+ const bottomEndPosition = {
1857
+ originX: 'end',
1858
+ originY: 'bottom',
1859
+ overlayX: 'end',
1860
+ overlayY: 'top',
1861
+ panelClass: 'bottom-end',
1862
+ };
1863
+ var PositionEnum;
1864
+ (function (PositionEnum) {
1865
+ PositionEnum["Top"] = "top";
1866
+ PositionEnum["Bottom"] = "bottom";
1867
+ PositionEnum["Left"] = "left";
1868
+ PositionEnum["Right"] = "right";
1869
+ PositionEnum["TopStart"] = "top-start";
1870
+ PositionEnum["TopEnd"] = "top-end";
1871
+ PositionEnum["BottomStart"] = "bottom-start";
1872
+ PositionEnum["BottomEnd"] = "bottom-end";
1873
+ })(PositionEnum || (PositionEnum = {}));
1874
+ const PositionStrategyEnum = {
1875
+ [PositionEnum.Top]: [topPosition, bottomPosition, leftPosition, rightPosition],
1876
+ [PositionEnum.Bottom]: [bottomPosition, topPosition, leftPosition, rightPosition],
1877
+ [PositionEnum.Left]: [leftPosition, rightPosition, topPosition, bottomPosition],
1878
+ [PositionEnum.Right]: [rightPosition, leftPosition, topPosition, bottomPosition],
1879
+ [PositionEnum.TopStart]: [topStartPosition, topPosition, bottomStartPosition, bottomPosition],
1880
+ [PositionEnum.TopEnd]: [topEndPosition, topPosition, bottomEndPosition, bottomPosition],
1881
+ [PositionEnum.BottomStart]: [bottomStartPosition, bottomPosition, topStartPosition, topPosition],
1882
+ [PositionEnum.BottomEnd]: [bottomEndPosition, bottomPosition, topEndPosition, topPosition],
1883
+ };
1803
1884
 
1804
1885
  class PopupTriggerDirective {
1805
- constructor(overlay, elementRef, viewContainerRef, dispatcher) {
1886
+ constructor(overlay, elementRef, viewContainerRef, dispatcher, scrollDispatcher) {
1806
1887
  this.overlay = overlay;
1807
1888
  this.elementRef = elementRef;
1808
1889
  this.viewContainerRef = viewContainerRef;
1809
1890
  this.dispatcher = dispatcher;
1810
- this._subscriber$ = new Subscription();
1891
+ this.scrollDispatcher = scrollDispatcher;
1892
+ this._subscriberDetach$ = new Subscription();
1893
+ this._subscriberAttach$ = new Subscription();
1811
1894
  this._isDropdownOpen = false;
1812
1895
  this.popupPosition = 'bottom-start';
1896
+ this.isFullWidthDropdown = false;
1897
+ this.minWidthDropdown = '120px';
1898
+ this.scrollStrategy = 'close';
1899
+ }
1900
+ get getMinWidthDropdown() {
1901
+ return this.isFullWidthDropdown ? this.elementRef.nativeElement.getBoundingClientRect().width : this.minWidthDropdown;
1902
+ }
1903
+ get getMaxWidthDropdown() {
1904
+ return this.isFullWidthDropdown ? this.elementRef.nativeElement.getBoundingClientRect().width : this.maxWidthDropdown;
1905
+ }
1906
+ ngAfterViewInit() {
1907
+ this.popupPanel._toggleInner.subscribe(isOpen => {
1908
+ if (isOpen && !this._isDropdownOpen) {
1909
+ this.openDropdown();
1910
+ }
1911
+ if (!isOpen && this._isDropdownOpen) {
1912
+ this.closeDropdown();
1913
+ }
1914
+ });
1915
+ this.popupPanel._updateInner.subscribe(() => {
1916
+ asyncScheduler.schedule(() => this.updatePosition());
1917
+ });
1813
1918
  }
1814
1919
  togglePopup() {
1815
1920
  this._isDropdownOpen ? this.destroyDropdown() : this.openDropdown();
@@ -1820,25 +1925,51 @@ class PopupTriggerDirective {
1820
1925
  this._overlayRef = this.overlay.create({
1821
1926
  positionStrategy: this.getPositionStrategy(),
1822
1927
  hasBackdrop: false,
1823
- scrollStrategy: this.overlay.scrollStrategies.close(),
1928
+ scrollStrategy: this.scrollStrategy === 'reposition' ? this.overlay.scrollStrategies.reposition() : this.overlay.scrollStrategies.close(),
1824
1929
  backdropClass: 'cdk-overlay-transparent-backdrop',
1825
- panelClass: 'mrx-popup'
1930
+ panelClass: 'mrx-popup',
1931
+ minWidth: this.getMinWidthDropdown,
1932
+ maxWidth: this.getMaxWidthDropdown,
1826
1933
  });
1827
1934
  const templatePortal = new TemplatePortal(this.popupPanel.templateRef, this.viewContainerRef);
1828
1935
  this._overlayRef.attach(templatePortal);
1829
- this._subscriber$ = this._overlayRef.detachments().subscribe(_ => {
1936
+ this.popupPanel.toggle.emit(true);
1937
+ this._subscriberDetach$ = this._overlayRef.detachments().subscribe(_ => {
1830
1938
  this._isDropdownOpen = false;
1831
- this.popupPanel.closed.emit();
1939
+ this.popupPanel.toggle.emit(false);
1940
+ });
1941
+ this.scrollDispatcher.scrolled().subscribe((scrollable) => {
1942
+ if (scrollable &&
1943
+ this.scrollContainerRef &&
1944
+ scrollable.getElementRef().nativeElement === this.scrollContainerRef.nativeElement) {
1945
+ this._overlayRef?.updatePosition();
1946
+ }
1832
1947
  });
1833
1948
  }
1834
- close() {
1949
+ closeDropdown() {
1835
1950
  this.destroyDropdown();
1836
1951
  }
1952
+ updatePosition() {
1953
+ if (this._overlayRef) {
1954
+ this._overlayRef.updatePosition();
1955
+ }
1956
+ }
1957
+ updateSize() {
1958
+ if (this._overlayRef) {
1959
+ this._overlayRef.updateSize({
1960
+ minWidth: this.elementRef.nativeElement.getBoundingClientRect().width
1961
+ });
1962
+ }
1963
+ }
1837
1964
  getPositionStrategy() {
1838
- return this.overlay
1965
+ const overlay = this.overlay
1839
1966
  .position()
1840
1967
  .flexibleConnectedTo(this.elementRef)
1841
- .withPositions(positionStrategy[this.popupPosition]);
1968
+ .withPositions(PositionStrategyEnum[this.popupPosition]);
1969
+ if (this.scrollContainerRef) {
1970
+ overlay.withScrollableContainers([this.scrollContainerRef.nativeElement]);
1971
+ }
1972
+ return overlay;
1842
1973
  }
1843
1974
  destroyDropdown() {
1844
1975
  if (!this._overlayRef || !this._isDropdownOpen) {
@@ -1857,7 +1988,8 @@ class PopupTriggerDirective {
1857
1988
  if (this._overlayRef) {
1858
1989
  this._overlayRef.dispose();
1859
1990
  }
1860
- this._subscriber$.unsubscribe();
1991
+ this._subscriberDetach$.unsubscribe();
1992
+ this._subscriberAttach$.unsubscribe();
1861
1993
  }
1862
1994
  handleClick(event) {
1863
1995
  if (this.elementRef.nativeElement.contains(event.target))
@@ -1871,9 +2003,12 @@ class PopupTriggerDirective {
1871
2003
  }
1872
2004
  }
1873
2005
  }
2006
+ handleResize() {
2007
+ this.updateSize();
2008
+ }
1874
2009
  }
1875
- 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 });
1876
- 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 });
2010
+ 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 });
2011
+ 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 });
1877
2012
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupTriggerDirective, decorators: [{
1878
2013
  type: Directive,
1879
2014
  args: [{
@@ -1882,16 +2017,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
1882
2017
  '(click)': 'togglePopup()'
1883
2018
  }
1884
2019
  }]
1885
- }], ctorParameters: function () { return [{ type: i1$2.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$2.OverlayOutsideClickDispatcher }]; }, propDecorators: { popupPanel: [{
2020
+ }], ctorParameters: function () { return [{ type: i1$2.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$2.OverlayOutsideClickDispatcher }, { type: i1$2.ScrollDispatcher }]; }, propDecorators: { popupPanel: [{
1886
2021
  type: Input,
1887
2022
  args: ['mrxPopupTrigger']
1888
2023
  }], popupPosition: [{
1889
2024
  type: Input
2025
+ }], isFullWidthDropdown: [{
2026
+ type: Input
2027
+ }], minWidthDropdown: [{
2028
+ type: Input
2029
+ }], maxWidthDropdown: [{
2030
+ type: Input
2031
+ }], scrollContainerRef: [{
2032
+ type: Input
2033
+ }], scrollStrategy: [{
2034
+ type: Input
1890
2035
  }], handleClick: [{
1891
2036
  type: HostListener,
1892
2037
  args: ['document:click', ['$event']]
2038
+ }], handleResize: [{
2039
+ type: HostListener,
2040
+ args: ['window:resize', ['$event']]
1893
2041
  }] } });
1894
2042
 
2043
+ class PopupModule {
2044
+ }
2045
+ PopupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2046
+ PopupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, declarations: [PopupComponent,
2047
+ PopupItemComponent,
2048
+ PopupTriggerDirective], imports: [CommonModule,
2049
+ OverlayModule], exports: [PopupComponent,
2050
+ PopupItemComponent,
2051
+ PopupTriggerDirective] });
2052
+ PopupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, imports: [[
2053
+ CommonModule,
2054
+ OverlayModule
2055
+ ]] });
2056
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PopupModule, decorators: [{
2057
+ type: NgModule,
2058
+ args: [{
2059
+ declarations: [
2060
+ PopupComponent,
2061
+ PopupItemComponent,
2062
+ PopupTriggerDirective
2063
+ ],
2064
+ imports: [
2065
+ CommonModule,
2066
+ OverlayModule
2067
+ ],
2068
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
2069
+ exports: [
2070
+ PopupComponent,
2071
+ PopupItemComponent,
2072
+ PopupTriggerDirective
2073
+ ]
2074
+ }]
2075
+ }] });
2076
+
1895
2077
  class ErrorMessageComponent {
1896
2078
  constructor() {
1897
2079
  this.invalid = true;
@@ -5665,7 +5847,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
5665
5847
  }]
5666
5848
  }] });
5667
5849
 
5668
- const maskConfigFunction$8 = () => {
5850
+ const maskConfigFunction$9 = () => {
5669
5851
  return {
5670
5852
  validation: false,
5671
5853
  };
@@ -5684,7 +5866,7 @@ InputTextareaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
5684
5866
  CharsLeftModule,
5685
5867
  ErrorMessageModule,
5686
5868
  SaveStateModule,
5687
- NgxMaskModule.forRoot(maskConfigFunction$8),
5869
+ NgxMaskModule.forRoot(maskConfigFunction$9),
5688
5870
  AutosizeModule
5689
5871
  ]] });
5690
5872
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputTextareaModule, decorators: [{
@@ -5697,7 +5879,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
5697
5879
  CharsLeftModule,
5698
5880
  ErrorMessageModule,
5699
5881
  SaveStateModule,
5700
- NgxMaskModule.forRoot(maskConfigFunction$8),
5882
+ NgxMaskModule.forRoot(maskConfigFunction$9),
5701
5883
  AutosizeModule
5702
5884
  ],
5703
5885
  exports: [InputTextareaComponent],
@@ -6014,7 +6196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
6014
6196
  type: Output
6015
6197
  }] } });
6016
6198
 
6017
- const maskConfigFunction$7 = () => {
6199
+ const maskConfigFunction$8 = () => {
6018
6200
  return {
6019
6201
  validation: false,
6020
6202
  };
@@ -6035,7 +6217,7 @@ InputTextModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
6035
6217
  ErrorMessageModule,
6036
6218
  SaveStateModule,
6037
6219
  CdkTooltipModule,
6038
- NgxMaskModule.forRoot(maskConfigFunction$7)
6220
+ NgxMaskModule.forRoot(maskConfigFunction$8)
6039
6221
  ]] });
6040
6222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputTextModule, decorators: [{
6041
6223
  type: NgModule,
@@ -6048,7 +6230,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
6048
6230
  ErrorMessageModule,
6049
6231
  SaveStateModule,
6050
6232
  CdkTooltipModule,
6051
- NgxMaskModule.forRoot(maskConfigFunction$7)
6233
+ NgxMaskModule.forRoot(maskConfigFunction$8)
6052
6234
  ],
6053
6235
  exports: [InputTextComponent],
6054
6236
  }]
@@ -8531,7 +8713,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
8531
8713
  args: ['phoneInput']
8532
8714
  }] } });
8533
8715
 
8534
- const maskConfigFunction$6 = () => {
8716
+ const maskConfigFunction$7 = () => {
8535
8717
  return {
8536
8718
  validation: false,
8537
8719
  };
@@ -8552,7 +8734,7 @@ InputPhoneModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
8552
8734
  DropdownModule,
8553
8735
  SaveStateModule,
8554
8736
  ErrorMessageModule,
8555
- NgxMaskModule.forRoot(maskConfigFunction$6)
8737
+ NgxMaskModule.forRoot(maskConfigFunction$7)
8556
8738
  ]] });
8557
8739
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputPhoneModule, decorators: [{
8558
8740
  type: NgModule,
@@ -8566,7 +8748,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
8566
8748
  DropdownModule,
8567
8749
  SaveStateModule,
8568
8750
  ErrorMessageModule,
8569
- NgxMaskModule.forRoot(maskConfigFunction$6)
8751
+ NgxMaskModule.forRoot(maskConfigFunction$7)
8570
8752
  ],
8571
8753
  exports: [InputPhoneComponent]
8572
8754
  }]
@@ -8742,7 +8924,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
8742
8924
  type: Output
8743
8925
  }] } });
8744
8926
 
8745
- const maskConfigFunction$5 = () => {
8927
+ const maskConfigFunction$6 = () => {
8746
8928
  return {
8747
8929
  validation: false,
8748
8930
  };
@@ -8759,7 +8941,7 @@ InputSearchModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
8759
8941
  FormsModule,
8760
8942
  CharsLeftModule,
8761
8943
  ErrorMessageModule,
8762
- NgxMaskModule.forRoot(maskConfigFunction$5),
8944
+ NgxMaskModule.forRoot(maskConfigFunction$6),
8763
8945
  SaveStateModule
8764
8946
  ]] });
8765
8947
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputSearchModule, decorators: [{
@@ -8771,7 +8953,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
8771
8953
  FormsModule,
8772
8954
  CharsLeftModule,
8773
8955
  ErrorMessageModule,
8774
- NgxMaskModule.forRoot(maskConfigFunction$5),
8956
+ NgxMaskModule.forRoot(maskConfigFunction$6),
8775
8957
  SaveStateModule
8776
8958
  ],
8777
8959
  exports: [InputSearchComponent],
@@ -9299,7 +9481,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
9299
9481
  type: Output
9300
9482
  }] } });
9301
9483
 
9302
- const maskConfigFunction$4 = () => {
9484
+ const maskConfigFunction$5 = () => {
9303
9485
  return {
9304
9486
  validation: false,
9305
9487
  };
@@ -9318,7 +9500,7 @@ InputDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
9318
9500
  SaveStateModule,
9319
9501
  ErrorMessageModule,
9320
9502
  LabelModule,
9321
- NgxMaskModule.forRoot(maskConfigFunction$4),
9503
+ NgxMaskModule.forRoot(maskConfigFunction$5),
9322
9504
  ]] });
9323
9505
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDatepickerModule, decorators: [{
9324
9506
  type: NgModule,
@@ -9330,7 +9512,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
9330
9512
  SaveStateModule,
9331
9513
  ErrorMessageModule,
9332
9514
  LabelModule,
9333
- NgxMaskModule.forRoot(maskConfigFunction$4),
9515
+ NgxMaskModule.forRoot(maskConfigFunction$5),
9334
9516
  ],
9335
9517
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
9336
9518
  exports: [InputDatepickerComponent],
@@ -9639,84 +9821,6 @@ var InputDateSizesEnum$1;
9639
9821
  InputDateSizesEnum["large"] = "mrx-input-date-lg";
9640
9822
  })(InputDateSizesEnum$1 || (InputDateSizesEnum$1 = {}));
9641
9823
 
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
9824
  class InputDateComponent {
9721
9825
  constructor(_overlay, _detector, _elementRef) {
9722
9826
  this._overlay = _overlay;
@@ -10017,7 +10121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
10017
10121
  args: ['dateInput']
10018
10122
  }] } });
10019
10123
 
10020
- const maskConfigFunction$3 = () => {
10124
+ const maskConfigFunction$4 = () => {
10021
10125
  return {
10022
10126
  validation: false,
10023
10127
  };
@@ -10037,7 +10141,7 @@ InputDateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
10037
10141
  ErrorMessageModule,
10038
10142
  LabelModule,
10039
10143
  SaveStateModule,
10040
- NgxMaskModule.forRoot(maskConfigFunction$3)
10144
+ NgxMaskModule.forRoot(maskConfigFunction$4)
10041
10145
  ]] });
10042
10146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDateModule, decorators: [{
10043
10147
  type: NgModule,
@@ -10052,7 +10156,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
10052
10156
  ErrorMessageModule,
10053
10157
  LabelModule,
10054
10158
  SaveStateModule,
10055
- NgxMaskModule.forRoot(maskConfigFunction$3)
10159
+ NgxMaskModule.forRoot(maskConfigFunction$4)
10056
10160
  ],
10057
10161
  exports: [
10058
10162
  InputDateComponent
@@ -10646,7 +10750,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
10646
10750
  type: Output
10647
10751
  }] } });
10648
10752
 
10649
- const maskConfigFunction$2 = () => {
10753
+ const maskConfigFunction$3 = () => {
10650
10754
  return {
10651
10755
  validation: false,
10652
10756
  };
@@ -10665,7 +10769,7 @@ InputDateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
10665
10769
  SaveStateModule,
10666
10770
  ErrorMessageModule,
10667
10771
  LabelModule,
10668
- NgxMaskModule.forRoot(maskConfigFunction$2),
10772
+ NgxMaskModule.forRoot(maskConfigFunction$3),
10669
10773
  ]] });
10670
10774
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputDateTimeModule, decorators: [{
10671
10775
  type: NgModule,
@@ -10677,7 +10781,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
10677
10781
  SaveStateModule,
10678
10782
  ErrorMessageModule,
10679
10783
  LabelModule,
10680
- NgxMaskModule.forRoot(maskConfigFunction$2),
10784
+ NgxMaskModule.forRoot(maskConfigFunction$3),
10681
10785
  ],
10682
10786
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
10683
10787
  exports: [InputDateTimeComponent],
@@ -11039,7 +11143,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
11039
11143
  type: Output
11040
11144
  }] } });
11041
11145
 
11042
- const maskConfigFunction$1 = () => {
11146
+ const maskConfigFunction$2 = () => {
11043
11147
  return {
11044
11148
  validation: false,
11045
11149
  };
@@ -11058,7 +11162,7 @@ InputTimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
11058
11162
  SaveStateModule,
11059
11163
  ErrorMessageModule,
11060
11164
  LabelModule,
11061
- NgxMaskModule.forRoot(maskConfigFunction$1),
11165
+ NgxMaskModule.forRoot(maskConfigFunction$2),
11062
11166
  ]] });
11063
11167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputTimepickerModule, decorators: [{
11064
11168
  type: NgModule,
@@ -11070,7 +11174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
11070
11174
  SaveStateModule,
11071
11175
  ErrorMessageModule,
11072
11176
  LabelModule,
11073
- NgxMaskModule.forRoot(maskConfigFunction$1),
11177
+ NgxMaskModule.forRoot(maskConfigFunction$2),
11074
11178
  ],
11075
11179
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
11076
11180
  exports: [InputTimepickerComponent],
@@ -12413,7 +12517,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
12413
12517
  type: Output
12414
12518
  }] } });
12415
12519
 
12416
- const maskConfigFunction = () => {
12520
+ const maskConfigFunction$1 = () => {
12417
12521
  // системный формат числа с дробной частью и группой разраядов (тысячи)
12418
12522
  const c = Intl.NumberFormat().formatToParts(1234.5);
12419
12523
  const t = c.find(x => x.type === 'group')?.value;
@@ -12440,7 +12544,7 @@ InputNumberModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
12440
12544
  CharsLeftModule,
12441
12545
  SaveStateModule,
12442
12546
  ErrorMessageModule,
12443
- NgxMaskModule.forRoot(maskConfigFunction)
12547
+ NgxMaskModule.forRoot(maskConfigFunction$1)
12444
12548
  ]] });
12445
12549
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputNumberModule, decorators: [{
12446
12550
  type: NgModule,
@@ -12453,13 +12557,442 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
12453
12557
  CharsLeftModule,
12454
12558
  SaveStateModule,
12455
12559
  ErrorMessageModule,
12456
- NgxMaskModule.forRoot(maskConfigFunction)
12560
+ NgxMaskModule.forRoot(maskConfigFunction$1)
12457
12561
  ],
12458
12562
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
12459
12563
  exports: [InputNumberComponent],
12460
12564
  }]
12461
12565
  }] });
12462
12566
 
12567
+ var SelectSizeEnum;
12568
+ (function (SelectSizeEnum) {
12569
+ SelectSizeEnum["medium"] = "mrx-select-md";
12570
+ SelectSizeEnum["large"] = "mrx-select-lg";
12571
+ })(SelectSizeEnum || (SelectSizeEnum = {}));
12572
+
12573
+ const modifyOriginItems = (selected, bindValue) => {
12574
+ if (bindValue) {
12575
+ const modifiedSelected = [];
12576
+ for (let item of selected) {
12577
+ for (let key in item) {
12578
+ if (item.hasOwnProperty(bindValue) && key === bindValue) {
12579
+ modifiedSelected.push(item[bindValue]);
12580
+ }
12581
+ if (!item.hasOwnProperty(bindValue)) {
12582
+ modifiedSelected.push(null);
12583
+ break;
12584
+ }
12585
+ }
12586
+ }
12587
+ return modifiedSelected;
12588
+ }
12589
+ else {
12590
+ return selected;
12591
+ }
12592
+ };
12593
+
12594
+ const cleanSelectItems = (innerList) => innerList.map(cleanSelectItem);
12595
+ const cleanSelectItem = (innerItem) => innerItem.__origin;
12596
+
12597
+ const getSelectedItems = (innerItems, bindValue) => {
12598
+ return modifyOriginItems(cleanSelectItems(innerItems.filter(item => item.__selected)), bindValue);
12599
+ };
12600
+
12601
+ const getInnerItems = (items, selectedItems = [], bindValue) => {
12602
+ return items.map((item, idx) => {
12603
+ const findItem = selectedItems.find(i => isEqual(i, item));
12604
+ if (typeof item === 'object' && !Array.isArray(item)) {
12605
+ return { __origin: item, __id: item['id'] || idx, __selected: !!findItem };
12606
+ }
12607
+ else {
12608
+ return { __origin: item, __id: idx, __selected: !!findItem };
12609
+ }
12610
+ });
12611
+ };
12612
+
12613
+ const getInnerSelected = (items, selected, bindValue) => {
12614
+ const arr = items.filter(i => {
12615
+ if (bindValue) {
12616
+ return selected.some(x => isEqual(x, i[bindValue]));
12617
+ }
12618
+ else {
12619
+ return selected.some(x => isEqual(x, i));
12620
+ }
12621
+ });
12622
+ return arr;
12623
+ };
12624
+
12625
+ class SelectComponent {
12626
+ constructor() {
12627
+ this.searchValue = '';
12628
+ this.isOpen = false;
12629
+ this.originSelected = [];
12630
+ this.originItems = [];
12631
+ this.selected = [];
12632
+ this.innerItems = [];
12633
+ this.form = new MrxFormValidator();
12634
+ this.model = {
12635
+ label: '',
12636
+ };
12637
+ // SAVE STATE
12638
+ this.uuid = v4();
12639
+ this.fields = [];
12640
+ this.multiple = false;
12641
+ this.isLoading = false;
12642
+ this.searchable = false;
12643
+ this.clearable = true;
12644
+ this.closable = true;
12645
+ this.size = 'large';
12646
+ this.bindValue = null;
12647
+ this.bindLabel = null;
12648
+ this.bindIcon = null;
12649
+ this.emptyText = 'Не найдено';
12650
+ this.placeholder = 'Выберите значение';
12651
+ this.searchPlaceholder = 'Введите значение';
12652
+ this.multiCollapseCount = null;
12653
+ this.optionValidation = null;
12654
+ this.extraOptionPlaceholder = 'Введите значение';
12655
+ this.use = 'default';
12656
+ this.sortIcon = null;
12657
+ this.sortPlaceholder = '';
12658
+ this.isFullWidthDropdown = true;
12659
+ this.withoutSelected = false;
12660
+ this.hideSelected = false;
12661
+ this.disabled = false;
12662
+ this.readonly = false;
12663
+ this.invalid = false;
12664
+ this.invalidMessage = '';
12665
+ this.checkInvalid = null;
12666
+ this.popupPosition = PositionEnum.BottomStart;
12667
+ this.singleChange = false;
12668
+ this.scrollStrategy = 'close';
12669
+ this.changed = new EventEmitter();
12670
+ this.modelChange = new EventEmitter();
12671
+ this.onChange = (value) => {
12672
+ };
12673
+ this.onTouched = () => {
12674
+ };
12675
+ }
12676
+ set items(items) {
12677
+ this.originItems = items;
12678
+ this._updateSelected(this.originItems, this.originSelected);
12679
+ }
12680
+ ngOnInit() {
12681
+ if (this.optionValidation) {
12682
+ this.form.initFields(this.model, this.optionValidation);
12683
+ }
12684
+ }
12685
+ get readonlyClass() {
12686
+ return this.readonly ? 'mrx-input__readonly' : '';
12687
+ }
12688
+ get checkValidClasses() {
12689
+ return this.checkInvalid === false ?
12690
+ 'mrx-input-checked-success' :
12691
+ this.checkInvalid === true ? 'mrx-input-checked-error' : '';
12692
+ }
12693
+ get getClasses() {
12694
+ return `${SelectSizeEnum[this.size]} ${this.readonlyClass} ${this.checkValidClasses}`;
12695
+ }
12696
+ get getSelectedLabels() {
12697
+ if (this.withoutSelected) {
12698
+ return [];
12699
+ }
12700
+ else {
12701
+ return this.innerItems.filter(i => i.__selected);
12702
+ }
12703
+ }
12704
+ get filteredItems() {
12705
+ if (this.customSearchFn) {
12706
+ return this.innerItems.filter(item => {
12707
+ return this.customSearchFn?.(this.searchValue, item.__origin) ?? false;
12708
+ });
12709
+ }
12710
+ else {
12711
+ return this.innerItems.filter(i => {
12712
+ if (this.hideSelected) {
12713
+ if (this.bindLabel) {
12714
+ return String(i.__origin[this.bindLabel]).toLowerCase().includes(this.searchValue.toLocaleLowerCase()) && !i.__selected;
12715
+ }
12716
+ else {
12717
+ if (i.__origin['label']) {
12718
+ return String(i.__origin['label']).toLowerCase().includes(this.searchValue.toLocaleLowerCase()) && !i.__selected;
12719
+ }
12720
+ else {
12721
+ return String(i.__origin).toLowerCase().includes(this.searchValue.toLocaleLowerCase()) && !i.__selected;
12722
+ }
12723
+ }
12724
+ }
12725
+ else {
12726
+ if (this.bindLabel) {
12727
+ return String(i.__origin[this.bindLabel]).toLowerCase().includes(this.searchValue.toLocaleLowerCase());
12728
+ }
12729
+ else {
12730
+ if (i.__origin['label']) {
12731
+ return String(i.__origin['label']).toLowerCase().includes(this.searchValue.toLocaleLowerCase());
12732
+ }
12733
+ else {
12734
+ return String(i.__origin).toLowerCase().includes(this.searchValue.toLocaleLowerCase());
12735
+ }
12736
+ }
12737
+ }
12738
+ });
12739
+ }
12740
+ }
12741
+ get isInvalidMessage() {
12742
+ return !!this.invalidMessage || !!this.invalidMessage?.length;
12743
+ }
12744
+ get getIconSize() {
12745
+ return this.size === 'medium' ? 'icon-font-16' : 'icon-font-24';
12746
+ }
12747
+ onSelect(item) {
12748
+ if (!this.multiple) {
12749
+ this.innerItems = this.innerItems.map(i => {
12750
+ if (this.singleChange) {
12751
+ return { ...i, __selected: i.__id === item.__id };
12752
+ }
12753
+ if (this.use === 'default') {
12754
+ return { ...i, __selected: i.__id === item.__id ? !i.__selected : false };
12755
+ }
12756
+ else {
12757
+ return { ...i, __selected: i.__id === item.__id };
12758
+ }
12759
+ });
12760
+ }
12761
+ else {
12762
+ this.innerItems = this.innerItems.map(i => {
12763
+ return { ...i, __selected: i.__id === item.__id ? !i.__selected : i.__selected };
12764
+ });
12765
+ }
12766
+ this.dropdown.updatePopup();
12767
+ this._updateValue(this.innerItems);
12768
+ }
12769
+ clearItem(item) {
12770
+ this.onUnselect(item);
12771
+ }
12772
+ onUnselect(item) {
12773
+ this.innerItems.forEach(i => {
12774
+ if (i.__id === item.__id) {
12775
+ i.__selected = false;
12776
+ }
12777
+ });
12778
+ this._updateValue(this.innerItems);
12779
+ }
12780
+ onClear(event) {
12781
+ event.stopPropagation();
12782
+ this.innerItems = this.innerItems.map(item => ({ ...item, __selected: false }));
12783
+ this.dropdown.togglePopup(false);
12784
+ this._updateValue([]);
12785
+ }
12786
+ togglePopup(isOpen) {
12787
+ this.isOpen = isOpen;
12788
+ }
12789
+ asOption(option) {
12790
+ return option;
12791
+ }
12792
+ asLabel(label) {
12793
+ return label;
12794
+ }
12795
+ writeValue(selected = []) {
12796
+ this.originSelected = selected;
12797
+ this._updateSelected(this.originItems, this.originSelected);
12798
+ }
12799
+ changeTextValueEmpty() {
12800
+ this.form.initModelChanged(this.model);
12801
+ }
12802
+ onAddNewCustomOption() {
12803
+ if (this.form.isValid()) {
12804
+ this.addOption(this.model.label);
12805
+ this.model.label = '';
12806
+ this.changeTextValueEmpty();
12807
+ }
12808
+ }
12809
+ _updateSelected(items = [], selected = []) {
12810
+ if (this.multiple && Array.isArray(this.originSelected)) {
12811
+ this.selected = getInnerSelected(items, selected, this.bindValue);
12812
+ }
12813
+ else {
12814
+ this.selected = getInnerSelected(items, [selected], this.bindValue);
12815
+ }
12816
+ this.innerItems = getInnerItems(items, this.selected, this.bindValue);
12817
+ }
12818
+ _updateValue(selectedItems) {
12819
+ const clearedSelected = getSelectedItems(selectedItems, this.bindValue);
12820
+ const outputSelected = this.multiple ? clearedSelected : clearedSelected.length ? clearedSelected[0] : null;
12821
+ this.changed.emit(outputSelected);
12822
+ this.modelChange.emit({ value: outputSelected, id: this.uuid });
12823
+ this.onChange(outputSelected);
12824
+ this.onTouched();
12825
+ }
12826
+ registerOnChange(fn) {
12827
+ this.onChange = fn;
12828
+ }
12829
+ registerOnTouched(fn) {
12830
+ this.onTouched = fn;
12831
+ }
12832
+ }
12833
+ SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12834
+ 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: [
12835
+ {
12836
+ provide: NG_VALUE_ACCESSOR,
12837
+ useExisting: forwardRef(() => SelectComponent),
12838
+ multi: true,
12839
+ },
12840
+ ], 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 });
12841
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, decorators: [{
12842
+ type: Component,
12843
+ args: [{ selector: 'mrx-select', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
12844
+ {
12845
+ provide: NG_VALUE_ACCESSOR,
12846
+ useExisting: forwardRef(() => SelectComponent),
12847
+ multi: true,
12848
+ },
12849
+ ], 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"] }]
12850
+ }], propDecorators: { fields: [{
12851
+ type: Input
12852
+ }], items: [{
12853
+ type: Input
12854
+ }], multiple: [{
12855
+ type: Input
12856
+ }], isLoading: [{
12857
+ type: Input
12858
+ }], searchable: [{
12859
+ type: Input
12860
+ }], clearable: [{
12861
+ type: Input
12862
+ }], closable: [{
12863
+ type: Input
12864
+ }], size: [{
12865
+ type: Input
12866
+ }], bindValue: [{
12867
+ type: Input
12868
+ }], bindLabel: [{
12869
+ type: Input
12870
+ }], bindIcon: [{
12871
+ type: Input
12872
+ }], emptyText: [{
12873
+ type: Input
12874
+ }], placeholder: [{
12875
+ type: Input
12876
+ }], searchPlaceholder: [{
12877
+ type: Input
12878
+ }], multiCollapseCount: [{
12879
+ type: Input
12880
+ }], optionValidation: [{
12881
+ type: Input,
12882
+ args: ['isExtraOption']
12883
+ }], extraOptionPlaceholder: [{
12884
+ type: Input
12885
+ }], use: [{
12886
+ type: Input
12887
+ }], sortIcon: [{
12888
+ type: Input
12889
+ }], sortPlaceholder: [{
12890
+ type: Input
12891
+ }], isFullWidthDropdown: [{
12892
+ type: Input
12893
+ }], withoutSelected: [{
12894
+ type: Input
12895
+ }], hideSelected: [{
12896
+ type: Input
12897
+ }], addOption: [{
12898
+ type: Input
12899
+ }], customSearchFn: [{
12900
+ type: Input
12901
+ }], disabled: [{
12902
+ type: Input
12903
+ }], readonly: [{
12904
+ type: Input
12905
+ }], invalid: [{
12906
+ type: Input
12907
+ }], invalidMessage: [{
12908
+ type: Input
12909
+ }], checkInvalid: [{
12910
+ type: Input
12911
+ }], popupPosition: [{
12912
+ type: Input
12913
+ }], singleChange: [{
12914
+ type: Input
12915
+ }], scrollContainer: [{
12916
+ type: Input
12917
+ }], scrollStrategy: [{
12918
+ type: Input
12919
+ }], dropdown: [{
12920
+ type: ViewChild,
12921
+ args: ['dropdown']
12922
+ }], optionTemplate: [{
12923
+ type: ContentChild,
12924
+ args: ['optionTemplate']
12925
+ }], labelTemplate: [{
12926
+ type: ContentChild,
12927
+ args: ['labelTemplate']
12928
+ }], popupHeaderTemplate: [{
12929
+ type: ContentChild,
12930
+ args: ['popupHeaderTemplate']
12931
+ }], popupFooterTemplate: [{
12932
+ type: ContentChild,
12933
+ args: ['popupFooterTemplate']
12934
+ }], contentTemplate: [{
12935
+ type: ContentChild,
12936
+ args: ['contentTemplate']
12937
+ }], changed: [{
12938
+ type: Output
12939
+ }], modelChange: [{
12940
+ type: Output
12941
+ }] } });
12942
+
12943
+ const maskConfigFunction = () => {
12944
+ return {
12945
+ validation: false,
12946
+ };
12947
+ };
12948
+ class SelectModule {
12949
+ }
12950
+ SelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12951
+ SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectModule, declarations: [SelectComponent], imports: [CommonModule,
12952
+ FormsModule,
12953
+ PopupModule,
12954
+ LoaderModule,
12955
+ InputTextModule,
12956
+ ErrorMessageModule,
12957
+ SaveStateModule,
12958
+ ButtonModule,
12959
+ InputSearchModule, i1$7.NgxMaskModule], exports: [SelectComponent] });
12960
+ SelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectModule, imports: [[
12961
+ CommonModule,
12962
+ FormsModule,
12963
+ PopupModule,
12964
+ LoaderModule,
12965
+ InputTextModule,
12966
+ ErrorMessageModule,
12967
+ SaveStateModule,
12968
+ ButtonModule,
12969
+ InputSearchModule,
12970
+ NgxMaskModule.forRoot(maskConfigFunction)
12971
+ ]] });
12972
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectModule, decorators: [{
12973
+ type: NgModule,
12974
+ args: [{
12975
+ declarations: [
12976
+ SelectComponent
12977
+ ],
12978
+ imports: [
12979
+ CommonModule,
12980
+ FormsModule,
12981
+ PopupModule,
12982
+ LoaderModule,
12983
+ InputTextModule,
12984
+ ErrorMessageModule,
12985
+ SaveStateModule,
12986
+ ButtonModule,
12987
+ InputSearchModule,
12988
+ NgxMaskModule.forRoot(maskConfigFunction)
12989
+ ],
12990
+ exports: [
12991
+ SelectComponent
12992
+ ]
12993
+ }]
12994
+ }] });
12995
+
12463
12996
  const bytesInOneMb = 1048576;
12464
12997
  function toBytes(mb) {
12465
12998
  return mb * bytesInOneMb;
@@ -19618,5 +20151,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
19618
20151
  * Generated bundle index. Do not edit.
19619
20152
  */
19620
20153
 
19621
- 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 };
20154
+ 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 };
19622
20155
  //# sourceMappingURL=myrta-ui.mjs.map