myrta-ui 17.0.30 → 17.0.31

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 (32) hide show
  1. package/esm2022/lib/components/form/select/components/select/select.component.mjs +98 -0
  2. package/esm2022/lib/components/form/select/components/select-multi/select-multi.component.mjs +112 -0
  3. package/esm2022/lib/components/form/select/enums/index.mjs +1 -2
  4. package/esm2022/lib/components/form/select/helpers/clean-selected-items.helper.mjs +4 -0
  5. package/esm2022/lib/components/form/select/helpers/get-selected-items.helper.mjs +21 -0
  6. package/esm2022/lib/components/form/select/models/select-inner-item.model.mjs +2 -0
  7. package/esm2022/lib/components/form/select/models/select-item.model.mjs +2 -0
  8. package/esm2022/lib/components/form/select/select.module.mjs +15 -6
  9. package/esm2022/lib/components/popup/components/popup/popup.component.mjs +17 -6
  10. package/esm2022/lib/components/popup/components/popup-item/popup-item.component.mjs +8 -5
  11. package/esm2022/lib/components/popup/directives/popup-trigger.directive.mjs +43 -8
  12. package/esm2022/lib/services/modal-service/modal-service.service.mjs +4 -4
  13. package/esm2022/public-api.mjs +3 -2
  14. package/fesm2022/myrta-ui.mjs +253 -41
  15. package/fesm2022/myrta-ui.mjs.map +1 -1
  16. package/lib/components/form/select/components/select/select.component.d.ts +28 -0
  17. package/lib/components/form/select/components/select-multi/select-multi.component.d.ts +31 -0
  18. package/lib/components/form/select/enums/index.d.ts +0 -1
  19. package/lib/components/form/select/helpers/clean-selected-items.helper.d.ts +4 -0
  20. package/lib/components/form/select/helpers/get-selected-items.helper.d.ts +2 -0
  21. package/lib/components/form/select/models/select-inner-item.model.d.ts +5 -0
  22. package/lib/components/form/select/models/select-item.model.d.ts +3 -0
  23. package/lib/components/form/select/select.module.d.ts +6 -4
  24. package/lib/components/popup/components/popup/popup.component.d.ts +6 -2
  25. package/lib/components/popup/components/popup-item/popup-item.component.d.ts +2 -1
  26. package/lib/components/popup/directives/popup-trigger.directive.d.ts +9 -4
  27. package/package.json +1 -1
  28. package/public-api.d.ts +2 -1
  29. package/esm2022/lib/components/form/select/enums/select-type.enum.mjs +0 -6
  30. package/esm2022/lib/components/form/select/select.component.mjs +0 -62
  31. package/lib/components/form/select/enums/select-type.enum.d.ts +0 -5
  32. package/lib/components/form/select/select.component.d.ts +0 -21
@@ -16,14 +16,14 @@ import { OverlayModule } from '@angular/cdk/overlay';
16
16
  import { createPopper } from '@popperjs/core';
17
17
  import * as i6 from '@ng-select/ng-select';
18
18
  import { NgSelectModule } from '@ng-select/ng-select';
19
- import { Subscription, delay, of, Subject, filter, BehaviorSubject, EMPTY } from 'rxjs';
19
+ import { Subscription, asyncScheduler, delay, of, Subject, filter, BehaviorSubject, EMPTY } from 'rxjs';
20
20
  import * as i2$1 from '@angular/cdk/layout';
21
21
  import { Fancybox } from 'mrx-gallery-lib';
22
22
  import * as i1$5 from '@angular/common/http';
23
23
  import { HttpEventType, HttpClientModule } from '@angular/common/http';
24
24
  import * as i2$2 from '@ngrx/store';
25
25
  import { createAction, props, createReducer, on, StoreModule, createFeatureSelector, createSelector } from '@ngrx/store';
26
- import { cloneDeep } from 'lodash-es';
26
+ import { cloneDeep, isEqual } from 'lodash-es';
27
27
  import * as i1$6 from '@ngrx/effects';
28
28
  import { EffectsModule } from '@ngrx/effects';
29
29
  import * as i1$7 from 'ngx-toastr';
@@ -1549,15 +1549,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
1549
1549
  }] });
1550
1550
 
1551
1551
  class PopupItemComponent {
1552
+ custom = false;
1552
1553
  templateRef;
1553
1554
  clicked = new EventEmitter();
1554
1555
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PopupItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1555
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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"] });
1556
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PopupItemComponent, selector: "mrx-popup-item", inputs: { custom: "custom" }, 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\" [class.mrx-popup-item--default]=\"custom\" (click)=\"clicked.emit()\">\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n", styles: [".mrx-popup-item{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer}.mrx-popup-item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}\n"] });
1556
1557
  }
