@acorex/components 18.12.24 → 18.12.26
Sign up to get free protection for your applications and to get access to all the features.
- package/common/lib/classes/styles.class.d.ts +1 -1
- package/esm2022/button-group/lib/button-group.component.mjs +2 -2
- package/esm2022/common/lib/classes/styles.class.mjs +1 -1
- package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +1 -1
- package/esm2022/dropdown/lib/dropdown-box.component.mjs +1 -1
- package/esm2022/dropdown/lib/dropdown-panel.component.mjs +1 -1
- package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +3 -3
- package/esm2022/image-editor/lib/image-editor-tools/image-editor-pen-mode-changer/image-editor-pen-mode-changer.component.mjs +1 -1
- package/esm2022/media-viewer/index.mjs +2 -1
- package/esm2022/media-viewer/lib/media-viewer-container/media-viewer-container.component.mjs +20 -5
- package/esm2022/media-viewer/lib/media-viewer-tools/full-screen/full-screen.component.mjs +20 -0
- package/esm2022/media-viewer/lib/media-viewer.module.mjs +7 -3
- package/esm2022/media-viewer/lib/media-viewer.service.mjs +2 -1
- package/esm2022/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.mjs +1 -1
- package/esm2022/popover/lib/popover.component.mjs +13 -5
- package/esm2022/popup/lib/popup.component.mjs +2 -2
- package/esm2022/popup/lib/popup.interface.mjs +1 -1
- package/esm2022/popup/lib/popup.service.mjs +5 -1
- package/esm2022/side-menu/lib/side-menu-item/side-menu-item.compoent.mjs +5 -5
- package/esm2022/side-menu/lib/side-menu.component.mjs +2 -2
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.mjs +1 -1
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.mjs +1 -1
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.mjs +1 -1
- package/fesm2022/acorex-components-button-group.mjs +2 -2
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +1 -1
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +2 -2
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +2 -2
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +1 -1
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +43 -8
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +1 -1
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +12 -4
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +6 -2
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +6 -6
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +3 -3
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/media-viewer/index.d.ts +1 -0
- package/media-viewer/lib/media-viewer-container/media-viewer-container.component.d.ts +3 -0
- package/media-viewer/lib/media-viewer-tools/full-screen/full-screen.component.d.ts +8 -0
- package/media-viewer/lib/media-viewer.module.d.ts +9 -8
- package/media-viewer/lib/media-viewer.service.d.ts +1 -0
- package/package.json +52 -52
- package/popover/lib/popover.component.d.ts +6 -2
- package/popup/lib/popup.interface.d.ts +1 -0
- package/popup/lib/popup.service.d.ts +1 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { signal, Injectable, inject, input, effect, Component, ChangeDetectionStrategy, ViewEncapsulation, computed, afterNextRender, NgModule, Optional, Inject } from '@angular/core';
|
2
|
+
import { signal, Injectable, inject, input, effect, Component, ChangeDetectionStrategy, ViewEncapsulation, computed, afterNextRender, HostBinding, NgModule, Optional, Inject } from '@angular/core';
|
3
3
|
import { isBrowser } from '@acorex/core/platform';
|
4
4
|
import * as i1 from '@angular/cdk/portal';
|
5
5
|
import { ComponentPortal, CdkPortalOutlet } from '@angular/cdk/portal';
|
@@ -7,18 +7,20 @@ import * as i1$1 from '@angular/common';
|
|
7
7
|
import { CommonModule } from '@angular/common';
|
8
8
|
import * as i1$2 from '@acorex/components/decorators';
|
9
9
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
10
|
+
import * as i1$3 from '@acorex/components/button';
|
11
|
+
import { AXButtonModule } from '@acorex/components/button';
|
10
12
|
import * as i2 from '@acorex/components/image';
|
11
13
|
import { AXImageModule } from '@acorex/components/image';
|
12
14
|
import * as i3 from '@acorex/components/loading';
|
13
15
|
import { AXLoadingModule } from '@acorex/components/loading';
|
14
16
|
import { DomSanitizer } from '@angular/platform-browser';
|
15
|
-
import { AXButtonModule } from '@acorex/components/button';
|
16
17
|
import { FormsModule } from '@angular/forms';
|
17
18
|
|
18
19
|
class AXMediaViewerService {
|
19
20
|
constructor() {
|
20
21
|
this.dataArray = signal([]);
|
21
22
|
this.selectedIndex = signal(0);
|
23
|
+
this.isFullScreen = signal(false);
|
22
24
|
}
|
23
25
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMediaViewerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
24
26
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMediaViewerService }); }
|
@@ -96,13 +98,28 @@ class AXMediaViewerContainerComponent {
|
|
96
98
|
return;
|
97
99
|
this.service.selectedIndex.update((prev) => prev - 1);
|
98
100
|
}
|
101
|
+
closeHandler() {
|
102
|
+
this.service.isFullScreen.set(false);
|
103
|
+
}
|
104
|
+
/** @ignore */
|
105
|
+
get __hostClass() {
|
106
|
+
if (this.service.isFullScreen()) {
|
107
|
+
return 'ax-full-screen-contianer';
|
108
|
+
}
|
109
|
+
else {
|
110
|
+
return 'ax-normal-screen-contianer';
|
111
|
+
}
|
112
|
+
}
|
99
113
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMediaViewerContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
100
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXMediaViewerContainerComponent, selector: "ax-media-viewer-container", inputs: { dataArray: { classPropertyName: "dataArray", publicName: "dataArray", isSignal: true, isRequired: false, transformFunction: null } }, providers: [AXMediaViewerService], ngImport: i0, template: "<ng-content select=\"ax-header\"> </ng-content>\n\n<div class=\"ax-media-viewer-slider-container\">\n <ng-content select=\"ax-suffix\"></ng-content>\n\n <ax-media-viewer-slider [dataObject]=\"showComponent()\"></ax-media-viewer-slider>\n\n <ng-content select=\"ax-prefix\"></ng-content>\n</div>\n\n<ng-content select=\"ax-footer\"> </ng-content>\n", styles: ["ax-media-viewer-container{overflow:hidden;width:100%;border:1px solid rgb(var(--ax-color-border-default));
|
114
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXMediaViewerContainerComponent, selector: "ax-media-viewer-container", inputs: { dataArray: { classPropertyName: "dataArray", publicName: "dataArray", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [AXMediaViewerService], ngImport: i0, template: "<ng-content select=\"ax-header\"> </ng-content>\n\n<div class=\"ax-media-viewer-slider-container\">\n <ng-content select=\"ax-suffix\"></ng-content>\n\n <ax-media-viewer-slider [dataObject]=\"showComponent()\"></ax-media-viewer-slider>\n\n <ng-content select=\"ax-prefix\"></ng-content>\n</div>\n\n<ng-content select=\"ax-footer\"> </ng-content>\n\n<div (click)=\"closeHandler()\" class=\"ax-meida-viewer-backdrop\"></div>\n", styles: ["ax-media-viewer-container.ax-normal-screen-contianer{overflow:hidden;width:100%;display:block;border-radius:var(--ax-rounded-border-default);border:1px solid rgb(var(--ax-color-border-default))}ax-media-viewer-container.ax-full-screen-contianer{position:fixed;top:0;left:0;z-index:50;width:100vw;height:100vh;display:flex;flex-direction:column;justify-content:center;padding:5rem}ax-media-viewer-container.ax-full-screen-contianer .ax-meida-viewer-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000;opacity:80%;z-index:-50}ax-media-viewer-container.ax-full-screen-contianer ax-footer,ax-media-viewer-container.ax-full-screen-contianer ax-header{background-color:#000}ax-media-viewer-container .ax-media-viewer-slider-container{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:rgb(var(--ax-color-background-default))}ax-media-viewer-container ax-footer{border-top:1px solid rgb(var(--ax-color-border-default))}ax-media-viewer-container ax-header{border-bottom:1px solid rgb(var(--ax-color-border-default));padding:.5rem;display:flex;justify-content:space-between;align-items:center}\n"], dependencies: [{ kind: "component", type: AXMediaViewerSliderComponent, selector: "ax-media-viewer-slider", inputs: ["dataObject"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
101
115
|
}
|
102
116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMediaViewerContainerComponent, decorators: [{
|
103
117
|
type: Component,
|
104
|
-
args: [{ selector: 'ax-media-viewer-container', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [AXMediaViewerService], template: "<ng-content select=\"ax-header\"> </ng-content>\n\n<div class=\"ax-media-viewer-slider-container\">\n <ng-content select=\"ax-suffix\"></ng-content>\n\n <ax-media-viewer-slider [dataObject]=\"showComponent()\"></ax-media-viewer-slider>\n\n <ng-content select=\"ax-prefix\"></ng-content>\n</div>\n\n<ng-content select=\"ax-footer\"> </ng-content>\n", styles: ["ax-media-viewer-container{overflow:hidden;width:100%;border:1px solid rgb(var(--ax-color-border-default));
|
105
|
-
}], ctorParameters: () => []
|
118
|
+
args: [{ selector: 'ax-media-viewer-container', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [AXMediaViewerService], template: "<ng-content select=\"ax-header\"> </ng-content>\n\n<div class=\"ax-media-viewer-slider-container\">\n <ng-content select=\"ax-suffix\"></ng-content>\n\n <ax-media-viewer-slider [dataObject]=\"showComponent()\"></ax-media-viewer-slider>\n\n <ng-content select=\"ax-prefix\"></ng-content>\n</div>\n\n<ng-content select=\"ax-footer\"> </ng-content>\n\n<div (click)=\"closeHandler()\" class=\"ax-meida-viewer-backdrop\"></div>\n", styles: ["ax-media-viewer-container.ax-normal-screen-contianer{overflow:hidden;width:100%;display:block;border-radius:var(--ax-rounded-border-default);border:1px solid rgb(var(--ax-color-border-default))}ax-media-viewer-container.ax-full-screen-contianer{position:fixed;top:0;left:0;z-index:50;width:100vw;height:100vh;display:flex;flex-direction:column;justify-content:center;padding:5rem}ax-media-viewer-container.ax-full-screen-contianer .ax-meida-viewer-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000;opacity:80%;z-index:-50}ax-media-viewer-container.ax-full-screen-contianer ax-footer,ax-media-viewer-container.ax-full-screen-contianer ax-header{background-color:#000}ax-media-viewer-container .ax-media-viewer-slider-container{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:rgb(var(--ax-color-background-default))}ax-media-viewer-container ax-footer{border-top:1px solid rgb(var(--ax-color-border-default))}ax-media-viewer-container ax-header{border-bottom:1px solid rgb(var(--ax-color-border-default));padding:.5rem;display:flex;justify-content:space-between;align-items:center}\n"] }]
|
119
|
+
}], ctorParameters: () => [], propDecorators: { __hostClass: [{
|
120
|
+
type: HostBinding,
|
121
|
+
args: ['class']
|
122
|
+
}] } });
|
106
123
|
|
107
124
|
class AXMediaViewerThumbnailComponent {
|
108
125
|
constructor() {
|
@@ -165,6 +182,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
165
182
|
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"] }]
|
166
183
|
}] });
|
167
184
|
|
185
|
+
class AXFullScreenComponent {
|
186
|
+
constructor() {
|
187
|
+
this.service = inject(AXMediaViewerService);
|
188
|
+
}
|
189
|
+
fullScreenHandler() {
|
190
|
+
this.service.isFullScreen.update((prev) => !prev);
|
191
|
+
}
|
192
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXFullScreenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
193
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXFullScreenComponent, selector: "ax-full-screen", ngImport: i0, template: "<ax-button (onClick)=\"fullScreenHandler()\" color=\"secondary\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-full-screen\"></ax-icon>\n</ax-button>\n", styles: [""], dependencies: [{ kind: "component", type: i1$3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i1$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
194
|
+
}
|
195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXFullScreenComponent, decorators: [{
|
196
|
+
type: Component,
|
197
|
+
args: [{ selector: 'ax-full-screen', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-button (onClick)=\"fullScreenHandler()\" color=\"secondary\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-full-screen\"></ax-icon>\n</ax-button>\n" }]
|
198
|
+
}] });
|
199
|
+
|
168
200
|
class AXImageViewerComponent extends AXMediaViewerBaseComponent {
|
169
201
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXImageViewerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
170
202
|
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 }); }
|
@@ -212,6 +244,7 @@ const COMPONENT = [
|
|
212
244
|
AXPdfReaderComponent,
|
213
245
|
AXVideoPlayerComponent,
|
214
246
|
AXFileInfoComponent,
|
247
|
+
AXFullScreenComponent,
|
215
248
|
];
|
216
249
|
const MODULES = [
|
217
250
|
CommonModule,
|
@@ -286,7 +319,8 @@ class AXMediaViewerModule {
|
|
286
319
|
AXImageViewerComponent,
|
287
320
|
AXPdfReaderComponent,
|
288
321
|
AXVideoPlayerComponent,
|
289
|
-
AXFileInfoComponent
|
322
|
+
AXFileInfoComponent,
|
323
|
+
AXFullScreenComponent], imports: [CommonModule,
|
290
324
|
AXButtonModule,
|
291
325
|
AXDecoratorModule,
|
292
326
|
CdkPortalOutlet,
|
@@ -299,7 +333,8 @@ class AXMediaViewerModule {
|
|
299
333
|
AXImageViewerComponent,
|
300
334
|
AXPdfReaderComponent,
|
301
335
|
AXVideoPlayerComponent,
|
302
|
-
AXFileInfoComponent
|
336
|
+
AXFileInfoComponent,
|
337
|
+
AXFullScreenComponent] }); }
|
303
338
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMediaViewerModule, imports: [CommonModule,
|
304
339
|
AXButtonModule,
|
305
340
|
AXDecoratorModule,
|
@@ -325,5 +360,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
325
360
|
* Generated bundle index. Do not edit.
|
326
361
|
*/
|
327
362
|
|
328
|
-
export { AXAudioPlayerComponent, AXFileInfoComponent, AXImageViewerComponent, AXMediaViewerBaseComponent, AXMediaViewerContainerComponent, AXMediaViewerModule, AXMediaViewerSliderComponent, AXMediaViewerThumbnailComponent, AXPdfReaderComponent, AXVideoPlayerComponent };
|
363
|
+
export { AXAudioPlayerComponent, AXFileInfoComponent, AXFullScreenComponent, AXImageViewerComponent, AXMediaViewerBaseComponent, AXMediaViewerContainerComponent, AXMediaViewerModule, AXMediaViewerSliderComponent, AXMediaViewerThumbnailComponent, AXPdfReaderComponent, AXVideoPlayerComponent };
|
329
364
|
//# sourceMappingURL=acorex-components-media-viewer.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-media-viewer.mjs","sources":["../../../../libs/components/media-viewer/src/lib/media-viewer.service.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-type-registry.service.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-slider/media-viewer-slider.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-slider/media-viewer-slider.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-container/media-viewer-container.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-container/media-viewer-container.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-thumbnail/media-viewer-thumbnail.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-thumbnail/media-viewer-thumbnail.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-types.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/audio-player/audio-player.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/audio-player/audio-player.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/file-info/file-info.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/file-info/file-info.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/image-viewer/image-viewer.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/image-viewer/image-viewer.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/pdf-reader/pdf-reader.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/pdf-reader/pdf-reader.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/video-player/video-player.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/video-player/video-player.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer.module.ts","../../../../libs/components/media-viewer/src/acorex-components-media-viewer.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { AXMediaViewerData } from './media-viewer-types';\n\n@Injectable()\nexport class AXMediaViewerService {\n dataArray = signal<AXMediaViewerData[]>([]);\n selectedIndex = signal(0);\n}\n","import { Injectable } from '@angular/core';\nimport { AXMediaViewerType } from './media-viewer-types';\n\n@Injectable({ providedIn: 'root' })\nexport class AXMediaViewerTypeRegistryService {\n private plugins: Map<string, AXMediaViewerType> = new Map<string, AXMediaViewerType>();\n\n register(...plugins: AXMediaViewerType[]) {\n plugins.forEach((p) => this.plugins.set(p.name, p));\n }\n\n public resolve(name: string): AXMediaViewerType | undefined {\n return this.plugins.get(name);\n }\n}\n","import { isBrowser } from '@acorex/core/platform';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n effect,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXMediaViewerTypeRegistryService } from '../media-viewer-type-registry.service';\nimport { AXMediaViewerData } from '../media-viewer-types';\nimport { AXMediaViewerService } from '../media-viewer.service';\n\n@Component({\n selector: 'ax-media-viewer-slider',\n templateUrl: './media-viewer-slider.component.html',\n styleUrls: ['./media-viewer-slider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMediaViewerSliderComponent {\n protected service = inject(AXMediaViewerService);\n\n dataObject = input<AXMediaViewerData>();\n\n /** @ignore */\n protected portal = signal<ComponentPortal<any> | null>(null);\n\n /** @ignore */\n protected registryService = inject(AXMediaViewerTypeRegistryService);\n\n /** @ignore */\n constructor() {\n effect(\n () => {\n if (this.dataObject()) {\n this.portal.set(\n new ComponentPortal(this.registryService.resolve(this.dataObject().type).component),\n );\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n /** @ignore */\n protected _handleAttached(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<unknown>;\n if (ref.instance && isBrowser()) {\n Object.assign(ref.instance, { message: this.dataObject() });\n }\n }\n}\n","<ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXMediaViewerData } from '../media-viewer-types';\nimport { AXMediaViewerService } from '../media-viewer.service';\n\n@Component({\n selector: 'ax-media-viewer-container',\n templateUrl: './media-viewer-container.component.html',\n styleUrls: ['./media-viewer-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [AXMediaViewerService],\n})\nexport class AXMediaViewerContainerComponent {\n dataArray = input<AXMediaViewerData[]>();\n\n protected service = inject(AXMediaViewerService);\n\n protected arrayLength = computed(() => this.dataArray().length);\n protected arrayIndex = computed(() => this.service.selectedIndex());\n protected showComponent = computed(() => this.dataArray()[this.arrayIndex()]);\n\n constructor() {\n afterNextRender(() => {\n this.service.dataArray.set(this.dataArray());\n });\n }\n\n next() {\n if (this.arrayIndex() === this.arrayLength() - 1) return;\n this.service.selectedIndex.update((prev) => prev + 1);\n }\n\n prev() {\n if (this.arrayIndex() === 0) return;\n this.service.selectedIndex.update((prev) => prev - 1);\n }\n}\n","<ng-content select=\"ax-header\"> </ng-content>\n\n<div class=\"ax-media-viewer-slider-container\">\n <ng-content select=\"ax-suffix\"></ng-content>\n\n <ax-media-viewer-slider [dataObject]=\"showComponent()\"></ax-media-viewer-slider>\n\n <ng-content select=\"ax-prefix\"></ng-content>\n</div>\n\n<ng-content select=\"ax-footer\"> </ng-content>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXMediaViewerData } from '../media-viewer-types';\nimport { AXMediaViewerService } from '../media-viewer.service';\n\n@Component({\n selector: 'ax-media-viewer-thumbnail',\n templateUrl: './media-viewer-thumbnail.component.html',\n styleUrls: ['./media-viewer-thumbnail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMediaViewerThumbnailComponent {\n protected service = inject(AXMediaViewerService);\n protected data = signal<AXMediaViewerData[]>([]);\n\n constructor() {\n afterNextRender(() => {\n this.data.set(this.service.dataArray());\n });\n }\n\n protected clickHandler(e: MouseEvent, i: number) {\n (e.target as HTMLDivElement).scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' });\n this.service.selectedIndex.set(i);\n }\n}\n","@for (item of data(); track $index) {\n <div\n class=\"ax-thumbnail\"\n (click)=\"clickHandler($event, $index)\"\n [ngClass]=\"$index === service.selectedIndex() && 'active'\"\n >\n @switch (item.type) {\n @case ('video') {\n <svg width=\"65\" height=\"64\" 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 fill=\"#6D28D9\"\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=\"#6D28D9\"\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=\"#6D28D9\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('image') {\n <svg width=\"65\" height=\"64\" 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=\"#0D9488\"\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=\"#0D9488\"\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 fill=\"#0D9488\"\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=\"#0D9488\"\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=\"#0D9488\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('audio') {\n <svg width=\"65\" height=\"64\" 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 fill=\"#E11D48\"\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=\"#E11D48\"\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=\"#E11D48\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @default {\n <svg width=\"64\" height=\"64\" 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 fill=\"#2563EB\"\n />\n <path\n d=\"M21.333 18.666H42.6663\"\n stroke=\"#2563EB\"\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=\"#2563EB\"\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=\"#2563EB\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n }\n <div class=\"thumbnail-backdrop {{ item.type }}\"></div>\n @if (item.thumbnail) {\n <img [src]=\"item.thumbnail\" alt=\"thumbnail\" />\n }\n </div>\n}\n","import { Injectable, Type } from '@angular/core';\n\nexport interface AXMediaViewerType {\n name: string;\n component: Type<any>;\n}\n\nexport type AXMediaViewerData = {\n id: string;\n name?: string;\n size?: string;\n type: 'image' | 'audio' | 'pdf' | 'video';\n url: string;\n thumbnail?: string;\n};\n\n@Injectable()\nexport class AXMediaViewerBaseComponent {\n message: AXMediaViewerData;\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMediaViewerBaseComponent, AXMediaViewerData } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-audio-player',\n templateUrl: './audio-player.component.html',\n styleUrls: ['./audio-player.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXAudioPlayerComponent extends AXMediaViewerBaseComponent {\n dataObject = signal<AXMediaViewerData>(null);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.dataObject.set(this.message);\n });\n }\n}\n","<audio autoplay class=\"ax-audio-player-tag\" controls [src]=\"dataObject()?.url\"></audio>\n","import { ChangeDetectionStrategy, Component, effect, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXMediaViewerData } from '../../media-viewer-types';\nimport { AXMediaViewerService } from '../../media-viewer.service';\n\n@Component({\n selector: 'ax-file-info',\n templateUrl: './file-info.component.html',\n styleUrls: ['./file-info.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXFileInfoComponent {\n protected service = inject(AXMediaViewerService);\n protected infoData = signal<AXMediaViewerData>(null);\n\n #effect = effect(\n () => {\n this.infoData.set(this.service.dataArray()[this.service.selectedIndex()]);\n },\n { allowSignalWrites: true },\n );\n}\n","<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","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXMediaViewerBaseComponent } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-image-viewer',\n templateUrl: './image-viewer.component.html',\n styleUrls: ['./image-viewer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXImageViewerComponent extends AXMediaViewerBaseComponent {}\n","<ax-image alt=\"image\" [src]=\"this.message?.url\">\n <ax-loading></ax-loading>\n <ax-placeholder></ax-placeholder>\n</ax-image>\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { AXMediaViewerBaseComponent } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-pdf-reader',\n templateUrl: './pdf-reader.component.html',\n styleUrls: ['./pdf-reader.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPdfReaderComponent extends AXMediaViewerBaseComponent {\n sanitizer = inject(DomSanitizer);\n}\n","<iframe [src]=\"sanitizer.bypassSecurityTrustResourceUrl(this.message.url)\" frameborder=\"0\"></iframe>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMediaViewerBaseComponent, AXMediaViewerData } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-video-player',\n templateUrl: './video-player.component.html',\n styleUrls: ['./video-player.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXVideoPlayerComponent extends AXMediaViewerBaseComponent {\n dataObject = signal<AXMediaViewerData>(null);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.dataObject.set(this.message);\n });\n }\n}\n","<video autoplay controls [src]=\"dataObject()?.url\"></video>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXMediaViewerContainerComponent } from './media-viewer-container/media-viewer-container.component';\nimport { AXMediaViewerSliderComponent } from './media-viewer-slider/media-viewer-slider.component';\nimport { AXMediaViewerThumbnailComponent } from './media-viewer-thumbnail/media-viewer-thumbnail.component';\nimport { AXAudioPlayerComponent } from './media-viewer-tools/audio-player/audio-player.component';\nimport { AXFileInfoComponent } from './media-viewer-tools/file-info/file-info.component';\nimport { AXImageViewerComponent } from './media-viewer-tools/image-viewer/image-viewer.component';\nimport { AXPdfReaderComponent } from './media-viewer-tools/pdf-reader/pdf-reader.component';\nimport { AXVideoPlayerComponent } from './media-viewer-tools/video-player/video-player.component';\nimport { AXMediaViewerTypeRegistryService } from './media-viewer-type-registry.service';\nimport { AXMediaViewerType } from './media-viewer-types';\n\nexport interface AXMediaViewerModuleConfig {\n types: AXMediaViewerType[];\n}\n\nconst COMPONENT = [\n AXMediaViewerContainerComponent,\n AXMediaViewerSliderComponent,\n AXMediaViewerThumbnailComponent,\n AXAudioPlayerComponent,\n AXImageViewerComponent,\n AXPdfReaderComponent,\n AXVideoPlayerComponent,\n AXFileInfoComponent,\n];\nconst MODULES = [\n CommonModule,\n AXButtonModule,\n AXDecoratorModule,\n CdkPortalOutlet,\n FormsModule,\n AXImageModule,\n AXLoadingModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n})\nexport class AXMediaViewerModule {\n constructor(@Optional() @Inject('AXMediaViewerFactory') instances: any[]) {\n instances?.forEach((f) => {\n f();\n });\n }\n\n static forRoot(config?: AXMediaViewerModuleConfig): ModuleWithProviders<AXMediaViewerModule> {\n return {\n ngModule: AXMediaViewerModule,\n providers: [\n {\n provide: 'AXMediaViewerFactory',\n useFactory: (registry: AXMediaViewerTypeRegistryService) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n registry.register({\n name: 'audio',\n component: AXAudioPlayerComponent,\n });\n registry.register({\n name: 'image',\n component: AXImageViewerComponent,\n });\n registry.register({\n name: 'pdf',\n component: AXPdfReaderComponent,\n });\n registry.register({\n name: 'video',\n component: AXVideoPlayerComponent,\n });\n },\n deps: [AXMediaViewerTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(config?: AXMediaViewerModuleConfig): ModuleWithProviders<AXMediaViewerModule> {\n return {\n ngModule: AXMediaViewerModule,\n providers: [\n {\n provide: 'AXMediaViewerFactory',\n useFactory: (registry: AXMediaViewerTypeRegistryService) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n },\n deps: [AXMediaViewerTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXMediaViewerSliderComponent","i1"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-media-viewer.mjs","sources":["../../../../libs/components/media-viewer/src/lib/media-viewer.service.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-type-registry.service.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-slider/media-viewer-slider.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-slider/media-viewer-slider.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-container/media-viewer-container.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-container/media-viewer-container.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-thumbnail/media-viewer-thumbnail.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-thumbnail/media-viewer-thumbnail.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-types.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/audio-player/audio-player.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/audio-player/audio-player.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/file-info/file-info.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/file-info/file-info.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/full-screen/full-screen.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/full-screen/full-screen.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/image-viewer/image-viewer.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/image-viewer/image-viewer.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/pdf-reader/pdf-reader.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/pdf-reader/pdf-reader.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/video-player/video-player.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/video-player/video-player.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer.module.ts","../../../../libs/components/media-viewer/src/acorex-components-media-viewer.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { AXMediaViewerData } from './media-viewer-types';\n\n@Injectable()\nexport class AXMediaViewerService {\n dataArray = signal<AXMediaViewerData[]>([]);\n selectedIndex = signal(0);\n isFullScreen = signal(false);\n}\n","import { Injectable } from '@angular/core';\nimport { AXMediaViewerType } from './media-viewer-types';\n\n@Injectable({ providedIn: 'root' })\nexport class AXMediaViewerTypeRegistryService {\n private plugins: Map<string, AXMediaViewerType> = new Map<string, AXMediaViewerType>();\n\n register(...plugins: AXMediaViewerType[]) {\n plugins.forEach((p) => this.plugins.set(p.name, p));\n }\n\n public resolve(name: string): AXMediaViewerType | undefined {\n return this.plugins.get(name);\n }\n}\n","import { isBrowser } from '@acorex/core/platform';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n effect,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXMediaViewerTypeRegistryService } from '../media-viewer-type-registry.service';\nimport { AXMediaViewerData } from '../media-viewer-types';\nimport { AXMediaViewerService } from '../media-viewer.service';\n\n@Component({\n selector: 'ax-media-viewer-slider',\n templateUrl: './media-viewer-slider.component.html',\n styleUrls: ['./media-viewer-slider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMediaViewerSliderComponent {\n protected service = inject(AXMediaViewerService);\n\n dataObject = input<AXMediaViewerData>();\n\n /** @ignore */\n protected portal = signal<ComponentPortal<any> | null>(null);\n\n /** @ignore */\n protected registryService = inject(AXMediaViewerTypeRegistryService);\n\n /** @ignore */\n constructor() {\n effect(\n () => {\n if (this.dataObject()) {\n this.portal.set(\n new ComponentPortal(this.registryService.resolve(this.dataObject().type).component),\n );\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n /** @ignore */\n protected _handleAttached(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<unknown>;\n if (ref.instance && isBrowser()) {\n Object.assign(ref.instance, { message: this.dataObject() });\n }\n }\n}\n","<ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostBinding,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXMediaViewerData } from '../media-viewer-types';\nimport { AXMediaViewerService } from '../media-viewer.service';\n\n@Component({\n selector: 'ax-media-viewer-container',\n templateUrl: './media-viewer-container.component.html',\n styleUrls: ['./media-viewer-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [AXMediaViewerService],\n})\nexport class AXMediaViewerContainerComponent {\n dataArray = input<AXMediaViewerData[]>();\n\n protected service = inject(AXMediaViewerService);\n\n protected arrayLength = computed(() => this.dataArray().length);\n protected arrayIndex = computed(() => this.service.selectedIndex());\n protected showComponent = computed(() => this.dataArray()[this.arrayIndex()]);\n\n constructor() {\n afterNextRender(() => {\n this.service.dataArray.set(this.dataArray());\n });\n }\n\n next() {\n if (this.arrayIndex() === this.arrayLength() - 1) return;\n this.service.selectedIndex.update((prev) => prev + 1);\n }\n\n prev() {\n if (this.arrayIndex() === 0) return;\n this.service.selectedIndex.update((prev) => prev - 1);\n }\n\n protected closeHandler() {\n this.service.isFullScreen.set(false);\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string {\n if (this.service.isFullScreen()) {\n return 'ax-full-screen-contianer';\n } else {\n return 'ax-normal-screen-contianer';\n }\n }\n}\n","<ng-content select=\"ax-header\"> </ng-content>\n\n<div class=\"ax-media-viewer-slider-container\">\n <ng-content select=\"ax-suffix\"></ng-content>\n\n <ax-media-viewer-slider [dataObject]=\"showComponent()\"></ax-media-viewer-slider>\n\n <ng-content select=\"ax-prefix\"></ng-content>\n</div>\n\n<ng-content select=\"ax-footer\"> </ng-content>\n\n<div (click)=\"closeHandler()\" class=\"ax-meida-viewer-backdrop\"></div>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXMediaViewerData } from '../media-viewer-types';\nimport { AXMediaViewerService } from '../media-viewer.service';\n\n@Component({\n selector: 'ax-media-viewer-thumbnail',\n templateUrl: './media-viewer-thumbnail.component.html',\n styleUrls: ['./media-viewer-thumbnail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMediaViewerThumbnailComponent {\n protected service = inject(AXMediaViewerService);\n protected data = signal<AXMediaViewerData[]>([]);\n\n constructor() {\n afterNextRender(() => {\n this.data.set(this.service.dataArray());\n });\n }\n\n protected clickHandler(e: MouseEvent, i: number) {\n (e.target as HTMLDivElement).scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' });\n this.service.selectedIndex.set(i);\n }\n}\n","@for (item of data(); track $index) {\n <div\n class=\"ax-thumbnail\"\n (click)=\"clickHandler($event, $index)\"\n [ngClass]=\"$index === service.selectedIndex() && 'active'\"\n >\n @switch (item.type) {\n @case ('video') {\n <svg width=\"65\" height=\"64\" 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 fill=\"#6D28D9\"\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=\"#6D28D9\"\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=\"#6D28D9\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('image') {\n <svg width=\"65\" height=\"64\" 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=\"#0D9488\"\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=\"#0D9488\"\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 fill=\"#0D9488\"\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=\"#0D9488\"\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=\"#0D9488\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('audio') {\n <svg width=\"65\" height=\"64\" 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 fill=\"#E11D48\"\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=\"#E11D48\"\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=\"#E11D48\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @default {\n <svg width=\"64\" height=\"64\" 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 fill=\"#2563EB\"\n />\n <path\n d=\"M21.333 18.666H42.6663\"\n stroke=\"#2563EB\"\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=\"#2563EB\"\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=\"#2563EB\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n }\n <div class=\"thumbnail-backdrop {{ item.type }}\"></div>\n @if (item.thumbnail) {\n <img [src]=\"item.thumbnail\" alt=\"thumbnail\" />\n }\n </div>\n}\n","import { Injectable, Type } from '@angular/core';\n\nexport interface AXMediaViewerType {\n name: string;\n component: Type<any>;\n}\n\nexport type AXMediaViewerData = {\n id: string;\n name?: string;\n size?: string;\n type: 'image' | 'audio' | 'pdf' | 'video';\n url: string;\n thumbnail?: string;\n};\n\n@Injectable()\nexport class AXMediaViewerBaseComponent {\n message: AXMediaViewerData;\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMediaViewerBaseComponent, AXMediaViewerData } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-audio-player',\n templateUrl: './audio-player.component.html',\n styleUrls: ['./audio-player.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXAudioPlayerComponent extends AXMediaViewerBaseComponent {\n dataObject = signal<AXMediaViewerData>(null);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.dataObject.set(this.message);\n });\n }\n}\n","<audio autoplay class=\"ax-audio-player-tag\" controls [src]=\"dataObject()?.url\"></audio>\n","import { ChangeDetectionStrategy, Component, effect, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXMediaViewerData } from '../../media-viewer-types';\nimport { AXMediaViewerService } from '../../media-viewer.service';\n\n@Component({\n selector: 'ax-file-info',\n templateUrl: './file-info.component.html',\n styleUrls: ['./file-info.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXFileInfoComponent {\n protected service = inject(AXMediaViewerService);\n protected infoData = signal<AXMediaViewerData>(null);\n\n #effect = effect(\n () => {\n this.infoData.set(this.service.dataArray()[this.service.selectedIndex()]);\n },\n { allowSignalWrites: true },\n );\n}\n","<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","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXMediaViewerService } from '../../media-viewer.service';\n\n@Component({\n selector: 'ax-full-screen',\n templateUrl: './full-screen.component.html',\n styleUrls: ['./full-screen.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXFullScreenComponent {\n protected service = inject(AXMediaViewerService);\n protected fullScreenHandler() {\n this.service.isFullScreen.update((prev) => !prev);\n }\n}\n","<ax-button (onClick)=\"fullScreenHandler()\" color=\"secondary\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-full-screen\"></ax-icon>\n</ax-button>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXMediaViewerBaseComponent } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-image-viewer',\n templateUrl: './image-viewer.component.html',\n styleUrls: ['./image-viewer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXImageViewerComponent extends AXMediaViewerBaseComponent {}\n","<ax-image alt=\"image\" [src]=\"this.message?.url\">\n <ax-loading></ax-loading>\n <ax-placeholder></ax-placeholder>\n</ax-image>\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { AXMediaViewerBaseComponent } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-pdf-reader',\n templateUrl: './pdf-reader.component.html',\n styleUrls: ['./pdf-reader.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPdfReaderComponent extends AXMediaViewerBaseComponent {\n sanitizer = inject(DomSanitizer);\n}\n","<iframe [src]=\"sanitizer.bypassSecurityTrustResourceUrl(this.message.url)\" frameborder=\"0\"></iframe>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMediaViewerBaseComponent, AXMediaViewerData } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-video-player',\n templateUrl: './video-player.component.html',\n styleUrls: ['./video-player.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXVideoPlayerComponent extends AXMediaViewerBaseComponent {\n dataObject = signal<AXMediaViewerData>(null);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.dataObject.set(this.message);\n });\n }\n}\n","<video autoplay controls [src]=\"dataObject()?.url\"></video>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXMediaViewerContainerComponent } from './media-viewer-container/media-viewer-container.component';\nimport { AXMediaViewerSliderComponent } from './media-viewer-slider/media-viewer-slider.component';\nimport { AXMediaViewerThumbnailComponent } from './media-viewer-thumbnail/media-viewer-thumbnail.component';\nimport { AXAudioPlayerComponent } from './media-viewer-tools/audio-player/audio-player.component';\nimport { AXFileInfoComponent } from './media-viewer-tools/file-info/file-info.component';\nimport { AXFullScreenComponent } from './media-viewer-tools/full-screen/full-screen.component';\nimport { AXImageViewerComponent } from './media-viewer-tools/image-viewer/image-viewer.component';\nimport { AXPdfReaderComponent } from './media-viewer-tools/pdf-reader/pdf-reader.component';\nimport { AXVideoPlayerComponent } from './media-viewer-tools/video-player/video-player.component';\nimport { AXMediaViewerTypeRegistryService } from './media-viewer-type-registry.service';\nimport { AXMediaViewerType } from './media-viewer-types';\n\nexport interface AXMediaViewerModuleConfig {\n types: AXMediaViewerType[];\n}\n\nconst COMPONENT = [\n AXMediaViewerContainerComponent,\n AXMediaViewerSliderComponent,\n AXMediaViewerThumbnailComponent,\n AXAudioPlayerComponent,\n AXImageViewerComponent,\n AXPdfReaderComponent,\n AXVideoPlayerComponent,\n AXFileInfoComponent,\n AXFullScreenComponent,\n];\nconst MODULES = [\n CommonModule,\n AXButtonModule,\n AXDecoratorModule,\n CdkPortalOutlet,\n FormsModule,\n AXImageModule,\n AXLoadingModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n})\nexport class AXMediaViewerModule {\n constructor(@Optional() @Inject('AXMediaViewerFactory') instances: any[]) {\n instances?.forEach((f) => {\n f();\n });\n }\n\n static forRoot(config?: AXMediaViewerModuleConfig): ModuleWithProviders<AXMediaViewerModule> {\n return {\n ngModule: AXMediaViewerModule,\n providers: [\n {\n provide: 'AXMediaViewerFactory',\n useFactory: (registry: AXMediaViewerTypeRegistryService) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n registry.register({\n name: 'audio',\n component: AXAudioPlayerComponent,\n });\n registry.register({\n name: 'image',\n component: AXImageViewerComponent,\n });\n registry.register({\n name: 'pdf',\n component: AXPdfReaderComponent,\n });\n registry.register({\n name: 'video',\n component: AXVideoPlayerComponent,\n });\n },\n deps: [AXMediaViewerTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(config?: AXMediaViewerModuleConfig): ModuleWithProviders<AXMediaViewerModule> {\n return {\n ngModule: AXMediaViewerModule,\n providers: [\n {\n provide: 'AXMediaViewerFactory',\n useFactory: (registry: AXMediaViewerTypeRegistryService) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n },\n deps: [AXMediaViewerTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXMediaViewerSliderComponent","i1","i2"],"mappings":";;;;;;;;;;;;;;;;;;MAIa,oBAAoB,CAAA;AADjC,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAsB,EAAE,CAAC;AAC3C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;AAC7B;8GAJY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAApB,oBAAoB,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;;MCCY,gCAAgC,CAAA;AAD7C,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,OAAO,GAAmC,IAAI,GAAG,EAA6B;AASvF;IAPC,QAAQ,CAAC,GAAG,OAA4B,EAAA;QACtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;;AAG9C,IAAA,OAAO,CAAC,IAAY,EAAA;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;;8GARpB,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,cADnB,MAAM,EAAA,CAAA,CAAA;;2FACnB,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAD5C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCqBrB,4BAA4B,CAAA;;AAYvC,IAAA,WAAA,GAAA;AAXU,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAEhD,IAAU,CAAA,UAAA,GAAG,KAAK,EAAqB;;AAG7B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAA8B,IAAI,CAAC;;AAGlD,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,gCAAgC,CAAC;QAIlE,MAAM,CACJ,MAAK;AACH,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CACpF;;AAEL,SAAC,EACD,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC5B;;;AAIO,IAAA,eAAe,CAAC,GAA+B,EAAA;QACvD,GAAG,GAAG,GAA4B;AAClC,QAAA,IAAI,GAAG,CAAC,QAAQ,IAAI,SAAS,EAAE,EAAE;AAC/B,YAAA,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;;;8GA7BpD,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,iNCxBzC,qGACA,EAAA,MAAA,EAAA,CAAA,0IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDuBa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,mBAGjB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,qGAAA,EAAA,MAAA,EAAA,CAAA,0IAAA,CAAA,EAAA;;;MEA1B,+BAA+B,CAAA;AAS1C,IAAA,WAAA,GAAA;QARA,IAAS,CAAA,SAAA,GAAG,KAAK,EAAuB;AAE9B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAEtC,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;AACrD,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;AACzD,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAG3E,eAAe,CAAC,MAAK;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AAC9C,SAAC,CAAC;;IAGJ,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;YAAE;AAClD,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC;;IAGvD,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;YAAE;AAC7B,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC;;IAG7C,YAAY,GAAA;QACpB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;;;AAItC,IAAA,IACI,WAAW,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;AAC/B,YAAA,OAAO,0BAA0B;;aAC5B;AACL,YAAA,OAAO,4BAA4B;;;8GAnC5B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAF/B,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,oBAAoB,CAAC,0BCpBnC,6aAaA,EAAA,MAAA,EAAA,CAAA,yoCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,4BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDSa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAR3C,SAAS;+BACE,2BAA2B,EAAA,eAAA,EAGpB,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B,CAAC,oBAAoB,CAAC,EAAA,QAAA,EAAA,6aAAA,EAAA,MAAA,EAAA,CAAA,yoCAAA,CAAA,EAAA;wDAiC7B,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;;;MEjCT,+BAA+B,CAAA;AAI1C,IAAA,WAAA,GAAA;AAHU,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACtC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAsB,EAAE,CAAC;QAG9C,eAAe,CAAC,MAAK;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;AACzC,SAAC,CAAC;;IAGM,YAAY,CAAC,CAAa,EAAE,CAAS,EAAA;AAC5C,QAAA,CAAC,CAAC,MAAyB,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACxG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;;8GAZxB,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,iECnB5C,4lRA0HA,EAAA,MAAA,EAAA,CAAA,2mCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDvGa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAP3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,mBAGpB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,4lRAAA,EAAA,MAAA,EAAA,CAAA,2mCAAA,CAAA,EAAA;;;MEA1B,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA1B,0BAA0B,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC;;;ACAK,MAAO,sBAAuB,SAAQ,0BAA0B,CAAA;AAGpE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAHT,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAoB,IAAI,CAAC;QAI1C,eAAe,CAAC,MAAK;YACnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,SAAC,CAAC;;8GAPO,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,8EChBnC,+FACA,EAAA,MAAA,EAAA,CAAA,yJAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDea,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,mBAGV,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,+FAAA,EAAA,MAAA,EAAA,CAAA,yJAAA,CAAA,EAAA;;;MEH1B,mBAAmB,CAAA;AAPhC,IAAA,WAAA,GAAA;AAQY,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAoB,IAAI,CAAC;AAEpD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CACd,MAAK;YACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;AAC3E,SAAC,EACD,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC5B;AACF;AANC,IAAA,OAAO;8GAJI,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,oDCXhC,wgTA6IA,EAAA,MAAA,EAAA,CAAA,gWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,+IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDlIa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,mBAGP,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,wgTAAA,EAAA,MAAA,EAAA,CAAA,gWAAA,CAAA,EAAA;;;MEC1B,qBAAqB,CAAA;AAPlC,IAAA,WAAA,GAAA;AAQY,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAIjD;IAHW,iBAAiB,GAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;;8GAHxC,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,sDCVlC,+JAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,MAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDOa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,mBAGT,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,+JAAA,EAAA;;;AEEjC,MAAO,sBAAuB,SAAQ,0BAA0B,CAAA;8GAAzD,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,8ECVnC,uIAIA,EAAA,MAAA,EAAA,CAAA,sFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,+IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDMa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,mBAGV,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,uIAAA,EAAA,MAAA,EAAA,CAAA,sFAAA,CAAA,EAAA;;;AEGjC,MAAO,oBAAqB,SAAQ,0BAA0B,CAAA;AAPpE,IAAA,WAAA,GAAA;;AAQE,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AACjC;8GAFY,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,4ECXjC,4GACA,EAAA,MAAA,EAAA,CAAA,6GAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDUa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,mBAGR,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,4GAAA,EAAA,MAAA,EAAA,CAAA,6GAAA,CAAA,EAAA;;;AEOjC,MAAO,sBAAuB,SAAQ,0BAA0B,CAAA;AAGpE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAHT,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAoB,IAAI,CAAC;QAI1C,eAAe,CAAC,MAAK;YACnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,SAAC,CAAC;;8GAPO,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,8EChBnC,iEACA,EAAA,MAAA,EAAA,CAAA,sFAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDea,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,mBAGV,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,iEAAA,EAAA,MAAA,EAAA,CAAA,sFAAA,CAAA,EAAA;;;AEUvC,MAAM,SAAS,GAAG;IAChB,+BAA+B;IAC/B,4BAA4B;IAC5B,+BAA+B;IAC/B,sBAAsB;IACtB,sBAAsB;IACtB,oBAAoB;IACpB,sBAAsB;IACtB,mBAAmB;IACnB,qBAAqB;CACtB;AACD,MAAM,OAAO,GAAG;IACd,YAAY;IACZ,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,WAAW;IACX,aAAa;IACb,eAAe;CAChB;MAOY,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CAAwD,SAAgB,EAAA;AACtE,QAAA,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,KAAI;AACvB,YAAA,CAAC,EAAE;AACL,SAAC,CAAC;;IAGJ,OAAO,OAAO,CAAC,MAAkC,EAAA;QAC/C,OAAO;AACL,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,sBAAsB;AAC/B,oBAAA,UAAU,EAAE,CAAC,QAA0C,KAAK,MAAK;AAC/D,wBAAA,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;4BACzB,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;;wBAEpC,QAAQ,CAAC,QAAQ,CAAC;AAChB,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,SAAS,EAAE,sBAAsB;AAClC,yBAAA,CAAC;wBACF,QAAQ,CAAC,QAAQ,CAAC;AAChB,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,SAAS,EAAE,sBAAsB;AAClC,yBAAA,CAAC;wBACF,QAAQ,CAAC,QAAQ,CAAC;AAChB,4BAAA,IAAI,EAAE,KAAK;AACX,4BAAA,SAAS,EAAE,oBAAoB;AAChC,yBAAA,CAAC;wBACF,QAAQ,CAAC,QAAQ,CAAC;AAChB,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,SAAS,EAAE,sBAAsB;AAClC,yBAAA,CAAC;qBACH;oBACD,IAAI,EAAE,CAAC,gCAAgC,CAAC;AACxC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF;;IAGH,OAAO,QAAQ,CAAC,MAAkC,EAAA;QAChD,OAAO;AACL,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,sBAAsB;AAC/B,oBAAA,UAAU,EAAE,CAAC,QAA0C,KAAK,MAAK;AAC/D,wBAAA,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;4BACzB,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;;qBAErC;oBACD,IAAI,EAAE,CAAC,gCAAgC,CAAC;AACxC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF;;AAxDQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBACE,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAD3C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,iBAzB9B,+BAA+B;YAC/B,4BAA4B;YAC5B,+BAA+B;YAC/B,sBAAsB;YACtB,sBAAsB;YACtB,oBAAoB;YACpB,sBAAsB;YACtB,mBAAmB;AACnB,YAAA,qBAAqB,aAGrB,YAAY;YACZ,cAAc;YACd,iBAAiB;YACjB,eAAe;YACf,WAAW;YACX,aAAa;AACb,YAAA,eAAe,aAjBf,+BAA+B;YAC/B,4BAA4B;YAC5B,+BAA+B;YAC/B,sBAAsB;YACtB,sBAAsB;YACtB,oBAAoB;YACpB,sBAAsB;YACtB,mBAAmB;YACnB,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAiBV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAd9B,YAAY;YACZ,cAAc;YACd,iBAAiB;YAEjB,WAAW;YACX,aAAa;YACb,eAAe,CAAA,EAAA,CAAA,CAAA;;2FAQJ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;AAC5B,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;AACrB,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACxB,iBAAA;;0BAEc;;0BAAY,MAAM;2BAAC,sBAAsB;;;ACnDxD;;AAEG;;;;"}
|
@@ -148,7 +148,7 @@ class AXPaintPenModeChangerComponent {
|
|
148
148
|
this.service.lineWidth.set(e);
|
149
149
|
}
|
150
150
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPaintPenModeChangerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
151
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPaintPenModeChangerComponent, selector: "ax-paint-pen-mode-changer", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-button axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" 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 @case ('eraser') {\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></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 <ax-button\n (click)=\"penTypeHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'eraser' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-eraser\"></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", styles: ["ax-paint-pen-mode-changer{display:flex;align-items:center;margin-inline:0!important}ax-paint-pen-mode-changer ax-range-slider{padding:.5rem .75rem}ax-paint-pen-mode-changer ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "component", type: i3$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: i3.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
151
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPaintPenModeChangerComponent, selector: "ax-paint-pen-mode-changer", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-button axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" 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 @case ('eraser') {\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></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 <ax-button\n (click)=\"penTypeHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'eraser' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-eraser\"></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", styles: ["ax-paint-pen-mode-changer{display:flex;align-items:center;margin-inline:0!important}ax-paint-pen-mode-changer ax-range-slider{padding:.5rem .75rem}ax-paint-pen-mode-changer ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "component", type: i3$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: i3.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
152
152
|
}
|
153
153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPaintPenModeChangerComponent, decorators: [{
|
154
154
|
type: Component,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-paint.mjs","sources":["../../../../libs/components/paint/src/lib/paint/paint.service.ts","../../../../libs/components/paint/src/lib/paint/paint-container/paint-container.component.ts","../../../../libs/components/paint/src/lib/paint/paint-container/paint-container.component.html","../../../../libs/components/paint/src/lib/paint/paint-toolbar/paint-toolbar.component.ts","../../../../libs/components/paint/src/lib/paint/paint-toolbar/paint-toolbar.component.html","../../../../libs/components/paint/src/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.ts","../../../../libs/components/paint/src/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.html","../../../../libs/components/paint/src/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.ts","../../../../libs/components/paint/src/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.html","../../../../libs/components/paint/src/lib/paint/paint-view/paint-view.component.ts","../../../../libs/components/paint/src/lib/paint/paint-view/paint-view.component.html","../../../../libs/components/paint/src/lib/paint.module.ts","../../../../libs/components/paint/src/acorex-components-paint.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXPaintService {\n penColor = signal<string | CanvasGradient | CanvasPattern>('');\n lineWidth = signal<number>(10);\n penType = signal<'pen' | 'highlight' | 'eraser'>('pen');\n toggleClear = signal(false);\n}\n","import {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/components/common';\nimport { Component, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXPaintService } from '../paint.service';\n\n/**\n * paint container.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-container',\n templateUrl: './paint-container.component.html',\n styleUrl: './paint-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n inputs: ['look'],\n providers: [\n AXPaintService,\n { provide: AXComponent, useExisting: AXPaintContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXPaintContainerComponent },\n { provide: AXClearableComponent, useExisting: AXPaintContainerComponent },\n { provide: AXValuableComponent, useExisting: AXPaintContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPaintContainerComponent),\n multi: true,\n },\n ],\n})\nexport class AXPaintContainerComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {}\n","<div class=\"ax-editor-container ax-look-{{ look }}\">\n <ng-content></ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n *paint toolbar\n * @category Components\n */\n@Component({\n selector: 'ax-paint-toolbar',\n templateUrl: './paint-toolbar.component.html',\n styleUrl: './paint-toolbar.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPaintToolbarComponent {}\n","<ng-content select=\"ax-prefix\"></ng-content>\n<div class=\"ax-toolbar-container\">\n <ng-content></ng-content>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n","import { Component, HostBinding, ViewEncapsulation, inject, signal } from '@angular/core';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint color picker.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-color-picker',\n templateUrl: './paint-color-picker.component.html',\n styleUrl: './paint-color-picker.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPaintColorPickerComponent {\n /** @ignore */\n protected service = inject(AXPaintService);\n\n /** @ignore */\n protected selectedColor = signal('rgb(12, 12, 12)');\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","<ax-color-box\n axTooltip=\"Color Picker\"\n axTooltipPlacement=\"top\"\n look=\"outline\"\n [ngModel]=\"selectedColor()\"\n (ngModelChange)=\"changeColorHandler($event)\"\n>\n</ax-color-box>\n","import { AXPlacement } from '@acorex/components/common';\nimport { AXPopoverCloseTrigger, AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport { Component, HostBinding, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-pen-mode-changer',\n templateUrl: './paint-pen-mode-changer.component.html',\n styleUrl: './paint-pen-mode-changer.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPaintPenModeChangerComponent {\n /** @ignore */\n protected service = inject(AXPaintService);\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' | 'eraser'>('pen');\n\n /** @ignore */\n protected penTypeHandler(e: 'pen' | 'highlight' | 'eraser') {\n this.service.penType.set(e);\n }\n\n /** @ignore */\n protected clear() {\n this.service.toggleClear.update((prev) => !prev);\n }\n\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 axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" 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 @case ('eraser') {\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></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 <ax-button\n (click)=\"penTypeHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'eraser' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-eraser\"></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 { isBrowser } from '@acorex/core/platform';\nimport {\n afterNextRender,\n Component,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n OnDestroy,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXPaintContainerComponent } from '../paint-container/paint-container.component';\nimport { AXPaintService } from '../paint.service';\n\n/**\n * @category Components\n * paint view\n */\n@Component({\n selector: 'ax-paint-view',\n templateUrl: './paint-view.component.html',\n styleUrl: './paint-view.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPaintViewComponent implements OnDestroy {\n /** @ignore */\n parent = inject(AXPaintContainerComponent);\n\n /** @ignore */\n protected service = inject(AXPaintService);\n\n /**\n * Specifies the class that pass to component.\n *\n */\n customClass = input<string>('', { alias: 'class' });\n\n /** @ignore */\n protected canvasElem = viewChild<ElementRef<HTMLCanvasElement>>('c');\n\n /** @ignore */\n protected ctx = signal<CanvasRenderingContext2D>(null);\n\n /** @ignore */\n protected isPainting = signal(false);\n\n /** @ignore */\n protected isUserInteract = signal(false);\n\n /** @ignore */\n constructor() {\n afterNextRender(() => {\n this.ctx.set(this.canvasElem().nativeElement.getContext('2d'));\n this.ctx().canvas.width = this.getBoundingCanvasHandler().width;\n this.ctx().canvas.height = this.getBoundingCanvasHandler().height;\n this.ctx().lineJoin = 'round';\n this.ctx().lineCap = 'round';\n this.ctx().strokeStyle = this.service.penColor();\n this.ctx().lineWidth = this.service.lineWidth();\n });\n\n effect(\n () => {\n this.isUserInteract.set(false);\n this.service.toggleClear();\n this.ctx()?.clearRect(\n 0,\n 0,\n this.getBoundingCanvasHandler()?.width,\n this.getBoundingCanvasHandler()?.height,\n );\n },\n { allowSignalWrites: true },\n );\n\n if (isBrowser()) {\n window.addEventListener('resize', this.resizeEventHandler.bind(this));\n }\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n if (isBrowser()) {\n window.removeEventListener('resize', this.resizeEventHandler);\n }\n }\n\n /** @ignore */\n protected resizeEventHandler() {\n this.ctx().canvas.width = this.getBoundingCanvasHandler()?.width;\n this.ctx().canvas.height = this.getBoundingCanvasHandler()?.height;\n }\n\n /** @ignore */\n protected penConfigHandler(penType: 'eraser' | 'pen' | 'highlight') {\n switch (penType) {\n case 'pen':\n this.ctx().globalAlpha = 1;\n this.ctx().globalCompositeOperation = 'source-over';\n break;\n case 'eraser':\n this.ctx().globalAlpha = 1;\n this.ctx().globalCompositeOperation = 'destination-out';\n break;\n case 'highlight':\n this.ctx().globalAlpha = 0.008;\n this.ctx().globalCompositeOperation = 'source-over';\n break;\n }\n }\n\n /** @ignore */\n protected getBoundingCanvasHandler() {\n return this.canvasElem().nativeElement.getBoundingClientRect();\n }\n\n /** @ignore */\n protected mouseDownHandler(e: MouseEvent) {\n this.isPainting.set(true);\n this.isUserInteract.set(true);\n\n this.penConfigHandler(this.service.penType());\n\n this.ctx().strokeStyle = this.service.penColor();\n this.ctx().lineWidth = this.service.lineWidth();\n\n this.ctx().beginPath();\n this.ctx().moveTo(e.offsetX, e.offsetY);\n this.ctx().lineTo(e.offsetX, e.offsetY);\n this.ctx().stroke();\n }\n\n /** @ignore */\n protected mouseMoveHandler(e: MouseEvent) {\n if (this.isPainting()) {\n this.ctx().lineTo(e.offsetX, e.offsetY);\n this.ctx().stroke();\n }\n }\n\n /** @ignore */\n protected mouseUpHandler() {\n this.ctx().closePath();\n this.isPainting.set(false);\n }\n\n /** @ignore */\n protected touchStartHandler(e: TouchEvent) {\n const offsetX = e.touches[0].clientX - this.getBoundingCanvasHandler().left;\n const offsetY = e.touches[0].clientY - this.getBoundingCanvasHandler().top;\n\n this.isPainting.set(true);\n this.isUserInteract.set(true);\n\n this.penConfigHandler(this.service.penType());\n\n this.ctx().strokeStyle = this.service.penColor();\n this.ctx().lineWidth = this.service.lineWidth();\n\n this.ctx().beginPath();\n this.ctx().moveTo(offsetX, offsetY);\n this.ctx().lineTo(offsetX, offsetY);\n this.ctx().stroke();\n }\n\n /** @ignore */\n protected touchMoveHandler(e: TouchEvent) {\n e.preventDefault(); // prevent page from scroll\n if (this.isPainting()) {\n const offsetX = e.touches[0].clientX - this.getBoundingCanvasHandler().left;\n const offsetY = e.touches[0].clientY - this.getBoundingCanvasHandler().top;\n this.ctx().lineTo(offsetX, offsetY);\n this.ctx().stroke();\n }\n }\n\n /** @ignore */\n protected touchEndHandler() {\n this.ctx().closePath();\n this.isPainting.set(false);\n }\n\n /**\n * @param e - output file type\n */\n getOutPut(e: 'image/webp' | 'image/png' | 'image/jpeg') {\n const base64 = this.canvasElem().nativeElement.toDataURL(e, 0.1);\n if (this.isUserInteract()) {\n this.parent.commitValue(base64);\n } else {\n this.parent.commitValue(null);\n }\n }\n\n @HostBinding('class')\n get __hostClass(): string {\n return `${this.customClass()}`;\n }\n}\n","<canvas\n #c\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>\n</canvas>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXColorBoxModule } from '@acorex/components/color-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXRangeSliderModule } from '@acorex/components/range-slider';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintContainerComponent } from './paint/paint-container/paint-container.component';\nimport { AXPaintToolbarComponent } from './paint/paint-toolbar/paint-toolbar.component';\nimport { AXPaintColorPickerComponent } from './paint/paint-tools/paint-color-picker/paint-color-picker.component';\nimport { AXPaintPenModeChangerComponent } from './paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component';\nimport { AXPaintViewComponent } from './paint/paint-view/paint-view.component';\n\nconst COMPONENT = [\n AXPaintContainerComponent,\n AXPaintToolbarComponent,\n AXPaintViewComponent,\n AXPaintColorPickerComponent,\n AXPaintPenModeChangerComponent,\n];\n\nconst MODULES = [\n FormsModule,\n AXRangeSliderModule,\n AXSelectBoxModule,\n AXButtonModule,\n AXColorBoxModule,\n AXPopoverModule,\n AXDecoratorModule,\n AXTooltipModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXPaintModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i6"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-paint.mjs","sources":["../../../../libs/components/paint/src/lib/paint/paint.service.ts","../../../../libs/components/paint/src/lib/paint/paint-container/paint-container.component.ts","../../../../libs/components/paint/src/lib/paint/paint-container/paint-container.component.html","../../../../libs/components/paint/src/lib/paint/paint-toolbar/paint-toolbar.component.ts","../../../../libs/components/paint/src/lib/paint/paint-toolbar/paint-toolbar.component.html","../../../../libs/components/paint/src/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.ts","../../../../libs/components/paint/src/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.html","../../../../libs/components/paint/src/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.ts","../../../../libs/components/paint/src/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.html","../../../../libs/components/paint/src/lib/paint/paint-view/paint-view.component.ts","../../../../libs/components/paint/src/lib/paint/paint-view/paint-view.component.html","../../../../libs/components/paint/src/lib/paint.module.ts","../../../../libs/components/paint/src/acorex-components-paint.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXPaintService {\n penColor = signal<string | CanvasGradient | CanvasPattern>('');\n lineWidth = signal<number>(10);\n penType = signal<'pen' | 'highlight' | 'eraser'>('pen');\n toggleClear = signal(false);\n}\n","import {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/components/common';\nimport { Component, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXPaintService } from '../paint.service';\n\n/**\n * paint container.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-container',\n templateUrl: './paint-container.component.html',\n styleUrl: './paint-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n inputs: ['look'],\n providers: [\n AXPaintService,\n { provide: AXComponent, useExisting: AXPaintContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXPaintContainerComponent },\n { provide: AXClearableComponent, useExisting: AXPaintContainerComponent },\n { provide: AXValuableComponent, useExisting: AXPaintContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPaintContainerComponent),\n multi: true,\n },\n ],\n})\nexport class AXPaintContainerComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {}\n","<div class=\"ax-editor-container ax-look-{{ look }}\">\n <ng-content></ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n *paint toolbar\n * @category Components\n */\n@Component({\n selector: 'ax-paint-toolbar',\n templateUrl: './paint-toolbar.component.html',\n styleUrl: './paint-toolbar.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPaintToolbarComponent {}\n","<ng-content select=\"ax-prefix\"></ng-content>\n<div class=\"ax-toolbar-container\">\n <ng-content></ng-content>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n","import { Component, HostBinding, ViewEncapsulation, inject, signal } from '@angular/core';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint color picker.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-color-picker',\n templateUrl: './paint-color-picker.component.html',\n styleUrl: './paint-color-picker.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPaintColorPickerComponent {\n /** @ignore */\n protected service = inject(AXPaintService);\n\n /** @ignore */\n protected selectedColor = signal('rgb(12, 12, 12)');\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","<ax-color-box\n axTooltip=\"Color Picker\"\n axTooltipPlacement=\"top\"\n look=\"outline\"\n [ngModel]=\"selectedColor()\"\n (ngModelChange)=\"changeColorHandler($event)\"\n>\n</ax-color-box>\n","import { AXPlacement } from '@acorex/components/common';\nimport { AXPopoverCloseTrigger, AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport { Component, HostBinding, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-pen-mode-changer',\n templateUrl: './paint-pen-mode-changer.component.html',\n styleUrl: './paint-pen-mode-changer.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPaintPenModeChangerComponent {\n /** @ignore */\n protected service = inject(AXPaintService);\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' | 'eraser'>('pen');\n\n /** @ignore */\n protected penTypeHandler(e: 'pen' | 'highlight' | 'eraser') {\n this.service.penType.set(e);\n }\n\n /** @ignore */\n protected clear() {\n this.service.toggleClear.update((prev) => !prev);\n }\n\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 axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" 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 @case ('eraser') {\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></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 <ax-button\n (click)=\"penTypeHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'eraser' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-eraser\"></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 { isBrowser } from '@acorex/core/platform';\nimport {\n afterNextRender,\n Component,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n OnDestroy,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXPaintContainerComponent } from '../paint-container/paint-container.component';\nimport { AXPaintService } from '../paint.service';\n\n/**\n * @category Components\n * paint view\n */\n@Component({\n selector: 'ax-paint-view',\n templateUrl: './paint-view.component.html',\n styleUrl: './paint-view.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPaintViewComponent implements OnDestroy {\n /** @ignore */\n parent = inject(AXPaintContainerComponent);\n\n /** @ignore */\n protected service = inject(AXPaintService);\n\n /**\n * Specifies the class that pass to component.\n *\n */\n customClass = input<string>('', { alias: 'class' });\n\n /** @ignore */\n protected canvasElem = viewChild<ElementRef<HTMLCanvasElement>>('c');\n\n /** @ignore */\n protected ctx = signal<CanvasRenderingContext2D>(null);\n\n /** @ignore */\n protected isPainting = signal(false);\n\n /** @ignore */\n protected isUserInteract = signal(false);\n\n /** @ignore */\n constructor() {\n afterNextRender(() => {\n this.ctx.set(this.canvasElem().nativeElement.getContext('2d'));\n this.ctx().canvas.width = this.getBoundingCanvasHandler().width;\n this.ctx().canvas.height = this.getBoundingCanvasHandler().height;\n this.ctx().lineJoin = 'round';\n this.ctx().lineCap = 'round';\n this.ctx().strokeStyle = this.service.penColor();\n this.ctx().lineWidth = this.service.lineWidth();\n });\n\n effect(\n () => {\n this.isUserInteract.set(false);\n this.service.toggleClear();\n this.ctx()?.clearRect(\n 0,\n 0,\n this.getBoundingCanvasHandler()?.width,\n this.getBoundingCanvasHandler()?.height,\n );\n },\n { allowSignalWrites: true },\n );\n\n if (isBrowser()) {\n window.addEventListener('resize', this.resizeEventHandler.bind(this));\n }\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n if (isBrowser()) {\n window.removeEventListener('resize', this.resizeEventHandler);\n }\n }\n\n /** @ignore */\n protected resizeEventHandler() {\n this.ctx().canvas.width = this.getBoundingCanvasHandler()?.width;\n this.ctx().canvas.height = this.getBoundingCanvasHandler()?.height;\n }\n\n /** @ignore */\n protected penConfigHandler(penType: 'eraser' | 'pen' | 'highlight') {\n switch (penType) {\n case 'pen':\n this.ctx().globalAlpha = 1;\n this.ctx().globalCompositeOperation = 'source-over';\n break;\n case 'eraser':\n this.ctx().globalAlpha = 1;\n this.ctx().globalCompositeOperation = 'destination-out';\n break;\n case 'highlight':\n this.ctx().globalAlpha = 0.008;\n this.ctx().globalCompositeOperation = 'source-over';\n break;\n }\n }\n\n /** @ignore */\n protected getBoundingCanvasHandler() {\n return this.canvasElem().nativeElement.getBoundingClientRect();\n }\n\n /** @ignore */\n protected mouseDownHandler(e: MouseEvent) {\n this.isPainting.set(true);\n this.isUserInteract.set(true);\n\n this.penConfigHandler(this.service.penType());\n\n this.ctx().strokeStyle = this.service.penColor();\n this.ctx().lineWidth = this.service.lineWidth();\n\n this.ctx().beginPath();\n this.ctx().moveTo(e.offsetX, e.offsetY);\n this.ctx().lineTo(e.offsetX, e.offsetY);\n this.ctx().stroke();\n }\n\n /** @ignore */\n protected mouseMoveHandler(e: MouseEvent) {\n if (this.isPainting()) {\n this.ctx().lineTo(e.offsetX, e.offsetY);\n this.ctx().stroke();\n }\n }\n\n /** @ignore */\n protected mouseUpHandler() {\n this.ctx().closePath();\n this.isPainting.set(false);\n }\n\n /** @ignore */\n protected touchStartHandler(e: TouchEvent) {\n const offsetX = e.touches[0].clientX - this.getBoundingCanvasHandler().left;\n const offsetY = e.touches[0].clientY - this.getBoundingCanvasHandler().top;\n\n this.isPainting.set(true);\n this.isUserInteract.set(true);\n\n this.penConfigHandler(this.service.penType());\n\n this.ctx().strokeStyle = this.service.penColor();\n this.ctx().lineWidth = this.service.lineWidth();\n\n this.ctx().beginPath();\n this.ctx().moveTo(offsetX, offsetY);\n this.ctx().lineTo(offsetX, offsetY);\n this.ctx().stroke();\n }\n\n /** @ignore */\n protected touchMoveHandler(e: TouchEvent) {\n e.preventDefault(); // prevent page from scroll\n if (this.isPainting()) {\n const offsetX = e.touches[0].clientX - this.getBoundingCanvasHandler().left;\n const offsetY = e.touches[0].clientY - this.getBoundingCanvasHandler().top;\n this.ctx().lineTo(offsetX, offsetY);\n this.ctx().stroke();\n }\n }\n\n /** @ignore */\n protected touchEndHandler() {\n this.ctx().closePath();\n this.isPainting.set(false);\n }\n\n /**\n * @param e - output file type\n */\n getOutPut(e: 'image/webp' | 'image/png' | 'image/jpeg') {\n const base64 = this.canvasElem().nativeElement.toDataURL(e, 0.1);\n if (this.isUserInteract()) {\n this.parent.commitValue(base64);\n } else {\n this.parent.commitValue(null);\n }\n }\n\n @HostBinding('class')\n get __hostClass(): string {\n return `${this.customClass()}`;\n }\n}\n","<canvas\n #c\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>\n</canvas>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXColorBoxModule } from '@acorex/components/color-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXRangeSliderModule } from '@acorex/components/range-slider';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintContainerComponent } from './paint/paint-container/paint-container.component';\nimport { AXPaintToolbarComponent } from './paint/paint-toolbar/paint-toolbar.component';\nimport { AXPaintColorPickerComponent } from './paint/paint-tools/paint-color-picker/paint-color-picker.component';\nimport { AXPaintPenModeChangerComponent } from './paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component';\nimport { AXPaintViewComponent } from './paint/paint-view/paint-view.component';\n\nconst COMPONENT = [\n AXPaintContainerComponent,\n AXPaintToolbarComponent,\n AXPaintViewComponent,\n AXPaintColorPickerComponent,\n AXPaintPenModeChangerComponent,\n];\n\nconst MODULES = [\n FormsModule,\n AXRangeSliderModule,\n AXSelectBoxModule,\n AXButtonModule,\n AXColorBoxModule,\n AXPopoverModule,\n AXDecoratorModule,\n AXTooltipModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXPaintModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i6"],"mappings":"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"}
|