@acorex/components 18.12.19 → 18.12.20
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/color-palette/lib/color-palette-input.component.mjs +1 -1
- package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +1 -1
- package/esm2022/image-editor/lib/image-editor-container/image-editor-container.component.mjs +2 -2
- package/esm2022/media-viewer/lib/media-viewer-tools/file-info/file-info.component.mjs +3 -3
- package/esm2022/media-viewer/lib/media-viewer-tools/image-viewer/image-viewer.component.mjs +3 -3
- package/esm2022/media-viewer/lib/media-viewer-types.mjs +1 -1
- package/esm2022/number-box/lib/number-box.component.mjs +6 -5
- package/fesm2022/acorex-components-color-palette.mjs +1 -1
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +1 -1
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +2 -2
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +4 -4
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +5 -4
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/media-viewer/lib/media-viewer-types.d.ts +2 -2
- package/number-box/lib/number-box.component.d.ts +2 -2
- package/package.json +58 -58
@@ -50,11 +50,11 @@ class AXImageEditorContainerComponent extends MXLookComponent {
|
|
50
50
|
this.service = inject(AXImageEditorService);
|
51
51
|
}
|
52
52
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXImageEditorContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXImageEditorContainerComponent, selector: "ax-image-editor-container", providers: [AXImageEditorService], usesInheritance: true, ngImport: i0, template: "@if (service.isImageLoad()) {\n <div class=\"ax-editor-container ax-look-solid\">\n <ng-content> </ng-content>\n </div>\n} @else {\n <ax-loading-spinner [size]=\"16\" color=\"primary\" text=\"Loading Image ...\"></ax-loading-spinner>\n}\n", styles: ["ax-image-editor-container>.ax-editor-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:auto!important}\n"], dependencies: [{ kind: "component", type: i1.AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["text", "color", "size", "stroke"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXImageEditorContainerComponent, selector: "ax-image-editor-container", providers: [AXImageEditorService], usesInheritance: true, ngImport: i0, template: "@if (service.isImageLoad()) {\n <div class=\"ax-editor-container ax-look-solid\">\n <ng-content> </ng-content>\n </div>\n} @else {\n <ax-loading-spinner [size]=\"16\" color=\"primary\" text=\"Loading Image ...\"></ax-loading-spinner>\n}\n", styles: ["ax-image-editor-container{display:flex;justify-content:center;align-items:center}ax-image-editor-container>.ax-editor-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:auto!important}\n"], dependencies: [{ kind: "component", type: i1.AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["text", "color", "size", "stroke"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
54
54
|
}
|
55
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXImageEditorContainerComponent, decorators: [{
|
56
56
|
type: Component,
|
57
|
-
args: [{ selector: 'ax-image-editor-container', encapsulation: ViewEncapsulation.None, providers: [AXImageEditorService], template: "@if (service.isImageLoad()) {\n <div class=\"ax-editor-container ax-look-solid\">\n <ng-content> </ng-content>\n </div>\n} @else {\n <ax-loading-spinner [size]=\"16\" color=\"primary\" text=\"Loading Image ...\"></ax-loading-spinner>\n}\n", styles: ["ax-image-editor-container>.ax-editor-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:auto!important}\n"] }]
|
57
|
+
args: [{ selector: 'ax-image-editor-container', encapsulation: ViewEncapsulation.None, providers: [AXImageEditorService], template: "@if (service.isImageLoad()) {\n <div class=\"ax-editor-container ax-look-solid\">\n <ng-content> </ng-content>\n </div>\n} @else {\n <ax-loading-spinner [size]=\"16\" color=\"primary\" text=\"Loading Image ...\"></ax-loading-spinner>\n}\n", styles: ["ax-image-editor-container{display:flex;justify-content:center;align-items:center}ax-image-editor-container>.ax-editor-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:auto!important}\n"] }]
|
58
58
|
}] });
|
59
59
|
|
60
60
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-image-editor.mjs","sources":["../../../../libs/components/image-editor/src/lib/image-editor.service.ts","../../../../libs/components/image-editor/src/lib/image-editor-container/image-editor-container.component.ts","../../../../libs/components/image-editor/src/lib/image-editor-container/image-editor-container.component.html","../../../../libs/components/image-editor/src/lib/image-editor-toolbar/image-editor-toolbar.component.ts","../../../../libs/components/image-editor/src/lib/image-editor-toolbar/image-editor-toolbar.component.html","../../../../libs/components/image-editor/src/lib/image-editor-tools/image-editor-color-picker/image-editor-color-picker.component.ts","../../../../libs/components/image-editor/src/lib/image-editor-tools/image-editor-color-picker/image-editor-color-picker.component.html","../../../../libs/components/image-editor/src/lib/image-editor-tools/image-editor-crop/image-editor-crop.component.ts","../../../../libs/components/image-editor/src/lib/image-editor-tools/image-editor-crop/image-editor-crop.component.html","../../../../libs/components/image-editor/src/lib/image-editor-tools/image-editor-pen-mode-changer/image-editor-pen-mode-changer.component.ts","../../../../libs/components/image-editor/src/lib/image-editor-tools/image-editor-pen-mode-changer/image-editor-pen-mode-changer.component.html","../../../../libs/components/image-editor/src/lib/image-editor-view/image-editor-view.component.ts","../../../../libs/components/image-editor/src/lib/image-editor-view/image-editor-view.component.html","../../../../libs/components/image-editor/src/lib/image-editor.module.ts","../../../../libs/components/image-editor/src/acorex-components-image-editor.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXImageEditorService {\n penColor = signal<string | CanvasGradient | CanvasPattern>('');\n lineCap = signal<CanvasLineCap>('round');\n lineWidth = signal<number>(10);\n penType = signal<'pen' | 'highlight'>('pen');\n toggleClear = signal({ state: false, userInteract: false });\n cropState = signal({ state: false, userInteract: false });\n rotate = signal({ state: 0, userInteract: false });\n isImageLoad = signal(false);\n newImage = signal(null);\n initialImage = signal(null);\n imageBlob = signal<Blob[]>([]);\n}\n","import { MXLookComponent } from '@acorex/components/common';\nimport { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorService } from '../image-editor.service';\n\n/**\n * paint container.\n * @category Components\n */\n@Component({\n selector: 'ax-image-editor-container',\n templateUrl: './image-editor-container.component.html',\n styleUrl: './image-editor-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n providers: [AXImageEditorService],\n})\nexport class AXImageEditorContainerComponent extends MXLookComponent {\n /** @ignore */\n protected service = inject(AXImageEditorService);\n}\n","@if (service.isImageLoad()) {\n <div class=\"ax-editor-container ax-look-solid\">\n <ng-content> </ng-content>\n </div>\n} @else {\n <ax-loading-spinner [size]=\"16\" color=\"primary\" text=\"Loading Image ...\"></ax-loading-spinner>\n}\n","import {\r\n AXClearableComponent,\r\n AXComponent,\r\n AXFocusableComponent,\r\n AXStyleColorType,\r\n AXValuableComponent,\r\n MXInputBaseValueComponent,\r\n} from '@acorex/components/common';\r\nimport { AXDialogService } from '@acorex/components/dialog';\r\nimport { Component, forwardRef, inject, signal, ViewEncapsulation } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AXImageEditorService } from '../image-editor.service';\r\n\r\n/**\r\n *paint toolbar\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-image-editor-toolbar',\r\n templateUrl: './image-editor-toolbar.component.html',\r\n styleUrl: './image-editor-toolbar.component.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n outputs: ['onValueChanged'],\r\n providers: [\r\n { provide: AXComponent, useExisting: AXImageEditorToolbarComponent },\r\n { provide: AXFocusableComponent, useExisting: AXImageEditorToolbarComponent },\r\n { provide: AXClearableComponent, useExisting: AXImageEditorToolbarComponent },\r\n { provide: AXValuableComponent, useExisting: AXImageEditorToolbarComponent },\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AXImageEditorToolbarComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AXImageEditorToolbarComponent extends MXInputBaseValueComponent<Blob[]> {\r\n /** @ignore */\r\n protected dialogService: AXDialogService = inject(AXDialogService);\r\n /** @ignore */\r\n protected service = inject(AXImageEditorService);\r\n /** @ignore */\r\n protected options = signal({\r\n color: 'primary',\r\n title: 'Attention',\r\n vertical: false,\r\n content: 'Do you want to save changes?',\r\n orientation: 'vertical' as any,\r\n draggable: true,\r\n });\r\n\r\n /** @ignore */\r\n protected saveHandler() {\r\n if (this.service.initialImage() !== this.service.newImage()) {\r\n this.dialogService\r\n .confirm(\r\n this.options().title,\r\n this.options().content,\r\n this.options().color as AXStyleColorType,\r\n this.options().orientation,\r\n this.options().draggable,\r\n )\r\n .then((data) => {\r\n if (data.result) {\r\n this.service.initialImage.set(this.service.newImage());\r\n this.commitValue(this.service.imageBlob());\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"ax-toolbar-container\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n<ax-button color=\"primary\" (onClick)=\"saveHandler()\" class=\"ax-save-btn ax-sm\" text=\"Save\"></ax-button>\n","import { AXPlacement } from '@acorex/components/common';\nimport { AXPopoverCloseTrigger, AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport { Component, HostBinding, ViewEncapsulation, inject, signal } from '@angular/core';\nimport { AXImageEditorService } from '../../image-editor.service';\n\n/**\n * paint color picker.\n * @category Components\n */\n@Component({\n selector: 'ax-image-editor-color-picker',\n templateUrl: './image-editor-color-picker.component.html',\n styles: `\n ax-image-editor-color-picker {\n margin-inline: 0 !important;\n\n .ax-submit-color {\n border: 1px solid rgb(var(--ax-color-text-default));\n width: 0.6rem;\n height: 0.6rem;\n border-radius: 1000vmax;\n }\n .ax-color-flex-container {\n display: flex;\n align-items: center;\n cursor: pointer;\n }\n }\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXImageEditorColorPickerComponent {\n /** @ignore */\n protected service = inject(AXImageEditorService);\n\n /** @ignore */\n protected selectedColor = signal('rgb(12, 12, 12)');\n\n /** @ignore */\n protected popoverOption: {\n openOn: AXPopoverOpenTrigger;\n closeOn: AXPopoverCloseTrigger;\n placement: AXPlacement;\n offsetX: number;\n offsetY: number;\n } = {\n openOn: 'click',\n closeOn: 'clickOut',\n placement: 'top',\n offsetX: 0,\n offsetY: 0,\n };\n\n /** @ignore */\n protected changeColorHandler(e: string) {\n this.service.penColor.set(e);\n this.selectedColor.set(e);\n }\n\n @HostBinding('style.marginInline')\n get __hostClass(): string {\n return `.5rem`;\n }\n}\n","<div class=\"ax-color-flex-container\">\n <div [style]=\"{ backgroundColor: selectedColor() }\" class=\"ax-submit-color\"></div>\n <ax-button #colorBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>\n </ax-button>\n</div>\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"colorBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-color-palette (ngModelChange)=\"changeColorHandler($event)\" [ngModel]=\"selectedColor()\">\n <ax-color-palette-preview></ax-color-palette-preview>\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </div>\n</ax-popover>\n","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorService } from '../../image-editor.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n selector: 'ax-image-editor-crop',\n templateUrl: './image-editor-crop.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXImageEditorCropComponent {\n /** @ignore */\n protected service = inject(AXImageEditorService);\n\n /** @ignore */\n protected rotateRightHandler() {\n this.service.rotate.set({ state: 90, userInteract: true });\n }\n\n /** @ignore */\n protected rotateLeftHandler() {\n this.service.rotate.set({ state: -90, userInteract: true });\n }\n\n /** @ignore */\n protected crop() {\n this.service.cropState.update((prev) => {\n return { userInteract: true, state: !prev.state };\n });\n }\n}\n","<ax-button [selected]=\"service.cropState().state && true\" (click)=\"crop()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-crop\"></ax-icon>\n</ax-button>\n\n<ax-button (click)=\"rotateLeftHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n\n<ax-button (click)=\"rotateRightHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-redo\"></ax-icon>\n</ax-button>\n","import { AXPlacement } from '@acorex/components/common';\nimport { AXPopoverCloseTrigger, AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport { Component, HostBinding, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorService } from '../../image-editor.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n selector: 'ax-image-editor-pen-mode-changer',\n templateUrl: './image-editor-pen-mode-changer.component.html',\n styleUrl: './image-editor-pen-mode-changer.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXImageEditorPenModeChangerComponent {\n /** @ignore */\n protected service = inject(AXImageEditorService);\n\n /** @ignore */\n protected value = 10;\n\n /** @ignore */\n protected popoverOption: {\n openOn: AXPopoverOpenTrigger;\n closeOn: AXPopoverCloseTrigger;\n placement: AXPlacement;\n offsetX: number;\n offsetY: number;\n } = {\n openOn: 'click',\n closeOn: 'clickOut',\n placement: 'top',\n offsetX: 0,\n offsetY: 0,\n };\n\n /** @ignore */\n protected selectedPenType = signal<'pen' | 'highlight'>('pen');\n\n /** @ignore */\n protected penTypeHandler(e: 'pen' | 'highlight') {\n this.service.penType.set(e);\n }\n\n /** @ignore */\n protected clear() {\n this.service.toggleClear.set({ userInteract: true, state: true });\n }\n\n /** @ignore */\n @HostBinding('style.marginInline')\n get __hostClass(): string {\n return `.5rem`;\n }\n\n /** @ignore */\n protected valueHandler(e: number) {\n this.service.lineWidth.set(e);\n }\n}\n","<ax-button look=\"blank\" #alignPop>\n @switch (service.penType()) {\n @case ('pen') {\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n }\n @case ('highlight') {\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-refresh\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n </div>\n</ax-popover>\n","import {\r\n afterNextRender,\r\n ChangeDetectionStrategy,\r\n Component,\r\n effect,\r\n ElementRef,\r\n HostBinding,\r\n inject,\r\n input,\r\n OnDestroy,\r\n signal,\r\n viewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { AXImageEditorService } from '../image-editor.service';\r\n\r\n@Component({\r\n selector: 'ax-image-editor-view',\r\n templateUrl: './image-editor-view.component.html',\r\n styleUrls: ['./image-editor-view.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXImageEditorViewComponent implements OnDestroy {\r\n /**\r\n * its receive image src.\r\n */\r\n src = input<string>('');\r\n /** @ignore */\r\n protected canvasElem = viewChild<ElementRef<HTMLCanvasElement>>('canvasElem');\r\n /** @ignore */\r\n protected ctx = signal<CanvasRenderingContext2D>(null);\r\n /** @ignore */\r\n protected service = inject(AXImageEditorService);\r\n /** @ignore */\r\n protected cropImageData = signal<ImageData>(null);\r\n\r\n /** @ignore */\r\n protected isMouseDown = signal(false);\r\n /** @ignore */\r\n protected cropStartX = signal(0);\r\n /** @ignore */\r\n protected cropStartY = signal(0);\r\n /** @ignore */\r\n protected cropEndX = signal(0);\r\n /** @ignore */\r\n protected cropEndY = signal(0);\r\n /** @ignore */\r\n protected EventListener;\r\n\r\n /** @ignore */\r\n constructor() {\r\n afterNextRender(() => {\r\n this.service.initialImage.set(new Image());\r\n this.service.initialImage().src = this.src();\r\n this.service.initialImage().crossOrigin = 'anonymous';\r\n this.EventListener = this.service.initialImage().addEventListener('load', this.imageLoaded.bind(this));\r\n });\r\n\r\n effect(\r\n () => {\r\n if (!this.service.toggleClear().userInteract) return;\r\n if (this.service.toggleClear().state) {\r\n this.imageLoaded();\r\n }\r\n },\r\n { allowSignalWrites: true },\r\n );\r\n\r\n effect(\r\n () => {\r\n if (!this.service.cropState().userInteract || !this.ctx()) return;\r\n if (this.service.cropState().state) {\r\n this.ctx().filter = 'brightness(40%)';\r\n } else {\r\n this.ctx().filter = 'brightness(100%)';\r\n }\r\n this.ctx().drawImage(\r\n this.service.newImage(),\r\n 0,\r\n 0,\r\n this.service.newImage().width,\r\n this.service.newImage().height,\r\n );\r\n },\r\n { allowSignalWrites: true },\r\n );\r\n\r\n effect(\r\n () => {\r\n if (!this.service.rotate().userInteract || !this.ctx()) return;\r\n this.rotateImage();\r\n },\r\n { allowSignalWrites: true },\r\n );\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n this.service.initialImage()?.removeEventListener('load', this.EventListener);\r\n }\r\n\r\n /** @ignore */\r\n protected imageLoaded() {\r\n this.service.newImage.set(this.service.initialImage());\r\n this.canvasElem().nativeElement.width = this.service.initialImage().width;\r\n this.canvasElem().nativeElement.height = this.service.initialImage().height;\r\n this.ctx.set(this.canvasElem().nativeElement.getContext('2d', { willReadFrequently: true }));\r\n this.ctx().drawImage(\r\n this.service.initialImage(),\r\n 0,\r\n 0,\r\n this.service.initialImage().width,\r\n this.service.initialImage().height,\r\n );\r\n this.service.toggleClear.set({ userInteract: false, state: false });\r\n\r\n this.service.isImageLoad.set(true);\r\n this.ctx().lineJoin = 'round';\r\n this.ctx().lineCap = this.service.lineCap();\r\n this.ctx().strokeStyle = this.service.penColor();\r\n this.ctx().lineWidth = this.service.lineWidth();\r\n this.ctx().globalCompositeOperation = 'source-over';\r\n this.ctx().globalAlpha = 1;\r\n }\r\n\r\n /** @ignore */\r\n protected penConfigHandler(penType: 'pen' | 'highlight') {\r\n switch (penType) {\r\n case 'pen':\r\n this.ctx().globalAlpha = 1;\r\n break;\r\n case 'highlight':\r\n this.ctx().globalAlpha = 0.008;\r\n break;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected getBoundingCanvasHandler() {\r\n return this.canvasElem().nativeElement.getBoundingClientRect();\r\n }\r\n\r\n /** @ignore */\r\n protected mouseDownHandler(e: MouseEvent) {\r\n this.isMouseDown.set(true);\r\n\r\n if (this.service.cropState().state) {\r\n this.cropStartX.set(e.offsetX);\r\n this.cropStartY.set(e.offsetY);\r\n this.cropEndX.set(0);\r\n } else {\r\n this.penConfigHandler(this.service.penType());\r\n this.ctx().strokeStyle = this.service.penColor();\r\n this.ctx().lineCap = this.service.lineCap();\r\n this.ctx().lineWidth = this.service.lineWidth();\r\n\r\n this.ctx().beginPath();\r\n this.ctx().moveTo(e.offsetX, e.offsetY);\r\n this.ctx().lineTo(e.offsetX, e.offsetY);\r\n this.ctx().stroke();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected mouseMoveHandler(e: MouseEvent) {\r\n if (!this.isMouseDown()) return;\r\n if (this.service.cropState().state) {\r\n this.ctx().globalCompositeOperation = 'screen';\r\n this.cropEndX.set(e.offsetX);\r\n this.cropEndY.set(e.offsetY);\r\n this.drawSelection();\r\n } else {\r\n this.ctx().lineTo(e.offsetX, e.offsetY);\r\n this.ctx().stroke();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected mouseUpHandler() {\r\n this.isMouseDown.set(false);\r\n if (this.service.cropState().state && this.cropEndX()) {\r\n this.ctx().globalCompositeOperation = 'source-over';\r\n this.cropImageFunction();\r\n } else {\r\n this.ctx().closePath();\r\n this.saveImageChange();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected touchStartHandler(e: TouchEvent) {\r\n const offsetX = e.touches[0].clientX - this.getBoundingCanvasHandler().left;\r\n const offsetY = e.touches[0].clientY - this.getBoundingCanvasHandler().top;\r\n\r\n this.isMouseDown.set(true);\r\n\r\n if (this.service.cropState().state) {\r\n this.cropStartX.set(offsetX);\r\n this.cropStartY.set(offsetY);\r\n this.cropEndX.set(0);\r\n } else {\r\n this.penConfigHandler(this.service.penType());\r\n this.ctx().strokeStyle = this.service.penColor();\r\n this.ctx().lineCap = this.service.lineCap();\r\n this.ctx().lineWidth = this.service.lineWidth();\r\n\r\n this.ctx().beginPath();\r\n this.ctx().moveTo(offsetX, offsetY);\r\n this.ctx().lineTo(offsetX, offsetY);\r\n this.ctx().stroke();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected touchMoveHandler(e: TouchEvent) {\r\n e.preventDefault(); // prevent page from scroll\r\n if (!this.isMouseDown()) return;\r\n const offsetX = e.touches[0].clientX - this.getBoundingCanvasHandler().left;\r\n const offsetY = e.touches[0].clientY - this.getBoundingCanvasHandler().top;\r\n\r\n if (this.service.cropState().state) {\r\n this.ctx().globalCompositeOperation = 'screen';\r\n this.cropEndX.set(offsetX);\r\n this.cropEndY.set(offsetY);\r\n this.drawSelection();\r\n } else {\r\n this.ctx().lineTo(offsetX, offsetY);\r\n this.ctx().stroke();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected touchEndHandler() {\r\n this.isMouseDown.set(false);\r\n if (this.service.cropState().state && this.cropEndX()) {\r\n this.ctx().globalCompositeOperation = 'source-over';\r\n this.cropImageFunction();\r\n } else {\r\n this.ctx().closePath();\r\n this.saveImageChange();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected drawSelection() {\r\n const cropWidth = this.cropEndX() - this.cropStartX();\r\n const cropHeight = this.cropEndY() - this.cropStartY();\r\n\r\n this.ctx().clearRect(0, 0, this.canvasElem().nativeElement.width, this.canvasElem().nativeElement.height);\r\n this.ctx().drawImage(this.service.newImage(), 0, 0);\r\n this.ctx().strokeStyle = 'white';\r\n this.ctx().setLineDash([4, 10]);\r\n this.ctx().lineWidth = 2;\r\n this.ctx().strokeRect(this.cropStartX(), this.cropStartY(), cropWidth, cropHeight);\r\n }\r\n\r\n /** @ignore */\r\n protected cropImageFunction() {\r\n this.ctx().clearRect(0, 0, this.canvasElem().nativeElement.width, this.canvasElem().nativeElement.height);\r\n this.ctx().drawImage(this.service.newImage(), 0, 0);\r\n\r\n let imageData: ImageData;\r\n if (this.cropStartX() < this.cropEndX() && this.cropStartY() > this.cropEndY()) {\r\n imageData = this.ctx().getImageData(\r\n this.cropStartX(),\r\n this.cropEndY(),\r\n this.cropEndX() - this.cropStartX(),\r\n this.cropStartY() - this.cropEndY(),\r\n );\r\n } else if (this.cropStartX() > this.cropEndX() && this.cropStartY() > this.cropEndY()) {\r\n imageData = this.ctx().getImageData(\r\n this.cropEndX(),\r\n this.cropEndY(),\r\n this.cropStartX() - this.cropEndX(),\r\n this.cropStartY() - this.cropEndY(),\r\n );\r\n } else if (this.cropStartX() < this.cropEndX() && this.cropStartY() < this.cropEndY()) {\r\n imageData = this.ctx().getImageData(\r\n this.cropStartX(),\r\n this.cropStartY(),\r\n this.cropEndX() - this.cropStartX(),\r\n this.cropEndY() - this.cropStartY(),\r\n );\r\n } else if (this.cropStartX() > this.cropEndX() && this.cropStartY() < this.cropEndY()) {\r\n imageData = this.ctx().getImageData(\r\n this.cropEndX(),\r\n this.cropStartY(),\r\n this.cropStartX() - this.cropEndX(),\r\n this.cropEndY() - this.cropStartY(),\r\n );\r\n }\r\n\r\n const data: Uint8ClampedArray = imageData.data;\r\n\r\n const brightnessFactor = 2.4; // Increase brightness by 20%\r\n for (let i = 0; i < data.length; i += 4) {\r\n data[i] = data[i] * brightnessFactor; // Red\r\n data[i + 1] = data[i + 1] * brightnessFactor; // Green\r\n data[i + 2] = data[i + 2] * brightnessFactor; // Blue\r\n }\r\n\r\n if (this.cropStartX() < this.cropEndX() && this.cropStartY() > this.cropEndY()) {\r\n this.ctx().putImageData(imageData, this.cropStartX(), this.cropEndY());\r\n } else if (this.cropStartX() > this.cropEndX() && this.cropStartY() > this.cropEndY()) {\r\n this.ctx().putImageData(imageData, this.cropEndX(), this.cropEndY());\r\n } else if (this.cropStartX() < this.cropEndX() && this.cropStartY() < this.cropEndY()) {\r\n this.ctx().putImageData(imageData, this.cropStartX(), this.cropStartY());\r\n } else if (this.cropStartX() > this.cropEndX() && this.cropStartY() < this.cropEndY()) {\r\n this.ctx().putImageData(imageData, this.cropEndX(), this.cropStartY());\r\n }\r\n\r\n this.cropImageData.set(imageData);\r\n }\r\n\r\n /** @ignore */\r\n protected cropButtonHandler() {\r\n let cropWidth: number;\r\n let cropHeight: number;\r\n\r\n this.service.rotate.update((prev) => {\r\n return { userInteract: false, state: prev.state };\r\n });\r\n\r\n if (this.cropStartX() < this.cropEndX() && this.cropStartY() > this.cropEndY()) {\r\n cropWidth = this.cropEndX() - this.cropStartX();\r\n cropHeight = this.cropStartY() - this.cropEndY();\r\n } else if (this.cropStartX() > this.cropEndX() && this.cropStartY() > this.cropEndY()) {\r\n cropWidth = this.cropStartX() - this.cropEndX();\r\n cropHeight = this.cropStartY() - this.cropEndY();\r\n } else if (this.cropStartX() < this.cropEndX() && this.cropStartY() < this.cropEndY()) {\r\n cropWidth = this.cropEndX() - this.cropStartX();\r\n cropHeight = this.cropEndY() - this.cropStartY();\r\n } else if (this.cropStartX() > this.cropEndX() && this.cropStartY() < this.cropEndY()) {\r\n cropWidth = this.cropStartX() - this.cropEndX();\r\n cropHeight = this.cropEndY() - this.cropStartY();\r\n }\r\n\r\n this.canvasElem().nativeElement.width = cropWidth;\r\n this.canvasElem().nativeElement.height = cropHeight;\r\n\r\n this.ctx().putImageData(this.cropImageData(), 0, 0);\r\n this.saveImageChange();\r\n this.cropImageData.set(null);\r\n this.service.cropState.set({ userInteract: false, state: false });\r\n }\r\n\r\n /** @ignore */\r\n protected rotateImage() {\r\n this.ctx().save();\r\n this.ctx().clearRect(0, 0, this.canvasElem().nativeElement.width, this.canvasElem().nativeElement.height);\r\n this.ctx().translate(this.service.newImage().width / 2, this.service.newImage().height / 2);\r\n this.ctx().rotate((this.service.rotate().state * Math.PI) / 180);\r\n this.ctx().drawImage(\r\n this.service.newImage(),\r\n -this.service.newImage().width / 2,\r\n -this.service.newImage().height / 2,\r\n this.service.newImage().width,\r\n this.service.newImage().height,\r\n );\r\n this.ctx().restore();\r\n\r\n this.saveImageChange();\r\n this.service.rotate.update((prev) => {\r\n return { state: prev.state, userInteract: false };\r\n });\r\n }\r\n\r\n /** @ignore */\r\n protected saveImageChange() {\r\n const newImage = new Image();\r\n newImage.crossOrigin = 'anonymous';\r\n newImage.src = this.canvasElem().nativeElement.toDataURL('image/jpeg', 1);\r\n this.service.newImage.set(newImage);\r\n\r\n const tempBlob = [];\r\n this.canvasElem().nativeElement.toBlob(\r\n (blob) => {\r\n tempBlob.push(blob);\r\n },\r\n 'image/jpeg',\r\n 1,\r\n );\r\n this.canvasElem().nativeElement.toBlob(\r\n (blob) => {\r\n tempBlob.push(blob);\r\n },\r\n 'image/png',\r\n 1,\r\n );\r\n this.canvasElem().nativeElement.toBlob(\r\n (blob) => {\r\n tempBlob.push(blob);\r\n },\r\n 'image/webp',\r\n 1,\r\n );\r\n this.service.imageBlob.set(tempBlob);\r\n }\r\n\r\n /** @ignore */\r\n @HostBinding('style')\r\n private get __hostStyle(): string {\r\n return `width: ${this.service.initialImage()?.width}px; height: ${this.service.initialImage()?.height}px`;\r\n }\r\n}\r\n","<canvas\n tabindex=\"1\"\n (mousedown)=\"mouseDownHandler($event)\"\n (mouseup)=\"mouseUpHandler()\"\n (mousemove)=\"mouseMoveHandler($event)\"\n (touchstart)=\"touchStartHandler($event)\"\n (touchend)=\"touchEndHandler()\"\n (touchmove)=\"touchMoveHandler($event)\"\n class=\"ax-canvas-element\"\n #canvasElem\n></canvas>\n<ax-button\n (click)=\"cropButtonHandler()\"\n [style]=\"{ display: service.cropState().state ? 'block' : 'none' }\"\n class=\"ax-crop-save ax-sm\"\n text=\"Crop\"\n></ax-button>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXColorPaletteModule } from '@acorex/components/color-palette';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXRangeSliderModule } from '@acorex/components/range-slider';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXImageEditorContainerComponent } from './image-editor-container/image-editor-container.component';\nimport { AXImageEditorToolbarComponent } from './image-editor-toolbar/image-editor-toolbar.component';\nimport { AXImageEditorColorPickerComponent } from './image-editor-tools/image-editor-color-picker/image-editor-color-picker.component';\nimport { AXImageEditorCropComponent } from './image-editor-tools/image-editor-crop/image-editor-crop.component';\nimport { AXImageEditorPenModeChangerComponent } from './image-editor-tools/image-editor-pen-mode-changer/image-editor-pen-mode-changer.component';\nimport { AXImageEditorViewComponent } from './image-editor-view/image-editor-view.component';\n\nconst COMPONENT = [\n AXImageEditorToolbarComponent,\n AXImageEditorColorPickerComponent,\n AXImageEditorPenModeChangerComponent,\n AXImageEditorViewComponent,\n AXImageEditorContainerComponent,\n AXImageEditorCropComponent,\n];\n\nconst MODULES = [\n AXButtonModule,\n FormsModule,\n AXRangeSliderModule,\n AXSelectBoxModule,\n AXColorPaletteModule,\n AXPopoverModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXDialogModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXImageEditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-image-editor.mjs","sources":["../../../../libs/components/image-editor/src/lib/image-editor.service.ts","../../../../libs/components/image-editor/src/lib/image-editor-container/image-editor-container.component.ts","../../../../libs/components/image-editor/src/lib/image-editor-container/image-editor-container.component.html","../../../../libs/components/image-editor/src/lib/image-editor-toolbar/image-editor-toolbar.component.ts","../../../../libs/components/image-editor/src/lib/image-editor-toolbar/image-editor-toolbar.component.html","../../../../libs/components/image-editor/src/lib/image-editor-tools/image-editor-color-picker/image-editor-color-picker.component.ts","../../../../libs/components/image-editor/src/lib/image-editor-tools/image-editor-color-picker/image-editor-color-picker.component.html","../../../../libs/components/image-editor/src/lib/image-editor-tools/image-editor-crop/image-editor-crop.component.ts","../../../../libs/components/image-editor/src/lib/image-editor-tools/image-editor-crop/image-editor-crop.component.html","../../../../libs/components/image-editor/src/lib/image-editor-tools/image-editor-pen-mode-changer/image-editor-pen-mode-changer.component.ts","../../../../libs/components/image-editor/src/lib/image-editor-tools/image-editor-pen-mode-changer/image-editor-pen-mode-changer.component.html","../../../../libs/components/image-editor/src/lib/image-editor-view/image-editor-view.component.ts","../../../../libs/components/image-editor/src/lib/image-editor-view/image-editor-view.component.html","../../../../libs/components/image-editor/src/lib/image-editor.module.ts","../../../../libs/components/image-editor/src/acorex-components-image-editor.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXImageEditorService {\n penColor = signal<string | CanvasGradient | CanvasPattern>('');\n lineCap = signal<CanvasLineCap>('round');\n lineWidth = signal<number>(10);\n penType = signal<'pen' | 'highlight'>('pen');\n toggleClear = signal({ state: false, userInteract: false });\n cropState = signal({ state: false, userInteract: false });\n rotate = signal({ state: 0, userInteract: false });\n isImageLoad = signal(false);\n newImage = signal(null);\n initialImage = signal(null);\n imageBlob = signal<Blob[]>([]);\n}\n","import { MXLookComponent } from '@acorex/components/common';\nimport { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorService } from '../image-editor.service';\n\n/**\n * paint container.\n * @category Components\n */\n@Component({\n selector: 'ax-image-editor-container',\n templateUrl: './image-editor-container.component.html',\n styleUrl: './image-editor-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n providers: [AXImageEditorService],\n})\nexport class AXImageEditorContainerComponent extends MXLookComponent {\n /** @ignore */\n protected service = inject(AXImageEditorService);\n}\n","@if (service.isImageLoad()) {\n <div class=\"ax-editor-container ax-look-solid\">\n <ng-content> </ng-content>\n </div>\n} @else {\n <ax-loading-spinner [size]=\"16\" color=\"primary\" text=\"Loading Image ...\"></ax-loading-spinner>\n}\n","import {\r\n AXClearableComponent,\r\n AXComponent,\r\n AXFocusableComponent,\r\n AXStyleColorType,\r\n AXValuableComponent,\r\n MXInputBaseValueComponent,\r\n} from '@acorex/components/common';\r\nimport { AXDialogService } from '@acorex/components/dialog';\r\nimport { Component, forwardRef, inject, signal, ViewEncapsulation } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AXImageEditorService } from '../image-editor.service';\r\n\r\n/**\r\n *paint toolbar\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-image-editor-toolbar',\r\n templateUrl: './image-editor-toolbar.component.html',\r\n styleUrl: './image-editor-toolbar.component.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n outputs: ['onValueChanged'],\r\n providers: [\r\n { provide: AXComponent, useExisting: AXImageEditorToolbarComponent },\r\n { provide: AXFocusableComponent, useExisting: AXImageEditorToolbarComponent },\r\n { provide: AXClearableComponent, useExisting: AXImageEditorToolbarComponent },\r\n { provide: AXValuableComponent, useExisting: AXImageEditorToolbarComponent },\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AXImageEditorToolbarComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AXImageEditorToolbarComponent extends MXInputBaseValueComponent<Blob[]> {\r\n /** @ignore */\r\n protected dialogService: AXDialogService = inject(AXDialogService);\r\n /** @ignore */\r\n protected service = inject(AXImageEditorService);\r\n /** @ignore */\r\n protected options = signal({\r\n color: 'primary',\r\n title: 'Attention',\r\n vertical: false,\r\n content: 'Do you want to save changes?',\r\n orientation: 'vertical' as any,\r\n draggable: true,\r\n });\r\n\r\n /** @ignore */\r\n protected saveHandler() {\r\n if (this.service.initialImage() !== this.service.newImage()) {\r\n this.dialogService\r\n .confirm(\r\n this.options().title,\r\n this.options().content,\r\n this.options().color as AXStyleColorType,\r\n this.options().orientation,\r\n this.options().draggable,\r\n )\r\n .then((data) => {\r\n if (data.result) {\r\n this.service.initialImage.set(this.service.newImage());\r\n this.commitValue(this.service.imageBlob());\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"ax-toolbar-container\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n<ax-button color=\"primary\" (onClick)=\"saveHandler()\" class=\"ax-save-btn ax-sm\" text=\"Save\"></ax-button>\n","import { AXPlacement } from '@acorex/components/common';\nimport { AXPopoverCloseTrigger, AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport { Component, HostBinding, ViewEncapsulation, inject, signal } from '@angular/core';\nimport { AXImageEditorService } from '../../image-editor.service';\n\n/**\n * paint color picker.\n * @category Components\n */\n@Component({\n selector: 'ax-image-editor-color-picker',\n templateUrl: './image-editor-color-picker.component.html',\n styles: `\n ax-image-editor-color-picker {\n margin-inline: 0 !important;\n\n .ax-submit-color {\n border: 1px solid rgb(var(--ax-color-text-default));\n width: 0.6rem;\n height: 0.6rem;\n border-radius: 1000vmax;\n }\n .ax-color-flex-container {\n display: flex;\n align-items: center;\n cursor: pointer;\n }\n }\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXImageEditorColorPickerComponent {\n /** @ignore */\n protected service = inject(AXImageEditorService);\n\n /** @ignore */\n protected selectedColor = signal('rgb(12, 12, 12)');\n\n /** @ignore */\n protected popoverOption: {\n openOn: AXPopoverOpenTrigger;\n closeOn: AXPopoverCloseTrigger;\n placement: AXPlacement;\n offsetX: number;\n offsetY: number;\n } = {\n openOn: 'click',\n closeOn: 'clickOut',\n placement: 'top',\n offsetX: 0,\n offsetY: 0,\n };\n\n /** @ignore */\n protected changeColorHandler(e: string) {\n this.service.penColor.set(e);\n this.selectedColor.set(e);\n }\n\n @HostBinding('style.marginInline')\n get __hostClass(): string {\n return `.5rem`;\n }\n}\n","<div class=\"ax-color-flex-container\">\n <div [style]=\"{ backgroundColor: selectedColor() }\" class=\"ax-submit-color\"></div>\n <ax-button #colorBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>\n </ax-button>\n</div>\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"colorBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-color-palette (ngModelChange)=\"changeColorHandler($event)\" [ngModel]=\"selectedColor()\">\n <ax-color-palette-preview></ax-color-palette-preview>\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </div>\n</ax-popover>\n","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorService } from '../../image-editor.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n selector: 'ax-image-editor-crop',\n templateUrl: './image-editor-crop.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXImageEditorCropComponent {\n /** @ignore */\n protected service = inject(AXImageEditorService);\n\n /** @ignore */\n protected rotateRightHandler() {\n this.service.rotate.set({ state: 90, userInteract: true });\n }\n\n /** @ignore */\n protected rotateLeftHandler() {\n this.service.rotate.set({ state: -90, userInteract: true });\n }\n\n /** @ignore */\n protected crop() {\n this.service.cropState.update((prev) => {\n return { userInteract: true, state: !prev.state };\n });\n }\n}\n","<ax-button [selected]=\"service.cropState().state && true\" (click)=\"crop()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-crop\"></ax-icon>\n</ax-button>\n\n<ax-button (click)=\"rotateLeftHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n\n<ax-button (click)=\"rotateRightHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-redo\"></ax-icon>\n</ax-button>\n","import { AXPlacement } from '@acorex/components/common';\nimport { AXPopoverCloseTrigger, AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport { Component, HostBinding, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorService } from '../../image-editor.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n selector: 'ax-image-editor-pen-mode-changer',\n templateUrl: './image-editor-pen-mode-changer.component.html',\n styleUrl: './image-editor-pen-mode-changer.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXImageEditorPenModeChangerComponent {\n /** @ignore */\n protected service = inject(AXImageEditorService);\n\n /** @ignore */\n protected value = 10;\n\n /** @ignore */\n protected popoverOption: {\n openOn: AXPopoverOpenTrigger;\n closeOn: AXPopoverCloseTrigger;\n placement: AXPlacement;\n offsetX: number;\n offsetY: number;\n } = {\n openOn: 'click',\n closeOn: 'clickOut',\n placement: 'top',\n offsetX: 0,\n offsetY: 0,\n };\n\n /** @ignore */\n protected selectedPenType = signal<'pen' | 'highlight'>('pen');\n\n /** @ignore */\n protected penTypeHandler(e: 'pen' | 'highlight') {\n this.service.penType.set(e);\n }\n\n /** @ignore */\n protected clear() {\n this.service.toggleClear.set({ userInteract: true, state: true });\n }\n\n /** @ignore */\n @HostBinding('style.marginInline')\n get __hostClass(): string {\n return `.5rem`;\n }\n\n /** @ignore */\n protected valueHandler(e: number) {\n this.service.lineWidth.set(e);\n }\n}\n","<ax-button look=\"blank\" #alignPop>\n @switch (service.penType()) {\n @case ('pen') {\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n }\n @case ('highlight') {\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-refresh\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n </div>\n</ax-popover>\n","import {\r\n afterNextRender,\r\n ChangeDetectionStrategy,\r\n Component,\r\n effect,\r\n ElementRef,\r\n HostBinding,\r\n inject,\r\n input,\r\n OnDestroy,\r\n signal,\r\n viewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { AXImageEditorService } from '../image-editor.service';\r\n\r\n@Component({\r\n selector: 'ax-image-editor-view',\r\n templateUrl: './image-editor-view.component.html',\r\n styleUrls: ['./image-editor-view.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXImageEditorViewComponent implements OnDestroy {\r\n /**\r\n * its receive image src.\r\n */\r\n src = input<string>('');\r\n /** @ignore */\r\n protected canvasElem = viewChild<ElementRef<HTMLCanvasElement>>('canvasElem');\r\n /** @ignore */\r\n protected ctx = signal<CanvasRenderingContext2D>(null);\r\n /** @ignore */\r\n protected service = inject(AXImageEditorService);\r\n /** @ignore */\r\n protected cropImageData = signal<ImageData>(null);\r\n\r\n /** @ignore */\r\n protected isMouseDown = signal(false);\r\n /** @ignore */\r\n protected cropStartX = signal(0);\r\n /** @ignore */\r\n protected cropStartY = signal(0);\r\n /** @ignore */\r\n protected cropEndX = signal(0);\r\n /** @ignore */\r\n protected cropEndY = signal(0);\r\n /** @ignore */\r\n protected EventListener;\r\n\r\n /** @ignore */\r\n constructor() {\r\n afterNextRender(() => {\r\n this.service.initialImage.set(new Image());\r\n this.service.initialImage().src = this.src();\r\n this.service.initialImage().crossOrigin = 'anonymous';\r\n this.EventListener = this.service.initialImage().addEventListener('load', this.imageLoaded.bind(this));\r\n });\r\n\r\n effect(\r\n () => {\r\n if (!this.service.toggleClear().userInteract) return;\r\n if (this.service.toggleClear().state) {\r\n this.imageLoaded();\r\n }\r\n },\r\n { allowSignalWrites: true },\r\n );\r\n\r\n effect(\r\n () => {\r\n if (!this.service.cropState().userInteract || !this.ctx()) return;\r\n if (this.service.cropState().state) {\r\n this.ctx().filter = 'brightness(40%)';\r\n } else {\r\n this.ctx().filter = 'brightness(100%)';\r\n }\r\n this.ctx().drawImage(\r\n this.service.newImage(),\r\n 0,\r\n 0,\r\n this.service.newImage().width,\r\n this.service.newImage().height,\r\n );\r\n },\r\n { allowSignalWrites: true },\r\n );\r\n\r\n effect(\r\n () => {\r\n if (!this.service.rotate().userInteract || !this.ctx()) return;\r\n this.rotateImage();\r\n },\r\n { allowSignalWrites: true },\r\n );\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n this.service.initialImage()?.removeEventListener('load', this.EventListener);\r\n }\r\n\r\n /** @ignore */\r\n protected imageLoaded() {\r\n this.service.newImage.set(this.service.initialImage());\r\n this.canvasElem().nativeElement.width = this.service.initialImage().width;\r\n this.canvasElem().nativeElement.height = this.service.initialImage().height;\r\n this.ctx.set(this.canvasElem().nativeElement.getContext('2d', { willReadFrequently: true }));\r\n this.ctx().drawImage(\r\n this.service.initialImage(),\r\n 0,\r\n 0,\r\n this.service.initialImage().width,\r\n this.service.initialImage().height,\r\n );\r\n this.service.toggleClear.set({ userInteract: false, state: false });\r\n\r\n this.service.isImageLoad.set(true);\r\n this.ctx().lineJoin = 'round';\r\n this.ctx().lineCap = this.service.lineCap();\r\n this.ctx().strokeStyle = this.service.penColor();\r\n this.ctx().lineWidth = this.service.lineWidth();\r\n this.ctx().globalCompositeOperation = 'source-over';\r\n this.ctx().globalAlpha = 1;\r\n }\r\n\r\n /** @ignore */\r\n protected penConfigHandler(penType: 'pen' | 'highlight') {\r\n switch (penType) {\r\n case 'pen':\r\n this.ctx().globalAlpha = 1;\r\n break;\r\n case 'highlight':\r\n this.ctx().globalAlpha = 0.008;\r\n break;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected getBoundingCanvasHandler() {\r\n return this.canvasElem().nativeElement.getBoundingClientRect();\r\n }\r\n\r\n /** @ignore */\r\n protected mouseDownHandler(e: MouseEvent) {\r\n this.isMouseDown.set(true);\r\n\r\n if (this.service.cropState().state) {\r\n this.cropStartX.set(e.offsetX);\r\n this.cropStartY.set(e.offsetY);\r\n this.cropEndX.set(0);\r\n } else {\r\n this.penConfigHandler(this.service.penType());\r\n this.ctx().strokeStyle = this.service.penColor();\r\n this.ctx().lineCap = this.service.lineCap();\r\n this.ctx().lineWidth = this.service.lineWidth();\r\n\r\n this.ctx().beginPath();\r\n this.ctx().moveTo(e.offsetX, e.offsetY);\r\n this.ctx().lineTo(e.offsetX, e.offsetY);\r\n this.ctx().stroke();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected mouseMoveHandler(e: MouseEvent) {\r\n if (!this.isMouseDown()) return;\r\n if (this.service.cropState().state) {\r\n this.ctx().globalCompositeOperation = 'screen';\r\n this.cropEndX.set(e.offsetX);\r\n this.cropEndY.set(e.offsetY);\r\n this.drawSelection();\r\n } else {\r\n this.ctx().lineTo(e.offsetX, e.offsetY);\r\n this.ctx().stroke();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected mouseUpHandler() {\r\n this.isMouseDown.set(false);\r\n if (this.service.cropState().state && this.cropEndX()) {\r\n this.ctx().globalCompositeOperation = 'source-over';\r\n this.cropImageFunction();\r\n } else {\r\n this.ctx().closePath();\r\n this.saveImageChange();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected touchStartHandler(e: TouchEvent) {\r\n const offsetX = e.touches[0].clientX - this.getBoundingCanvasHandler().left;\r\n const offsetY = e.touches[0].clientY - this.getBoundingCanvasHandler().top;\r\n\r\n this.isMouseDown.set(true);\r\n\r\n if (this.service.cropState().state) {\r\n this.cropStartX.set(offsetX);\r\n this.cropStartY.set(offsetY);\r\n this.cropEndX.set(0);\r\n } else {\r\n this.penConfigHandler(this.service.penType());\r\n this.ctx().strokeStyle = this.service.penColor();\r\n this.ctx().lineCap = this.service.lineCap();\r\n this.ctx().lineWidth = this.service.lineWidth();\r\n\r\n this.ctx().beginPath();\r\n this.ctx().moveTo(offsetX, offsetY);\r\n this.ctx().lineTo(offsetX, offsetY);\r\n this.ctx().stroke();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected touchMoveHandler(e: TouchEvent) {\r\n e.preventDefault(); // prevent page from scroll\r\n if (!this.isMouseDown()) return;\r\n const offsetX = e.touches[0].clientX - this.getBoundingCanvasHandler().left;\r\n const offsetY = e.touches[0].clientY - this.getBoundingCanvasHandler().top;\r\n\r\n if (this.service.cropState().state) {\r\n this.ctx().globalCompositeOperation = 'screen';\r\n this.cropEndX.set(offsetX);\r\n this.cropEndY.set(offsetY);\r\n this.drawSelection();\r\n } else {\r\n this.ctx().lineTo(offsetX, offsetY);\r\n this.ctx().stroke();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected touchEndHandler() {\r\n this.isMouseDown.set(false);\r\n if (this.service.cropState().state && this.cropEndX()) {\r\n this.ctx().globalCompositeOperation = 'source-over';\r\n this.cropImageFunction();\r\n } else {\r\n this.ctx().closePath();\r\n this.saveImageChange();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected drawSelection() {\r\n const cropWidth = this.cropEndX() - this.cropStartX();\r\n const cropHeight = this.cropEndY() - this.cropStartY();\r\n\r\n this.ctx().clearRect(0, 0, this.canvasElem().nativeElement.width, this.canvasElem().nativeElement.height);\r\n this.ctx().drawImage(this.service.newImage(), 0, 0);\r\n this.ctx().strokeStyle = 'white';\r\n this.ctx().setLineDash([4, 10]);\r\n this.ctx().lineWidth = 2;\r\n this.ctx().strokeRect(this.cropStartX(), this.cropStartY(), cropWidth, cropHeight);\r\n }\r\n\r\n /** @ignore */\r\n protected cropImageFunction() {\r\n this.ctx().clearRect(0, 0, this.canvasElem().nativeElement.width, this.canvasElem().nativeElement.height);\r\n this.ctx().drawImage(this.service.newImage(), 0, 0);\r\n\r\n let imageData: ImageData;\r\n if (this.cropStartX() < this.cropEndX() && this.cropStartY() > this.cropEndY()) {\r\n imageData = this.ctx().getImageData(\r\n this.cropStartX(),\r\n this.cropEndY(),\r\n this.cropEndX() - this.cropStartX(),\r\n this.cropStartY() - this.cropEndY(),\r\n );\r\n } else if (this.cropStartX() > this.cropEndX() && this.cropStartY() > this.cropEndY()) {\r\n imageData = this.ctx().getImageData(\r\n this.cropEndX(),\r\n this.cropEndY(),\r\n this.cropStartX() - this.cropEndX(),\r\n this.cropStartY() - this.cropEndY(),\r\n );\r\n } else if (this.cropStartX() < this.cropEndX() && this.cropStartY() < this.cropEndY()) {\r\n imageData = this.ctx().getImageData(\r\n this.cropStartX(),\r\n this.cropStartY(),\r\n this.cropEndX() - this.cropStartX(),\r\n this.cropEndY() - this.cropStartY(),\r\n );\r\n } else if (this.cropStartX() > this.cropEndX() && this.cropStartY() < this.cropEndY()) {\r\n imageData = this.ctx().getImageData(\r\n this.cropEndX(),\r\n this.cropStartY(),\r\n this.cropStartX() - this.cropEndX(),\r\n this.cropEndY() - this.cropStartY(),\r\n );\r\n }\r\n\r\n const data: Uint8ClampedArray = imageData.data;\r\n\r\n const brightnessFactor = 2.4; // Increase brightness by 20%\r\n for (let i = 0; i < data.length; i += 4) {\r\n data[i] = data[i] * brightnessFactor; // Red\r\n data[i + 1] = data[i + 1] * brightnessFactor; // Green\r\n data[i + 2] = data[i + 2] * brightnessFactor; // Blue\r\n }\r\n\r\n if (this.cropStartX() < this.cropEndX() && this.cropStartY() > this.cropEndY()) {\r\n this.ctx().putImageData(imageData, this.cropStartX(), this.cropEndY());\r\n } else if (this.cropStartX() > this.cropEndX() && this.cropStartY() > this.cropEndY()) {\r\n this.ctx().putImageData(imageData, this.cropEndX(), this.cropEndY());\r\n } else if (this.cropStartX() < this.cropEndX() && this.cropStartY() < this.cropEndY()) {\r\n this.ctx().putImageData(imageData, this.cropStartX(), this.cropStartY());\r\n } else if (this.cropStartX() > this.cropEndX() && this.cropStartY() < this.cropEndY()) {\r\n this.ctx().putImageData(imageData, this.cropEndX(), this.cropStartY());\r\n }\r\n\r\n this.cropImageData.set(imageData);\r\n }\r\n\r\n /** @ignore */\r\n protected cropButtonHandler() {\r\n let cropWidth: number;\r\n let cropHeight: number;\r\n\r\n this.service.rotate.update((prev) => {\r\n return { userInteract: false, state: prev.state };\r\n });\r\n\r\n if (this.cropStartX() < this.cropEndX() && this.cropStartY() > this.cropEndY()) {\r\n cropWidth = this.cropEndX() - this.cropStartX();\r\n cropHeight = this.cropStartY() - this.cropEndY();\r\n } else if (this.cropStartX() > this.cropEndX() && this.cropStartY() > this.cropEndY()) {\r\n cropWidth = this.cropStartX() - this.cropEndX();\r\n cropHeight = this.cropStartY() - this.cropEndY();\r\n } else if (this.cropStartX() < this.cropEndX() && this.cropStartY() < this.cropEndY()) {\r\n cropWidth = this.cropEndX() - this.cropStartX();\r\n cropHeight = this.cropEndY() - this.cropStartY();\r\n } else if (this.cropStartX() > this.cropEndX() && this.cropStartY() < this.cropEndY()) {\r\n cropWidth = this.cropStartX() - this.cropEndX();\r\n cropHeight = this.cropEndY() - this.cropStartY();\r\n }\r\n\r\n this.canvasElem().nativeElement.width = cropWidth;\r\n this.canvasElem().nativeElement.height = cropHeight;\r\n\r\n this.ctx().putImageData(this.cropImageData(), 0, 0);\r\n this.saveImageChange();\r\n this.cropImageData.set(null);\r\n this.service.cropState.set({ userInteract: false, state: false });\r\n }\r\n\r\n /** @ignore */\r\n protected rotateImage() {\r\n this.ctx().save();\r\n this.ctx().clearRect(0, 0, this.canvasElem().nativeElement.width, this.canvasElem().nativeElement.height);\r\n this.ctx().translate(this.service.newImage().width / 2, this.service.newImage().height / 2);\r\n this.ctx().rotate((this.service.rotate().state * Math.PI) / 180);\r\n this.ctx().drawImage(\r\n this.service.newImage(),\r\n -this.service.newImage().width / 2,\r\n -this.service.newImage().height / 2,\r\n this.service.newImage().width,\r\n this.service.newImage().height,\r\n );\r\n this.ctx().restore();\r\n\r\n this.saveImageChange();\r\n this.service.rotate.update((prev) => {\r\n return { state: prev.state, userInteract: false };\r\n });\r\n }\r\n\r\n /** @ignore */\r\n protected saveImageChange() {\r\n const newImage = new Image();\r\n newImage.crossOrigin = 'anonymous';\r\n newImage.src = this.canvasElem().nativeElement.toDataURL('image/jpeg', 1);\r\n this.service.newImage.set(newImage);\r\n\r\n const tempBlob = [];\r\n this.canvasElem().nativeElement.toBlob(\r\n (blob) => {\r\n tempBlob.push(blob);\r\n },\r\n 'image/jpeg',\r\n 1,\r\n );\r\n this.canvasElem().nativeElement.toBlob(\r\n (blob) => {\r\n tempBlob.push(blob);\r\n },\r\n 'image/png',\r\n 1,\r\n );\r\n this.canvasElem().nativeElement.toBlob(\r\n (blob) => {\r\n tempBlob.push(blob);\r\n },\r\n 'image/webp',\r\n 1,\r\n );\r\n this.service.imageBlob.set(tempBlob);\r\n }\r\n\r\n /** @ignore */\r\n @HostBinding('style')\r\n private get __hostStyle(): string {\r\n return `width: ${this.service.initialImage()?.width}px; height: ${this.service.initialImage()?.height}px`;\r\n }\r\n}\r\n","<canvas\n tabindex=\"1\"\n (mousedown)=\"mouseDownHandler($event)\"\n (mouseup)=\"mouseUpHandler()\"\n (mousemove)=\"mouseMoveHandler($event)\"\n (touchstart)=\"touchStartHandler($event)\"\n (touchend)=\"touchEndHandler()\"\n (touchmove)=\"touchMoveHandler($event)\"\n class=\"ax-canvas-element\"\n #canvasElem\n></canvas>\n<ax-button\n (click)=\"cropButtonHandler()\"\n [style]=\"{ display: service.cropState().state ? 'block' : 'none' }\"\n class=\"ax-crop-save ax-sm\"\n text=\"Crop\"\n></ax-button>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXColorPaletteModule } from '@acorex/components/color-palette';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXRangeSliderModule } from '@acorex/components/range-slider';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXImageEditorContainerComponent } from './image-editor-container/image-editor-container.component';\nimport { AXImageEditorToolbarComponent } from './image-editor-toolbar/image-editor-toolbar.component';\nimport { AXImageEditorColorPickerComponent } from './image-editor-tools/image-editor-color-picker/image-editor-color-picker.component';\nimport { AXImageEditorCropComponent } from './image-editor-tools/image-editor-crop/image-editor-crop.component';\nimport { AXImageEditorPenModeChangerComponent } from './image-editor-tools/image-editor-pen-mode-changer/image-editor-pen-mode-changer.component';\nimport { AXImageEditorViewComponent } from './image-editor-view/image-editor-view.component';\n\nconst COMPONENT = [\n AXImageEditorToolbarComponent,\n AXImageEditorColorPickerComponent,\n AXImageEditorPenModeChangerComponent,\n AXImageEditorViewComponent,\n AXImageEditorContainerComponent,\n AXImageEditorCropComponent,\n];\n\nconst MODULES = [\n AXButtonModule,\n FormsModule,\n AXRangeSliderModule,\n AXSelectBoxModule,\n AXColorPaletteModule,\n AXPopoverModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXDialogModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXImageEditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":"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"}
|
@@ -157,20 +157,20 @@ class AXFileInfoComponent {
|
|
157
157
|
}
|
158
158
|
#effect;
|
159
159
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXFileInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
160
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXFileInfoComponent, selector: "ax-file-info", ngImport: i0, template: "<div class=\"ax-info-contianer\">\n <div class=\"ax-name-info\">\n @switch (infoData()?.type) {\n @case ('video') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 65 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M32.6667 58.6673C47.3941 58.6673 59.3333 46.7281 59.3333 32.0006C59.3333 17.2731 47.3941 5.33398 32.6667 5.33398C17.9391 5.33398 6 17.2731 6 32.0006C6 46.7281 17.9391 58.6673 32.6667 58.6673ZM35.7437 38.2678C39.5619 35.9057 41.4709 34.7246 41.8749 33.0534C42.0416 32.3636 42.0416 31.6377 41.8749 30.9478C41.4709 29.2766 39.5619 28.0956 35.7437 25.7335C32.0525 23.4502 30.2072 22.3085 28.7197 22.7674C28.1048 22.9571 27.5448 23.3175 27.0929 23.8138C26 25.0145 26 27.3433 26 32.0006C26 36.658 26 38.9868 27.0929 40.1873C27.5448 40.6838 28.1048 41.0441 28.7197 41.234C30.2072 41.6929 32.0525 40.551 35.7437 38.2678Z\"\n />\n <path\n d=\"M32.6667 58.6673C47.3943 58.6673 59.3333 46.7282 59.3333 32.0006C59.3333 17.2731 47.3943 5.33398 32.6667 5.33398C17.9391 5.33398 6 17.2731 6 32.0006C6 46.7282 17.9391 58.6673 32.6667 58.6673Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n d=\"M41.8749 33.0521C41.4709 34.7233 39.5619 35.9044 35.7437 38.2665C32.0525 40.5497 30.2072 41.6916 28.7197 41.2327C28.1048 41.0428 27.5448 40.6825 27.0929 40.186C26 38.9855 26 36.6567 26 31.9993C26 27.342 26 25.0132 27.0929 23.8125C27.5448 23.3162 28.1048 22.9558 28.7197 22.7661C30.2072 22.3072 32.0525 23.4489 35.7437 25.7322C39.5619 28.0943 41.4709 29.2753 41.8749 30.9465C42.0416 31.6364 42.0416 32.3623 41.8749 33.0521Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('image') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 65 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.1123 31.9993C7.1123 20.0571 7.1123 14.086 10.8223 10.376C14.5323 6.66602 20.5034 6.66602 32.4456 6.66602C44.3878 6.66602 50.359 6.66602 54.0691 10.376C57.779 14.086 57.779 20.0571 57.779 31.9993C57.779 43.9415 57.779 49.9127 54.0691 53.6228C50.359 57.3327 44.3878 57.3327 32.4456 57.3327C20.5034 57.3327 14.5323 57.3327 10.8223 53.6228C7.1123 49.9127 7.1123 43.9415 7.1123 31.9993Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n d=\"M44.4453 24C46.6545 24 48.4453 22.2091 48.4453 20C48.4453 17.7909 46.6545 16 44.4453 16C42.2362 16 40.4453 17.7909 40.4453 20C40.4453 22.2091 42.2362 24 44.4453 24Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.1123 31.9993C7.1123 20.0571 7.1123 14.086 10.8223 10.376C14.5323 6.66602 20.5034 6.66602 32.4456 6.66602C44.3878 6.66602 50.359 6.66602 54.0691 10.376C57.779 14.086 57.779 20.0571 57.779 31.9993C57.779 37.3372 57.779 41.4823 57.4478 44.7655C54.6288 43.2943 51.72 42.5484 48.7958 42.5516C44.5971 42.5337 40.4374 44.0428 36.5288 46.9937L32.1155 43.5572C26.1984 39.3937 18.7691 37.1903 11.1532 37.3399C10.2489 37.3377 9.34542 37.3665 8.44473 37.4263H7.12884C7.1123 35.7679 7.1123 33.9644 7.1123 31.9993ZM44.4456 23.9993C46.6547 23.9993 48.4456 22.2085 48.4456 19.9993C48.4456 17.7902 46.6547 15.9993 44.4456 15.9993C42.2366 15.9993 40.4456 17.7902 40.4456 19.9993C40.4456 22.2085 42.2366 23.9993 44.4456 23.9993Z\"\n />\n <path\n d=\"M43.112 58.6673C41.46 52.7337 37.604 47.4195 32.116 43.5585C26.1989 39.395 18.7697 37.1915 11.1538 37.3411C10.2495 37.339 9.34601 37.3678 8.44531 37.4275\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M35.1123 47.9992C39.6496 44.4614 44.5376 42.6467 49.4755 42.6662C52.2755 42.6632 55.0622 43.2568 57.779 44.4304\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('audio') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 65 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.7109 10.376C7.00098 14.086 7.00098 20.0571 7.00098 31.9993C7.00098 43.9415 7.00098 49.9127 10.7109 53.6228C14.4209 57.3327 20.3921 57.3327 32.3343 57.3327C44.2764 57.3327 50.2476 57.3327 53.9578 53.6228C57.6676 49.9127 57.6676 43.9415 57.6676 31.9993C57.6676 20.0571 57.6676 14.086 53.9578 10.376C50.2476 6.66602 44.2764 6.66602 32.3343 6.66602C20.3921 6.66602 14.4209 6.66602 10.7109 10.376ZM28.3343 45.3327C32.0162 45.3327 35.001 42.3479 35.001 38.666C35.001 34.9841 32.0162 31.9993 28.3343 31.9993C24.6524 31.9993 21.6676 34.9841 21.6676 38.666C21.6676 42.3479 24.6524 45.3327 28.3343 45.3327Z\"\n />\n <path\n d=\"M7.00098 31.9993C7.00098 20.0571 7.00098 14.086 10.7109 10.376C14.4209 6.66602 20.3921 6.66602 32.3343 6.66602C44.2764 6.66602 50.2476 6.66602 53.9578 10.376C57.6676 14.086 57.6676 20.0571 57.6676 31.9993C57.6676 43.9415 57.6676 49.9127 53.9578 53.6228C50.2476 57.3327 44.2764 57.3327 32.3343 57.3327C20.3921 57.3327 14.4209 57.3327 10.7109 53.6228C7.00098 49.9127 7.00098 43.9415 7.00098 31.9993Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n d=\"M35.0003 38.666C35.0003 42.3479 32.0155 45.3327 28.3337 45.3327C24.6518 45.3327 21.667 42.3479 21.667 38.666C21.667 34.9841 24.6518 31.9993 28.3337 31.9993C32.0155 31.9993 35.0003 34.9841 35.0003 38.666ZM35.0003 38.666V18.666C35.8891 19.9993 36.6003 25.5993 43.0003 26.666\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @default {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n d=\"M53.3337 26.6673V35.5824C53.3337 37.7624 53.3337 38.8523 52.9278 39.8325L50.667 40.0005C43.1246 40.0005 39.3534 40.0005 37.0102 42.3437C34.667 44.6869 34.667 48.4581 34.667 56.0005L34.2329 58.3632C33.3713 58.6672 32.4307 58.6672 30.5491 58.6672C21.8958 58.6672 17.5692 58.6672 14.6385 56.3045C14.0465 55.8272 13.5072 55.2877 13.0298 54.6957C10.667 51.7651 10.667 47.4384 10.667 38.7851V26.6673C10.667 16.6107 10.667 11.5824 13.7912 8.45817C16.9154 5.33398 21.9437 5.33398 32.0003 5.33398C42.0569 5.33398 47.0854 5.33398 50.2094 8.45817C53.3337 11.5824 53.3337 16.6107 53.3337 26.6673Z\"\n />\n <path\n d=\"M21.333 18.666H42.6663\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M21.333 29.334H31.9997\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M34.667 57.3339V56.0005C34.667 48.4581 34.667 44.6869 37.0102 42.3437C39.3534 40.0005 43.1246 40.0005 50.667 40.0005H52.0003M53.3337 35.5824V26.6673C53.3337 16.6107 53.3337 11.5824 50.2094 8.45817C47.0854 5.33398 42.0569 5.33398 32.0003 5.33398C21.9437 5.33398 16.9154 5.33398 13.7912 8.45817C10.667 11.5824 10.667 16.6107 10.667 26.6673V38.7851C10.667 47.4384 10.667 51.7651 13.0298 54.6957C13.5072 55.2877 14.0465 55.8272 14.6385 56.3045C17.5692 58.6672 21.8958 58.6672 30.5491 58.6672C32.4307 58.6672 33.3713 58.6672 34.2329 58.3632C34.4121 58.3 34.5875 58.2272 34.759 58.1453C35.5833 57.7512 36.2483 57.0859 37.5787 55.7557L50.2094 43.1248C51.751 41.5835 52.5217 40.8125 52.9278 39.8325C53.3337 38.8523 53.3337 37.7624 53.3337 35.5824Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n }\n <ax-text>{{ infoData()?.name }}</ax-text>\n </div>\n\n <div class=\"ax-size-info\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8 22V17C8 15.8954 8.89543 15 10 15H14C15.1046 15 16 15.8954 16 17V22\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n <path d=\"M10 7H14\" stroke=\"#6B7280\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path\n d=\"M3 20V4C3 2.89543 3.89543 2 5 2H14.2759C14.7438 2 15.1968 2.16403 15.5563 2.46356L20.2804 6.40031C20.7364 6.7803 21 7.34319 21 7.93675V20C21 21.1046 20.1046 22 19 22H5C3.89543 22 3 21.1046 3 20Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n <ax-text>{{ infoData()?.size }}</ax-text>\n </div>\n</div>\n", styles: [".ax-info-contianer{display:flex;justify-content:flex-start;align-items:center}.ax-info-contianer ax-text{color:rgba(var(--ax-color-neutral-500));margin-inline-start:.3rem}.ax-info-contianer .ax-name-info,.ax-info-contianer .ax-size-info{display:flex;justify-content:center;align-items:center}.ax-info-contianer .ax-name-info{margin-inline-end:1rem}\n"], dependencies: [{ kind: "component", type: i1$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
160
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXFileInfoComponent, selector: "ax-file-info", ngImport: i0, template: "<div class=\"ax-info-contianer\">\n @if (infoData()?.name) {\n <div class=\"ax-name-info\">\n @switch (infoData()?.type) {\n @case ('video') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 65 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M32.6667 58.6673C47.3941 58.6673 59.3333 46.7281 59.3333 32.0006C59.3333 17.2731 47.3941 5.33398 32.6667 5.33398C17.9391 5.33398 6 17.2731 6 32.0006C6 46.7281 17.9391 58.6673 32.6667 58.6673ZM35.7437 38.2678C39.5619 35.9057 41.4709 34.7246 41.8749 33.0534C42.0416 32.3636 42.0416 31.6377 41.8749 30.9478C41.4709 29.2766 39.5619 28.0956 35.7437 25.7335C32.0525 23.4502 30.2072 22.3085 28.7197 22.7674C28.1048 22.9571 27.5448 23.3175 27.0929 23.8138C26 25.0145 26 27.3433 26 32.0006C26 36.658 26 38.9868 27.0929 40.1873C27.5448 40.6838 28.1048 41.0441 28.7197 41.234C30.2072 41.6929 32.0525 40.551 35.7437 38.2678Z\"\n />\n <path\n d=\"M32.6667 58.6673C47.3943 58.6673 59.3333 46.7282 59.3333 32.0006C59.3333 17.2731 47.3943 5.33398 32.6667 5.33398C17.9391 5.33398 6 17.2731 6 32.0006C6 46.7282 17.9391 58.6673 32.6667 58.6673Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n d=\"M41.8749 33.0521C41.4709 34.7233 39.5619 35.9044 35.7437 38.2665C32.0525 40.5497 30.2072 41.6916 28.7197 41.2327C28.1048 41.0428 27.5448 40.6825 27.0929 40.186C26 38.9855 26 36.6567 26 31.9993C26 27.342 26 25.0132 27.0929 23.8125C27.5448 23.3162 28.1048 22.9558 28.7197 22.7661C30.2072 22.3072 32.0525 23.4489 35.7437 25.7322C39.5619 28.0943 41.4709 29.2753 41.8749 30.9465C42.0416 31.6364 42.0416 32.3623 41.8749 33.0521Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('image') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 65 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.1123 31.9993C7.1123 20.0571 7.1123 14.086 10.8223 10.376C14.5323 6.66602 20.5034 6.66602 32.4456 6.66602C44.3878 6.66602 50.359 6.66602 54.0691 10.376C57.779 14.086 57.779 20.0571 57.779 31.9993C57.779 43.9415 57.779 49.9127 54.0691 53.6228C50.359 57.3327 44.3878 57.3327 32.4456 57.3327C20.5034 57.3327 14.5323 57.3327 10.8223 53.6228C7.1123 49.9127 7.1123 43.9415 7.1123 31.9993Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n d=\"M44.4453 24C46.6545 24 48.4453 22.2091 48.4453 20C48.4453 17.7909 46.6545 16 44.4453 16C42.2362 16 40.4453 17.7909 40.4453 20C40.4453 22.2091 42.2362 24 44.4453 24Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.1123 31.9993C7.1123 20.0571 7.1123 14.086 10.8223 10.376C14.5323 6.66602 20.5034 6.66602 32.4456 6.66602C44.3878 6.66602 50.359 6.66602 54.0691 10.376C57.779 14.086 57.779 20.0571 57.779 31.9993C57.779 37.3372 57.779 41.4823 57.4478 44.7655C54.6288 43.2943 51.72 42.5484 48.7958 42.5516C44.5971 42.5337 40.4374 44.0428 36.5288 46.9937L32.1155 43.5572C26.1984 39.3937 18.7691 37.1903 11.1532 37.3399C10.2489 37.3377 9.34542 37.3665 8.44473 37.4263H7.12884C7.1123 35.7679 7.1123 33.9644 7.1123 31.9993ZM44.4456 23.9993C46.6547 23.9993 48.4456 22.2085 48.4456 19.9993C48.4456 17.7902 46.6547 15.9993 44.4456 15.9993C42.2366 15.9993 40.4456 17.7902 40.4456 19.9993C40.4456 22.2085 42.2366 23.9993 44.4456 23.9993Z\"\n />\n <path\n d=\"M43.112 58.6673C41.46 52.7337 37.604 47.4195 32.116 43.5585C26.1989 39.395 18.7697 37.1915 11.1538 37.3411C10.2495 37.339 9.34601 37.3678 8.44531 37.4275\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M35.1123 47.9992C39.6496 44.4614 44.5376 42.6467 49.4755 42.6662C52.2755 42.6632 55.0622 43.2568 57.779 44.4304\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('audio') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 65 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.7109 10.376C7.00098 14.086 7.00098 20.0571 7.00098 31.9993C7.00098 43.9415 7.00098 49.9127 10.7109 53.6228C14.4209 57.3327 20.3921 57.3327 32.3343 57.3327C44.2764 57.3327 50.2476 57.3327 53.9578 53.6228C57.6676 49.9127 57.6676 43.9415 57.6676 31.9993C57.6676 20.0571 57.6676 14.086 53.9578 10.376C50.2476 6.66602 44.2764 6.66602 32.3343 6.66602C20.3921 6.66602 14.4209 6.66602 10.7109 10.376ZM28.3343 45.3327C32.0162 45.3327 35.001 42.3479 35.001 38.666C35.001 34.9841 32.0162 31.9993 28.3343 31.9993C24.6524 31.9993 21.6676 34.9841 21.6676 38.666C21.6676 42.3479 24.6524 45.3327 28.3343 45.3327Z\"\n />\n <path\n d=\"M7.00098 31.9993C7.00098 20.0571 7.00098 14.086 10.7109 10.376C14.4209 6.66602 20.3921 6.66602 32.3343 6.66602C44.2764 6.66602 50.2476 6.66602 53.9578 10.376C57.6676 14.086 57.6676 20.0571 57.6676 31.9993C57.6676 43.9415 57.6676 49.9127 53.9578 53.6228C50.2476 57.3327 44.2764 57.3327 32.3343 57.3327C20.3921 57.3327 14.4209 57.3327 10.7109 53.6228C7.00098 49.9127 7.00098 43.9415 7.00098 31.9993Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n d=\"M35.0003 38.666C35.0003 42.3479 32.0155 45.3327 28.3337 45.3327C24.6518 45.3327 21.667 42.3479 21.667 38.666C21.667 34.9841 24.6518 31.9993 28.3337 31.9993C32.0155 31.9993 35.0003 34.9841 35.0003 38.666ZM35.0003 38.666V18.666C35.8891 19.9993 36.6003 25.5993 43.0003 26.666\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @default {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n d=\"M53.3337 26.6673V35.5824C53.3337 37.7624 53.3337 38.8523 52.9278 39.8325L50.667 40.0005C43.1246 40.0005 39.3534 40.0005 37.0102 42.3437C34.667 44.6869 34.667 48.4581 34.667 56.0005L34.2329 58.3632C33.3713 58.6672 32.4307 58.6672 30.5491 58.6672C21.8958 58.6672 17.5692 58.6672 14.6385 56.3045C14.0465 55.8272 13.5072 55.2877 13.0298 54.6957C10.667 51.7651 10.667 47.4384 10.667 38.7851V26.6673C10.667 16.6107 10.667 11.5824 13.7912 8.45817C16.9154 5.33398 21.9437 5.33398 32.0003 5.33398C42.0569 5.33398 47.0854 5.33398 50.2094 8.45817C53.3337 11.5824 53.3337 16.6107 53.3337 26.6673Z\"\n />\n <path\n d=\"M21.333 18.666H42.6663\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M21.333 29.334H31.9997\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M34.667 57.3339V56.0005C34.667 48.4581 34.667 44.6869 37.0102 42.3437C39.3534 40.0005 43.1246 40.0005 50.667 40.0005H52.0003M53.3337 35.5824V26.6673C53.3337 16.6107 53.3337 11.5824 50.2094 8.45817C47.0854 5.33398 42.0569 5.33398 32.0003 5.33398C21.9437 5.33398 16.9154 5.33398 13.7912 8.45817C10.667 11.5824 10.667 16.6107 10.667 26.6673V38.7851C10.667 47.4384 10.667 51.7651 13.0298 54.6957C13.5072 55.2877 14.0465 55.8272 14.6385 56.3045C17.5692 58.6672 21.8958 58.6672 30.5491 58.6672C32.4307 58.6672 33.3713 58.6672 34.2329 58.3632C34.4121 58.3 34.5875 58.2272 34.759 58.1453C35.5833 57.7512 36.2483 57.0859 37.5787 55.7557L50.2094 43.1248C51.751 41.5835 52.5217 40.8125 52.9278 39.8325C53.3337 38.8523 53.3337 37.7624 53.3337 35.5824Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n }\n <ax-text>{{ infoData().name }}</ax-text>\n </div>\n }\n\n @if (infoData()?.size) {\n <div class=\"ax-size-info\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8 22V17C8 15.8954 8.89543 15 10 15H14C15.1046 15 16 15.8954 16 17V22\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10 7H14\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3 20V4C3 2.89543 3.89543 2 5 2H14.2759C14.7438 2 15.1968 2.16403 15.5563 2.46356L20.2804 6.40031C20.7364 6.7803 21 7.34319 21 7.93675V20C21 21.1046 20.1046 22 19 22H5C3.89543 22 3 21.1046 3 20Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n <ax-text>{{ infoData().size }}</ax-text>\n </div>\n }\n</div>\n", styles: [".ax-info-contianer{display:flex;justify-content:flex-start;align-items:center}.ax-info-contianer ax-text{color:rgba(var(--ax-color-neutral-500));margin-inline-start:.3rem}.ax-info-contianer .ax-name-info,.ax-info-contianer .ax-size-info{display:flex;justify-content:center;align-items:center}.ax-info-contianer .ax-name-info{margin-inline-end:1rem}\n"], dependencies: [{ kind: "component", type: i1$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
161
161
|
}
|
162
162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXFileInfoComponent, decorators: [{
|
163
163
|
type: Component,
|
164
|
-
args: [{ selector: 'ax-file-info', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-info-contianer\">\n <div class=\"ax-name-info\">\n @switch (infoData()?.type) {\n @case ('video') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 65 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M32.6667 58.6673C47.3941 58.6673 59.3333 46.7281 59.3333 32.0006C59.3333 17.2731 47.3941 5.33398 32.6667 5.33398C17.9391 5.33398 6 17.2731 6 32.0006C6 46.7281 17.9391 58.6673 32.6667 58.6673ZM35.7437 38.2678C39.5619 35.9057 41.4709 34.7246 41.8749 33.0534C42.0416 32.3636 42.0416 31.6377 41.8749 30.9478C41.4709 29.2766 39.5619 28.0956 35.7437 25.7335C32.0525 23.4502 30.2072 22.3085 28.7197 22.7674C28.1048 22.9571 27.5448 23.3175 27.0929 23.8138C26 25.0145 26 27.3433 26 32.0006C26 36.658 26 38.9868 27.0929 40.1873C27.5448 40.6838 28.1048 41.0441 28.7197 41.234C30.2072 41.6929 32.0525 40.551 35.7437 38.2678Z\"\n />\n <path\n d=\"M32.6667 58.6673C47.3943 58.6673 59.3333 46.7282 59.3333 32.0006C59.3333 17.2731 47.3943 5.33398 32.6667 5.33398C17.9391 5.33398 6 17.2731 6 32.0006C6 46.7282 17.9391 58.6673 32.6667 58.6673Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n d=\"M41.8749 33.0521C41.4709 34.7233 39.5619 35.9044 35.7437 38.2665C32.0525 40.5497 30.2072 41.6916 28.7197 41.2327C28.1048 41.0428 27.5448 40.6825 27.0929 40.186C26 38.9855 26 36.6567 26 31.9993C26 27.342 26 25.0132 27.0929 23.8125C27.5448 23.3162 28.1048 22.9558 28.7197 22.7661C30.2072 22.3072 32.0525 23.4489 35.7437 25.7322C39.5619 28.0943 41.4709 29.2753 41.8749 30.9465C42.0416 31.6364 42.0416 32.3623 41.8749 33.0521Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('image') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 65 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.1123 31.9993C7.1123 20.0571 7.1123 14.086 10.8223 10.376C14.5323 6.66602 20.5034 6.66602 32.4456 6.66602C44.3878 6.66602 50.359 6.66602 54.0691 10.376C57.779 14.086 57.779 20.0571 57.779 31.9993C57.779 43.9415 57.779 49.9127 54.0691 53.6228C50.359 57.3327 44.3878 57.3327 32.4456 57.3327C20.5034 57.3327 14.5323 57.3327 10.8223 53.6228C7.1123 49.9127 7.1123 43.9415 7.1123 31.9993Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n d=\"M44.4453 24C46.6545 24 48.4453 22.2091 48.4453 20C48.4453 17.7909 46.6545 16 44.4453 16C42.2362 16 40.4453 17.7909 40.4453 20C40.4453 22.2091 42.2362 24 44.4453 24Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.1123 31.9993C7.1123 20.0571 7.1123 14.086 10.8223 10.376C14.5323 6.66602 20.5034 6.66602 32.4456 6.66602C44.3878 6.66602 50.359 6.66602 54.0691 10.376C57.779 14.086 57.779 20.0571 57.779 31.9993C57.779 37.3372 57.779 41.4823 57.4478 44.7655C54.6288 43.2943 51.72 42.5484 48.7958 42.5516C44.5971 42.5337 40.4374 44.0428 36.5288 46.9937L32.1155 43.5572C26.1984 39.3937 18.7691 37.1903 11.1532 37.3399C10.2489 37.3377 9.34542 37.3665 8.44473 37.4263H7.12884C7.1123 35.7679 7.1123 33.9644 7.1123 31.9993ZM44.4456 23.9993C46.6547 23.9993 48.4456 22.2085 48.4456 19.9993C48.4456 17.7902 46.6547 15.9993 44.4456 15.9993C42.2366 15.9993 40.4456 17.7902 40.4456 19.9993C40.4456 22.2085 42.2366 23.9993 44.4456 23.9993Z\"\n />\n <path\n d=\"M43.112 58.6673C41.46 52.7337 37.604 47.4195 32.116 43.5585C26.1989 39.395 18.7697 37.1915 11.1538 37.3411C10.2495 37.339 9.34601 37.3678 8.44531 37.4275\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M35.1123 47.9992C39.6496 44.4614 44.5376 42.6467 49.4755 42.6662C52.2755 42.6632 55.0622 43.2568 57.779 44.4304\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('audio') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 65 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.7109 10.376C7.00098 14.086 7.00098 20.0571 7.00098 31.9993C7.00098 43.9415 7.00098 49.9127 10.7109 53.6228C14.4209 57.3327 20.3921 57.3327 32.3343 57.3327C44.2764 57.3327 50.2476 57.3327 53.9578 53.6228C57.6676 49.9127 57.6676 43.9415 57.6676 31.9993C57.6676 20.0571 57.6676 14.086 53.9578 10.376C50.2476 6.66602 44.2764 6.66602 32.3343 6.66602C20.3921 6.66602 14.4209 6.66602 10.7109 10.376ZM28.3343 45.3327C32.0162 45.3327 35.001 42.3479 35.001 38.666C35.001 34.9841 32.0162 31.9993 28.3343 31.9993C24.6524 31.9993 21.6676 34.9841 21.6676 38.666C21.6676 42.3479 24.6524 45.3327 28.3343 45.3327Z\"\n />\n <path\n d=\"M7.00098 31.9993C7.00098 20.0571 7.00098 14.086 10.7109 10.376C14.4209 6.66602 20.3921 6.66602 32.3343 6.66602C44.2764 6.66602 50.2476 6.66602 53.9578 10.376C57.6676 14.086 57.6676 20.0571 57.6676 31.9993C57.6676 43.9415 57.6676 49.9127 53.9578 53.6228C50.2476 57.3327 44.2764 57.3327 32.3343 57.3327C20.3921 57.3327 14.4209 57.3327 10.7109 53.6228C7.00098 49.9127 7.00098 43.9415 7.00098 31.9993Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n d=\"M35.0003 38.666C35.0003 42.3479 32.0155 45.3327 28.3337 45.3327C24.6518 45.3327 21.667 42.3479 21.667 38.666C21.667 34.9841 24.6518 31.9993 28.3337 31.9993C32.0155 31.9993 35.0003 34.9841 35.0003 38.666ZM35.0003 38.666V18.666C35.8891 19.9993 36.6003 25.5993 43.0003 26.666\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @default {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n d=\"M53.3337 26.6673V35.5824C53.3337 37.7624 53.3337 38.8523 52.9278 39.8325L50.667 40.0005C43.1246 40.0005 39.3534 40.0005 37.0102 42.3437C34.667 44.6869 34.667 48.4581 34.667 56.0005L34.2329 58.3632C33.3713 58.6672 32.4307 58.6672 30.5491 58.6672C21.8958 58.6672 17.5692 58.6672 14.6385 56.3045C14.0465 55.8272 13.5072 55.2877 13.0298 54.6957C10.667 51.7651 10.667 47.4384 10.667 38.7851V26.6673C10.667 16.6107 10.667 11.5824 13.7912 8.45817C16.9154 5.33398 21.9437 5.33398 32.0003 5.33398C42.0569 5.33398 47.0854 5.33398 50.2094 8.45817C53.3337 11.5824 53.3337 16.6107 53.3337 26.6673Z\"\n />\n <path\n d=\"M21.333 18.666H42.6663\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M21.333 29.334H31.9997\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M34.667 57.3339V56.0005C34.667 48.4581 34.667 44.6869 37.0102 42.3437C39.3534 40.0005 43.1246 40.0005 50.667 40.0005H52.0003M53.3337 35.5824V26.6673C53.3337 16.6107 53.3337 11.5824 50.2094 8.45817C47.0854 5.33398 42.0569 5.33398 32.0003 5.33398C21.9437 5.33398 16.9154 5.33398 13.7912 8.45817C10.667 11.5824 10.667 16.6107 10.667 26.6673V38.7851C10.667 47.4384 10.667 51.7651 13.0298 54.6957C13.5072 55.2877 14.0465 55.8272 14.6385 56.3045C17.5692 58.6672 21.8958 58.6672 30.5491 58.6672C32.4307 58.6672 33.3713 58.6672 34.2329 58.3632C34.4121 58.3 34.5875 58.2272 34.759 58.1453C35.5833 57.7512 36.2483 57.0859 37.5787 55.7557L50.2094 43.1248C51.751 41.5835 52.5217 40.8125 52.9278 39.8325C53.3337 38.8523 53.3337 37.7624 53.3337 35.5824Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n }\n <ax-text>{{ infoData()?.name }}</ax-text>\n </div>\n\n <div class=\"ax-size-info\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8 22V17C8 15.8954 8.89543 15 10 15H14C15.1046 15 16 15.8954 16 17V22\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n <path d=\"M10 7H14\" stroke=\"#6B7280\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path\n d=\"M3 20V4C3 2.89543 3.89543 2 5 2H14.2759C14.7438 2 15.1968 2.16403 15.5563 2.46356L20.2804 6.40031C20.7364 6.7803 21 7.34319 21 7.93675V20C21 21.1046 20.1046 22 19 22H5C3.89543 22 3 21.1046 3 20Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n <ax-text>{{ infoData()?.size }}</ax-text>\n </div>\n</div>\n", styles: [".ax-info-contianer{display:flex;justify-content:flex-start;align-items:center}.ax-info-contianer ax-text{color:rgba(var(--ax-color-neutral-500));margin-inline-start:.3rem}.ax-info-contianer .ax-name-info,.ax-info-contianer .ax-size-info{display:flex;justify-content:center;align-items:center}.ax-info-contianer .ax-name-info{margin-inline-end:1rem}\n"] }]
|
164
|
+
args: [{ selector: 'ax-file-info', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-info-contianer\">\n @if (infoData()?.name) {\n <div class=\"ax-name-info\">\n @switch (infoData()?.type) {\n @case ('video') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 65 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M32.6667 58.6673C47.3941 58.6673 59.3333 46.7281 59.3333 32.0006C59.3333 17.2731 47.3941 5.33398 32.6667 5.33398C17.9391 5.33398 6 17.2731 6 32.0006C6 46.7281 17.9391 58.6673 32.6667 58.6673ZM35.7437 38.2678C39.5619 35.9057 41.4709 34.7246 41.8749 33.0534C42.0416 32.3636 42.0416 31.6377 41.8749 30.9478C41.4709 29.2766 39.5619 28.0956 35.7437 25.7335C32.0525 23.4502 30.2072 22.3085 28.7197 22.7674C28.1048 22.9571 27.5448 23.3175 27.0929 23.8138C26 25.0145 26 27.3433 26 32.0006C26 36.658 26 38.9868 27.0929 40.1873C27.5448 40.6838 28.1048 41.0441 28.7197 41.234C30.2072 41.6929 32.0525 40.551 35.7437 38.2678Z\"\n />\n <path\n d=\"M32.6667 58.6673C47.3943 58.6673 59.3333 46.7282 59.3333 32.0006C59.3333 17.2731 47.3943 5.33398 32.6667 5.33398C17.9391 5.33398 6 17.2731 6 32.0006C6 46.7282 17.9391 58.6673 32.6667 58.6673Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n d=\"M41.8749 33.0521C41.4709 34.7233 39.5619 35.9044 35.7437 38.2665C32.0525 40.5497 30.2072 41.6916 28.7197 41.2327C28.1048 41.0428 27.5448 40.6825 27.0929 40.186C26 38.9855 26 36.6567 26 31.9993C26 27.342 26 25.0132 27.0929 23.8125C27.5448 23.3162 28.1048 22.9558 28.7197 22.7661C30.2072 22.3072 32.0525 23.4489 35.7437 25.7322C39.5619 28.0943 41.4709 29.2753 41.8749 30.9465C42.0416 31.6364 42.0416 32.3623 41.8749 33.0521Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('image') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 65 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.1123 31.9993C7.1123 20.0571 7.1123 14.086 10.8223 10.376C14.5323 6.66602 20.5034 6.66602 32.4456 6.66602C44.3878 6.66602 50.359 6.66602 54.0691 10.376C57.779 14.086 57.779 20.0571 57.779 31.9993C57.779 43.9415 57.779 49.9127 54.0691 53.6228C50.359 57.3327 44.3878 57.3327 32.4456 57.3327C20.5034 57.3327 14.5323 57.3327 10.8223 53.6228C7.1123 49.9127 7.1123 43.9415 7.1123 31.9993Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n d=\"M44.4453 24C46.6545 24 48.4453 22.2091 48.4453 20C48.4453 17.7909 46.6545 16 44.4453 16C42.2362 16 40.4453 17.7909 40.4453 20C40.4453 22.2091 42.2362 24 44.4453 24Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.1123 31.9993C7.1123 20.0571 7.1123 14.086 10.8223 10.376C14.5323 6.66602 20.5034 6.66602 32.4456 6.66602C44.3878 6.66602 50.359 6.66602 54.0691 10.376C57.779 14.086 57.779 20.0571 57.779 31.9993C57.779 37.3372 57.779 41.4823 57.4478 44.7655C54.6288 43.2943 51.72 42.5484 48.7958 42.5516C44.5971 42.5337 40.4374 44.0428 36.5288 46.9937L32.1155 43.5572C26.1984 39.3937 18.7691 37.1903 11.1532 37.3399C10.2489 37.3377 9.34542 37.3665 8.44473 37.4263H7.12884C7.1123 35.7679 7.1123 33.9644 7.1123 31.9993ZM44.4456 23.9993C46.6547 23.9993 48.4456 22.2085 48.4456 19.9993C48.4456 17.7902 46.6547 15.9993 44.4456 15.9993C42.2366 15.9993 40.4456 17.7902 40.4456 19.9993C40.4456 22.2085 42.2366 23.9993 44.4456 23.9993Z\"\n />\n <path\n d=\"M43.112 58.6673C41.46 52.7337 37.604 47.4195 32.116 43.5585C26.1989 39.395 18.7697 37.1915 11.1538 37.3411C10.2495 37.339 9.34601 37.3678 8.44531 37.4275\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M35.1123 47.9992C39.6496 44.4614 44.5376 42.6467 49.4755 42.6662C52.2755 42.6632 55.0622 43.2568 57.779 44.4304\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('audio') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 65 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.7109 10.376C7.00098 14.086 7.00098 20.0571 7.00098 31.9993C7.00098 43.9415 7.00098 49.9127 10.7109 53.6228C14.4209 57.3327 20.3921 57.3327 32.3343 57.3327C44.2764 57.3327 50.2476 57.3327 53.9578 53.6228C57.6676 49.9127 57.6676 43.9415 57.6676 31.9993C57.6676 20.0571 57.6676 14.086 53.9578 10.376C50.2476 6.66602 44.2764 6.66602 32.3343 6.66602C20.3921 6.66602 14.4209 6.66602 10.7109 10.376ZM28.3343 45.3327C32.0162 45.3327 35.001 42.3479 35.001 38.666C35.001 34.9841 32.0162 31.9993 28.3343 31.9993C24.6524 31.9993 21.6676 34.9841 21.6676 38.666C21.6676 42.3479 24.6524 45.3327 28.3343 45.3327Z\"\n />\n <path\n d=\"M7.00098 31.9993C7.00098 20.0571 7.00098 14.086 10.7109 10.376C14.4209 6.66602 20.3921 6.66602 32.3343 6.66602C44.2764 6.66602 50.2476 6.66602 53.9578 10.376C57.6676 14.086 57.6676 20.0571 57.6676 31.9993C57.6676 43.9415 57.6676 49.9127 53.9578 53.6228C50.2476 57.3327 44.2764 57.3327 32.3343 57.3327C20.3921 57.3327 14.4209 57.3327 10.7109 53.6228C7.00098 49.9127 7.00098 43.9415 7.00098 31.9993Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n />\n <path\n d=\"M35.0003 38.666C35.0003 42.3479 32.0155 45.3327 28.3337 45.3327C24.6518 45.3327 21.667 42.3479 21.667 38.666C21.667 34.9841 24.6518 31.9993 28.3337 31.9993C32.0155 31.9993 35.0003 34.9841 35.0003 38.666ZM35.0003 38.666V18.666C35.8891 19.9993 36.6003 25.5993 43.0003 26.666\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @default {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n d=\"M53.3337 26.6673V35.5824C53.3337 37.7624 53.3337 38.8523 52.9278 39.8325L50.667 40.0005C43.1246 40.0005 39.3534 40.0005 37.0102 42.3437C34.667 44.6869 34.667 48.4581 34.667 56.0005L34.2329 58.3632C33.3713 58.6672 32.4307 58.6672 30.5491 58.6672C21.8958 58.6672 17.5692 58.6672 14.6385 56.3045C14.0465 55.8272 13.5072 55.2877 13.0298 54.6957C10.667 51.7651 10.667 47.4384 10.667 38.7851V26.6673C10.667 16.6107 10.667 11.5824 13.7912 8.45817C16.9154 5.33398 21.9437 5.33398 32.0003 5.33398C42.0569 5.33398 47.0854 5.33398 50.2094 8.45817C53.3337 11.5824 53.3337 16.6107 53.3337 26.6673Z\"\n />\n <path\n d=\"M21.333 18.666H42.6663\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M21.333 29.334H31.9997\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M34.667 57.3339V56.0005C34.667 48.4581 34.667 44.6869 37.0102 42.3437C39.3534 40.0005 43.1246 40.0005 50.667 40.0005H52.0003M53.3337 35.5824V26.6673C53.3337 16.6107 53.3337 11.5824 50.2094 8.45817C47.0854 5.33398 42.0569 5.33398 32.0003 5.33398C21.9437 5.33398 16.9154 5.33398 13.7912 8.45817C10.667 11.5824 10.667 16.6107 10.667 26.6673V38.7851C10.667 47.4384 10.667 51.7651 13.0298 54.6957C13.5072 55.2877 14.0465 55.8272 14.6385 56.3045C17.5692 58.6672 21.8958 58.6672 30.5491 58.6672C32.4307 58.6672 33.3713 58.6672 34.2329 58.3632C34.4121 58.3 34.5875 58.2272 34.759 58.1453C35.5833 57.7512 36.2483 57.0859 37.5787 55.7557L50.2094 43.1248C51.751 41.5835 52.5217 40.8125 52.9278 39.8325C53.3337 38.8523 53.3337 37.7624 53.3337 35.5824Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n }\n <ax-text>{{ infoData().name }}</ax-text>\n </div>\n }\n\n @if (infoData()?.size) {\n <div class=\"ax-size-info\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8 22V17C8 15.8954 8.89543 15 10 15H14C15.1046 15 16 15.8954 16 17V22\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10 7H14\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3 20V4C3 2.89543 3.89543 2 5 2H14.2759C14.7438 2 15.1968 2.16403 15.5563 2.46356L20.2804 6.40031C20.7364 6.7803 21 7.34319 21 7.93675V20C21 21.1046 20.1046 22 19 22H5C3.89543 22 3 21.1046 3 20Z\"\n stroke=\"#6B7280\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n <ax-text>{{ infoData().size }}</ax-text>\n </div>\n }\n</div>\n", styles: [".ax-info-contianer{display:flex;justify-content:flex-start;align-items:center}.ax-info-contianer ax-text{color:rgba(var(--ax-color-neutral-500));margin-inline-start:.3rem}.ax-info-contianer .ax-name-info,.ax-info-contianer .ax-size-info{display:flex;justify-content:center;align-items:center}.ax-info-contianer .ax-name-info{margin-inline-end:1rem}\n"] }]
|
165
165
|
}] });
|
166
166
|
|
167
167
|
class AXImageViewerComponent extends AXMediaViewerBaseComponent {
|
168
168
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXImageViewerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
169
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXImageViewerComponent, selector: "ax-image-viewer", usesInheritance: true, ngImport: i0, template: "<ax-image alt=\"image\" [
|
169
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXImageViewerComponent, selector: "ax-image-viewer", usesInheritance: true, ngImport: i0, template: "<ax-image alt=\"image\" [src]=\"this.message?.url\">\n <ax-loading></ax-loading>\n <ax-placeholder></ax-placeholder>\n</ax-image>\n", styles: ["ax-image-viewer{display:flex;justify-content:center;align-items:center;width:100%}\n"], dependencies: [{ kind: "component", type: i1$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i2.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i3.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
170
170
|
}
|
171
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXImageViewerComponent, decorators: [{
|
172
172
|
type: Component,
|
173
|
-
args: [{ selector: 'ax-image-viewer', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-image alt=\"image\" [
|
173
|
+
args: [{ selector: 'ax-image-viewer', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-image alt=\"image\" [src]=\"this.message?.url\">\n <ax-loading></ax-loading>\n <ax-placeholder></ax-placeholder>\n</ax-image>\n", styles: ["ax-image-viewer{display:flex;justify-content:center;align-items:center;width:100%}\n"] }]
|
174
174
|
}] });
|
175
175
|
|
176
176
|
class AXPdfReaderComponent extends AXMediaViewerBaseComponent {
|