1557
1558
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PopupItemComponent, decorators: [{
1558
1559
  type: Component,
1559
- 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"] }]
1560
- }], propDecorators: { templateRef: [{
1560
+ args: [{ selector: 'mrx-popup-item', template: "<ng-template>\r\n <div class=\"mrx-popup-item\" [class.mrx-popup-item--default]=\"custom\" (click)=\"clicked.emit()\">\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n", styles: [".mrx-popup-item{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer}.mrx-popup-item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}\n"] }]
1561
+ }], propDecorators: { custom: [{
1562
+ type: Input
1563
+ }], templateRef: [{
1561
1564
  type: ViewChild,
1562
1565
  args: [TemplateRef, { static: true }]
1563
1566
  }], clicked: [{
@@ -1566,16 +1569,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
1566
1569
 
1567
1570
  class PopupComponent {
1568
1571
  closeAfterClick = true;
1569
- // @Input() maxWidth: string = '800px';
1570
1572
  templateRef;
1571
1573
  popupItemComponents;
1572
- closed = new EventEmitter();
1574
+ toggle = new EventEmitter();
1575
+ _toggleInner = new EventEmitter();
1576
+ _updateInner = new EventEmitter();
1577
+ togglePopup(value) {
1578
+ this._toggleInner.emit(value);
1579
+ }
1580
+ updatePopup() {
1581
+ this._updateInner.emit();
1582
+ }
1573
1583
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1574
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PopupComponent, selector: "mrx-popup", inputs: { closeAfterClick: "closeAfterClick" }, 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]=\"'100%'\">\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"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
1584
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PopupComponent, selector: "mrx-popup", inputs: { closeAfterClick: "closeAfterClick" }, outputs: { toggle: "toggle", _toggleInner: "_toggleInner", _updateInner: "_updateInner" }, 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]=\"'100%'\">\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{background-color:#fff;border-radius:4px;box-shadow:0 1px 4px #3a3a3a4d}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
1575
1585
  }
1576
1586
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PopupComponent, decorators: [{
1577
1587
  type: Component,
1578
- args: [{ selector: 'mrx-popup', template: "<ng-template>\r\n <div class=\"mrx-popup-content\" [style.width]=\"'100%'\">\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"] }]
1588
+ args: [{ selector: 'mrx-popup', template: "<ng-template>\r\n <div class=\"mrx-popup-content\" [style.width]=\"'100%'\">\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{background-color:#fff;border-radius:4px;box-shadow:0 1px 4px #3a3a3a4d}\n"] }]
1579
1589
  }], propDecorators: { closeAfterClick: [{
1580
1590
  type: Input
1581
1591
  }], templateRef: [{
@@ -1584,7 +1594,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
1584
1594
  }], popupItemComponents: [{
1585
1595
  type: ContentChildren,
1586
1596
  args: [PopupItemComponent]
1587
- }], closed: [{
1597
+ }], toggle: [{
1598
+ type: Output
1599
+ }], _toggleInner: [{
1600
+ type: Output
1601
+ }], _updateInner: [{
1588
1602
  type: Output
1589
1603
  }] } });
1590
1604
 
@@ -1593,7 +1607,8 @@ class PopupTriggerDirective {
1593
1607
  elementRef;
1594
1608
  viewContainerRef;
1595
1609
  dispatcher;
1596
- _subscriber$ = new Subscription();
1610
+ _subscriberDetach$ = new Subscription();
1611
+ _subscriberAttach$ = new Subscription();
1597
1612
  _isDropdownOpen = false;
1598
1613
  _overlayRef;
1599
1614
  popupPanel;
@@ -1604,6 +1619,20 @@ class PopupTriggerDirective {
1604
1619
  this.viewContainerRef = viewContainerRef;
1605
1620
  this.dispatcher = dispatcher;
1606
1621
  }
1622
+ ngAfterViewInit() {
1623
+ this.popupPanel._toggleInner.subscribe(isOpen => {
1624
+ console.log(isOpen);
1625
+ if (isOpen && !this._isDropdownOpen) {
1626
+ this.openDropdown();
1627
+ }
1628
+ if (!isOpen && this._isDropdownOpen) {
1629
+ this.closeDropdown();
1630
+ }
1631
+ });
1632
+ this.popupPanel._updateInner.subscribe(() => {
1633
+ asyncScheduler.schedule(() => this.updatePosition());
1634
+ });
1635
+ }
1607
1636
  togglePopup() {
1608
1637
  this._isDropdownOpen ? this.destroyDropdown() : this.openDropdown();
1609
1638
  }
@@ -1620,14 +1649,27 @@ class PopupTriggerDirective {
1620
1649
  });
1621
1650
  const templatePortal = new TemplatePortal(this.popupPanel.templateRef, this.viewContainerRef);
1622
1651
  this._overlayRef.attach(templatePortal);
1623
- this._subscriber$ = this._overlayRef.detachments().subscribe(_ => {
1652
+ this.popupPanel.toggle.emit(true);
1653
+ this._subscriberDetach$ = this._overlayRef.detachments().subscribe(_ => {
1624
1654
  this._isDropdownOpen = false;
1625
- this.popupPanel.closed.emit();
1655
+ this.popupPanel.toggle.emit(false);
1626
1656
  });
1627
1657
  }
1628
- close() {
1658
+ closeDropdown() {
1629
1659
  this.destroyDropdown();
1630
1660
  }
1661
+ updatePosition() {
1662
+ if (this._overlayRef) {
1663
+ this._overlayRef.updatePosition();
1664
+ }
1665
+ }
1666
+ updateSize() {
1667
+ if (this._overlayRef) {
1668
+ this._overlayRef.updateSize({
1669
+ minWidth: this.elementRef.nativeElement.getBoundingClientRect().width
1670
+ });
1671
+ }
1672
+ }
1631
1673
  getPositionStrategy() {
1632
1674
  return this.overlay
1633
1675
  .position()
@@ -1651,7 +1693,8 @@ class PopupTriggerDirective {
1651
1693
  if (this._overlayRef) {
1652
1694
  this._overlayRef.dispose();
1653
1695
  }
1654
- this._subscriber$.unsubscribe();
1696
+ this._subscriberDetach$.unsubscribe();
1697
+ this._subscriberAttach$.unsubscribe();
1655
1698
  }
1656
1699
  handleClick(event) {
1657
1700
  if (this.elementRef.nativeElement.contains(event.target))
@@ -1665,8 +1708,11 @@ class PopupTriggerDirective {
1665
1708
  }
1666
1709
  }
1667
1710
  }
1711
+ handleResize() {
1712
+ this.updateSize();
1713
+ }
1668
1714
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PopupTriggerDirective, deps: [{ token: i1$3.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$3.OverlayOutsideClickDispatcher }], target: i0.ɵɵFactoryTarget.Directive });
1669
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: { popupPanel: ["mrxPopupTrigger", "popupPanel"], popupPosition: "popupPosition" }, host: { listeners: { "click": "togglePopup()", "document:click": "handleClick($event)" } }, ngImport: i0 });
1715
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: { popupPanel: ["mrxPopupTrigger", "popupPanel"], popupPosition: "popupPosition" }, host: { listeners: { "click": "togglePopup()", "document:click": "handleClick($event)", "window:resize": "handleResize($event)" } }, ngImport: i0 });
1670
1716
  }
