{"version":3,"file":"vts-voffice-ng-vts-image.mjs","sources":["../../components/image/image-config.ts","../../components/image/image-preview-options.ts","../../components/image/image-preview-ref.ts","../../components/image/utils.ts","../../components/image/image-preview.component.ts","../../components/image/image.service.ts","../../components/image/image-group.component.ts","../../components/image/image.directive.ts","../../components/image/image.module.ts","../../components/image/public-api.ts","../../components/image/vts-voffice-ng-vts-image.ts"],"sourcesContent":["/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\nimport { VtsConfigKey } from '@vts-voffice/ng-vts/core/config';\r\n\r\nexport const FADE_CLASS_NAME_MAP = {\r\n  enter: 'fade-enter',\r\n  enterActive: 'fade-enter-active',\r\n  leave: 'fade-leave',\r\n  leaveActive: 'fade-leave-active'\r\n};\r\n\r\nexport const IMAGE_PREVIEW_MASK_CLASS_NAME = 'vts-image-preview-mask';\r\nexport const VTS_CONFIG_MODULE_NAME: VtsConfigKey = 'image';\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\nimport { Direction } from '@angular/cdk/bidi';\r\n\r\nexport class VtsImagePreviewOptions {\r\n  vtsKeyboard?: boolean = true;\r\n  vtsNoAnimation?: boolean = false;\r\n  vtsMaskClosable?: boolean = true;\r\n  vtsCloseOnNavigation?: boolean = true;\r\n  vtsZIndex?: number;\r\n  vtsZoom?: number;\r\n  vtsRotate?: number;\r\n  vtsDirection?: Direction;\r\n}\r\n\r\nexport interface VtsImage {\r\n  src: string;\r\n  alt?: string;\r\n  width?: string | number;\r\n  height?: string | number;\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\nimport { ESCAPE, hasModifierKey, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\r\nimport { OverlayRef } from '@angular/cdk/overlay';\r\nimport { filter, take } from 'rxjs/operators';\r\n\r\nimport { VtsImagePreviewOptions } from './image-preview-options';\r\nimport { VtsImagePreviewComponent } from './image-preview.component';\r\n\r\nexport class VtsImagePreviewRef {\r\n  constructor(\r\n    public previewInstance: VtsImagePreviewComponent,\r\n    private config: VtsImagePreviewOptions,\r\n    private overlayRef: OverlayRef\r\n  ) {\r\n    overlayRef\r\n      .keydownEvents()\r\n      .pipe(\r\n        filter(\r\n          event =>\r\n            (this.config.vtsKeyboard as boolean) &&\r\n            (event.keyCode === ESCAPE ||\r\n              event.keyCode === LEFT_ARROW ||\r\n              event.keyCode === RIGHT_ARROW) &&\r\n            !hasModifierKey(event)\r\n        )\r\n      )\r\n      .subscribe(event => {\r\n        event.preventDefault();\r\n        if (event.keyCode === ESCAPE) {\r\n          this.close();\r\n        }\r\n        if (event.keyCode === LEFT_ARROW) {\r\n          this.prev();\r\n        }\r\n        if (event.keyCode === RIGHT_ARROW) {\r\n          this.next();\r\n        }\r\n      });\r\n\r\n    overlayRef.detachments().subscribe(() => {\r\n      this.overlayRef.dispose();\r\n    });\r\n\r\n    previewInstance.containerClick.pipe(take(1)).subscribe(() => {\r\n      this.close();\r\n    });\r\n\r\n    previewInstance.closeClick.pipe(take(1)).subscribe(() => {\r\n      this.close();\r\n    });\r\n\r\n    previewInstance.animationStateChanged\r\n      .pipe(\r\n        filter(event => event.phaseName === 'done' && event.toState === 'leave'),\r\n        take(1)\r\n      )\r\n      .subscribe(() => {\r\n        this.dispose();\r\n      });\r\n  }\r\n\r\n  switchTo(index: number): void {\r\n    this.previewInstance.switchTo(index);\r\n  }\r\n\r\n  next(): void {\r\n    this.previewInstance.next();\r\n  }\r\n\r\n  prev(): void {\r\n    this.previewInstance.prev();\r\n  }\r\n\r\n  close(): void {\r\n    this.previewInstance.startLeaveAnimation();\r\n  }\r\n\r\n  private dispose(): void {\r\n    this.overlayRef.dispose();\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\n/**\r\n * fit content details: https://github.com/NG-ZORRO/ng-zorro-antd/pull/6154#issuecomment-745025554\r\n *\r\n * calc position x,y point\r\n *\r\n * CASE (width <= clientWidth && height <= clientHeight):\r\n *\r\n * ------------- clientWidth -------------\r\n * |                                     |\r\n * |        ------ width ------          |\r\n * |        |                 |          |\r\n * |        |                 |          |\r\n * client   height            |          |\r\n * Height   |                 |          |\r\n * |        |                 |          |\r\n * |        -------------------          |\r\n * |                                     |\r\n * |                                     |\r\n * ---------------------------------------\r\n * fixedPosition = { x: 0, y: 0 }\r\n *\r\n *\r\n *\r\n * CASE (width > clientWidth || height > clientHeight):\r\n *\r\n * ------------- clientWidth -------------\r\n * |        |                            |\r\n * |        top                          |\r\n * |        |                            |\r\n * |--left--|--------------- width -----------------\r\n * |        |                                      |\r\n * client   |                                      |\r\n * Height   |                                      |\r\n * |        |                                      |\r\n * |        |                                      |\r\n * |        height                                 |\r\n * |        |                                      |\r\n * ---------|                                      |\r\n *          |                                      |\r\n *          |                                      |\r\n *          |                                      |\r\n *          ----------------------------------------\r\n *\r\n *\r\n * - left || top > 0\r\n *   left -> 0 || top -> 0\r\n *\r\n * - (left + width) < clientWidth || (top + height) < clientHeight\r\n * - left | top + width | height < clientWidth | clientHeight -> Back left | top + width | height === clientWidth | clientHeight\r\n *\r\n * DEFAULT:\r\n * - hold position\r\n *\r\n */\r\nexport function getFitContentPosition(params: {\r\n  width: number;\r\n  height: number;\r\n  left: number;\r\n  top: number;\r\n  clientWidth: number;\r\n  clientHeight: number;\r\n}): { x?: number; y?: number } {\r\n  let fixPos = {};\r\n\r\n  if (params.width <= params.clientWidth && params.height <= params.clientHeight) {\r\n    fixPos = {\r\n      x: 0,\r\n      y: 0\r\n    };\r\n  }\r\n\r\n  if (params.width > params.clientWidth || params.height > params.clientHeight) {\r\n    fixPos = {\r\n      x: fitPoint(params.left, params.width, params.clientWidth),\r\n      y: fitPoint(params.top, params.height, params.clientHeight)\r\n    };\r\n  }\r\n\r\n  return fixPos;\r\n}\r\n\r\nexport function getOffset(node: HTMLElement): { left: number; top: number } {\r\n  const box = node.getBoundingClientRect();\r\n  const docElem = document.documentElement;\r\n\r\n  // use docElem.scrollLeft to support IE\r\n  return {\r\n    left:\r\n      box.left +\r\n      (window.pageXOffset || docElem.scrollLeft) -\r\n      (docElem.clientLeft || document.body.clientLeft || 0),\r\n    top:\r\n      box.top +\r\n      (window.pageYOffset || docElem.scrollTop) -\r\n      (docElem.clientTop || document.body.clientTop || 0)\r\n  };\r\n}\r\n\r\nexport function getClientSize(): { width: number; height: number } {\r\n  const width = document.documentElement.clientWidth;\r\n  const height = window.innerHeight || document.documentElement.clientHeight;\r\n  return {\r\n    width,\r\n    height\r\n  };\r\n}\r\n\r\nfunction fitPoint(start: number, size: number, clientSize: number): number | null {\r\n  const startAddSize = start + size;\r\n  const offsetStart = (size - clientSize) / 2;\r\n  let distance: number | null = null;\r\n\r\n  if (size > clientSize) {\r\n    if (start > 0) {\r\n      distance = offsetStart;\r\n    }\r\n    if (start < 0 && startAddSize < clientSize) {\r\n      distance = -offsetStart;\r\n    }\r\n  } else {\r\n    if (start < 0 || startAddSize > clientSize) {\r\n      distance = start < 0 ? offsetStart : -offsetStart;\r\n    }\r\n  }\r\n\r\n  return distance;\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\nimport { AnimationEvent } from '@angular/animations';\r\nimport { OverlayRef } from '@angular/cdk/overlay';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  OnDestroy,\r\n  OnInit,\r\n  ViewChild,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { fadeMotion } from '@vts-voffice/ng-vts/core/animation';\r\nimport { VtsConfigService } from '@vts-voffice/ng-vts/core/config';\r\nimport { VtsSafeAny } from '@vts-voffice/ng-vts/core/types';\r\nimport { isNotNil } from '@vts-voffice/ng-vts/core/util';\r\nimport { Subject } from 'rxjs';\r\nimport { VtsIconService } from '@vts-voffice/ng-vts/icon';\r\n\r\nimport { FADE_CLASS_NAME_MAP, VTS_CONFIG_MODULE_NAME } from './image-config';\r\nimport { VtsImage, VtsImagePreviewOptions } from './image-preview-options';\r\nimport { VtsImagePreviewRef } from './image-preview-ref';\r\nimport { getClientSize, getFitContentPosition, getOffset } from './utils';\r\n\r\nexport interface VtsImageContainerOperation {\r\n  icon: string;\r\n  type: string;\r\n\r\n  onClick(): void;\r\n}\r\n\r\nconst initialPosition = {\r\n  x: 0,\r\n  y: 0\r\n};\r\n\r\n@Component({\r\n  selector: 'vts-image-preview',\r\n  exportAs: 'vtsImagePreview',\r\n  animations: [fadeMotion],\r\n  template: `\r\n    <div class=\"vts-image-preview\">\r\n      <div\r\n        tabindex=\"0\"\r\n        aria-hidden=\"true\"\r\n        style=\"width: 0; height: 0; overflow: hidden; outline: none;\"\r\n      ></div>\r\n      <div class=\"vts-image-preview-content\">\r\n        <div class=\"vts-image-preview-body\">\r\n          <ul class=\"vts-image-preview-operations\">\r\n            <li\r\n              class=\"vts-image-preview-operations-operation\"\r\n              [class.vts-image-preview-operations-operation-disabled]=\"\r\n                zoomOutDisabled && option.type === 'zoomOut'\r\n              \"\r\n              (click)=\"option.onClick()\"\r\n              *ngFor=\"let option of operations\"\r\n            >\r\n              <span\r\n                class=\"vts-image-preview-operations-icon\"\r\n                vts-icon\r\n                [vtsType]=\"option.icon\"\r\n              ></span>\r\n            </li>\r\n          </ul>\r\n          <div\r\n            class=\"vts-image-preview-img-wrapper\"\r\n            cdkDrag\r\n            [style.transform]=\"previewImageWrapperTransform\"\r\n            [cdkDragFreeDragPosition]=\"position\"\r\n            (mousedown)=\"onDragStarted()\"\r\n            (cdkDragReleased)=\"onDragReleased()\"\r\n          >\r\n            <ng-container *ngFor=\"let image of images; index as imageIndex\">\r\n              <img\r\n                cdkDragHandle\r\n                class=\"vts-image-preview-img\"\r\n                #imgRef\r\n                *ngIf=\"index === imageIndex\"\r\n                [attr.src]=\"image.src\"\r\n                [attr.alt]=\"image.alt\"\r\n                [style.width]=\"image.width\"\r\n                [style.height]=\"image.height\"\r\n                [style.transform]=\"previewImageTransform\"\r\n              />\r\n            </ng-container>\r\n          </div>\r\n          <ng-container *ngIf=\"images.length > 1\">\r\n            <div\r\n              class=\"vts-image-preview-switch-left\"\r\n              [class.vts-image-preview-switch-left-disabled]=\"index <= 0\"\r\n              (click)=\"onSwitchLeft($event)\"\r\n            >\r\n              <span vts-icon vtsType=\"ChevronLeft\"></span>\r\n            </div>\r\n            <div\r\n              class=\"vts-image-preview-switch-right\"\r\n              [class.vts-image-preview-switch-right-disabled]=\"index >= images.length - 1\"\r\n              (click)=\"onSwitchRight($event)\"\r\n            >\r\n              <span vts-icon vtsType=\"ChevronRight\"></span>\r\n            </div>\r\n          </ng-container>\r\n        </div>\r\n      </div>\r\n      <div\r\n        tabindex=\"0\"\r\n        aria-hidden=\"true\"\r\n        style=\"width: 0; height: 0; overflow: hidden; outline: none;\"\r\n      ></div>\r\n    </div>\r\n  `,\r\n  preserveWhitespaces: false,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  encapsulation: ViewEncapsulation.None,\r\n  host: {\r\n    '[class.vts-image-preview-moving]': 'isDragging',\r\n    '[style.zIndex]': 'config.vtsZIndex',\r\n    '[class.vts-image-preview-wrap]': 'true',\r\n    '[@.disabled]': 'config.vtsNoAnimation',\r\n    '[@fadeMotion]': 'animationState',\r\n    '(@fadeMotion.start)': 'onAnimationStart($event)',\r\n    '(@fadeMotion.done)': 'onAnimationDone($event)',\r\n    '(click)': 'onContainerClick($event)',\r\n    tabindex: '-1',\r\n    role: 'document'\r\n  }\r\n})\r\nexport class VtsImagePreviewComponent implements OnInit, OnDestroy {\r\n  images: VtsImage[] = [];\r\n  index = 0;\r\n  isDragging = false;\r\n  visible = true;\r\n  animationState: 'void' | 'enter' | 'leave' = 'enter';\r\n  animationStateChanged = new EventEmitter<AnimationEvent>();\r\n\r\n  previewImageTransform = '';\r\n  previewImageWrapperTransform = '';\r\n  operations: VtsImageContainerOperation[] = [\r\n    {\r\n      icon: 'AvatarPreviewClose:avatar',\r\n      onClick: () => {\r\n        this.onClose();\r\n      },\r\n      type: 'close'\r\n    },\r\n    {\r\n      icon: 'AvatarPreviewZoomIn:avatar',\r\n      onClick: () => {\r\n        this.onZoomIn();\r\n      },\r\n      type: 'zoomIn'\r\n    },\r\n    {\r\n      icon: 'AvatarPreviewZoomOut:avatar',\r\n      onClick: () => {\r\n        this.onZoomOut();\r\n      },\r\n      type: 'zoomOut'\r\n    },\r\n    {\r\n      icon: 'AvatarPreviewRotateRight:avatar',\r\n      onClick: () => {\r\n        this.onRotateRight();\r\n      },\r\n      type: 'rotateRight'\r\n    },\r\n    {\r\n      icon: 'AvatarPreviewRotateLeft:avatar',\r\n      onClick: () => {\r\n        this.onRotateLeft();\r\n      },\r\n      type: 'rotateLeft'\r\n    }\r\n  ];\r\n\r\n  zoomOutDisabled = false;\r\n  position = { ...initialPosition };\r\n  previewRef!: VtsImagePreviewRef;\r\n  containerClick = new EventEmitter<void>();\r\n  closeClick = new EventEmitter<void>();\r\n\r\n  @ViewChild('imgRef') imageRef!: ElementRef<HTMLImageElement>;\r\n\r\n  private zoom: number;\r\n  private rotate: number;\r\n  private destroy$ = new Subject();\r\n\r\n  get animationDisabled(): boolean {\r\n    return this.config.vtsNoAnimation ?? false;\r\n  }\r\n\r\n  get maskClosable(): boolean {\r\n    const defaultConfig: VtsSafeAny =\r\n      this.vtsConfigService.getConfigForComponent(VTS_CONFIG_MODULE_NAME) || {};\r\n    return this.config.vtsMaskClosable ?? defaultConfig.vtsMaskClosable ?? true;\r\n  }\r\n\r\n  constructor(\r\n    private cdr: ChangeDetectorRef,\r\n    public vtsConfigService: VtsConfigService,\r\n    public config: VtsImagePreviewOptions,\r\n    private overlayRef: OverlayRef,\r\n    private iconService: VtsIconService\r\n  ) {\r\n    // TODO: move to host after View Engine deprecation\r\n    this.zoom = this.config.vtsZoom ?? 1;\r\n    this.rotate = this.config.vtsRotate ?? 0;\r\n    this.updateZoomOutDisabled();\r\n    this.updatePreviewImageTransform();\r\n    this.updatePreviewImageWrapperTransform();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.addIcons();\r\n  }\r\n\r\n  addIcons() {\r\n    this.iconService.addIcon({\r\n      icon: `<svg viewBox=\"64 64 896 896\" focusable=\"false\" fill=\"currentColor\" width=\"1em\" height=\"1em\" class=\"ng-tns-c586-146\" data-icon=\"rotate-left\" aria-hidden=\"true\"><defs><style></style></defs><path d=\"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z\"></path><path d=\"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z\"></path></svg>`,\r\n      name: 'AvatarPreviewRotateLeft',\r\n      type: 'avatar'\r\n    });\r\n    this.iconService.addIcon({\r\n      icon: `<svg viewBox=\"64 64 896 896\" focusable=\"false\" fill=\"currentColor\" width=\"1em\" height=\"1em\" class=\"ng-tns-c586-149\" data-icon=\"rotate-left\" aria-hidden=\"true\"><defs><style></style></defs><path d=\"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z\"></path><path d=\"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z\"></path></svg>`,\r\n      name: 'AvatarPreviewRotateLeft',\r\n      type: 'avatar'\r\n    });\r\n    this.iconService.addIcon({\r\n      icon: `<svg viewBox=\"64 64 896 896\" focusable=\"false\" fill=\"currentColor\" width=\"1em\" height=\"1em\" class=\"ng-tns-c586-146\" data-icon=\"rotate-right\" aria-hidden=\"true\"><defs><style></style></defs><path d=\"M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z\"></path><path d=\"M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z\"></path></svg>`,\r\n      name: 'AvatarPreviewRotateRight',\r\n      type: 'avatar'\r\n    });\r\n    this.iconService.addIcon({\r\n      icon: `<svg viewBox=\"64 64 896 896\" focusable=\"false\" fill=\"currentColor\" width=\"1em\" height=\"1em\" class=\"ng-tns-c586-146\" data-icon=\"zoom-out\" aria-hidden=\"true\"><path d=\"M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z\"></path></svg>`,\r\n      name: 'AvatarPreviewZoomOut',\r\n      type: 'avatar'\r\n    });\r\n    this.iconService.addIcon({\r\n      icon: `<svg viewBox=\"64 64 896 896\" focusable=\"false\" fill=\"currentColor\" width=\"1em\" height=\"1em\" class=\"ng-tns-c586-146\" data-icon=\"zoom-in\" aria-hidden=\"true\"><path d=\"M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z\"></path></svg>`,\r\n      name: 'AvatarPreviewZoomIn',\r\n      type: 'avatar'\r\n    });\r\n    this.iconService.addIcon({\r\n      icon: `<svg viewBox=\"64 64 896 896\" focusable=\"false\" fill=\"currentColor\" width=\"1em\" height=\"1em\" class=\"ng-tns-c586-149\" data-icon=\"close\" aria-hidden=\"true\"><path d=\"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\"></path></svg>`,\r\n      name: 'AvatarPreviewClose',\r\n      type: 'avatar'\r\n    });\r\n  }\r\n\r\n  setImages(images: VtsImage[]): void {\r\n    this.images = images;\r\n    this.cdr.markForCheck();\r\n  }\r\n\r\n  switchTo(index: number): void {\r\n    this.index = index;\r\n    this.cdr.markForCheck();\r\n  }\r\n\r\n  next(): void {\r\n    if (this.index < this.images.length - 1) {\r\n      this.reset();\r\n      this.index++;\r\n      this.updatePreviewImageTransform();\r\n      this.updatePreviewImageWrapperTransform();\r\n      this.updateZoomOutDisabled();\r\n      this.cdr.markForCheck();\r\n    }\r\n  }\r\n\r\n  prev(): void {\r\n    if (this.index > 0) {\r\n      this.reset();\r\n      this.index--;\r\n      this.updatePreviewImageTransform();\r\n      this.updatePreviewImageWrapperTransform();\r\n      this.updateZoomOutDisabled();\r\n      this.cdr.markForCheck();\r\n    }\r\n  }\r\n\r\n  markForCheck(): void {\r\n    this.cdr.markForCheck();\r\n  }\r\n\r\n  onClose(): void {\r\n    this.closeClick.emit();\r\n  }\r\n\r\n  onZoomIn(): void {\r\n    this.zoom += 1;\r\n    this.updatePreviewImageTransform();\r\n    this.updateZoomOutDisabled();\r\n    this.position = { ...initialPosition };\r\n  }\r\n\r\n  onZoomOut(): void {\r\n    if (this.zoom > 1) {\r\n      this.zoom -= 1;\r\n      this.updatePreviewImageTransform();\r\n      this.updateZoomOutDisabled();\r\n      this.position = { ...initialPosition };\r\n    }\r\n  }\r\n\r\n  onRotateRight(): void {\r\n    this.rotate += 90;\r\n    this.updatePreviewImageTransform();\r\n  }\r\n\r\n  onRotateLeft(): void {\r\n    this.rotate -= 90;\r\n    this.updatePreviewImageTransform();\r\n  }\r\n\r\n  onSwitchLeft(event: MouseEvent): void {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    this.prev();\r\n  }\r\n\r\n  onSwitchRight(event: MouseEvent): void {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    this.next();\r\n  }\r\n\r\n  onContainerClick(e: MouseEvent): void {\r\n    if (e.target === e.currentTarget && this.maskClosable) {\r\n      this.containerClick.emit();\r\n    }\r\n  }\r\n\r\n  onAnimationStart(event: AnimationEvent): void {\r\n    if (event.toState === 'enter') {\r\n      this.setEnterAnimationClass();\r\n    } else if (event.toState === 'leave') {\r\n      this.setLeaveAnimationClass();\r\n    }\r\n\r\n    this.animationStateChanged.emit(event);\r\n  }\r\n\r\n  onAnimationDone(event: AnimationEvent): void {\r\n    if (event.toState === 'enter') {\r\n      this.setEnterAnimationClass();\r\n    } else if (event.toState === 'leave') {\r\n      this.setLeaveAnimationClass();\r\n    }\r\n    this.animationStateChanged.emit(event);\r\n  }\r\n\r\n  startLeaveAnimation(): void {\r\n    this.animationState = 'leave';\r\n    this.cdr.markForCheck();\r\n  }\r\n\r\n  onDragStarted(): void {\r\n    this.isDragging = true;\r\n  }\r\n\r\n  onDragReleased(): void {\r\n    this.isDragging = false;\r\n    const width = this.imageRef.nativeElement.offsetWidth * this.zoom;\r\n    const height = this.imageRef.nativeElement.offsetHeight * this.zoom;\r\n    const { left, top } = getOffset(this.imageRef.nativeElement);\r\n    const { width: clientWidth, height: clientHeight } = getClientSize();\r\n    const isRotate = this.rotate % 180 !== 0;\r\n    const fitContentParams = {\r\n      width: isRotate ? height : width,\r\n      height: isRotate ? width : height,\r\n      left,\r\n      top,\r\n      clientWidth,\r\n      clientHeight\r\n    };\r\n    const fitContentPos = getFitContentPosition(fitContentParams);\r\n    if (isNotNil(fitContentPos.x) || isNotNil(fitContentPos.y)) {\r\n      this.position = { ...this.position, ...fitContentPos };\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n\r\n  private updatePreviewImageTransform(): void {\r\n    this.previewImageTransform = `scale3d(${this.zoom}, ${this.zoom}, 1) rotate(${this.rotate}deg)`;\r\n  }\r\n\r\n  private updatePreviewImageWrapperTransform(): void {\r\n    this.previewImageWrapperTransform = `translate3d(${this.position.x}px, ${this.position.y}px, 0)`;\r\n  }\r\n\r\n  private updateZoomOutDisabled(): void {\r\n    this.zoomOutDisabled = this.zoom <= 1;\r\n  }\r\n\r\n  private setEnterAnimationClass(): void {\r\n    if (this.animationDisabled) {\r\n      return;\r\n    }\r\n    const backdropElement = this.overlayRef.backdropElement;\r\n    if (backdropElement) {\r\n      backdropElement.classList.add(FADE_CLASS_NAME_MAP.enter);\r\n      backdropElement.classList.add(FADE_CLASS_NAME_MAP.enterActive);\r\n    }\r\n  }\r\n\r\n  private setLeaveAnimationClass(): void {\r\n    if (this.animationDisabled) {\r\n      return;\r\n    }\r\n    const backdropElement = this.overlayRef.backdropElement;\r\n    if (backdropElement) {\r\n      backdropElement.classList.add(FADE_CLASS_NAME_MAP.leave);\r\n      backdropElement.classList.add(FADE_CLASS_NAME_MAP.leaveActive);\r\n    }\r\n  }\r\n\r\n  private reset(): void {\r\n    this.zoom = 1;\r\n    this.rotate = 0;\r\n    this.position = { ...initialPosition };\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Injectable, Injector, Optional } from '@angular/core';\r\nimport { ImageConfig, VtsConfigService } from '@vts-voffice/ng-vts/core/config';\r\n\r\nimport { IMAGE_PREVIEW_MASK_CLASS_NAME, VTS_CONFIG_MODULE_NAME } from './image-config';\r\nimport { VtsImage, VtsImagePreviewOptions } from './image-preview-options';\r\nimport { VtsImagePreviewRef } from './image-preview-ref';\r\nimport { VtsImagePreviewComponent } from './image-preview.component';\r\n\r\nexport interface VtsImageService {\r\n  preview(images: VtsImage[], option?: VtsImagePreviewOptions): VtsImagePreviewRef;\r\n}\r\n\r\n@Injectable()\r\nexport class VtsImageService {\r\n  constructor(\r\n    private overlay: Overlay,\r\n    private injector: Injector,\r\n    private vtsConfigService: VtsConfigService,\r\n    @Optional() private directionality: Directionality\r\n  ) {}\r\n\r\n  preview(images: VtsImage[], options?: VtsImagePreviewOptions): VtsImagePreviewRef {\r\n    return this.display(images, options);\r\n  }\r\n\r\n  private display(images: VtsImage[], config?: VtsImagePreviewOptions): VtsImagePreviewRef {\r\n    const configMerged = { ...new VtsImagePreviewOptions(), ...(config ?? {}) };\r\n    const overlayRef = this.createOverlay(configMerged);\r\n    const previewComponent = this.attachPreviewComponent(overlayRef, configMerged);\r\n    previewComponent.setImages(images);\r\n    const previewRef = new VtsImagePreviewRef(previewComponent, configMerged, overlayRef);\r\n\r\n    previewComponent.previewRef = previewRef;\r\n    return previewRef;\r\n  }\r\n\r\n  private attachPreviewComponent(\r\n    overlayRef: OverlayRef,\r\n    config: VtsImagePreviewOptions\r\n  ): VtsImagePreviewComponent {\r\n    const injector = Injector.create({\r\n      parent: this.injector,\r\n      providers: [\r\n        { provide: OverlayRef, useValue: overlayRef },\r\n        { provide: VtsImagePreviewOptions, useValue: config }\r\n      ]\r\n    });\r\n\r\n    const containerPortal = new ComponentPortal(VtsImagePreviewComponent, null, injector);\r\n    const containerRef = overlayRef.attach(containerPortal);\r\n\r\n    return containerRef.instance;\r\n  }\r\n\r\n  private createOverlay(config: VtsImagePreviewOptions): OverlayRef {\r\n    const globalConfig =\r\n      (this.vtsConfigService.getConfigForComponent(VTS_CONFIG_MODULE_NAME) as ImageConfig) || {};\r\n    const overLayConfig = new OverlayConfig({\r\n      hasBackdrop: true,\r\n      scrollStrategy: this.overlay.scrollStrategies.block(),\r\n      positionStrategy: this.overlay.position().global(),\r\n      disposeOnNavigation: config.vtsCloseOnNavigation ?? globalConfig.vtsCloseOnNavigation ?? true,\r\n      backdropClass: IMAGE_PREVIEW_MASK_CLASS_NAME,\r\n      direction: config.vtsDirection || globalConfig.vtsDirection || this.directionality.value\r\n    });\r\n\r\n    return this.overlay.create(overLayConfig);\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { VtsImageDirective } from './image.directive';\r\n\r\n@Component({\r\n  selector: 'vts-image-group',\r\n  exportAs: 'vtsImageGroup',\r\n  template: '<ng-content></ng-content>',\r\n  preserveWhitespaces: false,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class VtsImageGroupComponent {\r\n  images: VtsImageDirective[] = [];\r\n\r\n  addImage(image: VtsImageDirective): void {\r\n    this.images.push(image);\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n  ChangeDetectorRef,\r\n  Directive,\r\n  ElementRef,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Optional,\r\n  SimpleChanges\r\n} from '@angular/core';\r\nimport { VtsConfigKey, VtsConfigService, WithConfig } from '@vts-voffice/ng-vts/core/config';\r\nimport { BooleanInput } from '@vts-voffice/ng-vts/core/types';\r\nimport { InputBoolean } from '@vts-voffice/ng-vts/core/util';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { VtsImageGroupComponent } from './image-group.component';\r\nimport { VtsImageService } from './image.service';\r\n\r\nconst VTS_CONFIG_MODULE_NAME: VtsConfigKey = 'image';\r\n\r\nexport type ImageStatusType = 'error' | 'loading' | 'normal';\r\nexport type VtsImageShape = 'rounded' | 'circle' | 'square';\r\n\r\n@Directive({\r\n  selector: 'img[vts-image]',\r\n  exportAs: 'vtsImage',\r\n  host: {\r\n    '(click)': 'onPreview()',\r\n    '[class.vts-image]': 'true',\r\n    '[class.vts-image-square]': 'vtsShape === \"square\"',\r\n    '[class.vts-image-circle]': 'vtsShape === \"circle\"',\r\n    '[class.vts-image-rounded]': 'vtsShape === \"rounded\"',\r\n    '[class.vts-image-thumbnail]': 'vtsThumbnail',\r\n    '[style.objectFit]': 'vtsFit'\r\n  }\r\n})\r\nexport class VtsImageDirective implements OnInit, OnChanges, OnDestroy {\r\n  readonly _vtsModuleName: VtsConfigKey = VTS_CONFIG_MODULE_NAME;\r\n\r\n  static ngAcceptInputType_vtsPreview: BooleanInput;\r\n  static ngAcceptInputType_vtsThumbnail: BooleanInput;\r\n\r\n  @Input() vtsSrc = '';\r\n  @Input() @InputBoolean() @WithConfig() vtsPreview: boolean = false;\r\n  @Input() @WithConfig() vtsFallback: string | null = null;\r\n  @Input() @WithConfig() vtsPlaceholder: string | null = null;\r\n  @Input() vtsShape: VtsImageShape = 'square';\r\n  @Input() vtsFit: string | null = null;\r\n  @Input() @InputBoolean() vtsThumbnail: boolean = false;\r\n\r\n  dir?: Direction;\r\n  backLoadImage!: HTMLImageElement;\r\n  private status: ImageStatusType = 'normal';\r\n  private destroy$: Subject<void> = new Subject();\r\n\r\n  get previewable(): boolean {\r\n    return this.vtsPreview && this.status !== 'error';\r\n  }\r\n\r\n  constructor(\r\n    public vtsConfigService: VtsConfigService,\r\n    public elementRef: ElementRef,\r\n    private vtsImageService: VtsImageService,\r\n    protected cdr: ChangeDetectorRef,\r\n    @Optional() private parentGroup: VtsImageGroupComponent,\r\n    @Optional() private directionality: Directionality\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    this.backLoad();\r\n    if (this.parentGroup) {\r\n      this.parentGroup.addImage(this);\r\n    }\r\n    if (this.directionality) {\r\n      this.directionality.change\r\n        ?.pipe(takeUntil(this.destroy$))\r\n        .subscribe((direction: Direction) => {\r\n          this.dir = direction;\r\n          this.cdr.detectChanges();\r\n        });\r\n      this.dir = this.directionality.value;\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n\r\n  onPreview(): void {\r\n    if (!this.previewable) {\r\n      return;\r\n    }\r\n\r\n    if (this.parentGroup) {\r\n      // preview inside image group\r\n      const previewAbleImages = this.parentGroup.images.filter(e => e.previewable);\r\n      const previewImages = previewAbleImages.map(e => ({ src: e.vtsSrc }));\r\n      const previewIndex = previewAbleImages.findIndex(el => this === el);\r\n      const previewRef = this.vtsImageService.preview(previewImages, {\r\n        vtsDirection: this.dir\r\n      });\r\n      previewRef.switchTo(previewIndex);\r\n    } else {\r\n      // preview not inside image group\r\n      const previewImages = [{ src: this.vtsSrc }];\r\n      this.vtsImageService.preview(previewImages, { vtsDirection: this.dir });\r\n    }\r\n  }\r\n\r\n  getElement(): ElementRef<HTMLImageElement> {\r\n    return this.elementRef;\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { vtsSrc } = changes;\r\n    if (vtsSrc) {\r\n      this.getElement().nativeElement.src = vtsSrc.currentValue;\r\n      this.backLoad();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * use internal Image object handle fallback & placeholder\r\n   * @private\r\n   */\r\n  private backLoad(): void {\r\n    this.backLoadImage = new Image();\r\n    this.backLoadImage.src = this.vtsSrc;\r\n    this.status = 'loading';\r\n\r\n    if (this.backLoadImage.complete) {\r\n      this.status = 'normal';\r\n      this.getElement().nativeElement.src = this.vtsSrc;\r\n    } else {\r\n      if (this.vtsPlaceholder) {\r\n        this.getElement().nativeElement.src = this.vtsPlaceholder;\r\n      } else {\r\n        this.getElement().nativeElement.src = this.vtsSrc;\r\n      }\r\n\r\n      this.backLoadImage.onload = () => {\r\n        this.status = 'normal';\r\n        this.getElement().nativeElement.src = this.vtsSrc;\r\n      };\r\n\r\n      this.backLoadImage.onerror = () => {\r\n        this.status = 'error';\r\n        if (this.vtsFallback) {\r\n          this.getElement().nativeElement.src = this.vtsFallback;\r\n        }\r\n      };\r\n    }\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\nimport { BidiModule } from '@angular/cdk/bidi';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { VtsIconModule } from '@vts-voffice/ng-vts/icon';\r\nimport { VtsPipesModule } from '@vts-voffice/ng-vts/pipes';\r\n\r\nimport { VtsImageGroupComponent } from './image-group.component';\r\nimport { VtsImagePreviewComponent } from './image-preview.component';\r\nimport { VtsImageDirective } from './image.directive';\r\nimport { VtsImageService } from './image.service';\r\n\r\n@NgModule({\r\n  imports: [\r\n    BidiModule,\r\n    OverlayModule,\r\n    PortalModule,\r\n    DragDropModule,\r\n    CommonModule,\r\n    VtsIconModule,\r\n    VtsPipesModule\r\n  ],\r\n  exports: [VtsImageDirective, VtsImagePreviewComponent, VtsImageGroupComponent],\r\n  providers: [VtsImageService],\r\n  declarations: [VtsImageDirective, VtsImagePreviewComponent, VtsImageGroupComponent]\r\n})\r\nexport class VtsImageModule {}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nexport * from './image.directive';\r\nexport * from './image.service';\r\nexport * from './image-config';\r\nexport * from './image-group.component';\r\nexport * from './image-preview.component';\r\nexport * from './image-preview-options';\r\nexport * from './image-preview-ref';\r\nexport * from './image.module';\r\nexport * from './utils';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["VTS_CONFIG_MODULE_NAME","i2.VtsImagePreviewOptions","i1","i2","i3","i2.VtsImageService","i3.VtsImageGroupComponent","i4"],"mappings":"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"}