{"version":3,"file":"moxa-formoxa-mx-select.mjs","sources":["../../../../libs/formoxa/mx-select/src/lib/directives/mx-select-image-option.directive.ts","../../../../libs/formoxa/mx-select/src/lib/directives/mx-select-readonly.directive.ts","../../../../libs/formoxa/mx-select/src/lib/services/mx-select-trigger-intl.service.ts","../../../../libs/formoxa/mx-select/src/lib/directives/mx-select-trigger.directive.ts","../../../../libs/formoxa/mx-select/src/moxa-formoxa-mx-select.ts"],"sourcesContent":["import { Directive, Input, booleanAttribute } from '@angular/core';\n\n@Directive({\n  selector:\n    'mat-option[mxSelectImageOption], img[mxSelectOptionImage], div[mxSelectOptionText], [mxSelectOptionTitle], [mxSelectOptionDescription]',\n  standalone: true,\n  host: {\n    '[class.mx-select-image-option]': 'mxSelectImageOption',\n    '[class.mx-select-image-option__image]': 'mxSelectOptionImage',\n    '[class.mx-select-image-option__text]': 'mxSelectOptionText',\n    '[class.mx-select-image-option__title]': 'mxSelectOptionTitle',\n    '[class.mx-select-image-option__desc]': 'mxSelectOptionDescription'\n  }\n})\nexport class MxSelectImageOptionDirective {\n  @Input({ transform: booleanAttribute }) mxSelectImageOption = false;\n  @Input({ transform: booleanAttribute }) mxSelectOptionImage = false;\n  @Input({ transform: booleanAttribute }) mxSelectOptionText = false;\n  @Input({ transform: booleanAttribute }) mxSelectOptionTitle = false;\n  @Input({ transform: booleanAttribute }) mxSelectOptionDescription = false;\n\n  constructor() {}\n}\n","import {\n  Directive,\n  ElementRef,\n  Input,\n  OnChanges,\n  OnInit,\n  Renderer2,\n  SimpleChanges,\n  booleanAttribute\n} from '@angular/core';\nimport { MatSelect } from '@angular/material/select';\n\n@Directive({\n  selector: 'mat-select[mxSelectReadonly]',\n  standalone: true,\n  host: {\n    '[class.mx-select-readonly]': 'mxSelectReadonly'\n  }\n})\nexport class MxSelectReadonlyDirective implements OnChanges, OnInit {\n  @Input({ transform: booleanAttribute }) mxSelectReadonly = false;\n\n  constructor(\n    private renderer: Renderer2,\n    private elRef: ElementRef<HTMLElement>,\n    private component: MatSelect\n  ) {}\n\n  ngOnInit(): void {\n    this.handleReadonlyChange();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if ('mxSelectReadonly' in changes) {\n      this.handleReadonlyChange();\n    }\n  }\n\n  private handleReadonlyChange() {\n    if (this.mxSelectReadonly) {\n      this.renderer.setAttribute(this.elRef.nativeElement, 'readonly', '');\n      this.component.panelClass = 'mx-select-readonly__panel';\n    } else {\n      this.renderer.removeAttribute(this.elRef.nativeElement, 'readonly');\n      this.component.panelClass = '';\n    }\n  }\n}\n","import { Injectable, Optional, Provider, SkipSelf } from '@angular/core';\nimport { TranslationLabels, TranslationService } from '@moxa/formoxa/mx-shared';\n\nexport interface MxSelectTriggerIntlLabels extends TranslationLabels {\n  /** When the number of selected items is 2 */\n  triggerForTwo: string;\n  /** When the number of selected items is more than 2 */\n  triggerForMany: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MxSelectTriggerIntlService extends TranslationService<MxSelectTriggerIntlLabels> {\n  defaultLabels: MxSelectTriggerIntlLabels = {\n    triggerForTwo: 'other',\n    triggerForMany: 'others'\n  };\n\n  constructor() {\n    super();\n    this.registerTranslations('en', this.defaultLabels);\n  }\n}\n\nfunction MX_SELECT_TRIGGER_INTL_PROVIDER_FACTORY(parent: MxSelectTriggerIntlService): MxSelectTriggerIntlService {\n  return parent || new MxSelectTriggerIntlService();\n}\n\nexport const MX_SELECT_TRIGGER_INTL_PROVIDER: Provider = {\n  provide: MxSelectTriggerIntlService,\n  useFactory: MX_SELECT_TRIGGER_INTL_PROVIDER_FACTORY,\n  deps: [[new Optional(), new SkipSelf(), MxSelectTriggerIntlService]]\n};\n","import {\n  Directive,\n  DOCUMENT,\n  effect,\n  ElementRef,\n  Inject,\n  inject,\n  Input,\n  OnChanges,\n  OnInit,\n  Renderer2,\n  SimpleChanges\n} from '@angular/core';\nimport { MxSelectTriggerIntlService } from '../services/mx-select-trigger-intl.service';\n\n@Directive({\n  selector: 'mat-select-trigger[mxSelectTrigger], span[mxSelectTrigger]',\n  standalone: true\n})\nexport class MxSelectTriggerDirective implements OnInit, OnChanges {\n  @Input() mxSelectTrigger: string[] = [];\n\n  intl = inject(MxSelectTriggerIntlService);\n\n  constructor(\n    @Inject(DOCUMENT) private document: Document,\n    private renderer: Renderer2,\n    private elRef: ElementRef<HTMLElement>\n  ) {\n    effect(() => {\n      this.intl.getCurrentLanguage();\n      this.renderSelectTrigger();\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['mxSelectTrigger']) {\n      this.renderSelectTrigger();\n    }\n  }\n\n  ngOnInit() {\n    this.renderSelectTrigger();\n  }\n\n  private renderSelectTrigger(): void {\n    const triggerWrap = this.document.createElement('span');\n    triggerWrap.classList.add('mx-select-trigger');\n    triggerWrap.textContent = this.mxSelectTrigger?.[0] || '';\n\n    if (this.mxSelectTrigger.length > 1) {\n      const additionalSelection = this.document.createElement('span');\n      additionalSelection.classList.add('mx-select-trigger__additional-selection');\n      additionalSelection.textContent = `(+${this.mxSelectTrigger.length - 1} ${\n        this.mxSelectTrigger.length === 2 ? this.intl.translate('triggerForTwo') : this.intl.translate('triggerForMany')\n      })`;\n      this.renderer.appendChild(triggerWrap, additionalSelection);\n    }\n\n    this.elRef.nativeElement.innerHTML = '';\n    this.elRef.nativeElement.append(triggerWrap);\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}