ngx-moveable
Version:
An Angular Component that create Moveable, Draggable, Resizable, Scalable, Rotatable, Warpable, Pinchable, Groupable, Snappable.
1 lines • 20.5 kB
Source Map (JSON)
{"version":3,"file":"ngx-moveable.mjs","sources":["../../../projects/ngx-moveable/src/ngx-moveable.interface.ts","../../../projects/ngx-moveable/src/consts.ts","../../../projects/ngx-moveable/src/ngx-moveable.component.ts","../../../projects/ngx-moveable/src/ngx-moveable.legacy.component.ts","../../../projects/ngx-moveable/src/ngx-moveable.module.ts","../../../projects/ngx-moveable/src/public-api.ts","../../../projects/ngx-moveable/src/ngx-moveable.ts"],"sourcesContent":["import Moveable, {\n MoveableInterface,\n METHODS,\n MoveableProperties,\n} from 'moveable';\nimport { MethodInterface, withMethods } from 'framework-utils';\n\nimport { NgxMoveableEvents } from './types';\n\nexport class NgxMoveableInterface {\n @withMethods(METHODS, { dragStart: 'ngDragStart' })\n protected moveable!: Moveable;\n}\n\nexport interface NgxMoveableInterface\n extends NgxMoveableEvents,\n MoveableProperties,\n MethodInterface<\n MoveableInterface,\n Moveable,\n NgxMoveableInterface,\n {\n dragStart: 'ngDragStart';\n }\n > {}\n","// auto\n// eslint-disable-next-line max-len\nexport const ANGULAR_MOVEABLE_INPUTS: [\"target\",\"dragTargetSelf\",\"dragTarget\",\"dragContainer\",\"container\",\"warpSelf\",\"rootContainer\",\"useResizeObserver\",\"useMutationObserver\",\"zoom\",\"dragFocusedInput\",\"transformOrigin\",\"ables\",\"className\",\"pinchThreshold\",\"pinchOutside\",\"triggerAblesSimultaneously\",\"checkInput\",\"cspNonce\",\"translateZ\",\"hideDefaultLines\",\"props\",\"flushSync\",\"stopPropagation\",\"preventClickEventOnDrag\",\"preventClickDefault\",\"viewContainer\",\"persistData\",\"useAccuratePosition\",\"firstRenderState\",\"linePadding\",\"controlPadding\",\"preventDefault\",\"preventRightClick\",\"preventWheelClick\",\"requestStyles\",\"snappable\",\"snapContainer\",\"snapDirections\",\"elementSnapDirections\",\"snapGap\",\"snapGridWidth\",\"snapGridHeight\",\"isDisplaySnapDigit\",\"isDisplayInnerSnapDigit\",\"isDisplayGridGuidelines\",\"snapDigit\",\"snapThreshold\",\"snapRenderThreshold\",\"snapGridAll\",\"snapRotationThreshold\",\"snapRotationDegrees\",\"snapHorizontalThreshold\",\"snapVerticalThreshold\",\"horizontalGuidelines\",\"verticalGuidelines\",\"elementGuidelines\",\"bounds\",\"innerBounds\",\"snapDistFormat\",\"maxSnapElementGuidelineDistance\",\"maxSnapElementGapDistance\",\"pinchable\",\"draggable\",\"throttleDrag\",\"throttleDragRotate\",\"hideThrottleDragRotateLine\",\"startDragRotate\",\"edgeDraggable\",\"resizable\",\"throttleResize\",\"renderDirections\",\"displayAroundControls\",\"keepRatio\",\"resizeFormat\",\"keepRatioFinally\",\"edge\",\"checkResizableError\",\"scalable\",\"throttleScale\",\"warpable\",\"rotatable\",\"rotationPosition\",\"throttleRotate\",\"rotationTarget\",\"rotateAroundControls\",\"resolveAblesWithRotatable\",\"scrollable\",\"scrollContainer\",\"scrollThreshold\",\"scrollThrottleTime\",\"getScrollPosition\",\"scrollOptions\",\"padding\",\"origin\",\"svgOrigin\",\"originDraggable\",\"originRelative\",\"clippable\",\"defaultClipPath\",\"customClipPath\",\"clipRelative\",\"clipArea\",\"dragWithClip\",\"clipTargetBounds\",\"clipVerticalGuidelines\",\"clipHorizontalGuidelines\",\"clipSnapThreshold\",\"roundable\",\"roundRelative\",\"minRoundControls\",\"maxRoundControls\",\"roundClickable\",\"roundPadding\",\"isDisplayShadowRoundControls\",\"defaultGroupRotate\",\"useDefaultGroupRotate\",\"defaultGroupOrigin\",\"groupable\",\"groupableProps\",\"targetGroups\",\"hideChildMoveableDefaultLines\",\"individualGroupable\",\"individualGroupableProps\",\"clickable\",\"dragArea\",\"passDragArea\"] = [\"target\",\"dragTargetSelf\",\"dragTarget\",\"dragContainer\",\"container\",\"warpSelf\",\"rootContainer\",\"useResizeObserver\",\"useMutationObserver\",\"zoom\",\"dragFocusedInput\",\"transformOrigin\",\"ables\",\"className\",\"pinchThreshold\",\"pinchOutside\",\"triggerAblesSimultaneously\",\"checkInput\",\"cspNonce\",\"translateZ\",\"hideDefaultLines\",\"props\",\"flushSync\",\"stopPropagation\",\"preventClickEventOnDrag\",\"preventClickDefault\",\"viewContainer\",\"persistData\",\"useAccuratePosition\",\"firstRenderState\",\"linePadding\",\"controlPadding\",\"preventDefault\",\"preventRightClick\",\"preventWheelClick\",\"requestStyles\",\"snappable\",\"snapContainer\",\"snapDirections\",\"elementSnapDirections\",\"snapGap\",\"snapGridWidth\",\"snapGridHeight\",\"isDisplaySnapDigit\",\"isDisplayInnerSnapDigit\",\"isDisplayGridGuidelines\",\"snapDigit\",\"snapThreshold\",\"snapRenderThreshold\",\"snapGridAll\",\"snapRotationThreshold\",\"snapRotationDegrees\",\"snapHorizontalThreshold\",\"snapVerticalThreshold\",\"horizontalGuidelines\",\"verticalGuidelines\",\"elementGuidelines\",\"bounds\",\"innerBounds\",\"snapDistFormat\",\"maxSnapElementGuidelineDistance\",\"maxSnapElementGapDistance\",\"pinchable\",\"draggable\",\"throttleDrag\",\"throttleDragRotate\",\"hideThrottleDragRotateLine\",\"startDragRotate\",\"edgeDraggable\",\"resizable\",\"throttleResize\",\"renderDirections\",\"displayAroundControls\",\"keepRatio\",\"resizeFormat\",\"keepRatioFinally\",\"edge\",\"checkResizableError\",\"scalable\",\"throttleScale\",\"warpable\",\"rotatable\",\"rotationPosition\",\"throttleRotate\",\"rotationTarget\",\"rotateAroundControls\",\"resolveAblesWithRotatable\",\"scrollable\",\"scrollContainer\",\"scrollThreshold\",\"scrollThrottleTime\",\"getScrollPosition\",\"scrollOptions\",\"padding\",\"origin\",\"svgOrigin\",\"originDraggable\",\"originRelative\",\"clippable\",\"defaultClipPath\",\"customClipPath\",\"clipRelative\",\"clipArea\",\"dragWithClip\",\"clipTargetBounds\",\"clipVerticalGuidelines\",\"clipHorizontalGuidelines\",\"clipSnapThreshold\",\"roundable\",\"roundRelative\",\"minRoundControls\",\"maxRoundControls\",\"roundClickable\",\"roundPadding\",\"isDisplayShadowRoundControls\",\"defaultGroupRotate\",\"useDefaultGroupRotate\",\"defaultGroupOrigin\",\"groupable\",\"groupableProps\",\"targetGroups\",\"hideChildMoveableDefaultLines\",\"individualGroupable\",\"individualGroupableProps\",\"clickable\",\"dragArea\",\"passDragArea\"];\nexport const ANGULAR_MOVEABLE_OUTPUTS: [\"beforeRenderStart\",\"beforeRender\",\"beforeRenderEnd\",\"beforeRenderGroupStart\",\"beforeRenderGroup\",\"beforeRenderGroupEnd\",\"changeTargets\",\"snap\",\"bound\",\"pinchStart\",\"pinch\",\"pinchEnd\",\"pinchGroupStart\",\"pinchGroup\",\"pinchGroupEnd\",\"dragStart\",\"drag\",\"dragEnd\",\"dragGroupStart\",\"dragGroup\",\"dragGroupEnd\",\"resizeStart\",\"beforeResize\",\"resize\",\"resizeEnd\",\"resizeGroupStart\",\"beforeResizeGroup\",\"resizeGroup\",\"resizeGroupEnd\",\"scaleStart\",\"beforeScale\",\"scale\",\"scaleEnd\",\"scaleGroupStart\",\"beforeScaleGroup\",\"scaleGroup\",\"scaleGroupEnd\",\"warpStart\",\"warp\",\"warpEnd\",\"rotateStart\",\"beforeRotate\",\"rotate\",\"rotateEnd\",\"rotateGroupStart\",\"beforeRotateGroup\",\"rotateGroup\",\"rotateGroupEnd\",\"scroll\",\"scrollGroup\",\"dragOriginStart\",\"dragOrigin\",\"dragOriginEnd\",\"clipStart\",\"clip\",\"clipEnd\",\"roundStart\",\"round\",\"roundEnd\",\"roundGroupStart\",\"roundGroup\",\"roundGroupEnd\",\"click\",\"clickGroup\",\"renderStart\",\"render\",\"renderEnd\",\"renderGroupStart\",\"renderGroup\",\"renderGroupEnd\"] = [\"beforeRenderStart\",\"beforeRender\",\"beforeRenderEnd\",\"beforeRenderGroupStart\",\"beforeRenderGroup\",\"beforeRenderGroupEnd\",\"changeTargets\",\"snap\",\"bound\",\"pinchStart\",\"pinch\",\"pinchEnd\",\"pinchGroupStart\",\"pinchGroup\",\"pinchGroupEnd\",\"dragStart\",\"drag\",\"dragEnd\",\"dragGroupStart\",\"dragGroup\",\"dragGroupEnd\",\"resizeStart\",\"beforeResize\",\"resize\",\"resizeEnd\",\"resizeGroupStart\",\"beforeResizeGroup\",\"resizeGroup\",\"resizeGroupEnd\",\"scaleStart\",\"beforeScale\",\"scale\",\"scaleEnd\",\"scaleGroupStart\",\"beforeScaleGroup\",\"scaleGroup\",\"scaleGroupEnd\",\"warpStart\",\"warp\",\"warpEnd\",\"rotateStart\",\"beforeRotate\",\"rotate\",\"rotateEnd\",\"rotateGroupStart\",\"beforeRotateGroup\",\"rotateGroup\",\"rotateGroupEnd\",\"scroll\",\"scrollGroup\",\"dragOriginStart\",\"dragOrigin\",\"dragOriginEnd\",\"clipStart\",\"clip\",\"clipEnd\",\"roundStart\",\"round\",\"roundEnd\",\"roundGroupStart\",\"roundGroup\",\"roundGroupEnd\",\"click\",\"clickGroup\",\"renderStart\",\"render\",\"renderEnd\",\"renderGroupStart\",\"renderGroup\",\"renderGroupEnd\"];\n","import {\n Component,\n OnDestroy,\n OnInit,\n OnChanges,\n SimpleChanges,\n EventEmitter,\n ElementRef,\n NgZone,\n Inject,\n} from '@angular/core';\nimport Moveable, { PROPERTIES, EVENTS, MoveableOptions } from 'moveable';\nimport { IObject } from '@daybrush/utils';\n\nimport { NgxMoveableInterface } from './ngx-moveable.interface';\nimport { ANGULAR_MOVEABLE_INPUTS, ANGULAR_MOVEABLE_OUTPUTS } from './consts';\n\n@Component({\n standalone: true,\n selector: 'ngx-moveable',\n template: '',\n inputs: ANGULAR_MOVEABLE_INPUTS,\n outputs: ANGULAR_MOVEABLE_OUTPUTS,\n})\nexport class NgxMoveableComponent\n extends NgxMoveableInterface\n implements OnDestroy, OnInit, OnChanges\n{\n constructor(\n @Inject(NgZone)\n private _ngZone: NgZone,\n @Inject(ElementRef)\n private _elementRef: ElementRef<HTMLElement>,\n ) {\n super();\n EVENTS.forEach((name) => {\n // @ts-expect-error\n this[name] = new EventEmitter<unknown>();\n });\n }\n\n ngOnInit(): void {\n const options: MoveableOptions = {};\n const events: IObject<any> = {};\n\n PROPERTIES.forEach(name => {\n // @ts-expect-error\n (options as any)[name] = this[name];\n });\n\n EVENTS.forEach(name => {\n events[name] = (event: any) => {\n // @ts-expect-error\n const emitter = this[name];\n if (emitter && (emitter.observed || emitter.observers.length > 0)) {\n this._ngZone.run(() => emitter.emit(event));\n }\n };\n });\n\n const container = this._elementRef.nativeElement;\n\n this.moveable = this._ngZone.runOutsideAngular(() => new Moveable(container, {\n ...options,\n warpSelf: true,\n }));\n this.moveable.on(events);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const moveable = this.moveable;\n\n if (!moveable) {\n return;\n }\n for (const name in changes) {\n const { previousValue, currentValue } = changes[name];\n\n if (previousValue === currentValue) {\n continue;\n }\n // @ts-expect-error\n moveable[name] = currentValue;\n }\n }\n\n ngOnDestroy() {\n this.moveable.destroy();\n }\n}\n","import {\n Component,\n OnDestroy,\n OnInit,\n OnChanges,\n SimpleChanges,\n EventEmitter,\n ElementRef,\n NgZone,\n Inject,\n} from '@angular/core';\nimport Moveable, { PROPERTIES, EVENTS, MoveableOptions } from 'moveable';\nimport { IObject } from '@daybrush/utils';\n\nimport { NgxMoveableInterface } from './ngx-moveable.interface';\nimport { ANGULAR_MOVEABLE_INPUTS, ANGULAR_MOVEABLE_OUTPUTS } from './consts';\n\n@Component({\n selector: 'ngx-moveable',\n template: '',\n inputs: ANGULAR_MOVEABLE_INPUTS,\n outputs: ANGULAR_MOVEABLE_OUTPUTS,\n})\nexport class NgxLegacyMoveableComponent\n extends NgxMoveableInterface\n implements OnDestroy, OnInit, OnChanges\n{\n constructor(\n @Inject(NgZone)\n private _ngZone: NgZone,\n @Inject(ElementRef)\n private _elementRef: ElementRef<HTMLElement>,\n ) {\n super();\n EVENTS.forEach((name) => {\n // @ts-expect-error\n this[name] = new EventEmitter<unknown>();\n });\n }\n\n ngOnInit(): void {\n const options: MoveableOptions = {};\n const events: IObject<any> = {};\n\n PROPERTIES.forEach(name => {\n // @ts-expect-error\n (options as any)[name] = this[name];\n });\n\n EVENTS.forEach(name => {\n events[name] = (event: any) => {\n // @ts-expect-error\n const emitter = this[name];\n if (emitter && (emitter.observed || emitter.observers.length > 0)) {\n this._ngZone.run(() => emitter.emit(event));\n }\n };\n });\n\n const container = this._elementRef.nativeElement;\n\n this.moveable = this._ngZone.runOutsideAngular(() => new Moveable(container, {\n ...options,\n warpSelf: true,\n }));\n this.moveable.on(events);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const moveable = this.moveable;\n\n if (!moveable) {\n return;\n }\n for (const name in changes) {\n const { previousValue, currentValue } = changes[name];\n\n if (previousValue === currentValue) {\n continue;\n }\n // @ts-expect-error\n moveable[name] = currentValue;\n }\n }\n\n ngOnDestroy() {\n this.moveable.destroy();\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { NgxLegacyMoveableComponent } from './ngx-moveable.legacy.component';\n\n@NgModule({\n declarations: [NgxLegacyMoveableComponent],\n exports: [NgxLegacyMoveableComponent],\n})\nexport class NgxMoveableModule {}\n","/*\n * Public API Surface of ngx-moveable\n */\n\nexport * from './ngx-moveable.component';\nexport * from './ngx-moveable.legacy.component';\nexport * from './ngx-moveable.module';\nexport * from 'moveable';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Moveable"],"mappings":"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"}