UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

1 lines • 35 kB
{"version":3,"file":"taiga-ui-kit-components-preview.mjs","sources":["../../../projects/kit/components/preview/action/preview-action.directive.ts","../../../projects/kit/components/preview/dialog/preview-dialog.component.ts","../../../projects/kit/components/preview/dialog/preview-dialog.service.ts","../../../projects/kit/components/preview/dialog/preview-dialog.directive.ts","../../../projects/kit/components/preview/preview.options.ts","../../../projects/kit/components/preview/pagination/preview-pagination.component.ts","../../../projects/kit/components/preview/pagination/preview-pagination.template.html","../../../projects/kit/components/preview/zoom/preview-zoom.component.ts","../../../projects/kit/components/preview/zoom/preview-zoom.template.html","../../../projects/kit/components/preview/preview.component.ts","../../../projects/kit/components/preview/preview.template.html","../../../projects/kit/components/preview/title/preview-title.component.ts","../../../projects/kit/components/preview/preview.ts","../../../projects/kit/components/preview/taiga-ui-kit-components-preview.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\n\n@Directive({\n selector: '[tuiPreviewAction]',\n providers: [tuiButtonOptionsProvider({appearance: 'preview-action', size: 's'})],\n host: {'[style.border-radius.rem]': '100'},\n})\nexport class TuiPreviewAction {}\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n selector: 'tui-preview-dialog',\n imports: [PolymorpheusOutlet],\n template: `\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n {{ text }}\n </ng-container>\n `,\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import './preview-dialog.style.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated],\n host: {\n 'data-tui-version': TUI_VERSION,\n '(document:keydown.esc.prevent)': 'context.$implicit.complete()',\n },\n})\nexport class TuiPreviewDialog {\n protected readonly context = injectContext<TuiPortalContext<void>>();\n}\n","import {Injectable} from '@angular/core';\nimport {TuiModalService} from '@taiga-ui/core/portals/modal';\n\nimport {TuiPreviewDialog} from './preview-dialog.component';\n\n@Injectable({providedIn: 'root'})\nexport class TuiPreviewDialogService extends TuiModalService<unknown> {\n protected readonly options = {};\n protected readonly content = TuiPreviewDialog;\n}\n","import {Directive} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {TuiPreviewDialogService} from './preview-dialog.service';\n\n@Directive({\n selector: 'ng-template[tuiPreviewDialog]',\n providers: [tuiAsPortal(TuiPreviewDialogService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: ['open: tuiPreviewDialog'],\n outputs: ['openChange: tuiPreviewDialogChange'],\n },\n ],\n})\nexport class TuiPreviewDialogDirective {}\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiPreviewIcons {\n readonly next: string;\n readonly prev: string;\n readonly rotate: string;\n readonly zoomIn: string;\n readonly zoomOut: string;\n readonly zoomReset: string;\n}\n\nexport const TUI_PREVIEW_ICONS_DEFAULT: TuiPreviewIcons = {\n rotate: '@tui.rotate-ccw-square',\n prev: '@tui.arrow-left',\n next: '@tui.arrow-right',\n zoomIn: '@tui.plus',\n zoomOut: '@tui.minus',\n zoomReset: '@tui.minimize',\n};\n\nexport const [TUI_PREVIEW_ICONS, tuiPreviewIconsProvider] = tuiCreateOptions(\n TUI_PREVIEW_ICONS_DEFAULT,\n);\n","import {ChangeDetectionStrategy, Component, inject, input, model} from '@angular/core';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_PAGINATION_TEXTS} from '@taiga-ui/kit/tokens';\n\nimport {TuiPreviewAction} from '../action/preview-action.directive';\nimport {TUI_PREVIEW_ICONS, type TuiPreviewIcons} from '../preview.options';\n\n@Component({\n selector: 'tui-preview-pagination',\n imports: [TuiButton, TuiPreviewAction],\n templateUrl: './preview-pagination.template.html',\n styleUrl: './preview-pagination.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(document:keydown.arrowLeft.prevent)': 'onArrowClick(-1)',\n '(document:keydown.arrowRight.prevent)': 'onArrowClick(1)',\n },\n})\nexport class TuiPreviewPagination {\n protected readonly icons: TuiPreviewIcons = inject(TUI_PREVIEW_ICONS);\n protected readonly texts = inject(TUI_PAGINATION_TEXTS);\n public readonly length = input(1);\n public readonly index = model(0);\n\n public onArrowClick(step: number): void {\n this.index.set(tuiClamp(this.index() + step, 0, this.length() - 1));\n }\n}\n","<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_left\"\n [disabled]=\"!index()\"\n [iconStart]=\"icons.prev\"\n (click)=\"onArrowClick(-1)\"\n>\n {{ texts()[0] }}\n</button>\n{{ index() + 1 }}/{{ length() }}\n<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_right\"\n [disabled]=\"index() === length() - 1\"\n [iconStart]=\"icons.next\"\n (click)=\"onArrowClick(1)\"\n>\n {{ texts()[1] }}\n</button>\n","import {PercentPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n output,\n} from '@angular/core';\nimport {toObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiSlider} from '@taiga-ui/core/components/slider';\nimport {TuiHint} from '@taiga-ui/core/portals/hint';\nimport {TUI_PREVIEW_ZOOM_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, merge, of, skip, startWith, switchMap, timer} from 'rxjs';\n\nimport {TuiPreviewAction} from '../action/preview-action.directive';\nimport {TUI_PREVIEW_ICONS, type TuiPreviewIcons} from '../preview.options';\n\n@Component({\n selector: 'tui-preview-zoom',\n imports: [FormsModule, PercentPipe, TuiButton, TuiHint, TuiPreviewAction, TuiSlider],\n templateUrl: './preview-zoom.template.html',\n styleUrl: './preview-zoom.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewZoom {\n protected readonly icons: TuiPreviewIcons = inject(TUI_PREVIEW_ICONS);\n protected readonly texts = inject(TUI_PREVIEW_ZOOM_TEXTS);\n\n protected readonly sliderLabel = computed(\n () => `${this.texts().zoomOut} / ${this.texts().zoomIn}`,\n );\n\n public readonly min = input(0.5);\n public readonly max = input(2);\n public readonly value = model(1);\n public readonly reset = output();\n\n protected readonly hint = toSignal(\n toObservable(this.value).pipe(\n skip(1),\n switchMap(() => merge(of(true), timer(1000).pipe(map(TUI_FALSE_HANDLER)))),\n startWith(false),\n ),\n {requireSync: true},\n );\n\n protected clamp(value: number): void {\n this.value.set(tuiClamp(value, this.min(), this.max()));\n }\n}\n","<section class=\"t-zoom\">\n <button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-sign_minus\"\n [disabled]=\"value() === min()\"\n [iconStart]=\"icons.zoomOut\"\n (click)=\"clamp(value() - 0.5)\"\n >\n {{ texts().zoomOut }}\n </button>\n <label tuiSliderThumbLabel>\n <div\n [tuiHint]=\"value() | percent\"\n [tuiHintManual]=\"hint()\"\n ></div>\n <input\n step=\"any\"\n tuiSlider\n tuiTheme=\"dark\"\n type=\"range\"\n class=\"t-slider\"\n [attr.aria-label]=\"sliderLabel()\"\n [attr.aria-valuetext]=\"value() | percent\"\n [max]=\"max()\"\n [min]=\"min()\"\n [ngModel]=\"value()\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"clamp($event)\"\n />\n </label>\n <button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-sign_plus\"\n [disabled]=\"value() === max()\"\n [iconStart]=\"icons.zoomIn\"\n (click)=\"clamp(value() + 0.5)\"\n >\n {{ texts().zoomIn }}\n </button>\n</section>\n<button\n tuiHintAppearance=\"floating\"\n tuiHintDescribe\n tuiHintDirection=\"top-end\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-reset-button\"\n [class.t-invisible]=\"value() === this.min()\"\n [iconStart]=\"icons.zoomReset\"\n [tuiHint]=\"texts().reset\"\n (click)=\"reset.emit()\"\n>\n {{ texts().reset }}\n</button>\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n input,\n} from '@angular/core';\nimport {WaMutationObserver} from '@ng-web-apis/mutation-observer';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiPan} from '@taiga-ui/cdk/directives/pan';\nimport {TuiZoom, type TuiZoomEvent} from '@taiga-ui/cdk/directives/zoom';\nimport {tuiDragAndDropFrom, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp, tuiRound} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiHint} from '@taiga-ui/core/portals/hint';\nimport {TUI_PREVIEW_TEXTS} from '@taiga-ui/kit/tokens';\nimport {BehaviorSubject, combineLatest, map, merge, startWith} from 'rxjs';\n\nimport {TuiPreviewAction} from './action/preview-action.directive';\nimport {TUI_PREVIEW_ICONS} from './preview.options';\nimport {TuiPreviewZoom} from './zoom/preview-zoom.component';\n\nconst EMPTY_COORDINATES: [number, number] = [0, 0];\nconst ROTATION_ANGLE = 90;\n\n@Component({\n selector: 'tui-preview',\n imports: [\n AsyncPipe,\n TuiButton,\n TuiHint,\n TuiPan,\n TuiPreviewAction,\n TuiPreviewZoom,\n TuiZoom,\n WaMutationObserver,\n WaResizeObserver,\n ],\n templateUrl: './preview.template.html',\n styleUrl: './preview.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewComponent {\n private readonly el = tuiInjectElement();\n protected minZoom = 1;\n protected width = 0;\n protected height = 0;\n protected readonly texts = inject(TUI_PREVIEW_TEXTS);\n protected readonly icons = inject(TUI_PREVIEW_ICONS);\n protected readonly cdr = inject(ChangeDetectorRef);\n protected readonly zoom$ = new BehaviorSubject(this.minZoom);\n protected readonly rotation$ = new BehaviorSubject(0);\n\n protected readonly coordinates$ = new BehaviorSubject<readonly [number, number]>(\n EMPTY_COORDINATES,\n );\n\n protected readonly transitioned$ = merge(\n tuiDragAndDropFrom(this.el).pipe(map(({stage}) => stage !== 'continues')),\n tuiTypedFromEvent(this.el, 'touchmove', {\n passive: true,\n }).pipe(map(TUI_FALSE_HANDLER)),\n tuiTypedFromEvent(this.el, 'wheel', {passive: true}).pipe(map(TUI_FALSE_HANDLER)),\n );\n\n protected readonly cursor$ = tuiDragAndDropFrom(this.el).pipe(\n map(({stage}) => (stage === 'continues' ? 'grabbing' : 'initial')),\n startWith('initial'),\n );\n\n protected readonly wrapperTransform$ = combineLatest([\n this.coordinates$.pipe(map(([x, y]) => `${tuiPx(x)}, ${tuiPx(y)}`)),\n this.zoom$,\n this.rotation$,\n ]).pipe(\n map(\n ([translate, zoom, rotation]) =>\n `translate(${translate}) scale(${zoom}) rotate(${rotation}deg)`,\n ),\n );\n\n public readonly zoomable = input(true);\n public readonly rotatable = input(false);\n public readonly initialScale = input(0.8);\n\n protected rotate(): void {\n this.rotation$.next(this.rotation$.value - ROTATION_ANGLE);\n }\n\n protected onPan(delta: readonly [number, number]): void {\n this.coordinates$.next(\n this.getGuardedCoordinates(\n this.coordinates$.value[0] + delta[0],\n this.coordinates$.value[1] + delta[1],\n ),\n );\n }\n\n protected onMutation(contentWrapper: HTMLElement): void {\n const {clientWidth, clientHeight} = contentWrapper;\n\n this.refresh(clientWidth, clientHeight);\n }\n\n protected onZoom({clientX, clientY, delta}: TuiZoomEvent): void {\n if (this.zoomable()) {\n this.processZoom(clientX, clientY, delta);\n }\n }\n\n protected onResize([entry]: readonly ResizeObserverEntry[]): void {\n if (entry?.contentRect) {\n this.refresh(entry.contentRect.width, entry.contentRect.height);\n this.cdr.detectChanges();\n }\n }\n\n protected reset(): void {\n this.zoom$.next(this.minZoom);\n this.coordinates$.next(EMPTY_COORDINATES);\n }\n\n protected setZoom(zoom: number): void {\n this.zoom$.next(zoom);\n const [x, y] = this.coordinates$.value;\n\n this.coordinates$.next(this.getGuardedCoordinates(x, y));\n }\n\n private get offsets(): {offsetX: number; offsetY: number} {\n const offsetX = ((this.zoom$.value - this.minZoom) * this.width) / 2;\n const offsetY = ((this.zoom$.value - this.minZoom) * this.height) / 2;\n\n return {offsetX, offsetY};\n }\n\n private calculateMinZoom(\n contentHeight: number,\n contentWidth: number,\n boxHeight: number,\n boxWidth: number,\n ): number {\n const bigSize =\n contentHeight > boxHeight * this.initialScale() ||\n contentWidth > boxWidth * this.initialScale();\n\n const {clientHeight, clientWidth} = this.el;\n\n return bigSize\n ? tuiRound(\n Math.min(\n (clientHeight * this.initialScale()) / contentHeight,\n (clientWidth * this.initialScale()) / contentWidth,\n ),\n 2,\n )\n : 1;\n }\n\n private refresh(width: number, height: number): void {\n this.width = width;\n this.height = height;\n this.minZoom = this.calculateMinZoom(\n height,\n width,\n this.el.clientHeight,\n this.el.clientWidth,\n );\n this.zoom$.next(this.minZoom);\n this.coordinates$.next(EMPTY_COORDINATES);\n this.rotation$.next(0);\n }\n\n private processZoom(clientX: number, clientY: number, delta: number): void {\n const oldScale = this.zoom$.value;\n const newScale = tuiClamp(oldScale + delta, this.minZoom, 2);\n\n const center = this.getScaleCenter(\n {clientX, clientY},\n this.coordinates$.value,\n this.zoom$.value,\n );\n\n const moveX = center[0] * oldScale - center[0] * newScale;\n const moveY = center[1] * oldScale - center[1] * newScale;\n\n this.zoom$.next(newScale);\n this.coordinates$.next(\n this.getGuardedCoordinates(\n this.coordinates$.value[0] + moveX,\n this.coordinates$.value[1] + moveY,\n ),\n );\n }\n\n private getGuardedCoordinates(x: number, y: number): readonly [number, number] {\n const {offsetX, offsetY} = this.offsets;\n\n return [tuiClamp(x, -offsetX, offsetX), tuiClamp(y, -offsetY, offsetY)];\n }\n\n private getScaleCenter(\n {clientX, clientY}: {clientX: number; clientY: number},\n [x, y]: readonly [number, number],\n scale: number,\n ): [number, number] {\n return [\n (clientX - x - this.el.offsetWidth / 2) / scale,\n (clientY - y - this.el.offsetHeight / 2) / scale,\n ];\n }\n}\n","<section\n #contentWrapper\n attributeFilter=\"src\"\n characterData\n childList\n subtree\n class=\"t-wrapper\"\n [class.t-not-interactive-content]=\"zoomable()\"\n [class.t-transitive]=\"transitioned$ | async\"\n [style.cursor]=\"cursor$ | async\"\n [style.transform]=\"wrapperTransform$ | async\"\n (tuiPan)=\"onPan($event)\"\n (tuiZoom)=\"onZoom($event)\"\n (waMutationObserver)=\"onMutation(contentWrapper)\"\n (waResizeObserver)=\"onResize($event)\"\n>\n <ng-content />\n</section>\n<header class=\"t-header\">\n <div class=\"t-title\">\n <ng-content select=\"tui-preview-title\" />\n </div>\n <ng-content select=\"tui-preview-pagination\" />\n <div class=\"t-actions\">\n <ng-content select=\"[tuiPreviewAction]\" />\n </div>\n</header>\n<footer class=\"t-footer\">\n @if (rotatable()) {\n <button\n tuiHintAppearance=\"floating\"\n tuiHintDescribe\n tuiHintDirection=\"top-end\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-rotate-button\"\n [iconStart]=\"icons.rotate\"\n [tuiHint]=\"texts().rotate\"\n (click)=\"rotate()\"\n ></button>\n }\n @if (zoomable()) {\n <tui-preview-zoom\n [min]=\"minZoom\"\n [value]=\"(zoom$ | async) || 1\"\n (reset)=\"reset()\"\n (valueChange)=\"setZoom($event)\"\n />\n }\n</footer>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'tui-preview-title',\n template: `\n <ng-content />\n `,\n styleUrl: './preview-title.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewTitle {}\n","import {TuiPreviewAction} from './action/preview-action.directive';\nimport {TuiPreviewDialogDirective} from './dialog/preview-dialog.directive';\nimport {TuiPreviewPagination} from './pagination/preview-pagination.component';\nimport {TuiPreviewComponent} from './preview.component';\nimport {TuiPreviewTitle} from './title/preview-title.component';\nimport {TuiPreviewZoom} from './zoom/preview-zoom.component';\n\nexport const TuiPreview = [\n TuiPreviewComponent,\n TuiPreviewDialogDirective,\n TuiPreviewTitle,\n TuiPreviewPagination,\n TuiPreviewAction,\n TuiPreviewZoom,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}