1671
1717
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PopupTriggerDirective, decorators: [{
1672
1718
  type: Directive,
@@ -1684,6 +1730,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
1684
1730
  }], handleClick: [{
1685
1731
  type: HostListener,
1686
1732
  args: ['document:click', ['$event']]
1733
+ }], handleResize: [{
1734
+ type: HostListener,
1735
+ args: ['window:resize', ['$event']]
1687
1736
  }] } });
1688
1737
 
1689
1738
  class PopupModule {
@@ -4542,9 +4591,9 @@ class ModalService {
4542
4591
  .centerVertically();
4543
4592
  const overlayRef = this.overlay.create({
4544
4593
  positionStrategy,
4545
- hasBackdrop: true,
4546
- backdropClass: 'mrx-modal',
4547
- panelClass: 'mrx-modal'
4594
+ hasBackdrop: config.hasBackdrop !== undefined ? config.hasBackdrop : true,
4595
+ backdropClass: config.backdropClass || ModalBackdropTypeClasses[config.type || ModalType.Modal],
4596
+ panelClass: config.panelClass || ModalTypeClasses[config.type || ModalType.Modal]
4548
4597
  });
4549
4598
  const dialogRef = new ModalRef(overlayRef, config, this, 'default');
4550
4599
  const injector = Injector.create({
@@ -16879,19 +16928,20 @@ var SelectSizeEnum;
16879
16928
  SelectSizeEnum["large"] = "mrx-select-lg";
16880
16929
  })(SelectSizeEnum || (SelectSizeEnum = {}));
16881
16930
 
16882
- var SelectTypeEnum;
16883
- (function (SelectTypeEnum) {
16884
- SelectTypeEnum["single"] = "mrx-select-single";
16885
- SelectTypeEnum["multi"] = "mrx-select-multi";
16886
- })(SelectTypeEnum || (SelectTypeEnum = {}));
16887
-
16888
16931
  class SelectComponent {
16889
- value = null;
16932
+ isOpen = false;
16933
+ selected = null;
16890
16934
  items = [];
16891
- type = 'single';
16892
16935
  size = 'large';
16936
+ bindValue = null;
16937
+ bindLabel = 'label';
16938
+ bindIcon = 'icon';
16939
+ dropdown;
16893
16940
  get getClasses() {
16894
- return `${SelectTypeEnum[this.type]} ${SelectSizeEnum[this.size]}`;
16941
+ return `${SelectSizeEnum[this.size]}`;
16942
+ }
16943
+ get getSelectedSingleLabels() {
16944
+ return this.selected?.[this.bindLabel] || '';
16895
16945
  }
16896
16946
  onChange = (value) => { };
16897
16947
  onTouched = () => { };
@@ -16901,27 +16951,48 @@ class SelectComponent {
16901
16951
  registerOnTouched(fn) {
16902
16952
  this.onTouched = fn;
16903
16953
  }
16904
- writeValue(obj) {
16954
+ writeValue(selected) {
16955
+ if (selected) {
16956
+ this.selected = selected;
16957
+ }
16905
16958
  }
16906
- updateValue(insideValue) {
16959
+ updateValue(selected) {
16960
+ this.selected = selected;
16961
+ // this.changed.emit(this.formatValue(insideValue));
16962
+ // this.modelChange.emit({value: this.formatValue(insideValue), id: this.uuid})
16963
+ this.onChange(this.bindValue ? this.selected[this.bindValue] : this.selected);
16964
+ this.onTouched();
16907
16965
  }
16908
- logger(value) {
16909
- console.log(value);
16966
+ onSelect(item) {
16967
+ this.selected = item;
16968
+ this.updateValue(item);
16910
16969
  }
16911
16970
  onOpen(event) {
16912
16971
  event.stopPropagation();
16972
+ if (this.isOpen) {
16973
+ this.dropdown.togglePopup(false);
16974
+ }
16975
+ else {
16976
+ this.dropdown.togglePopup(true);
16977
+ }
16913
16978
  }
16914
16979
  onClear(event) {
16915
16980
  event.stopPropagation();
16981
+ this.selected = null;
16982
+ this.updateValue(this.selected);
16983
+ this.dropdown.togglePopup(false);
16984
+ }
16985
+ togglePopup(isOpen) {
16986
+ this.isOpen = isOpen;
16916
16987
  }
16917
16988
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16918
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SelectComponent, selector: "mrx-select", inputs: { items: "items", type: "type", size: "size" }, providers: [
16989
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SelectComponent, selector: "mrx-select", inputs: { items: "items", size: "size", bindValue: "bindValue", bindLabel: "bindLabel", bindIcon: "bindIcon" }, providers: [
16919
16990
  {
16920
16991
  provide: NG_VALUE_ACCESSOR,
16921
16992
  useExisting: forwardRef(() => SelectComponent),
16922
16993
  multi: true,
16923
16994
  },
16924
- ], ngImport: i0, template: "<div class=\"mrx-select\" [class]=\"getClasses\">\r\n <div class=\"mrx-select__wrapper\">\r\n @switch (type) {\r\n @case ('multi') {\r\n\r\n }\r\n @default {\r\n <div class=\"mrx-select__input\" [mrxPopupTrigger]=\"dropdown\">\r\n <div class=\"mrx-select__input__box\">\r\n @if (value) {\r\n <div class=\"mrx-select__input__value\"></div>\r\n }\r\n @else {\r\n <div class=\"mrx-select__input__placeholder\"></div>\r\n }\r\n </div>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n <div class=\"mrx-select__input__controls--item\" (click)=\"onClear($event)\">\r\n <span class=\"mrx-icon icon-close icon-font-24\"></span>\r\n </div>\r\n <div class=\"mrx-select__input__controls--item\" (click)=\"onOpen($event)\">\r\n <span class=\"mrx-icon icon-chevron-down icon-font-24\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mrx-popup #dropdown (closed)=\"logger('closed')\" [closeAfterClick]=\"true\">\r\n <mrx-popup-item (clicked)=\"logger('clicked')\">Cut</mrx-popup-item>\r\n <mrx-popup-item (clicked)=\"logger('clicked')\">Copy</mrx-popup-item>\r\n <mrx-popup-item (clicked)=\"logger('clicked')\">Paste</mrx-popup-item>\r\n </mrx-popup>\r\n }\r\n }\r\n </div>\r\n</div>\r\n", styles: [".mrx-select.mrx-select-single .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:center;justify-content:space-between;gap:8px}.mrx-select.mrx-select-single .mrx-select__input:focus,.mrx-select.mrx-select-single .mrx-select__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-select.mrx-select-single .mrx-select__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-select.mrx-select-single .mrx-select__input__box{flex-grow:1}.mrx-select.mrx-select-single .mrx-select__input__controls{display:flex;align-items:center;gap:8px}.mrx-select.mrx-select-single .mrx-select__input__controls--item{display:flex;align-items:center;justify-content:center;border-radius:4px;background-color:transparent;transition:background-color .2s}.mrx-select.mrx-select-single .mrx-select__input__controls--item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select.mrx-select-single.mrx-select-lg .mrx-select__input{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:calc(var(--spacing-3) - var(--border-width-default)) var(--spacing-4)}.mrx-select.mrx-select-single.mrx-select-lg .mrx-select__input__box{min-height:24px}\n"], dependencies: [{ kind: "component", type: PopupComponent, selector: "mrx-popup", inputs: ["closeAfterClick"], outputs: ["closed"] }, { kind: "component", type: PopupItemComponent, selector: "mrx-popup-item", outputs: ["clicked"] }, { kind: "directive", type: PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: ["mrxPopupTrigger", "popupPosition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16995
+ ], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-select\" [class]=\"getClasses\">\r\n <div class=\"mrx-select__wrapper\">\r\n {{ selected | json }}\r\n <div class=\"mrx-select__input\" [mrxPopupTrigger]=\"dropdown\">\r\n <div class=\"mrx-select__input__box\">\r\n @if (getSelectedSingleLabels) {\r\n <div class=\"mrx-select__input__value\">{{ getSelectedSingleLabels }}</div>\r\n } @else {\r\n <div class=\"mrx-select__input__placeholder\"></div>\r\n }\r\n </div>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n @if (selected) {\r\n <div class=\"mrx-select__input__controls--item\" (click)=\"onClear($event)\">\r\n <span class=\"mrx-icon icon-close icon-font-24\"></span>\r\n </div>\r\n }\r\n <div class=\"mrx-select__input__controls--item\" (click)=\"onOpen($event)\">\r\n @if (isOpen) {\r\n <span class=\"mrx-icon icon-chevron-up icon-font-24\"></span>\r\n } @else {\r\n <span class=\"mrx-icon icon-chevron-down icon-font-24\"></span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"true\" (toggle)=\"togglePopup($event)\">\r\n @for (item of items; track item.name) {\r\n <mrx-popup-item [custom]=\"true\" (clicked)=\"onSelect(item)\">\r\n {{ item.label }}\r\n </mrx-popup-item>\r\n }\r\n </mrx-popup>\r\n </div>\r\n</div>\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:center;justify-content:space-between;gap:8px}.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}.mrx-select__input__controls--item{display:flex;align-items:center;justify-content:center;border-radius:4px;background-color:transparent;transition:background-color .2s}.mrx-select__input__controls--item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select.mrx-select-lg .mrx-select__input{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:calc(var(--spacing-3) - var(--border-width-default)) var(--spacing-4)}.mrx-select.mrx-select-lg .mrx-select__input__box{min-height:24px}.mrx-select__dropdown__item{padding:8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;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__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}\n"], dependencies: [{ kind: "component", type: PopupComponent, selector: "mrx-popup", inputs: ["closeAfterClick"], outputs: ["toggle", "_toggleInner", "_updateInner"] }, { kind: "component", type: PopupItemComponent, selector: "mrx-popup-item", inputs: ["custom"], outputs: ["clicked"] }, { kind: "directive", type: PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: ["mrxPopupTrigger", "popupPosition"] }, { kind: "pipe", type: i1$1.JsonPipe, name: "json" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16925
16996
  }
16926
16997
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectComponent, decorators: [{
16927
16998
  type: Component,
@@ -16931,34 +17002,175 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
16931
17002
  useExisting: forwardRef(() => SelectComponent),
16932
17003
  multi: true,
16933
17004
  },
16934
- ], template: "<div class=\"mrx-select\" [class]=\"getClasses\">\r\n <div class=\"mrx-select__wrapper\">\r\n @switch (type) {\r\n @case ('multi') {\r\n\r\n }\r\n @default {\r\n <div class=\"mrx-select__input\" [mrxPopupTrigger]=\"dropdown\">\r\n <div class=\"mrx-select__input__box\">\r\n @if (value) {\r\n <div class=\"mrx-select__input__value\"></div>\r\n }\r\n @else {\r\n <div class=\"mrx-select__input__placeholder\"></div>\r\n }\r\n </div>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n <div class=\"mrx-select__input__controls--item\" (click)=\"onClear($event)\">\r\n <span class=\"mrx-icon icon-close icon-font-24\"></span>\r\n </div>\r\n <div class=\"mrx-select__input__controls--item\" (click)=\"onOpen($event)\">\r\n <span class=\"mrx-icon icon-chevron-down icon-font-24\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mrx-popup #dropdown (closed)=\"logger('closed')\" [closeAfterClick]=\"true\">\r\n <mrx-popup-item (clicked)=\"logger('clicked')\">Cut</mrx-popup-item>\r\n <mrx-popup-item (clicked)=\"logger('clicked')\">Copy</mrx-popup-item>\r\n <mrx-popup-item (clicked)=\"logger('clicked')\">Paste</mrx-popup-item>\r\n </mrx-popup>\r\n }\r\n }\r\n </div>\r\n</div>\r\n", styles: [".mrx-select.mrx-select-single .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:center;justify-content:space-between;gap:8px}.mrx-select.mrx-select-single .mrx-select__input:focus,.mrx-select.mrx-select-single .mrx-select__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-select.mrx-select-single .mrx-select__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-select.mrx-select-single .mrx-select__input__box{flex-grow:1}.mrx-select.mrx-select-single .mrx-select__input__controls{display:flex;align-items:center;gap:8px}.mrx-select.mrx-select-single .mrx-select__input__controls--item{display:flex;align-items:center;justify-content:center;border-radius:4px;background-color:transparent;transition:background-color .2s}.mrx-select.mrx-select-single .mrx-select__input__controls--item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select.mrx-select-single.mrx-select-lg .mrx-select__input{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:calc(var(--spacing-3) - var(--border-width-default)) var(--spacing-4)}.mrx-select.mrx-select-single.mrx-select-lg .mrx-select__input__box{min-height:24px}\n"] }]
17005
+ ], template: "<div class=\"mrx-select\" [class]=\"getClasses\">\r\n <div class=\"mrx-select__wrapper\">\r\n {{ selected | json }}\r\n <div class=\"mrx-select__input\" [mrxPopupTrigger]=\"dropdown\">\r\n <div class=\"mrx-select__input__box\">\r\n @if (getSelectedSingleLabels) {\r\n <div class=\"mrx-select__input__value\">{{ getSelectedSingleLabels }}</div>\r\n } @else {\r\n <div class=\"mrx-select__input__placeholder\"></div>\r\n }\r\n </div>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n @if (selected) {\r\n <div class=\"mrx-select__input__controls--item\" (click)=\"onClear($event)\">\r\n <span class=\"mrx-icon icon-close icon-font-24\"></span>\r\n </div>\r\n }\r\n <div class=\"mrx-select__input__controls--item\" (click)=\"onOpen($event)\">\r\n @if (isOpen) {\r\n <span class=\"mrx-icon icon-chevron-up icon-font-24\"></span>\r\n } @else {\r\n <span class=\"mrx-icon icon-chevron-down icon-font-24\"></span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"true\" (toggle)=\"togglePopup($event)\">\r\n @for (item of items; track item.name) {\r\n <mrx-popup-item [custom]=\"true\" (clicked)=\"onSelect(item)\">\r\n {{ item.label }}\r\n </mrx-popup-item>\r\n }\r\n </mrx-popup>\r\n </div>\r\n</div>\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:center;justify-content:space-between;gap:8px}.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}.mrx-select__input__controls--item{display:flex;align-items:center;justify-content:center;border-radius:4px;background-color:transparent;transition:background-color .2s}.mrx-select__input__controls--item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select.mrx-select-lg .mrx-select__input{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:calc(var(--spacing-3) - var(--border-width-default)) var(--spacing-4)}.mrx-select.mrx-select-lg .mrx-select__input__box{min-height:24px}.mrx-select__dropdown__item{padding:8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;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__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}\n"] }]
16935
17006
  }], propDecorators: { items: [{
16936
17007
  type: Input
16937
- }], type: [{
17008
+ }], size: [{
17009
+ type: Input
17010
+ }], bindValue: [{
17011
+ type: Input
17012
+ }], bindLabel: [{
17013
+ type: Input
17014
+ }], bindIcon: [{
17015
+ type: Input
17016
+ }], dropdown: [{
17017
+ type: ViewChild,
17018
+ args: ['dropdown']
17019
+ }] } });
17020
+
17021
+ const getSelectedItems = (selected, bindValue) => {
17022
+ if (bindValue) {
17023
+ const modifiedSelected = [];
17024
+ for (let item of selected) {
17025
+ for (let key in item) {
17026
+ if (item.hasOwnProperty(bindValue) && key === bindValue) {
17027
+ modifiedSelected.push(item[bindValue]);
17028
+ }
17029
+ if (!item.hasOwnProperty(bindValue)) {
17030
+ modifiedSelected.push(null);
17031
+ break;
17032
+ }
17033
+ }
17034
+ }
17035
+ return modifiedSelected;
17036
+ }
17037
+ else {
17038
+ return selected;
17039
+ }
17040
+ };
17041
+
17042
+ const cleanSelectedItems = (innerList) => {
17043
+ return innerList.map(({ __id, __selected, ...rest }) => rest);
17044
+ };
17045
+
17046
+ class SelectMultiComponent {
17047
+ isOpen = false;
17048
+ originItems = [];
17049
+ innerItems = [];
17050
+ set items(list) {
17051
+ this.originItems = list;
17052
+ this.innerItems = list.map((item, idx) => ({
17053
+ ...item, __id: item['id'] || idx, __selected: false
17054
+ }));
17055
+ }
17056
+ size = 'large';
17057
+ bindValue = null;
17058
+ bindLabel = 'label';
17059
+ bindIcon = 'icon';
17060
+ dropdown;
17061
+ get getClasses() {
17062
+ return `${SelectSizeEnum[this.size]}`;
17063
+ }
17064
+ get getSelectedMultiLabels() {
17065
+ return this.innerItems.filter(i => i.__selected);
17066
+ }
17067
+ onChange = (value) => {
17068
+ };
17069
+ onTouched = () => {
17070
+ };
17071
+ registerOnChange(fn) {
17072
+ this.onChange = fn;
17073
+ }
17074
+ registerOnTouched(fn) {
17075
+ this.onTouched = fn;
17076
+ }
17077
+ writeValue(selected = []) {
17078
+ if (selected) {
17079
+ this.innerItems = this.originItems.map((item, idx) => {
17080
+ const findItem = selected.find(i => isEqual(i, item));
17081
+ return { ...item, __id: item['id'] || idx, __selected: !!findItem };
17082
+ });
17083
+ }
17084
+ }
17085
+ updateValue(selected) {
17086
+ console.log(selected);
17087
+ // this.changed.emit(this.formatValue(insideValue));
17088
+ // this.modelChange.emit({value: this.formatValue(insideValue), id: this.uuid})
17089
+ // this.onChange(getSelectedItems(this.selected, this.bindValue));
17090
+ this.onTouched();
17091
+ }
17092
+ onSelectMulti(item) {
17093
+ item.__selected = !item.__selected;
17094
+ this.dropdown.updatePopup();
17095
+ this.updateValue(getSelectedItems(cleanSelectedItems(this.innerItems.filter(item => item.__selected)), this.bindValue));
17096
+ }
17097
+ onOpen(event) {
17098
+ event.stopPropagation();
17099
+ if (this.isOpen) {
17100
+ this.dropdown.togglePopup(false);
17101
+ }
17102
+ else {
17103
+ this.dropdown.togglePopup(true);
17104
+ }
17105
+ }
17106
+ onClear(event) {
17107
+ event.stopPropagation();
17108
+ this.innerItems = this.innerItems.map(item => ({ ...item, __selected: false }));
17109
+ this.dropdown.togglePopup(false);
17110
+ this.updateValue([]);
17111
+ }
17112
+ togglePopup(isOpen) {
17113
+ this.isOpen = isOpen;
17114
+ }
17115
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectMultiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17116
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SelectMultiComponent, selector: "mrx-select-multi", inputs: { items: "items", size: "size", bindValue: "bindValue", bindLabel: "bindLabel", bindIcon: "bindIcon" }, providers: [
17117
+ {
17118
+ provide: NG_VALUE_ACCESSOR,
17119
+ useExisting: forwardRef(() => SelectMultiComponent),
17120
+ multi: true,
17121
+ },
17122
+ ], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-select\" [class]=\"getClasses\">\r\n <div class=\"mrx-select__wrapper\">\r\n <div class=\"mrx-select__input\" [mrxPopupTrigger]=\"dropdown\">\r\n <div class=\"mrx-select__input__box\">\r\n @if (getSelectedMultiLabels.length) {\r\n <div class=\"mrx-select__input__value\">\r\n @for (item of getSelectedMultiLabels; track item) {\r\n {{ item[bindLabel] }}\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"mrx-select__input__placeholder\"></div>\r\n }\r\n </div>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n @if (getSelectedMultiLabels.length) {\r\n <div class=\"mrx-select__input__controls--item\" (click)=\"onClear($event)\">\r\n <span class=\"mrx-icon icon-close icon-font-24\"></span>\r\n </div>\r\n }\r\n <div class=\"mrx-select__input__controls--item\" (click)=\"onOpen($event)\">\r\n @if (isOpen) {\r\n <span class=\"mrx-icon icon-chevron-up icon-font-24\"></span>\r\n } @else {\r\n <span class=\"mrx-icon icon-chevron-down icon-font-24\"></span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"false\" (toggle)=\"togglePopup($event)\">\r\n @for (item of innerItems; track item.__id) {\r\n <mrx-popup-item [custom]=\"true\" (clicked)=\"onSelectMulti(item)\">\r\n {{ item['label'] }}\r\n </mrx-popup-item>\r\n }\r\n </mrx-popup>\r\n </div>\r\n</div>\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:center;justify-content:space-between;gap:8px}.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}.mrx-select__input__controls--item{display:flex;align-items:center;justify-content:center;border-radius:4px;background-color:transparent;transition:background-color .2s}.mrx-select__input__controls--item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select.mrx-select-lg .mrx-select__input{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:calc(var(--spacing-3) - var(--border-width-default)) var(--spacing-4)}.mrx-select.mrx-select-lg .mrx-select__input__box{min-height:24px}.mrx-select__dropdown__item{padding:8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;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__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}\n"], dependencies: [{ kind: "component", type: PopupComponent, selector: "mrx-popup", inputs: ["closeAfterClick"], outputs: ["toggle", "_toggleInner", "_updateInner"] }, { kind: "component", type: PopupItemComponent, selector: "mrx-popup-item", inputs: ["custom"], outputs: ["clicked"] }, { kind: "directive", type: PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: ["mrxPopupTrigger", "popupPosition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17123
+ }
17124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectMultiComponent, decorators: [{
17125
+ type: Component,
17126
+ args: [{ selector: 'mrx-select-multi', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
17127
+ {
17128
+ provide: NG_VALUE_ACCESSOR,
17129
+ useExisting: forwardRef(() => SelectMultiComponent),
17130
+ multi: true,
17131
+ },
17132
+ ], template: "<div class=\"mrx-select\" [class]=\"getClasses\">\r\n <div class=\"mrx-select__wrapper\">\r\n <div class=\"mrx-select__input\" [mrxPopupTrigger]=\"dropdown\">\r\n <div class=\"mrx-select__input__box\">\r\n @if (getSelectedMultiLabels.length) {\r\n <div class=\"mrx-select__input__value\">\r\n @for (item of getSelectedMultiLabels; track item) {\r\n {{ item[bindLabel] }}\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"mrx-select__input__placeholder\"></div>\r\n }\r\n </div>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n @if (getSelectedMultiLabels.length) {\r\n <div class=\"mrx-select__input__controls--item\" (click)=\"onClear($event)\">\r\n <span class=\"mrx-icon icon-close icon-font-24\"></span>\r\n </div>\r\n }\r\n <div class=\"mrx-select__input__controls--item\" (click)=\"onOpen($event)\">\r\n @if (isOpen) {\r\n <span class=\"mrx-icon icon-chevron-up icon-font-24\"></span>\r\n } @else {\r\n <span class=\"mrx-icon icon-chevron-down icon-font-24\"></span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"false\" (toggle)=\"togglePopup($event)\">\r\n @for (item of innerItems; track item.__id) {\r\n <mrx-popup-item [custom]=\"true\" (clicked)=\"onSelectMulti(item)\">\r\n {{ item['label'] }}\r\n </mrx-popup-item>\r\n }\r\n </mrx-popup>\r\n </div>\r\n</div>\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:center;justify-content:space-between;gap:8px}.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}.mrx-select__input__controls--item{display:flex;align-items:center;justify-content:center;border-radius:4px;background-color:transparent;transition:background-color .2s}.mrx-select__input__controls--item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select.mrx-select-lg .mrx-select__input{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:calc(var(--spacing-3) - var(--border-width-default)) var(--spacing-4)}.mrx-select.mrx-select-lg .mrx-select__input__box{min-height:24px}.mrx-select__dropdown__item{padding:8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;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__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}\n"] }]
17133
+ }], propDecorators: { items: [{
16938
17134
  type: Input
16939
17135
  }], size: [{
16940
17136
  type: Input
17137
+ }], bindValue: [{
17138
+ type: Input
17139
+ }], bindLabel: [{
17140
+ type: Input
17141
+ }], bindIcon: [{
17142
+ type: Input
17143
+ }], dropdown: [{
17144
+ type: ViewChild,
17145
+ args: ['dropdown']
16941
17146
  }] } });
