UNPKG

ngx-selecto

Version:

An Angular Selecto Component that allows you to select elements in the drag area using the mouse or touch.

1 lines 9.76 kB
{"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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"}