@libs-ui/components-minimap 0.2.159 → 0.2.161
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libs-ui-components-minimap.mjs","sources":["../../../../../libs-ui/components/minimap/src/minimap.directive.ts","../../../../../libs-ui/components/minimap/src/libs-ui-components-minimap.ts"],"sourcesContent":["import { AfterViewInit, Directive, ElementRef, inject, input, OnDestroy, output, Renderer2, signal } from '@angular/core';\nimport { IBoundingClientRect } from '@libs-ui/interfaces-types';\nimport { getDragEventByElement, setStylesElement } from '@libs-ui/utils';\nimport { fromEvent, Subject, takeUntil, tap, timer } from 'rxjs';\nimport { IMiniMapFunctionControl, IMiniMapStyleConfig } from './minimap.interface';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: \"[LibsUiComponentsMinimapDirective]\",\n standalone: true,\n})\nexport class LibsUiComponentsMinimapDirective implements AfterViewInit, OnDestroy {\n // #region PROPERTY\n private isShow = signal<boolean>(false);\n private containerElement: HTMLElement = document.createElement('DIV');\n private imgElement: HTMLElement = document.createElement('DIV');\n private viewPortElement = document.createElement('DIV');\n private onDestroy = new Subject<void>();\n // #endregion\n\n // #region INPUT\n readonly classNameFlagElementScale = input<string, string | undefined>('mo-minimap-flag-element-scale', { transform: val => val ?? 'mo-minimap-flag-element-scale' });\n readonly timerStartDrawMinimap = input<number, number | undefined>(250, { transform: val => val ?? 250 });\n readonly elementScroll = input<HTMLElement>();\n readonly styleRectangleElement = input<IMiniMapStyleConfig>();\n readonly styleImageElement = input<IMiniMapStyleConfig>();\n // #endregion\n\n // #region OUTPUT\n readonly outFunctionControls = output<IMiniMapFunctionControl>();\n // #endregion\n\n // #region INJECT\n private elementRef = inject(ElementRef);\n private renderer2 = inject(Renderer2);\n // #endregion\n\n ngAfterViewInit(): void {\n const config = { attributes: true, childList: true, subtree: true };\n const observer = new MutationObserver(this.updateMiniMap.bind(this));\n\n observer.observe(this.Element, config);\n this.onDestroy.subscribe(() => {\n this.containerElement?.remove();\n observer.disconnect();\n });\n\n timer(this.timerStartDrawMinimap()).pipe(tap(() => {\n this.imgElementInitStyleAndAddToBody();\n this.viewPortElementInitStyleAndAddToImgElement();\n\n const rectImage = this.imgElement.getBoundingClientRect();\n\n this.setPositionRectangle(rectImage, { clientX: rectImage.x, clientY: rectImage.y });\n this.updateMiniMap();\n this.outFunctionControls.emit({\n show: this.show.bind(this),\n hidden: this.hidden.bind(this),\n toggle: this.toggle.bind(this)\n });\n this.initEvent();\n }),\n takeUntil(this.onDestroy)).subscribe();\n }\n\n // #region FUNCTIONS\n private imgElementInitStyleAndAddToBody() {\n const rectElement = this.Element.getBoundingClientRect();\n\n this.containerElement.classList.add('position-absolute', 'd-flex', 'invisible', 'mo-lib-directive-minimap-container');\n this.imgElement.classList.add('position-relative', 'w-100', 'h-100', 'mo-lib-overflow-hidden');\n setStylesElement(this.containerElement, {\n zIndex: `${this.styleImageElement()?.zIndex ?? '1300'}`,\n background: `${this.styleImageElement()?.background ?? 'white'}`,\n border: `${this.styleImageElement()?.border ?? '1px solid #E6E7EA'}`,\n borderRadius: `${this.styleImageElement()?.borderRadius ?? '4px'}`,\n width: `${this.styleImageElement()?.width ?? '198'}px`,\n height: `${this.styleImageElement()?.height ?? '108'}px`\n }, this.renderer2);\n this.styleRectTopBottomElement(rectElement);\n this.styleRectLeftRightElement(rectElement);\n this.containerElement.append(this.imgElement);\n document.body.appendChild(this.containerElement);\n }\n\n private viewPortElementInitStyleAndAddToImgElement() {\n this.viewPortElement.classList.add('position-fixed', 'mo-lib-border-primary-general', 'invisible', 'mo-lib-directive-minimap-rectangle');\n setStylesElement(this.viewPortElement as unknown as HTMLElement, {\n zIndex: `${this.styleRectangleElement()?.zIndex ?? '1301'}`,\n background: `${this.styleRectangleElement()?.background ?? 'transparent'}`,\n border: `${this.styleRectangleElement()?.border ?? 'none'}`,\n borderRadius: `${this.styleRectangleElement()?.borderRadius ?? '0'}`,\n cursor: 'grab'\n }, this.renderer2);\n this.containerElement.appendChild(this.viewPortElement);\n }\n\n private styleRectTopBottomElement(rectElement: DOMRect) {\n if (this.styleImageElement()?.bottom) {\n this.containerElement.style.bottom = `${this.styleImageElement()?.bottom}px`;\n\n return;\n }\n this.containerElement.style.top = `${this.styleImageElement()?.top ?? rectElement.top}px`;\n }\n private styleRectLeftRightElement(rectElement: DOMRect) {\n if (this.styleImageElement()?.right) {\n this.containerElement.style.right = `${this.styleImageElement()?.right}px`;\n\n return;\n }\n this.containerElement.style.left = `${this.styleImageElement()?.left ?? rectElement.left}px`;\n }\n\n private initEvent() {\n let preEvent: MouseEvent;\n const handlerScrollElement = (event: MouseEvent) => {\n const rectViewPort = this.viewPortElement.getBoundingClientRect();\n const rectImage = this.imgElement.getBoundingClientRect();\n const { ratioX, ratioY } = this.getRatio();\n\n if (event.type === 'scroll') {\n event = {\n clientX: this.Element.scrollLeft * ratioX + rectImage.left + rectViewPort.width / 2,\n clientY: this.Element.scrollTop * ratioY + rectImage.top + rectViewPort.height / 2\n } as MouseEvent;\n this.setPositionRectangle(rectImage, event);\n\n return;\n }\n\n if (event.type === 'mousedown') {\n preEvent = event;\n\n return;\n }\n if (!preEvent) {\n return;\n }\n\n const distanceX = (event.clientX - preEvent.clientX) / ratioX;\n const distanceY = (event.clientY - preEvent.clientY) / ratioY;\n\n preEvent = event;\n this.Element.scroll({\n left: this.Element.scrollLeft + distanceX,\n top: this.Element.scrollTop + distanceY\n });\n };\n\n \n getDragEventByElement({elementMouseDown:this.viewPortElement,elementMouseMove:this.viewPortElement,onDestroy:this.onDestroy}).subscribe(handlerScrollElement);\n fromEvent<Event>(this.Element, 'scroll').pipe(tap(event => event.stopPropagation()), takeUntil(this.onDestroy)).subscribe((event) => handlerScrollElement(event as MouseEvent));\n fromEvent<Event>(window, 'resize').pipe(tap(event => event.stopPropagation()), takeUntil(this.onDestroy)).subscribe(this.updateMiniMap.bind(this));\n }\n\n private getRatio() {\n const rectContainer = this.containerElement.getBoundingClientRect();\n const ratioX = rectContainer.width / this.Element.scrollWidth;\n const ratioY = rectContainer.height / this.Element.scrollHeight;\n\n return { ratioX: ratioX, ratioY: ratioY };\n }\n private getScaleElement() {\n let { scaleX, scaleY } = { scaleX: 1, scaleY: 1 };\n const elementScale = this.Element.getElementsByClassName(this.classNameFlagElementScale())?.[0] as HTMLElement;\n\n if (elementScale && getComputedStyle(elementScale).transform) {\n const matrix = getComputedStyle(this.Element.getElementsByClassName(this.classNameFlagElementScale())[0]).transform;\n const matrixArray = matrix.replace(\"matrix(\", \"\").split(\",\");\n\n scaleX = parseFloat(matrixArray[0]); // convert from string to number\n scaleY = parseFloat(matrixArray[3]);\n }\n\n return { scaleX, scaleY, elementScale };\n }\n\n private reverseMultiplication(avg1: number, avg2: number) {\n if (avg2 <= 1) {\n return avg1 * avg2;\n }\n\n return avg1 / avg2;\n }\n\n private setPositionRectangle(rectImage: IBoundingClientRect, mousePosition: { clientX: number, clientY: number }) {\n const { ratioX, ratioY } = this.getRatio();\n const { scaleX, scaleY } = this.getScaleElement();\n\n const width = this.Element.clientWidth * this.reverseMultiplication(ratioX, scaleX);\n const height = this.Element.clientHeight * this.reverseMultiplication(ratioY, scaleY);\n let leftSvg = mousePosition.clientX - width / 2;\n let topSvg = mousePosition.clientY - height / 2;\n\n if (leftSvg < rectImage.left) {\n leftSvg = rectImage.left;\n }\n if (leftSvg + width >= rectImage.left + rectImage.width) {\n leftSvg = rectImage.left + rectImage.width - width;\n }\n if (topSvg < rectImage.top) {\n topSvg = rectImage.top;\n }\n if (topSvg + height >= rectImage.top + rectImage.height) {\n topSvg = rectImage.top + rectImage.height - height;\n }\n this.viewPortElement.style.left = `${leftSvg}px`;\n this.viewPortElement.style.top = `${topSvg}px`;\n this.viewPortElement.style.width = `${width}px`;\n this.viewPortElement.style.height = `${Math.round(height)}px`;\n }\n\n private updateMiniMap() {\n this.imgElement.firstElementChild?.remove();\n let { ratioX, ratioY } = this.getRatio();\n const nodeClone = this.elementRef.nativeElement.cloneNode(true) as HTMLElement;\n const { scaleX, scaleY } = this.getScaleElement();\n\n ratioX = this.reverseMultiplication(ratioX, scaleX);\n ratioY = this.reverseMultiplication(ratioY, scaleY);\n nodeClone.style.transform = `scale(${ratioX},${ratioY})`;\n nodeClone.classList.add('mo-lib-overflow-unset');\n this.imgElement.append(nodeClone);\n\n const translateX = (nodeClone.getBoundingClientRect().left - this.imgElement.getBoundingClientRect().left) / ratioX;\n const translateY = (nodeClone.getBoundingClientRect().top - this.imgElement.getBoundingClientRect().top) / ratioY;\n const viewPortElement = this.viewPortElement.getBoundingClientRect();\n const rectImage = this.imgElement.getBoundingClientRect();\n const event = {\n clientX: this.Element.scrollLeft * ratioX + rectImage.left + viewPortElement.width / 2,\n clientY: this.Element.scrollTop * ratioY + rectImage.top + viewPortElement.height / 2\n } as MouseEvent;\n\n nodeClone.style.transform = `scale(${ratioX},${ratioY}) translate(-${translateX}px,-${translateY}px)`;\n this.setPositionRectangle(rectImage, event);\n }\n\n private toggle() {\n if (this.isShow()) {\n this.hidden();\n\n return;\n }\n\n this.show();\n }\n\n private hidden() {\n this.isShow.set(false);\n this.containerElement?.classList.add('invisible');\n this.viewPortElement.classList.add('invisible');\n }\n\n private show() {\n this.isShow.set(true);\n this.containerElement?.classList.remove('invisible');\n this.viewPortElement.classList.remove('invisible');\n }\n\n private get Element(): HTMLElement {\n return this.elementScroll() || this.elementRef.nativeElement;\n }\n\n // #endregion\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAUa,gCAAgC,CAAA;;AAEnC,IAAA,MAAM,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;AAChC,IAAA,gBAAgB,GAAgB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9D,IAAA,UAAU,GAAgB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACxD,IAAA,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAChD,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;;;AAI/B,IAAA,yBAAyB,GAAG,KAAK,CAA6B,+BAA+B,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,+BAA+B,EAAE,CAAC,CAAC;AAC7J,IAAA,qBAAqB,GAAG,KAAK,CAA6B,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;IACjG,aAAa,GAAG,KAAK,EAAe,CAAC;IACrC,qBAAqB,GAAG,KAAK,EAAuB,CAAC;IACrD,iBAAiB,GAAG,KAAK,EAAuB,CAAC;;;IAIjD,mBAAmB,GAAG,MAAM,EAA2B,CAAC;;;AAIzD,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAChC,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;;IAGtC,eAAe,GAAA;AACb,QAAA,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACpE,QAAA,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAErE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAK;AAC5B,YAAA,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;YAChC,QAAQ,CAAC,UAAU,EAAE,CAAC;AACxB,SAAC,CAAC,CAAC;AAEH,QAAA,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;YAChD,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACvC,IAAI,CAAC,0CAA0C,EAAE,CAAC;YAElD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;AAE1D,YAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,EAAE,CAAC;AACnB,SAAC,CAAC,EACA,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;KAC1C;;IAGO,+BAA+B,GAAA;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAEzD,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,CAAC,CAAC;AACtH,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC;AAC/F,QAAA,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACtC,MAAM,EAAE,CAAG,EAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,IAAI,MAAM,CAAE,CAAA;YACvD,UAAU,EAAE,CAAG,EAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,UAAU,IAAI,OAAO,CAAE,CAAA;YAChE,MAAM,EAAE,CAAG,EAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,IAAI,mBAAmB,CAAE,CAAA;YACpE,YAAY,EAAE,CAAG,EAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,YAAY,IAAI,KAAK,CAAE,CAAA;YAClE,KAAK,EAAE,CAAG,EAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,IAAI,KAAK,CAAI,EAAA,CAAA;YACtD,MAAM,EAAE,CAAG,EAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,IAAI,KAAK,CAAI,EAAA,CAAA;AACzD,SAAA,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAClD;IAEO,0CAA0C,GAAA;AAChD,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,EAAE,+BAA+B,EAAE,WAAW,EAAE,oCAAoC,CAAC,CAAC;AACzI,QAAA,gBAAgB,CAAC,IAAI,CAAC,eAAyC,EAAE;YAC/D,MAAM,EAAE,CAAG,EAAA,IAAI,CAAC,qBAAqB,EAAE,EAAE,MAAM,IAAI,MAAM,CAAE,CAAA;YAC3D,UAAU,EAAE,CAAG,EAAA,IAAI,CAAC,qBAAqB,EAAE,EAAE,UAAU,IAAI,aAAa,CAAE,CAAA;YAC1E,MAAM,EAAE,CAAG,EAAA,IAAI,CAAC,qBAAqB,EAAE,EAAE,MAAM,IAAI,MAAM,CAAE,CAAA;YAC3D,YAAY,EAAE,CAAG,EAAA,IAAI,CAAC,qBAAqB,EAAE,EAAE,YAAY,IAAI,GAAG,CAAE,CAAA;AACpE,YAAA,MAAM,EAAE,MAAM;AACf,SAAA,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnB,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACzD;AAEO,IAAA,yBAAyB,CAAC,WAAoB,EAAA;AACpD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE;AACpC,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAG,EAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,IAAI,CAAC;YAE7E,OAAO;SACR;AACD,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,GAAG,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC;KAC3F;AACO,IAAA,yBAAyB,CAAC,WAAoB,EAAA;AACpD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE;AACnC,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAG,EAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,IAAI,CAAC;YAE3E,OAAO;SACR;AACD,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,GAAG,CAAG,EAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,IAAI,WAAW,CAAC,IAAI,IAAI,CAAC;KAC9F;IAEO,SAAS,GAAA;AACf,QAAA,IAAI,QAAoB,CAAC;AACzB,QAAA,MAAM,oBAAoB,GAAG,CAAC,KAAiB,KAAI;YACjD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC;YAClE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;YAC1D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAE3C,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC3B,gBAAA,KAAK,GAAG;AACN,oBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,GAAG,CAAC;AACnF,oBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC;iBACrE,CAAC;AAChB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAE5C,OAAO;aACR;AAED,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;gBAC9B,QAAQ,GAAG,KAAK,CAAC;gBAEjB,OAAO;aACR;YACD,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO;aACR;AAED,YAAA,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;AAC9D,YAAA,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;YAE9D,QAAQ,GAAG,KAAK,CAAC;AACjB,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAClB,gBAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,SAAS;AACzC,gBAAA,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS;AACxC,aAAA,CAAC,CAAC;AACL,SAAC,CAAC;QAGF,qBAAqB,CAAC,EAAC,gBAAgB,EAAC,IAAI,CAAC,eAAe,EAAC,gBAAgB,EAAC,IAAI,CAAC,eAAe,EAAC,SAAS,EAAC,IAAI,CAAC,SAAS,EAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;AAC9J,QAAA,SAAS,CAAQ,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,oBAAoB,CAAC,KAAmB,CAAC,CAAC,CAAC;AAChL,QAAA,SAAS,CAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACpJ;IAEO,QAAQ,GAAA;QACd,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;QACpE,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAC3C;IACO,eAAe,GAAA;AACrB,QAAA,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAClD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,GAAG,CAAC,CAAgB,CAAC;QAE/G,IAAI,YAAY,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE;YAC5D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpH,YAAA,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE7D,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;AAED,QAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;KACzC;IAEO,qBAAqB,CAAC,IAAY,EAAE,IAAY,EAAA;AACtD,QAAA,IAAI,IAAI,IAAI,CAAC,EAAE;YACb,OAAO,IAAI,GAAG,IAAI,CAAC;SACpB;QAED,OAAO,IAAI,GAAG,IAAI,CAAC;KACpB;IAEO,oBAAoB,CAAC,SAA8B,EAAE,aAAmD,EAAA;QAC9G,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AAElD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpF,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtF,IAAI,OAAO,GAAG,aAAa,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;QAChD,IAAI,MAAM,GAAG,aAAa,CAAC,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC;AAEhD,QAAA,IAAI,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE;AAC5B,YAAA,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC;SAC1B;AACD,QAAA,IAAI,OAAO,GAAG,KAAK,IAAI,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE;YACvD,OAAO,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;SACpD;AACD,QAAA,IAAI,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE;AAC1B,YAAA,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC;SACxB;AACD,QAAA,IAAI,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE;YACvD,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;SACpD;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,OAAO,CAAA,EAAA,CAAI,CAAC;QACjD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI,CAAC;QAC/C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,KAAK,CAAA,EAAA,CAAI,CAAC;AAChD,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,CAAG,EAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;KAC/D;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5C,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;QAC/E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAElD,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpD,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,CAAG,CAAC;AACzD,QAAA,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAElC,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC;QACpH,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC;QAClH,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;AAC1D,QAAA,MAAM,KAAK,GAAG;AACZ,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK,GAAG,CAAC;AACtF,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;SACxE,CAAC;AAEhB,QAAA,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAS,MAAA,EAAA,MAAM,CAAI,CAAA,EAAA,MAAM,CAAgB,aAAA,EAAA,UAAU,CAAO,IAAA,EAAA,UAAU,KAAK,CAAC;AACtG,QAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KAC7C;IAEO,MAAM,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACjB,IAAI,CAAC,MAAM,EAAE,CAAC;YAEd,OAAO;SACR;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAEO,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;KACjD;IAEO,IAAI,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,IAAY,OAAO,GAAA;QACjB,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KAC9D;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;wGAjQU,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,EAAA,yBAAA,EAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"libs-ui-components-minimap.mjs","sources":["../../../../../libs-ui/components/minimap/src/minimap.directive.ts","../../../../../libs-ui/components/minimap/src/libs-ui-components-minimap.ts"],"sourcesContent":["import { AfterViewInit, Directive, ElementRef, inject, input, OnDestroy, output, Renderer2, signal } from '@angular/core';\nimport { IBoundingClientRect } from '@libs-ui/interfaces-types';\nimport { getDragEventByElement, setStylesElement } from '@libs-ui/utils';\nimport { fromEvent, Subject, takeUntil, tap, timer } from 'rxjs';\nimport { IMiniMapFunctionControl, IMiniMapStyleConfig } from './minimap.interface';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: \"[LibsUiComponentsMinimapDirective]\",\n standalone: true,\n})\nexport class LibsUiComponentsMinimapDirective implements AfterViewInit, OnDestroy {\n // #region PROPERTY\n private isShow = signal<boolean>(false);\n private containerElement: HTMLElement = document.createElement('DIV');\n private imgElement: HTMLElement = document.createElement('DIV');\n private viewPortElement = document.createElement('DIV');\n private onDestroy = new Subject<void>();\n // #endregion\n\n // #region INPUT\n readonly classNameFlagElementScale = input<string, string | undefined>('mo-minimap-flag-element-scale', { transform: val => val ?? 'mo-minimap-flag-element-scale' });\n readonly timerStartDrawMinimap = input<number, number | undefined>(250, { transform: val => val ?? 250 });\n readonly elementScroll = input<HTMLElement>();\n readonly styleRectangleElement = input<IMiniMapStyleConfig>();\n readonly styleImageElement = input<IMiniMapStyleConfig>();\n // #endregion\n\n // #region OUTPUT\n readonly outFunctionControls = output<IMiniMapFunctionControl>();\n // #endregion\n\n // #region INJECT\n private elementRef = inject(ElementRef);\n private renderer2 = inject(Renderer2);\n // #endregion\n\n ngAfterViewInit(): void {\n const config = { attributes: true, childList: true, subtree: true };\n const observer = new MutationObserver(this.updateMiniMap.bind(this));\n\n observer.observe(this.Element, config);\n this.onDestroy.subscribe(() => {\n this.containerElement?.remove();\n observer.disconnect();\n });\n\n timer(this.timerStartDrawMinimap()).pipe(tap(() => {\n this.imgElementInitStyleAndAddToBody();\n this.viewPortElementInitStyleAndAddToImgElement();\n\n const rectImage = this.imgElement.getBoundingClientRect();\n\n this.setPositionRectangle(rectImage, { clientX: rectImage.x, clientY: rectImage.y });\n this.updateMiniMap();\n this.outFunctionControls.emit({\n show: this.show.bind(this),\n hidden: this.hidden.bind(this),\n toggle: this.toggle.bind(this)\n });\n this.initEvent();\n }),\n takeUntil(this.onDestroy)).subscribe();\n }\n\n // #region FUNCTIONS\n private imgElementInitStyleAndAddToBody() {\n const rectElement = this.Element.getBoundingClientRect();\n\n this.containerElement.classList.add('position-absolute', 'd-flex', 'invisible', 'mo-lib-directive-minimap-container');\n this.imgElement.classList.add('position-relative', 'w-100', 'h-100', 'mo-lib-overflow-hidden');\n setStylesElement(this.containerElement, {\n zIndex: `${this.styleImageElement()?.zIndex ?? '1300'}`,\n background: `${this.styleImageElement()?.background ?? 'white'}`,\n border: `${this.styleImageElement()?.border ?? '1px solid #E6E7EA'}`,\n borderRadius: `${this.styleImageElement()?.borderRadius ?? '4px'}`,\n width: `${this.styleImageElement()?.width ?? '198'}px`,\n height: `${this.styleImageElement()?.height ?? '108'}px`\n }, this.renderer2);\n this.styleRectTopBottomElement(rectElement);\n this.styleRectLeftRightElement(rectElement);\n this.containerElement.append(this.imgElement);\n document.body.appendChild(this.containerElement);\n }\n\n private viewPortElementInitStyleAndAddToImgElement() {\n this.viewPortElement.classList.add('position-fixed', 'mo-lib-border-primary-general', 'invisible', 'mo-lib-directive-minimap-rectangle');\n setStylesElement(this.viewPortElement as unknown as HTMLElement, {\n zIndex: `${this.styleRectangleElement()?.zIndex ?? '1301'}`,\n background: `${this.styleRectangleElement()?.background ?? 'transparent'}`,\n border: `${this.styleRectangleElement()?.border ?? 'none'}`,\n borderRadius: `${this.styleRectangleElement()?.borderRadius ?? '0'}`,\n cursor: 'grab'\n }, this.renderer2);\n this.containerElement.appendChild(this.viewPortElement);\n }\n\n private styleRectTopBottomElement(rectElement: DOMRect) {\n if (this.styleImageElement()?.bottom) {\n this.containerElement.style.bottom = `${this.styleImageElement()?.bottom}px`;\n\n return;\n }\n this.containerElement.style.top = `${this.styleImageElement()?.top ?? rectElement.top}px`;\n }\n private styleRectLeftRightElement(rectElement: DOMRect) {\n if (this.styleImageElement()?.right) {\n this.containerElement.style.right = `${this.styleImageElement()?.right}px`;\n\n return;\n }\n this.containerElement.style.left = `${this.styleImageElement()?.left ?? rectElement.left}px`;\n }\n\n private initEvent() {\n let preEvent: MouseEvent;\n const handlerScrollElement = (event: MouseEvent) => {\n const rectViewPort = this.viewPortElement.getBoundingClientRect();\n const rectImage = this.imgElement.getBoundingClientRect();\n const { ratioX, ratioY } = this.getRatio();\n\n if (event.type === 'scroll') {\n event = {\n clientX: this.Element.scrollLeft * ratioX + rectImage.left + rectViewPort.width / 2,\n clientY: this.Element.scrollTop * ratioY + rectImage.top + rectViewPort.height / 2\n } as MouseEvent;\n this.setPositionRectangle(rectImage, event);\n\n return;\n }\n\n if (event.type === 'mousedown') {\n preEvent = event;\n\n return;\n }\n if (!preEvent) {\n return;\n }\n\n const distanceX = (event.clientX - preEvent.clientX) / ratioX;\n const distanceY = (event.clientY - preEvent.clientY) / ratioY;\n\n preEvent = event;\n this.Element.scroll({\n left: this.Element.scrollLeft + distanceX,\n top: this.Element.scrollTop + distanceY\n });\n };\n\n \n getDragEventByElement({elementMouseDown:this.viewPortElement,elementMouseMove:this.viewPortElement,onDestroy:this.onDestroy}).subscribe(handlerScrollElement);\n fromEvent<Event>(this.Element, 'scroll').pipe(tap(event => event.stopPropagation()), takeUntil(this.onDestroy)).subscribe((event) => handlerScrollElement(event as MouseEvent));\n fromEvent<Event>(window, 'resize').pipe(tap(event => event.stopPropagation()), takeUntil(this.onDestroy)).subscribe(this.updateMiniMap.bind(this));\n }\n\n private getRatio() {\n const rectContainer = this.containerElement.getBoundingClientRect();\n const ratioX = rectContainer.width / this.Element.scrollWidth;\n const ratioY = rectContainer.height / this.Element.scrollHeight;\n\n return { ratioX: ratioX, ratioY: ratioY };\n }\n private getScaleElement() {\n let { scaleX, scaleY } = { scaleX: 1, scaleY: 1 };\n const elementScale = this.Element.getElementsByClassName(this.classNameFlagElementScale())?.[0] as HTMLElement;\n\n if (elementScale && getComputedStyle(elementScale).transform) {\n const matrix = getComputedStyle(this.Element.getElementsByClassName(this.classNameFlagElementScale())[0]).transform;\n const matrixArray = matrix.replace(\"matrix(\", \"\").split(\",\");\n\n scaleX = parseFloat(matrixArray[0]); // convert from string to number\n scaleY = parseFloat(matrixArray[3]);\n }\n\n return { scaleX, scaleY, elementScale };\n }\n\n private reverseMultiplication(avg1: number, avg2: number) {\n if (avg2 <= 1) {\n return avg1 * avg2;\n }\n\n return avg1 / avg2;\n }\n\n private setPositionRectangle(rectImage: IBoundingClientRect, mousePosition: { clientX: number, clientY: number }) {\n const { ratioX, ratioY } = this.getRatio();\n const { scaleX, scaleY } = this.getScaleElement();\n\n const width = this.Element.clientWidth * this.reverseMultiplication(ratioX, scaleX);\n const height = this.Element.clientHeight * this.reverseMultiplication(ratioY, scaleY);\n let leftSvg = mousePosition.clientX - width / 2;\n let topSvg = mousePosition.clientY - height / 2;\n\n if (leftSvg < rectImage.left) {\n leftSvg = rectImage.left;\n }\n if (leftSvg + width >= rectImage.left + rectImage.width) {\n leftSvg = rectImage.left + rectImage.width - width;\n }\n if (topSvg < rectImage.top) {\n topSvg = rectImage.top;\n }\n if (topSvg + height >= rectImage.top + rectImage.height) {\n topSvg = rectImage.top + rectImage.height - height;\n }\n this.viewPortElement.style.left = `${leftSvg}px`;\n this.viewPortElement.style.top = `${topSvg}px`;\n this.viewPortElement.style.width = `${width}px`;\n this.viewPortElement.style.height = `${Math.round(height)}px`;\n }\n\n private updateMiniMap() {\n this.imgElement.firstElementChild?.remove();\n let { ratioX, ratioY } = this.getRatio();\n const nodeClone = this.elementRef.nativeElement.cloneNode(true) as HTMLElement;\n const { scaleX, scaleY } = this.getScaleElement();\n\n ratioX = this.reverseMultiplication(ratioX, scaleX);\n ratioY = this.reverseMultiplication(ratioY, scaleY);\n nodeClone.style.transform = `scale(${ratioX},${ratioY})`;\n nodeClone.classList.add('mo-lib-overflow-unset');\n this.imgElement.append(nodeClone);\n\n const translateX = (nodeClone.getBoundingClientRect().left - this.imgElement.getBoundingClientRect().left) / ratioX;\n const translateY = (nodeClone.getBoundingClientRect().top - this.imgElement.getBoundingClientRect().top) / ratioY;\n const viewPortElement = this.viewPortElement.getBoundingClientRect();\n const rectImage = this.imgElement.getBoundingClientRect();\n const event = {\n clientX: this.Element.scrollLeft * ratioX + rectImage.left + viewPortElement.width / 2,\n clientY: this.Element.scrollTop * ratioY + rectImage.top + viewPortElement.height / 2\n } as MouseEvent;\n\n nodeClone.style.transform = `scale(${ratioX},${ratioY}) translate(-${translateX}px,-${translateY}px)`;\n this.setPositionRectangle(rectImage, event);\n }\n\n private toggle() {\n if (this.isShow()) {\n this.hidden();\n\n return;\n }\n\n this.show();\n }\n\n private hidden() {\n this.isShow.set(false);\n this.containerElement?.classList.add('invisible');\n this.viewPortElement.classList.add('invisible');\n }\n\n private show() {\n this.isShow.set(true);\n this.containerElement?.classList.remove('invisible');\n this.viewPortElement.classList.remove('invisible');\n }\n\n private get Element(): HTMLElement {\n return this.elementScroll() || this.elementRef.nativeElement;\n }\n\n // #endregion\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|