16942
17147
 
16943
17148
  class SelectModule {
16944
17149
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16945
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: SelectModule, declarations: [SelectComponent], imports: [CommonModule,
16946
- PopupModule], exports: [SelectComponent] });
17150
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: SelectModule, declarations: [SelectComponent,
17151
+ SelectMultiComponent], imports: [CommonModule,
17152
+ FormsModule,
17153
+ PopupModule], exports: [SelectComponent,
17154
+ SelectMultiComponent] });
16947
17155
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectModule, imports: [CommonModule,
17156
+ FormsModule,
16948
17157
  PopupModule] });
16949
17158
  }
16950
17159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectModule, decorators: [{
16951
17160
  type: NgModule,
16952
17161
  args: [{
16953
17162
  declarations: [
16954
- SelectComponent
17163
+ SelectComponent,
17164
+ SelectMultiComponent
16955
17165
  ],
16956
17166
  imports: [
16957
17167
  CommonModule,
17168
+ FormsModule,
16958
17169
  PopupModule
16959
17170
  ],
16960
17171
  exports: [
16961
- SelectComponent
17172
+ SelectComponent,
17173
+ SelectMultiComponent
16962
17174
  ]
16963
17175
  }]
16964
17176
  }] });
@@ -17272,5 +17484,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
17272
17484
  * Generated bundle index. Do not edit.
