{"version":3,"file":"ngx-selecto.mjs","sources":["../../../projects/ngx-selecto/src/lib/consts.ts","../../../projects/ngx-selecto/src/lib/ngx-selecto.interface.ts","../../../projects/ngx-selecto/src/lib/ngx-selecto.component.ts","../../../projects/ngx-selecto/src/lib/ngx-selecto.module.ts","../../../projects/ngx-selecto/src/public-api.ts","../../../projects/ngx-selecto/src/ngx-selecto.ts"],"sourcesContent":["// auto\n// eslint-disable-next-line max-len\nexport const ANGULAR_SELECTO_INPUTS: [\"dragContainer\",\"cspNonce\",\"preventClickEventOnDrag\",\"preventClickEventOnDragStart\",\"preventRightClick\",\"className\",\"boundContainer\",\"selectableTargets\",\"selectByClick\",\"selectFromInside\",\"continueSelect\",\"continueSelectWithoutDeselect\",\"toggleContinueSelect\",\"toggleContinueSelectWithoutDeselect\",\"keyContainer\",\"hitRate\",\"scrollOptions\",\"checkInput\",\"preventDefault\",\"ratio\",\"getElementRect\",\"preventDragFromInside\",\"rootContainer\",\"dragCondition\",\"clickBySelectEnd\",\"checkOverflow\",\"innerScrollOptions\"] = [\"dragContainer\",\"cspNonce\",\"preventClickEventOnDrag\",\"preventClickEventOnDragStart\",\"preventRightClick\",\"className\",\"boundContainer\",\"selectableTargets\",\"selectByClick\",\"selectFromInside\",\"continueSelect\",\"continueSelectWithoutDeselect\",\"toggleContinueSelect\",\"toggleContinueSelectWithoutDeselect\",\"keyContainer\",\"hitRate\",\"scrollOptions\",\"checkInput\",\"preventDefault\",\"ratio\",\"getElementRect\",\"preventDragFromInside\",\"rootContainer\",\"dragCondition\",\"clickBySelectEnd\",\"checkOverflow\",\"innerScrollOptions\"];\nexport const ANGULAR_SELECTO_OUTPUTS: [\"dragStart\",\"drag\",\"dragEnd\",\"selectStart\",\"select\",\"selectEnd\",\"keydown\",\"keyup\",\"scroll\",\"innerScroll\"] = [\"dragStart\",\"drag\",\"dragEnd\",\"selectStart\",\"select\",\"selectEnd\",\"keydown\",\"keyup\",\"scroll\",\"innerScroll\"];\n","import VanillaSelecto, { METHODS, SelectoMethods, SelectoOptions } from 'selecto';\nimport { withMethods, MethodInterface } from 'framework-utils';\nimport { NgxSelectoComponent } from './ngx-selecto.component';\nimport { NgxSelectoEvents } from './types';\n\nexport class NgxSelectoInterface {\n  @withMethods(METHODS as any)\n  protected selecto!: VanillaSelecto;\n}\nexport interface NgxSelectoInterface extends MethodInterface<SelectoMethods, VanillaSelecto, NgxSelectoComponent>, SelectoOptions, NgxSelectoEvents {}\n","import {\n  Component,\n  ElementRef,\n  AfterViewInit,\n  OnDestroy,\n  OnChanges,\n  SimpleChanges,\n  ViewChild,\n  EventEmitter,\n  NgZone,\n} from '@angular/core';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport VanillaSelecto, {\n  CLASS_NAME,\n  OPTIONS,\n  SelectoOptions,\n  PROPERTIES,\n  EVENTS,\n} from 'selecto';\n\nimport { ANGULAR_SELECTO_INPUTS, ANGULAR_SELECTO_OUTPUTS } from './consts';\nimport { NgxSelectoInterface } from './ngx-selecto.interface';\n\n@Component({\n  selector: 'ngx-selecto',\n  template: `\n    <div [class]=\"selectionClassName\" #el></div>\n  `,\n  inputs: ANGULAR_SELECTO_INPUTS,\n  outputs: ANGULAR_SELECTO_OUTPUTS,\n})\nexport class NgxSelectoComponent\n  extends NgxSelectoInterface\n  implements OnDestroy, AfterViewInit, OnChanges {\n  @ViewChild('el', { static: true }) elRef!: ElementRef<HTMLElement>;\n\n  public selectionClassName = CLASS_NAME;\n\n  private destroy$ = new Subject<void>();\n\n  constructor(private ngZone: NgZone) {\n    super();\n\n    EVENTS.forEach(name => {\n      (this as any)[name] = new EventEmitter();\n    });\n  }\n\n  ngAfterViewInit(): void {\n    const options: Partial<SelectoOptions> = {};\n\n    OPTIONS.forEach(name => {\n      if (name in this) {\n        (options as any)[name] = this[name];\n      }\n    });\n\n    this.selecto = this.ngZone.runOutsideAngular(() => new VanillaSelecto({\n      ...options,\n      portalContainer: this.elRef.nativeElement,\n    }));\n\n    const selecto = this.selecto;\n\n    EVENTS.forEach(name => {\n      fromEvent(selecto, name).pipe(takeUntil(this.destroy$)).subscribe(event => {\n        const emitter = this[name];\n        if (emitter && (emitter.observed || emitter.observers.length > 0)) {\n          this.ngZone.run(() => emitter.emit(event as any));\n        }\n      });\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const selecto = this.selecto;\n\n    if (!selecto) {\n      return;\n    }\n    for (const name in changes) {\n      if (PROPERTIES.indexOf(name as any) < -1) {\n        continue;\n      }\n      const { previousValue, currentValue } = changes[name];\n\n      if (previousValue === currentValue) {\n        continue;\n      }\n      (selecto as any)[name] = currentValue;\n    }\n  }\n\n  ngOnDestroy() {\n    this.destroy$.next();\n    this.selecto.destroy();\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxSelectoComponent } from './ngx-selecto.component';\n\n@NgModule({\n  declarations: [NgxSelectoComponent],\n  exports: [NgxSelectoComponent],\n})\nexport class NgxSelectoModule {}\n","/*\n * Public API Surface of ngx-selecto\n */\n\nexport * from './lib/ngx-selecto.component';\nexport * from './lib/ngx-selecto.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}