17273
17485
  */
17274
17486
 
17275
- 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, ControlsItemComponent, ControlsVisibilityEnum, ControlsWrapperComponent, ControlsWrapperModule, CountryISO$1 as CountryISO, CurrencyModule, CurrencyPipe, DateFormatModule, DateFormatPipe, DateTimeFormatPipe, DefaultPagerSettings, DropdownComponent, DropdownModule, EditorComponent, EditorModule, ErrorMessageComponent, ErrorMessageModule, FileUploadService, GalleryComponent, GalleryModule, HideAfterClickDirective, HintErrorMessageComponent, HintErrorMessageModule, IconButtonComponent, IconButtonModule, IconButtonSizeEnum, IconButtonStateEnum, IconButtonTypeEnum, InputDateSizesEnum$2 as InputDateSizesEnum, InputDateTimeComponent, InputDateTimeModule, InputDatepickerComponent, InputDatepickerModule, InputFileComponent, InputFileImageComponent, InputFileImageModule, InputFileImageTypeEnum, InputFileModule, InputNumberComponent, InputNumberModule, InputNumberSizesEnum, InputOptComponent, InputOptModule, InputPasswordComponent, InputPasswordModule, InputPasswordSizesEnum, InputPhoneComponent, InputPhoneModule, InputSearchComponent, InputSearchModule, InputSearchSizesEnum, InputSelectComponent, InputSelectModule, InputSelectSizeEnum, InputTelComponent, InputTelModule, InputTextComponent, InputTextIconColorEnum, InputTextModule, InputTextSizesEnum, InputTextareaComponent, InputTextareaModule, InputTextareaSizesEnum, InputTimepickerComponent, InputTimepickerModule, JsonEditorComponent, JsonEditorModule, JsonEditorOptions, LabelComponent, LabelModule, LinkComponent, LinkModule, LinkSizesEnum, LinkTargetTypesEnum, LinkTypesEnum, LoaderColorEnum, LoaderComponent, LoaderModule, LoaderSizesEnum, MODAL_CONFIG, MODAL_DATA, ModalAlignButtonsEnum, ModalBackdropTypeClasses, ModalColorEnum, ModalComponent, ModalModule, ModalRef, ModalService, ModalServiceComponent, ModalServiceModule, ModalSizesEnum, ModalType, ModalTypeClasses, 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, SelectTypeEnum, SidePageComponent, SidePageHeaderSizesEnum, SidePageModule, SidePagePositionEnum, SidePageSizesEnum, StepperClasses, StepperComponent, StepperModule, SwitchComponent, SwitchModule, SwitchSizeEnum, SwitchTypeEnum, TabComponent, TableComponent, TableModule, TableTypeEnum, TabsClasses, TabsGroupComponent, TabsModule, TabsTypesClasses, Timezone, ToasterPosition, ToasterService, ToasterServiceModule, ToasterType, 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, dateTimeFormat, defaultConfig, defaultCustomConfig, formatBytes, formattingDateRange, formattingIsoToString, getBase64FromUrl, getHashCode, innerListToList, sHashCode, selectFields, selectMrxAutoSaveState, sliceDate, toBytes, toDate, toNumberFormat, toastrDefaultConfig, wordForm };
17487
+ 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, ControlsItemComponent, ControlsVisibilityEnum, ControlsWrapperComponent, ControlsWrapperModule, CountryISO$1 as CountryISO, CurrencyModule, CurrencyPipe, DateFormatModule, DateFormatPipe, DateTimeFormatPipe, DefaultPagerSettings, DropdownComponent, DropdownModule, EditorComponent, EditorModule, ErrorMessageComponent, ErrorMessageModule, FileUploadService, GalleryComponent, GalleryModule, HideAfterClickDirective, HintErrorMessageComponent, HintErrorMessageModule, IconButtonComponent, IconButtonModule, IconButtonSizeEnum, IconButtonStateEnum, IconButtonTypeEnum, InputDateSizesEnum$2 as InputDateSizesEnum, InputDateTimeComponent, InputDateTimeModule, InputDatepickerComponent, InputDatepickerModule, InputFileComponent, InputFileImageComponent, InputFileImageModule, InputFileImageTypeEnum, InputFileModule, InputNumberComponent, InputNumberModule, InputNumberSizesEnum, InputOptComponent, InputOptModule, InputPasswordComponent, InputPasswordModule, InputPasswordSizesEnum, InputPhoneComponent, InputPhoneModule, InputSearchComponent, InputSearchModule, InputSearchSizesEnum, InputSelectComponent, InputSelectModule, InputSelectSizeEnum, InputTelComponent, InputTelModule, InputTextComponent, InputTextIconColorEnum, InputTextModule, InputTextSizesEnum, InputTextareaComponent, InputTextareaModule, InputTextareaSizesEnum, InputTimepickerComponent, InputTimepickerModule, JsonEditorComponent, JsonEditorModule, JsonEditorOptions, LabelComponent, LabelModule, LinkComponent, LinkModule, LinkSizesEnum, LinkTargetTypesEnum, LinkTypesEnum, LoaderColorEnum, LoaderComponent, LoaderModule, LoaderSizesEnum, MODAL_CONFIG, MODAL_DATA, ModalAlignButtonsEnum, ModalBackdropTypeClasses, ModalColorEnum, ModalComponent, ModalModule, ModalRef, ModalService, ModalServiceComponent, ModalServiceModule, ModalSizesEnum, ModalType, ModalTypeClasses, 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, SelectMultiComponent, SelectSizeEnum, SidePageComponent, SidePageHeaderSizesEnum, SidePageModule, SidePagePositionEnum, SidePageSizesEnum, StepperClasses, StepperComponent, StepperModule, SwitchComponent, SwitchModule, SwitchSizeEnum, SwitchTypeEnum, TabComponent, TableComponent, TableModule, TableTypeEnum, TabsClasses, TabsGroupComponent, TabsModule, TabsTypesClasses, Timezone, ToasterPosition, ToasterService, ToasterServiceModule, ToasterType, 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, dateTimeFormat, defaultConfig, defaultCustomConfig, formatBytes, formattingDateRange, formattingIsoToString, getBase64FromUrl, getHashCode, innerListToList, sHashCode, selectFields, selectMrxAutoSaveState, sliceDate, toBytes, toDate, toNumberFormat, toastrDefaultConfig, wordForm };
17276
17488
  //# sourceMappingURL=myrta-ui.mjs.map