@acorex/components 22.1.0-next.31 → 22.1.0-next.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/emoji/README.md +3 -0
- package/emojipicker/README.md +3 -0
- package/fesm2022/acorex-components-accordion.mjs +13 -13
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +13 -13
- package/fesm2022/acorex-components-alert.mjs +7 -7
- package/fesm2022/acorex-components-aspect-ratio.mjs +3 -3
- package/fesm2022/acorex-components-audio-wave.mjs +295 -271
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs +7 -7
- package/fesm2022/acorex-components-avatar.mjs +10 -10
- package/fesm2022/acorex-components-badge.mjs +7 -7
- package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
- package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
- package/fesm2022/acorex-components-bubble.mjs +71 -0
- package/fesm2022/acorex-components-bubble.mjs.map +1 -0
- package/fesm2022/acorex-components-button-group.mjs +22 -15
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +14 -14
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +332 -130
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +7 -7
- package/fesm2022/acorex-components-chips.mjs +7 -7
- package/fesm2022/acorex-components-circular-progress.mjs +7 -7
- package/fesm2022/acorex-components-code-editor.mjs +44 -19
- package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +7 -7
- package/fesm2022/acorex-components-color-palette.mjs +28 -28
- package/fesm2022/acorex-components-combo-box.mjs +244 -54
- package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
- package/fesm2022/acorex-components-command.mjs +7 -7
- package/fesm2022/acorex-components-comment.mjs +28 -28
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-BBWe3tfe.mjs +19099 -0
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-BBWe3tfe.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs +50 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs +87 -0
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-OAHRGH_G.mjs +65 -0
- package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-OAHRGH_G.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation.mjs +1 -15470
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +47 -47
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-list.mjs +3 -3
- package/fesm2022/acorex-components-data-pager.mjs +35 -35
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +734 -165
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +7 -7
- package/fesm2022/acorex-components-datetime-input.mjs +7 -7
- package/fesm2022/acorex-components-datetime-picker.mjs +8 -8
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +60 -30
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +11 -11
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +10 -10
- package/fesm2022/acorex-components-dropdown-button.mjs +8 -8
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +14 -14
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-editor.mjs +15 -14
- package/fesm2022/acorex-components-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-emoji.mjs +74 -0
- package/fesm2022/acorex-components-emoji.mjs.map +1 -0
- package/fesm2022/acorex-components-emojipicker.mjs +425 -0
- package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
- package/fesm2022/acorex-components-fab.mjs +6 -6
- package/fesm2022/acorex-components-fab.mjs.map +1 -1
- package/fesm2022/acorex-components-file-viewer.mjs +372 -122
- package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +17 -17
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
- package/fesm2022/acorex-components-highlight.mjs +80 -0
- package/fesm2022/acorex-components-highlight.mjs.map +1 -0
- package/fesm2022/acorex-components-image-editor.mjs +780 -451
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +7 -7
- package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
- package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
- package/fesm2022/acorex-components-json-viewer.mjs +7 -7
- package/fesm2022/acorex-components-kanban.mjs +3 -3
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +6 -6
- package/fesm2022/acorex-components-label.mjs +7 -7
- package/fesm2022/acorex-components-list.mjs +28 -9
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +10 -10
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +16 -16
- package/fesm2022/acorex-components-lookup.mjs +764 -156
- package/fesm2022/acorex-components-lookup.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +20 -13
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +215 -218
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +146 -45
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-message-status.mjs +71 -0
- package/fesm2022/acorex-components-message-status.mjs.map +1 -0
- package/fesm2022/acorex-components-message-time.mjs +36 -0
- package/fesm2022/acorex-components-message-time.mjs.map +1 -0
- package/fesm2022/acorex-components-message.mjs +120 -0
- package/fesm2022/acorex-components-message.mjs.map +1 -0
- package/fesm2022/acorex-components-navbar.mjs +7 -7
- package/fesm2022/acorex-components-notification.mjs +11 -11
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +7 -7
- package/fesm2022/acorex-components-otp.mjs +7 -7
- package/fesm2022/acorex-components-page.mjs +10 -10
- package/fesm2022/acorex-components-paint.mjs +25 -25
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +10 -10
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
- package/fesm2022/acorex-components-phone-box.mjs +7 -7
- package/fesm2022/acorex-components-picker.mjs +13 -13
- package/fesm2022/acorex-components-popover.mjs +33 -15
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +67 -56
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +7 -7
- package/fesm2022/acorex-components-qrcode.mjs +7 -7
- package/fesm2022/acorex-components-radio.mjs +7 -7
- package/fesm2022/acorex-components-rail-navigation.mjs +14 -14
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +9 -9
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +7 -7
- package/fesm2022/acorex-components-reaction.mjs +144 -0
- package/fesm2022/acorex-components-reaction.mjs.map +1 -0
- package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +7 -7
- package/fesm2022/acorex-components-routing-progress.mjs +7 -7
- package/fesm2022/acorex-components-rrule.mjs +9 -9
- package/fesm2022/acorex-components-rrule.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler-picker.mjs +56 -56
- package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +34 -34
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +7 -7
- package/fesm2022/acorex-components-select-box.mjs +7 -7
- package/fesm2022/acorex-components-selection-list.mjs +7 -8
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +55 -42
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-sidebar.mjs +28 -28
- package/fesm2022/acorex-components-skeleton.mjs +7 -7
- package/fesm2022/acorex-components-slider.mjs +7 -7
- package/fesm2022/acorex-components-sliding-item.mjs +13 -13
- package/fesm2022/acorex-components-step-wizard.mjs +16 -18
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +10 -10
- package/fesm2022/acorex-components-tabs.mjs +529 -78
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +7 -7
- package/fesm2022/acorex-components-tag.mjs +7 -7
- package/fesm2022/acorex-components-text-area.mjs +7 -7
- package/fesm2022/acorex-components-text-box.mjs +7 -7
- package/fesm2022/acorex-components-time-duration.mjs +7 -7
- package/fesm2022/acorex-components-time-line.mjs +10 -10
- package/fesm2022/acorex-components-toast.mjs +10 -10
- package/fesm2022/acorex-components-toolbar.mjs +7 -7
- package/fesm2022/acorex-components-tooltip.mjs +10 -10
- package/fesm2022/acorex-components-tree-view.mjs +58 -15
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +13 -13
- package/fesm2022/acorex-components-video-player.mjs +7 -7
- package/fesm2022/acorex-components-wysiwyg.mjs +109 -39
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/highlight/README.md +13 -0
- package/inline-reaction/README.md +3 -0
- package/lookup/README.md +1 -1
- package/message/README.md +3 -0
- package/message-status/README.md +3 -0
- package/message-time/README.md +3 -0
- package/package.json +42 -12
- package/reaction/README.md +3 -0
- package/types/acorex-components-action-sheet.d.ts +1 -1
- package/types/acorex-components-audio-wave.d.ts +132 -73
- package/types/acorex-components-bubble.d.ts +31 -0
- package/types/acorex-components-button-group.d.ts +4 -0
- package/types/acorex-components-button.d.ts +1 -1
- package/types/acorex-components-calendar.d.ts +43 -12
- package/types/acorex-components-check-box.d.ts +1 -1
- package/types/acorex-components-code-editor.d.ts +4 -1
- package/types/acorex-components-color-box.d.ts +1 -1
- package/types/acorex-components-color-palette.d.ts +2 -2
- package/types/acorex-components-combo-box.d.ts +34 -4
- package/types/acorex-components-command.d.ts +1 -1
- package/types/acorex-components-conversation.d.ts +1771 -1342
- package/types/acorex-components-cron-job.d.ts +6 -6
- package/types/acorex-components-data-pager.d.ts +2 -2
- package/types/acorex-components-data-table.d.ts +194 -21
- package/types/acorex-components-datetime-box.d.ts +1 -1
- package/types/acorex-components-datetime-picker.d.ts +1 -1
- package/types/acorex-components-decorators.d.ts +13 -1
- package/types/acorex-components-dialog.d.ts +1 -1
- package/types/acorex-components-dropdown.d.ts +1 -1
- package/types/acorex-components-editor.d.ts +1 -1
- package/types/acorex-components-emoji.d.ts +42 -0
- package/types/acorex-components-emojipicker.d.ts +146 -0
- package/types/acorex-components-file-viewer.d.ts +50 -6
- package/types/acorex-components-highlight.d.ts +31 -0
- package/types/acorex-components-image-editor.d.ts +72 -50
- package/types/acorex-components-inline-reaction.d.ts +52 -0
- package/types/acorex-components-list.d.ts +12 -0
- package/types/acorex-components-loading-dialog.d.ts +1 -1
- package/types/acorex-components-loading.d.ts +1 -1
- package/types/acorex-components-lookup.d.ts +213 -82
- package/types/acorex-components-map.d.ts +7 -2
- package/types/acorex-components-media-viewer.d.ts +4 -3
- package/types/acorex-components-menu.d.ts +17 -5
- package/types/acorex-components-message-status.d.ts +23 -0
- package/types/acorex-components-message-time.d.ts +19 -0
- package/types/acorex-components-message.d.ts +59 -0
- package/types/acorex-components-notification.d.ts +1 -1
- package/types/acorex-components-number-box.d.ts +1 -1
- package/types/acorex-components-otp.d.ts +1 -1
- package/types/acorex-components-page.d.ts +2 -2
- package/types/acorex-components-paint.d.ts +2 -2
- package/types/acorex-components-password-box.d.ts +1 -1
- package/types/acorex-components-phone-box.d.ts +1 -1
- package/types/acorex-components-popover.d.ts +10 -4
- package/types/acorex-components-popup.d.ts +20 -10
- package/types/acorex-components-rail-navigation.d.ts +1 -1
- package/types/acorex-components-range-slider.d.ts +1 -1
- package/types/acorex-components-reaction.d.ts +85 -0
- package/types/acorex-components-rest-api-generator.d.ts +1 -1
- package/types/acorex-components-rrule.d.ts +1 -1
- package/types/acorex-components-scheduler-picker.d.ts +1 -1
- package/types/acorex-components-scheduler.d.ts +1 -1
- package/types/acorex-components-search-box.d.ts +1 -1
- package/types/acorex-components-selection-list.d.ts +1 -1
- package/types/acorex-components-side-menu.d.ts +6 -8
- package/types/acorex-components-slider.d.ts +1 -1
- package/types/acorex-components-step-wizard.d.ts +4 -4
- package/types/acorex-components-switch.d.ts +1 -1
- package/types/acorex-components-tabs.d.ts +150 -19
- package/types/acorex-components-tag-box.d.ts +2 -2
- package/types/acorex-components-text-area.d.ts +1 -1
- package/types/acorex-components-text-box.d.ts +1 -1
- package/types/acorex-components-time-duration.d.ts +1 -1
- package/types/acorex-components-toast.d.ts +1 -1
- package/types/acorex-components-tree-view.d.ts +32 -3
- package/types/acorex-components-wysiwyg.d.ts +15 -2
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs +0 -50
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs.map +0 -1
- package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-DnSW908R.mjs +0 -210
- package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-DnSW908R.mjs.map +0 -1
- package/fesm2022/acorex-components-flow-chart.mjs +0 -735
- package/fesm2022/acorex-components-flow-chart.mjs.map +0 -1
- package/fesm2022/acorex-components-query-builder.mjs +0 -267
- package/fesm2022/acorex-components-query-builder.mjs.map +0 -1
- package/flow-chart/README.md +0 -3
- package/query-builder/README.md +0 -3
- package/types/acorex-components-flow-chart.d.ts +0 -187
- package/types/acorex-components-query-builder.d.ts +0 -52
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, Injectable,
|
|
2
|
+
import { signal, Injectable, ViewEncapsulation, ChangeDetectionStrategy, Component, input, inject, computed, TemplateRef, effect, output, ElementRef, PLATFORM_ID, DestroyRef, viewChild, untracked, afterNextRender, ComponentRef, APP_INITIALIZER } from '@angular/core';
|
|
3
3
|
import { AXComponentClosedPromise } from '@acorex/cdk/common';
|
|
4
4
|
import { AXOverlayService } from '@acorex/cdk/overlay';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
@@ -10,7 +10,7 @@ import { AXDecoratorIconComponent } from '@acorex/components/decorators';
|
|
|
10
10
|
import { AXLoadingComponent } from '@acorex/components/loading';
|
|
11
11
|
import { AXTooltipDirective } from '@acorex/components/tooltip';
|
|
12
12
|
import { AXFullScreenService } from '@acorex/core/full-screen';
|
|
13
|
-
import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';
|
|
13
|
+
import { NgComponentOutlet, NgTemplateOutlet, DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
14
14
|
import { AXFileTypeRendererOutletComponent, defineFileType, AX_IMAGE_FILE_TYPE, AX_VIDEO_FILE_TYPE, AX_AUDIO_FILE_TYPE, AX_DOCUMENT_FILE_TYPE, AX_FILE_FILE_TYPE, AXFileTypeRegistryService } from '@acorex/core/file';
|
|
15
15
|
import { AXPdfReaderComponent } from '@acorex/components/pdf-reader';
|
|
16
16
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
@@ -39,13 +39,42 @@ class AXFileViewerService {
|
|
|
39
39
|
this.urlCache.set(cacheKey, resolved);
|
|
40
40
|
return resolved;
|
|
41
41
|
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
43
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerService }); }
|
|
44
44
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerService, decorators: [{
|
|
46
46
|
type: Injectable
|
|
47
47
|
}] });
|
|
48
48
|
|
|
49
|
+
class AXFileViewerEmptyStateComponent {
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerEmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: AXFileViewerEmptyStateComponent, isStandalone: true, selector: "ax-file-viewer-empty-state", ngImport: i0, template: `
|
|
52
|
+
<div class="ax-file-viewer-empty" role="status" aria-live="polite">
|
|
53
|
+
<div class="ax-file-viewer-empty__icon-wrap" aria-hidden="true">
|
|
54
|
+
<i class="fa-light fa-folder-open ax-file-viewer-empty__icon"></i>
|
|
55
|
+
</div>
|
|
56
|
+
<h3 class="ax-file-viewer-empty__title">No files to preview</h3>
|
|
57
|
+
<p class="ax-file-viewer-empty__description">
|
|
58
|
+
Add files to the viewer to start browsing images, video, audio, PDF, and other formats.
|
|
59
|
+
</p>
|
|
60
|
+
</div>
|
|
61
|
+
`, isInline: true, styles: ["@layer properties;@layer components{ax-file-viewer-empty-state{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center}ax-file-viewer-empty-state .ax-file-viewer-empty{box-sizing:border-box;display:flex;max-width:var(--container-sm, 24rem);flex-direction:column;align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 8);text-align:center}ax-file-viewer-empty-state .ax-file-viewer-empty__icon-wrap{display:flex;align-items:center;justify-content:center;border-radius:var(--radius-2xl, 1rem);width:5.5rem;height:5.5rem;background:linear-gradient(160deg,rgba(var(--ax-sys-color-primary-500),.12),rgba(var(--ax-sys-color-lighter-surface),.95) 55%);border:1px solid rgb(var(--ax-sys-color-border-lighter-surface))}ax-file-viewer-empty-state .ax-file-viewer-empty__icon{font-size:var(--text-4xl, 2.25rem);line-height:var(--tw-leading, var(--text-4xl--line-height, calc(2.5 / 2.25)));color:rgb(var(--ax-sys-color-primary-500))}ax-file-viewer-empty-state .ax-file-viewer-empty__title{margin:calc(var(--spacing, .25rem) * 0);font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);color:rgb(var(--ax-sys-color-on-surface))}ax-file-viewer-empty-state .ax-file-viewer-empty__description{margin:calc(var(--spacing, .25rem) * 0);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);color:rgba(var(--ax-sys-color-on-surface),.62)}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
62
|
+
}
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerEmptyStateComponent, decorators: [{
|
|
64
|
+
type: Component,
|
|
65
|
+
args: [{ selector: 'ax-file-viewer-empty-state', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
|
|
66
|
+
<div class="ax-file-viewer-empty" role="status" aria-live="polite">
|
|
67
|
+
<div class="ax-file-viewer-empty__icon-wrap" aria-hidden="true">
|
|
68
|
+
<i class="fa-light fa-folder-open ax-file-viewer-empty__icon"></i>
|
|
69
|
+
</div>
|
|
70
|
+
<h3 class="ax-file-viewer-empty__title">No files to preview</h3>
|
|
71
|
+
<p class="ax-file-viewer-empty__description">
|
|
72
|
+
Add files to the viewer to start browsing images, video, audio, PDF, and other formats.
|
|
73
|
+
</p>
|
|
74
|
+
</div>
|
|
75
|
+
`, styles: ["@layer properties;@layer components{ax-file-viewer-empty-state{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center}ax-file-viewer-empty-state .ax-file-viewer-empty{box-sizing:border-box;display:flex;max-width:var(--container-sm, 24rem);flex-direction:column;align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 8);text-align:center}ax-file-viewer-empty-state .ax-file-viewer-empty__icon-wrap{display:flex;align-items:center;justify-content:center;border-radius:var(--radius-2xl, 1rem);width:5.5rem;height:5.5rem;background:linear-gradient(160deg,rgba(var(--ax-sys-color-primary-500),.12),rgba(var(--ax-sys-color-lighter-surface),.95) 55%);border:1px solid rgb(var(--ax-sys-color-border-lighter-surface))}ax-file-viewer-empty-state .ax-file-viewer-empty__icon{font-size:var(--text-4xl, 2.25rem);line-height:var(--tw-leading, var(--text-4xl--line-height, calc(2.5 / 2.25)));color:rgb(var(--ax-sys-color-primary-500))}ax-file-viewer-empty-state .ax-file-viewer-empty__title{margin:calc(var(--spacing, .25rem) * 0);font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);color:rgb(var(--ax-sys-color-on-surface))}ax-file-viewer-empty-state .ax-file-viewer-empty__description{margin:calc(var(--spacing, .25rem) * 0);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);color:rgba(var(--ax-sys-color-on-surface),.62)}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
76
|
+
}] });
|
|
77
|
+
|
|
49
78
|
const MIME_PREFIX_MAP = {
|
|
50
79
|
'image/': 'image',
|
|
51
80
|
'video/': 'video',
|
|
@@ -135,8 +164,8 @@ class AXFileViewerSlideComponent {
|
|
|
135
164
|
}), /* @ts-ignore */
|
|
136
165
|
...(ngDevMode ? [{ debugName: "fallbackComponentInputs" }] : /* istanbul ignore next */ []));
|
|
137
166
|
}
|
|
138
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
139
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
167
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerSlideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXFileViewerSlideComponent, isStandalone: true, selector: "ax-file-viewer-slide", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, fallbackContent: { classPropertyName: "fallbackContent", publicName: "fallbackContent", isSignal: true, isRequired: false, transformFunction: null }, fallbackContentInputs: { classPropertyName: "fallbackContentInputs", publicName: "fallbackContentInputs", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
140
169
|
@if (useCustomFallback()) {
|
|
141
170
|
<div class="ax-file-viewer-slide__custom">
|
|
142
171
|
@if (fallbackTemplateContent(); as template) {
|
|
@@ -150,7 +179,7 @@ class AXFileViewerSlideComponent {
|
|
|
150
179
|
}
|
|
151
180
|
`, isInline: true, styles: ["@layer components{ax-file-viewer-slide{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:stretch;justify-content:stretch;-webkit-user-select:none;user-select:none}ax-file-viewer-slide .ax-file-viewer-slide__custom{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXFileTypeRendererOutletComponent, selector: "ax-file-type-renderer", inputs: ["fileType", "payload", "extensionHint", "inputs"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
152
181
|
}
|
|
153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerSlideComponent, decorators: [{
|
|
154
183
|
type: Component,
|
|
155
184
|
args: [{ selector: 'ax-file-viewer-slide', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NgComponentOutlet, NgTemplateOutlet, AXFileTypeRendererOutletComponent], template: `
|
|
156
185
|
@if (useCustomFallback()) {
|
|
@@ -202,34 +231,41 @@ class AXFileViewerThumbPreviewComponent {
|
|
|
202
231
|
...(ngDevMode ? [{ debugName: "#resolve" }] : /* istanbul ignore next */ []));
|
|
203
232
|
}
|
|
204
233
|
#resolve;
|
|
234
|
+
onImageError() {
|
|
235
|
+
this.src.set(null);
|
|
236
|
+
}
|
|
205
237
|
async resolvePreview(item) {
|
|
206
|
-
const
|
|
207
|
-
|
|
238
|
+
const type = resolveFileViewerFileType(item);
|
|
239
|
+
const [thumbnail, content] = await Promise.all([
|
|
240
|
+
this.service.resolveUrl(item, 'thumbnailUrl'),
|
|
241
|
+
this.service.resolveUrl(item, 'url'),
|
|
242
|
+
]);
|
|
243
|
+
// PDF/zip/etc. often reuse the asset URL as thumbnailUrl — that cannot render in <img>.
|
|
244
|
+
if (thumbnail && (type === 'image' || thumbnail !== content)) {
|
|
208
245
|
return thumbnail;
|
|
209
246
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
return this.service.resolveUrl(item, 'url');
|
|
247
|
+
if (type === 'image') {
|
|
248
|
+
return content;
|
|
213
249
|
}
|
|
214
250
|
return undefined;
|
|
215
251
|
}
|
|
216
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
217
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
252
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerThumbPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXFileViewerThumbPreviewComponent, isStandalone: true, selector: "ax-file-viewer-thumb-preview", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "ax-file-viewer__thumb-preview" }, ngImport: i0, template: `
|
|
218
254
|
@if (src()) {
|
|
219
|
-
<img [src]="src()!" [alt]="item().name ?? ''" loading="lazy" />
|
|
255
|
+
<img [src]="src()!" [alt]="item().name ?? ''" loading="lazy" (error)="onImageError()" />
|
|
220
256
|
} @else {
|
|
221
257
|
<i [class]="icon()"></i>
|
|
222
258
|
}
|
|
223
259
|
`, isInline: true }); }
|
|
224
260
|
}
|
|
225
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
261
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerThumbPreviewComponent, decorators: [{
|
|
226
262
|
type: Component,
|
|
227
263
|
args: [{
|
|
228
264
|
selector: 'ax-file-viewer-thumb-preview',
|
|
229
265
|
host: { class: 'ax-file-viewer__thumb-preview' },
|
|
230
266
|
template: `
|
|
231
267
|
@if (src()) {
|
|
232
|
-
<img [src]="src()!" [alt]="item().name ?? ''" loading="lazy" />
|
|
268
|
+
<img [src]="src()!" [alt]="item().name ?? ''" loading="lazy" (error)="onImageError()" />
|
|
233
269
|
} @else {
|
|
234
270
|
<i [class]="icon()"></i>
|
|
235
271
|
}
|
|
@@ -252,6 +288,21 @@ const TYPE_COLOR_MAP = {
|
|
|
252
288
|
file: 'secondary',
|
|
253
289
|
};
|
|
254
290
|
class AXFileViewerContainerComponent {
|
|
291
|
+
resolveTypeLabel(item) {
|
|
292
|
+
return TYPE_LABEL_MAP[resolveFileViewerFileType(item)] ?? 'FILE';
|
|
293
|
+
}
|
|
294
|
+
formatSize(size) {
|
|
295
|
+
if (size == null || Number.isNaN(size))
|
|
296
|
+
return '';
|
|
297
|
+
if (size < 1024)
|
|
298
|
+
return `${size} B`;
|
|
299
|
+
if (size < 1024 * 1024)
|
|
300
|
+
return `${(size / 1024).toFixed(1)} KB`;
|
|
301
|
+
return `${(size / (1024 * 1024)).toFixed(1)} MB`;
|
|
302
|
+
}
|
|
303
|
+
#syncItems;
|
|
304
|
+
#bindSlideChange;
|
|
305
|
+
#init;
|
|
255
306
|
constructor() {
|
|
256
307
|
this.items = input([], /* @ts-ignore */
|
|
257
308
|
...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
@@ -265,6 +316,9 @@ class AXFileViewerContainerComponent {
|
|
|
265
316
|
...(ngDevMode ? [{ debugName: "download" }] : /* istanbul ignore next */ []));
|
|
266
317
|
this.fullscreen = input(true, /* @ts-ignore */
|
|
267
318
|
...(ngDevMode ? [{ debugName: "fullscreen" }] : /* istanbul ignore next */ []));
|
|
319
|
+
/** Header action buttons rendered in the top-right actions area. */
|
|
320
|
+
this.headerActions = input([], /* @ts-ignore */
|
|
321
|
+
...(ngDevMode ? [{ debugName: "headerActions" }] : /* istanbul ignore next */ []));
|
|
268
322
|
/** When true, opens in a gallery overlay and closes when fullscreen exits. */
|
|
269
323
|
this.galleryMode = input(false, /* @ts-ignore */
|
|
270
324
|
...(ngDevMode ? [{ debugName: "galleryMode" }] : /* istanbul ignore next */ []));
|
|
@@ -276,13 +330,22 @@ class AXFileViewerContainerComponent {
|
|
|
276
330
|
...(ngDevMode ? [{ debugName: "fallbackContent" }] : /* istanbul ignore next */ []));
|
|
277
331
|
this.fallbackContentInputs = input(null, /* @ts-ignore */
|
|
278
332
|
...(ngDevMode ? [{ debugName: "fallbackContentInputs" }] : /* istanbul ignore next */ []));
|
|
333
|
+
/** Custom empty-state template or component. Falls back to the built-in empty state. */
|
|
334
|
+
this.emptyContent = input(null, /* @ts-ignore */
|
|
335
|
+
...(ngDevMode ? [{ debugName: "emptyContent" }] : /* istanbul ignore next */ []));
|
|
336
|
+
this.emptyContentInputs = input(null, /* @ts-ignore */
|
|
337
|
+
...(ngDevMode ? [{ debugName: "emptyContentInputs" }] : /* istanbul ignore next */ []));
|
|
279
338
|
/** External loading flag — show overlay while parent data is being fetched. */
|
|
280
339
|
this.loading = input(false, /* @ts-ignore */
|
|
281
340
|
...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
341
|
+
this.headerActionClick = output();
|
|
282
342
|
this.fullscreenClosed = output();
|
|
283
343
|
this.service = inject(AXFileViewerService);
|
|
284
344
|
this.host = inject((ElementRef));
|
|
285
345
|
this.fullScreenService = inject(AXFullScreenService);
|
|
346
|
+
this.document = inject(DOCUMENT);
|
|
347
|
+
this.platformId = inject(PLATFORM_ID);
|
|
348
|
+
this.destroyRef = inject(DestroyRef);
|
|
286
349
|
this.mainCarouselRef = viewChild('mainCarousel', /* @ts-ignore */
|
|
287
350
|
...(ngDevMode ? [{ debugName: "mainCarouselRef" }] : /* istanbul ignore next */ []));
|
|
288
351
|
this.thumbCarouselRef = viewChild('thumbCarousel', /* @ts-ignore */
|
|
@@ -295,6 +358,8 @@ class AXFileViewerContainerComponent {
|
|
|
295
358
|
...(ngDevMode ? [{ debugName: "initializing" }] : /* istanbul ignore next */ []));
|
|
296
359
|
this.isBusy = computed(() => this.loading() || this.initializing(), /* @ts-ignore */
|
|
297
360
|
...(ngDevMode ? [{ debugName: "isBusy" }] : /* istanbul ignore next */ []));
|
|
361
|
+
this.isEmpty = computed(() => !this.loading() && !this.initializing() && this.service.items().length === 0, /* @ts-ignore */
|
|
362
|
+
...(ngDevMode ? [{ debugName: "isEmpty" }] : /* istanbul ignore next */ []));
|
|
298
363
|
this.isFirstSlide = computed(() => this.service.selectedIndex() <= 0, /* @ts-ignore */
|
|
299
364
|
...(ngDevMode ? [{ debugName: "isFirstSlide" }] : /* istanbul ignore next */ []));
|
|
300
365
|
this.isLastSlide = computed(() => this.service.selectedIndex() >= Math.max(this.service.items().length - 1, 0), /* @ts-ignore */
|
|
@@ -329,6 +394,50 @@ class AXFileViewerContainerComponent {
|
|
|
329
394
|
...(ngDevMode ? [{ debugName: "headerComponentContent" }] : /* istanbul ignore next */ []));
|
|
330
395
|
this.hasHeaderCenterContent = computed(() => !!(this.headerTemplateContent() || this.headerComponentContent()), /* @ts-ignore */
|
|
331
396
|
...(ngDevMode ? [{ debugName: "hasHeaderCenterContent" }] : /* istanbul ignore next */ []));
|
|
397
|
+
this.emptyTemplateContent = computed(() => {
|
|
398
|
+
const content = this.emptyContent();
|
|
399
|
+
return content instanceof TemplateRef ? content : null;
|
|
400
|
+
}, /* @ts-ignore */
|
|
401
|
+
...(ngDevMode ? [{ debugName: "emptyTemplateContent" }] : /* istanbul ignore next */ []));
|
|
402
|
+
this.emptyComponentContent = computed(() => {
|
|
403
|
+
const content = this.emptyContent();
|
|
404
|
+
return content && typeof content === 'function' ? content : null;
|
|
405
|
+
}, /* @ts-ignore */
|
|
406
|
+
...(ngDevMode ? [{ debugName: "emptyComponentContent" }] : /* istanbul ignore next */ []));
|
|
407
|
+
this.resolvedHeaderActions = computed(() => {
|
|
408
|
+
this.isFullscreenActive();
|
|
409
|
+
const customActions = this.headerActions();
|
|
410
|
+
if (customActions.length > 0) {
|
|
411
|
+
let hasFullscreenAction = false;
|
|
412
|
+
return customActions.reduce((actions, action) => {
|
|
413
|
+
if (this.isFullscreenAction(action.name)) {
|
|
414
|
+
if (hasFullscreenAction) {
|
|
415
|
+
return actions;
|
|
416
|
+
}
|
|
417
|
+
hasFullscreenAction = true;
|
|
418
|
+
}
|
|
419
|
+
actions.push(this.resolveHeaderAction(action));
|
|
420
|
+
return actions;
|
|
421
|
+
}, []);
|
|
422
|
+
}
|
|
423
|
+
const actions = [];
|
|
424
|
+
if (this.download()) {
|
|
425
|
+
actions.push({
|
|
426
|
+
name: 'download',
|
|
427
|
+
text: 'Download',
|
|
428
|
+
icon: 'fa-light fa-download',
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
if (this.fullscreen()) {
|
|
432
|
+
actions.push(this.resolveHeaderAction({
|
|
433
|
+
name: 'fullscreen',
|
|
434
|
+
text: 'Fullscreen',
|
|
435
|
+
icon: 'fa-light fa-expand',
|
|
436
|
+
}));
|
|
437
|
+
}
|
|
438
|
+
return actions;
|
|
439
|
+
}, /* @ts-ignore */
|
|
440
|
+
...(ngDevMode ? [{ debugName: "resolvedHeaderActions" }] : /* istanbul ignore next */ []));
|
|
332
441
|
this.headerContentContext = computed(() => ({
|
|
333
442
|
item: this.currentItem(),
|
|
334
443
|
items: this.service.items(),
|
|
@@ -339,42 +448,62 @@ class AXFileViewerContainerComponent {
|
|
|
339
448
|
this.resolveFileType = resolveFileViewerFileType;
|
|
340
449
|
this.mainCarouselOptions = {
|
|
341
450
|
slidesPerView: 1,
|
|
342
|
-
observer: true,
|
|
343
|
-
observeParents: true,
|
|
344
451
|
updateOnWindowResize: true,
|
|
345
452
|
resizeObserver: true,
|
|
346
453
|
keyboard: true,
|
|
347
454
|
watchSlidesProgress: true,
|
|
348
455
|
speed: 300,
|
|
456
|
+
threshold: 8,
|
|
457
|
+
simulateTouch: true,
|
|
458
|
+
noSwipingSelector: 'video, audio, ax-pdf-reader, ax-pdf-reader *',
|
|
459
|
+
on: {
|
|
460
|
+
afterInit(swiper) {
|
|
461
|
+
requestAnimationFrame(() => swiper.update());
|
|
462
|
+
},
|
|
463
|
+
},
|
|
349
464
|
};
|
|
350
465
|
this.thumbnailCarouselOptions = {
|
|
351
466
|
spaceBetween: 10,
|
|
352
467
|
slidesPerView: 'auto',
|
|
353
468
|
watchSlidesProgress: true,
|
|
354
|
-
observer: true,
|
|
355
|
-
observeParents: true,
|
|
356
469
|
updateOnWindowResize: true,
|
|
357
470
|
resizeObserver: true,
|
|
471
|
+
threshold: 8,
|
|
358
472
|
};
|
|
359
473
|
this.#syncItems = effect(() => {
|
|
360
474
|
const items = this.items();
|
|
361
475
|
const startIndex = this.startIndex();
|
|
476
|
+
const previousItems = untracked(() => this.service.items());
|
|
477
|
+
const previousIndex = untracked(() => this.service.selectedIndex());
|
|
478
|
+
const sameIds = previousItems.length === items.length && previousItems.every((item, index) => item.id === items[index]?.id);
|
|
362
479
|
this.service.items.set(items);
|
|
363
|
-
|
|
480
|
+
const maxIndex = Math.max(items.length - 1, 0);
|
|
481
|
+
if (sameIds) {
|
|
482
|
+
this.service.selectedIndex.set(Math.min(previousIndex, maxIndex));
|
|
483
|
+
}
|
|
484
|
+
else {
|
|
485
|
+
this.service.selectedIndex.set(Math.min(Math.max(startIndex, 0), maxIndex));
|
|
486
|
+
}
|
|
364
487
|
if (items.length > 0) {
|
|
365
|
-
this.
|
|
366
|
-
|
|
488
|
+
const hasCarousel = untracked(() => !!this.mainCarouselRef()?.carousel());
|
|
489
|
+
if (!sameIds || !hasCarousel) {
|
|
490
|
+
this.initializing.set(true);
|
|
491
|
+
setTimeout(() => void this.initCarousels());
|
|
492
|
+
}
|
|
367
493
|
}
|
|
368
494
|
else if (!this.loading()) {
|
|
369
495
|
this.initializing.set(false);
|
|
370
496
|
}
|
|
371
497
|
}, /* @ts-ignore */
|
|
372
498
|
...(ngDevMode ? [{ debugName: "#syncItems" }] : /* istanbul ignore next */ []));
|
|
373
|
-
this.#bindSlideChange = effect(() => {
|
|
499
|
+
this.#bindSlideChange = effect((onCleanup) => {
|
|
374
500
|
const carousel = this.mainCarouselRef()?.carousel();
|
|
375
|
-
if (carousel)
|
|
376
|
-
|
|
377
|
-
|
|
501
|
+
if (!carousel)
|
|
502
|
+
return;
|
|
503
|
+
carousel.on('activeIndexChange', this.onSlideChange);
|
|
504
|
+
onCleanup(() => {
|
|
505
|
+
carousel.off('activeIndexChange', this.onSlideChange);
|
|
506
|
+
});
|
|
378
507
|
}, /* @ts-ignore */
|
|
379
508
|
...(ngDevMode ? [{ debugName: "#bindSlideChange" }] : /* istanbul ignore next */ []));
|
|
380
509
|
this.#init = afterNextRender(() => {
|
|
@@ -384,24 +513,69 @@ class AXFileViewerContainerComponent {
|
|
|
384
513
|
}
|
|
385
514
|
});
|
|
386
515
|
this.onSlideChange = (swiper) => {
|
|
516
|
+
if (this.service.selectedIndex() === swiper.activeIndex)
|
|
517
|
+
return;
|
|
387
518
|
this.service.selectedIndex.set(swiper.activeIndex);
|
|
388
519
|
};
|
|
520
|
+
if (!isPlatformBrowser(this.platformId)) {
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
const onKeydown = (event) => this.onFullscreenEscape(event);
|
|
524
|
+
this.document.addEventListener('keydown', onKeydown);
|
|
525
|
+
this.destroyRef.onDestroy(() => {
|
|
526
|
+
this.document.removeEventListener('keydown', onKeydown);
|
|
527
|
+
});
|
|
389
528
|
}
|
|
390
|
-
|
|
391
|
-
|
|
529
|
+
resolveHeaderAction(action) {
|
|
530
|
+
if (!this.isFullscreenAction(action.name)) {
|
|
531
|
+
return action;
|
|
532
|
+
}
|
|
533
|
+
const isActive = this.isFullscreenActive();
|
|
534
|
+
if (isActive) {
|
|
535
|
+
return {
|
|
536
|
+
...action,
|
|
537
|
+
name: 'fullscreen',
|
|
538
|
+
text: 'Close fullscreen',
|
|
539
|
+
title: 'Close fullscreen',
|
|
540
|
+
icon: 'fa-light fa-close',
|
|
541
|
+
};
|
|
542
|
+
}
|
|
543
|
+
return {
|
|
544
|
+
...action,
|
|
545
|
+
name: 'fullscreen',
|
|
546
|
+
text: action.text || 'Fullscreen',
|
|
547
|
+
title: action.title ?? action.text ?? 'Fullscreen',
|
|
548
|
+
icon: action.icon ?? 'fa-light fa-expand',
|
|
549
|
+
};
|
|
392
550
|
}
|
|
393
|
-
|
|
394
|
-
if (
|
|
395
|
-
return
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
551
|
+
onHeaderActionClick(action, event) {
|
|
552
|
+
if (action.disabled || action.isLoading) {
|
|
553
|
+
return;
|
|
554
|
+
}
|
|
555
|
+
const resolvedAction = this.isFullscreenAction(action.name) ? { ...action, name: 'fullscreen' } : action;
|
|
556
|
+
const clickEvent = {
|
|
557
|
+
sender: this,
|
|
558
|
+
nativeEvent: event.nativeEvent,
|
|
559
|
+
canceled: false,
|
|
560
|
+
item: {
|
|
561
|
+
name: resolvedAction.name,
|
|
562
|
+
text: resolvedAction.text,
|
|
563
|
+
data: resolvedAction.data,
|
|
564
|
+
},
|
|
565
|
+
};
|
|
566
|
+
switch (resolvedAction.name) {
|
|
567
|
+
case 'download':
|
|
568
|
+
void this.downloadCurrent();
|
|
569
|
+
break;
|
|
570
|
+
case 'fullscreen':
|
|
571
|
+
this.toggleFullscreen();
|
|
572
|
+
break;
|
|
573
|
+
}
|
|
574
|
+
this.headerActionClick.emit(clickEvent);
|
|
575
|
+
}
|
|
576
|
+
isFullscreenAction(name) {
|
|
577
|
+
return name === 'fullscreen' || name === 'close';
|
|
401
578
|
}
|
|
402
|
-
#syncItems;
|
|
403
|
-
#bindSlideChange;
|
|
404
|
-
#init;
|
|
405
579
|
toggleFullscreen() {
|
|
406
580
|
if (this.isFullscreenActive()) {
|
|
407
581
|
this.exitFullscreen();
|
|
@@ -430,6 +604,21 @@ class AXFileViewerContainerComponent {
|
|
|
430
604
|
}
|
|
431
605
|
}
|
|
432
606
|
closeGallery() {
|
|
607
|
+
this.toggleFullscreen();
|
|
608
|
+
}
|
|
609
|
+
onFullscreenEscape(event) {
|
|
610
|
+
if (event.key !== 'Escape' || event.repeat) {
|
|
611
|
+
return;
|
|
612
|
+
}
|
|
613
|
+
const doc = this.document;
|
|
614
|
+
if (doc.fullscreenElement || doc.webkitFullscreenElement) {
|
|
615
|
+
return;
|
|
616
|
+
}
|
|
617
|
+
if (!this.isFullscreenActive() && !this.fullScreenService.isActive(this.host.nativeElement)) {
|
|
618
|
+
return;
|
|
619
|
+
}
|
|
620
|
+
event.preventDefault();
|
|
621
|
+
event.stopPropagation();
|
|
433
622
|
this.exitFullscreen();
|
|
434
623
|
}
|
|
435
624
|
async initCarousels() {
|
|
@@ -444,14 +633,16 @@ class AXFileViewerContainerComponent {
|
|
|
444
633
|
this.initializing.set(true);
|
|
445
634
|
try {
|
|
446
635
|
const thumbRef = this.thumbnail() ? this.thumbCarouselRef() : undefined;
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
mainRef.carousel().destroy(true, true);
|
|
452
|
-
}
|
|
636
|
+
thumbRef?.destroy();
|
|
637
|
+
mainRef.destroy();
|
|
638
|
+
if (token !== this.initToken)
|
|
639
|
+
return;
|
|
453
640
|
if (thumbRef) {
|
|
454
641
|
await thumbRef.init(this.thumbnailCarouselOptions);
|
|
642
|
+
if (token !== this.initToken) {
|
|
643
|
+
thumbRef.destroy();
|
|
644
|
+
return;
|
|
645
|
+
}
|
|
455
646
|
await mainRef.init({
|
|
456
647
|
...this.mainCarouselOptions,
|
|
457
648
|
thumbs: { swiper: thumbRef.carousel() },
|
|
@@ -460,8 +651,11 @@ class AXFileViewerContainerComponent {
|
|
|
460
651
|
else {
|
|
461
652
|
await mainRef.init(this.mainCarouselOptions);
|
|
462
653
|
}
|
|
463
|
-
if (token !== this.initToken)
|
|
654
|
+
if (token !== this.initToken) {
|
|
655
|
+
thumbRef?.destroy();
|
|
656
|
+
mainRef.destroy();
|
|
464
657
|
return;
|
|
658
|
+
}
|
|
465
659
|
mainRef.carousel()?.slideTo(this.service.selectedIndex(), 0);
|
|
466
660
|
}
|
|
467
661
|
finally {
|
|
@@ -508,13 +702,14 @@ class AXFileViewerContainerComponent {
|
|
|
508
702
|
anchor.click();
|
|
509
703
|
}
|
|
510
704
|
ngOnDestroy() {
|
|
511
|
-
this.mainCarouselRef()?.
|
|
705
|
+
this.mainCarouselRef()?.destroy();
|
|
706
|
+
this.thumbCarouselRef()?.destroy();
|
|
512
707
|
this.exitFullscreen(false);
|
|
513
708
|
}
|
|
514
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
515
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXFileViewerContainerComponent, isStandalone: true, selector: "ax-file-viewer-container", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, startIndex: { classPropertyName: "startIndex", publicName: "startIndex", isSignal: true, isRequired: false, transformFunction: null }, thumbnail: { classPropertyName: "thumbnail", publicName: "thumbnail", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null }, download: { classPropertyName: "download", publicName: "download", isSignal: true, isRequired: false, transformFunction: null }, fullscreen: { classPropertyName: "fullscreen", publicName: "fullscreen", isSignal: true, isRequired: false, transformFunction: null }, galleryMode: { classPropertyName: "galleryMode", publicName: "galleryMode", isSignal: true, isRequired: false, transformFunction: null }, headerContent: { classPropertyName: "headerContent", publicName: "headerContent", isSignal: true, isRequired: false, transformFunction: null }, headerContentInputs: { classPropertyName: "headerContentInputs", publicName: "headerContentInputs", isSignal: true, isRequired: false, transformFunction: null }, fallbackContent: { classPropertyName: "fallbackContent", publicName: "fallbackContent", isSignal: true, isRequired: false, transformFunction: null }, fallbackContentInputs: { classPropertyName: "fallbackContentInputs", publicName: "fallbackContentInputs", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fullscreenClosed: "fullscreenClosed" }, host: { properties: { "class.ax-file-viewer--fullscreen": "isFullscreenActive()" } }, providers: [AXFileViewerService], viewQueries: [{ propertyName: "mainCarouselRef", first: true, predicate: ["mainCarousel"], descendants: true, isSignal: true }, { propertyName: "thumbCarouselRef", first: true, predicate: ["thumbCarousel"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (isBusy()) {\n <div class=\"ax-file-viewer__loading\" aria-busy=\"true\" aria-live=\"polite\">\n <ax-loading></ax-loading>\n </div>\n}\n\n@if (currentItem(); as item) {\n <header\n class=\"ax-file-viewer__header\"\n [class.ax-file-viewer__header--no-content]=\"!hasHeaderCenterContent()\"\n >\n <div class=\"ax-file-viewer__meta\">\n <div class=\"ax-file-viewer__title-row\">\n <span class=\"ax-file-viewer__name\">{{ item.name || 'Untitled' }}</span>\n </div>\n <div class=\"ax-file-viewer__submeta\">\n @if (formatSize(item.size); as sizeLabel) {\n <span>{{ sizeLabel }}</span>\n <span class=\"ax-file-viewer__dot\">\u00B7</span>\n }\n <ax-badge\n class=\"ax-file-viewer__type-badge ax-pill ax-sm\"\n look=\"outline\"\n [color]=\"currentTypeColor()\"\n [text]=\"currentTypeLabel()\"\n />\n </div>\n </div>\n\n @if (hasHeaderCenterContent()) {\n <div class=\"ax-file-viewer__header-content\">\n @if (headerTemplateContent(); as template) {\n <ng-container *ngTemplateOutlet=\"template; context: headerContentContext()\" />\n } @else if (headerComponentContent(); as component) {\n <ng-container *ngComponentOutlet=\"component; inputs: headerContentInputs() ?? {}\" />\n }\n </div>\n }\n\n <div class=\"ax-file-viewer__header-actions\">\n @if (download()) {\n <ax-button\n class=\"ax-file-viewer__action-btn\"\n color=\"default\"\n [iconOnly]=\"true\"\n [axTooltip]=\"'Download'\"\n (onClick)=\"downloadCurrent()\"\n >\n <ax-icon icon=\"fa-light fa-download\"></ax-icon>\n </ax-button>\n }\n\n @if (fullscreen()) {\n <ax-button\n class=\"ax-file-viewer__action-btn ax-file-viewer__fullscreen-wrap\"\n color=\"default\"\n [iconOnly]=\"true\"\n [axTooltip]=\"isFullscreenActive() ? 'Close' : 'Fullscreen'\"\n (onClick)=\"toggleFullscreen()\"\n >\n <ax-icon [icon]=\"isFullscreenActive() ? 'fa-light fa-xmark' : 'fa-light fa-expand'\"></ax-icon>\n </ax-button>\n }\n </div>\n </header>\n}\n\n<div\n class=\"ax-file-viewer__stage\"\n [class.ax-file-viewer__stage--nav]=\"service.items().length > 1\"\n [class.ax-file-viewer__stage--hidden]=\"isBusy()\"\n>\n @if (service.items().length > 1) {\n <ax-button\n class=\"ax-file-viewer__nav ax-file-viewer__nav--prev\"\n look=\"solid\"\n color=\"default\"\n [iconOnly]=\"true\"\n [disabled]=\"isFirstSlide()\"\n (onClick)=\"prev()\"\n >\n <ax-icon icon=\"fa-light fa-chevron-left\"></ax-icon>\n </ax-button>\n }\n\n <div class=\"ax-file-viewer__canvas\">\n <div #mainCarousel=\"axCarousel\" axCarousel class=\"ax-carousel\">\n <div class=\"ax-carousel-wrapper\">\n @for (file of service.items(); track file.id) {\n <div class=\"ax-carousel-slide\">\n <ax-file-viewer-slide\n [item]=\"file\"\n [index]=\"$index\"\n [fallbackContent]=\"fallbackContent()\"\n [fallbackContentInputs]=\"fallbackContentInputs()\"\n />\n </div>\n }\n </div>\n </div>\n\n @if (service.items().length > 0) {\n <span class=\"ax-file-viewer__overlay-counter\">{{ slideCounter() }}</span>\n }\n </div>\n\n @if (service.items().length > 1) {\n <ax-button\n class=\"ax-file-viewer__nav ax-file-viewer__nav--next\"\n look=\"solid\"\n color=\"default\"\n [iconOnly]=\"true\"\n [disabled]=\"isLastSlide()\"\n (onClick)=\"next()\"\n >\n <ax-icon icon=\"fa-light fa-chevron-right\"></ax-icon>\n </ax-button>\n }\n</div>\n\n@if (thumbnail() && service.items().length > 1) {\n <footer class=\"ax-file-viewer__thumbs\" [class.ax-file-viewer__thumbs--hidden]=\"isBusy()\">\n <div class=\"ax-file-viewer__thumbs-track\">\n <div #thumbCarousel=\"axCarousel\" axCarousel class=\"ax-carousel\">\n <div class=\"ax-carousel-wrapper\">\n @for (file of service.items(); track file.id) {\n <div\n class=\"ax-carousel-slide ax-file-viewer__thumb\"\n [attr.data-type]=\"resolveFileType(file)\"\n [class.ax-file-viewer__thumb--active]=\"service.selectedIndex() === $index\"\n (click)=\"goToIndex($index)\"\n >\n <ax-file-viewer-thumb-preview [item]=\"file\" />\n <div class=\"ax-file-viewer__thumb-footer\">\n <span class=\"ax-file-viewer__thumb-name\">{{ file.name || resolveTypeLabel(file) }}</span>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </footer>\n}\n", styles: ["@layer properties;:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:\"\";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}:is(.swiper:not(.swiper-watch-progress),.swiper-watch-progress .swiper-slide-visible) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper:after{content:\"\";position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper:after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size: 44px}.swiper-button-prev,.swiper-button-next{position:absolute;width:var(--swiper-navigation-size);height:var(--swiper-navigation-size);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color, var(--swiper-theme-color))}:is(.swiper-button-prev,.swiper-button-next).swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}:is(.swiper-button-prev,.swiper-button-next).swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled :is(.swiper-button-prev,.swiper-button-next){display:none!important}:is(.swiper-button-prev,.swiper-button-next) svg{width:100%;height:100%;object-fit:contain;transform-origin:center;fill:currentColor;pointer-events:none}.swiper-button-lock{display:none}.swiper-button-prev,.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2))}.swiper-button-prev{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-button-prev .swiper-navigation-icon{transform:rotate(180deg)}.swiper-button-next{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-horizontal .swiper-button-prev,.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal~.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));margin-left:0}.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-next,.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev{right:var(--swiper-navigation-sides-offset, 4px);left:auto}:is(.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next) .swiper-navigation-icon{transform:rotate(180deg)}:is(.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(0)}.swiper-vertical .swiper-button-prev,.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-prev,.swiper-vertical~.swiper-button-next{left:var(--swiper-navigation-top-offset, 50%);right:auto;margin-left:calc(0px - (var(--swiper-navigation-size) / 2));margin-top:0}.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev{top:var(--swiper-navigation-sides-offset, 4px);bottom:auto}:is(.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(-90deg)}.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset, 4px);top:auto}:is(.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next) .swiper-navigation-icon{transform:rotate(90deg)}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets) .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets).swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets).swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets) .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets).swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets).swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius, 10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, .1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset, 1%);bottom:var(--swiper-scrollbar-bottom, 4px);top:var(--swiper-scrollbar-top, auto);z-index:50;height:var(--swiper-scrollbar-size, 4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-vertical>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-vertical{position:absolute;left:var(--swiper-scrollbar-left, auto);right:var(--swiper-scrollbar-right, 4px);top:var(--swiper-scrollbar-sides-offset, 1%);z-index:50;width:var(--swiper-scrollbar-size, 4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, .5));border-radius:var(--swiper-scrollbar-border-radius, 10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>img,.swiper-zoom-container>svg,.swiper-zoom-container>canvas{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:\"\";background:#000;position:absolute;inset:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right{z-index:0;backface-visibility:hidden}.swiper.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right{z-index:0;backface-visibility:hidden}.swiper-creative .swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;backface-visibility:hidden;overflow:hidden}@layer components{ax-file-viewer-container{--ax-fv-stage-pad: .75rem;--ax-fv-nav-size: 2.5rem;position:relative;box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-radius:var(--radius-2xl, 1rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));color:rgba(var(--ax-sys-color-on-lightest-surface));box-shadow:0 10px 30px rgba(var(--ax-sys-color-on-surface),.08)}ax-file-viewer-container>.ax-file-viewer__header,ax-file-viewer-container>.ax-file-viewer__stage,ax-file-viewer-container>.ax-file-viewer__thumbs{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);background-color:rgba(var(--ax-sys-color-lightest-surface))}ax-file-viewer-container.ax-file-viewer--fullscreen{border-radius:0;background-color:rgba(var(--ax-sys-color-lightest-surface))}ax-file-viewer-container .ax-file-viewer__loading{position:absolute;inset:calc(var(--spacing, .25rem) * 0);z-index:10;display:flex;align-items:center;justify-content:center;--tw-backdrop-blur: blur(var(--blur-sm, 8px));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);background-color:rgba(var(--ax-sys-color-lightest-surface),.7)}ax-file-viewer-container .ax-file-viewer__stage--hidden,ax-file-viewer-container .ax-file-viewer__thumbs--hidden{pointer-events:none;visibility:hidden}ax-file-viewer-container .ax-file-viewer__header{box-sizing:border-box;display:grid;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3);grid-template-columns:minmax(min-content,max-content) minmax(0,1fr) auto;grid-template-areas:\"meta content actions\"}ax-file-viewer-container .ax-file-viewer__header--no-content{grid-template-columns:minmax(min-content,max-content) auto;grid-template-areas:\"meta actions\"}ax-file-viewer-container .ax-file-viewer__meta{grid-area:meta;min-width:min-content;max-width:100%;justify-self:start}ax-file-viewer-container .ax-file-viewer__header-content{display:flex;width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;grid-area:content;justify-self:stretch}ax-file-viewer-container .ax-file-viewer__title-row{display:flex;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;gap:calc(var(--spacing, .25rem) * 2)}ax-file-viewer-container .ax-file-viewer__name{overflow:hidden;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);text-overflow:ellipsis;white-space:nowrap}ax-file-viewer-container .ax-file-viewer__type-badge{flex-shrink:0}ax-file-viewer-container .ax-file-viewer__submeta{margin-top:calc(var(--spacing, .25rem) * .5);display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 1.5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));color:rgba(var(--ax-sys-color-on-surface),.65)}ax-file-viewer-container .ax-file-viewer__dot{opacity:55%}ax-file-viewer-container .ax-file-viewer__header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1.5);grid-area:actions;justify-self:end}ax-file-viewer-container .ax-file-viewer__action-btn{width:calc(var(--spacing, .25rem) * 9);height:calc(var(--spacing, .25rem) * 9);min-width:calc(var(--spacing, .25rem) * 9);border-radius:var(--radius-xl, .75rem)}ax-file-viewer-container .ax-file-viewer__fullscreen-wrap{display:inline-flex;align-items:center;justify-content:center}ax-file-viewer-container .ax-file-viewer__stage{box-sizing:border-box;display:grid;min-height:calc(var(--spacing, .25rem) * 0);width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:stretch;gap:calc(var(--spacing, .25rem) * 2);grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);grid-template-areas:\"canvas\";padding:var(--ax-fv-stage-pad)}ax-file-viewer-container .ax-file-viewer__stage--nav{grid-template-columns:var(--ax-fv-nav-size) minmax(0,1fr) var(--ax-fv-nav-size);grid-template-areas:\"prev canvas next\";align-items:stretch}ax-file-viewer-container .ax-file-viewer__nav{z-index:2;align-self:center;justify-self:center;border-radius:calc(infinity * 1px);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));color:rgba(var(--ax-sys-color-on-lightest-surface));width:var(--ax-fv-nav-size)!important;height:var(--ax-fv-nav-size)!important;min-width:var(--ax-fv-nav-size)!important;box-shadow:0 6px 18px rgba(var(--ax-sys-color-on-surface),.12)!important}ax-file-viewer-container .ax-file-viewer__nav.ax-disabled,ax-file-viewer-container .ax-file-viewer__nav[disabled]{cursor:not-allowed;opacity:35%;box-shadow:none!important}ax-file-viewer-container .ax-file-viewer__nav--prev{grid-area:prev}ax-file-viewer-container .ax-file-viewer__nav--next{grid-area:next}ax-file-viewer-container .ax-file-viewer__canvas{position:relative;box-sizing:border-box;height:100%;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-self:stretch;overflow:hidden;border-radius:var(--radius-2xl, 1rem);grid-area:canvas;min-height:12rem}ax-file-viewer-container .ax-file-viewer__canvas .ax-carousel,ax-file-viewer-container .ax-file-viewer__canvas .swiper{box-sizing:border-box;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);overflow:hidden}ax-file-viewer-container .ax-file-viewer__canvas .ax-carousel-wrapper,ax-file-viewer-container .ax-file-viewer__canvas .swiper-wrapper{box-sizing:border-box;height:100%;align-items:stretch}ax-file-viewer-container .ax-file-viewer__canvas .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__canvas .swiper-slide{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);align-items:stretch;justify-content:stretch;overflow:hidden}ax-file-viewer-container .ax-file-viewer__canvas img,ax-file-viewer-container .ax-file-viewer__canvas video,ax-file-viewer-container .ax-file-viewer__canvas audio,ax-file-viewer-container .ax-file-viewer__canvas iframe,ax-file-viewer-container .ax-file-viewer__canvas ax-pdf-reader{max-height:100%;max-width:100%}ax-file-viewer-container .ax-file-viewer__overlay-counter{pointer-events:none;position:absolute;bottom:calc(var(--spacing, .25rem) * 5);left:50%;z-index:3;display:inline-flex;min-height:calc(var(--spacing, .25rem) * 6);min-width:calc(var(--spacing, .25rem) * 12);--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y);align-items:center;justify-content:center;border-radius:calc(infinity * 1px);border-style:var(--tw-border-style);border-width:1px;border-color:color-mix(in srgb,#fff 15%,transparent);background-color:color-mix(in srgb,#000 70%,transparent);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 1);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-leading: 1;line-height:1;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking: var(--tracking-wide, .025em);letter-spacing:var(--tracking-wide, .025em);color:var(--color-white, #fff);--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--tw-backdrop-blur: blur(var(--blur-md, 12px));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);text-shadow:0 1px 1px rgba(0,0,0,.35)}@supports (color: color-mix(in lab,red,red)){ax-file-viewer-container .ax-file-viewer__overlay-counter{border-color:color-mix(in oklab,var(--color-white, #fff) 15%,transparent)}}@supports (color: color-mix(in lab,red,red)){ax-file-viewer-container .ax-file-viewer__overlay-counter{background-color:color-mix(in oklab,var(--color-black, #000) 70%,transparent)}}ax-file-viewer-container .ax-file-viewer__thumbs{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex-shrink:0;overflow:hidden;border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 4);padding-top:calc(var(--spacing, .25rem) * 3);padding-bottom:calc(var(--spacing, .25rem) * 4)}ax-file-viewer-container .ax-file-viewer__thumbs-track{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);overflow:hidden}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);overflow:hidden}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-wrapper,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-wrapper{align-items:stretch}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-slide{box-sizing:border-box;height:auto;width:calc(var(--spacing, .25rem) * 28);max-width:calc(var(--spacing, .25rem) * 28);overflow:hidden}ax-file-viewer-container .ax-file-viewer__thumb{box-sizing:border-box;display:flex;width:calc(var(--spacing, .25rem) * 28);max-width:calc(var(--spacing, .25rem) * 28);cursor:pointer;flex-direction:column;overflow:hidden;border-radius:var(--radius-xl, .75rem);border-style:var(--tw-border-style);border-width:2px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}ax-file-viewer-container .ax-file-viewer__thumb:hover{border-color:rgba(var(--ax-sys-color-border-lighter-surface))}ax-file-viewer-container .ax-file-viewer__thumb.swiper-slide-thumb-active,ax-file-viewer-container .ax-file-viewer__thumb.ax-file-viewer__thumb--active{border-color:rgba(var(--ax-sys-color-success-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=video].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=video].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-primary-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=audio].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=audio].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-danger-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=document].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=document].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-warning-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=file].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=file].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-secondary-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=image] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-success-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=video] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-primary-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=audio] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-danger-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=document] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-warning-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=file] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-secondary-500))}ax-file-viewer-container .ax-file-viewer__thumb-preview{box-sizing:border-box;display:flex;aspect-ratio:1.4;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;overflow:hidden;background-color:rgba(var(--ax-sys-color-lighter-surface))}ax-file-viewer-container .ax-file-viewer__thumb-preview i{font-size:var(--text-2xl, 1.5rem);line-height:var(--tw-leading, var(--text-2xl--line-height, calc(2 / 1.5)));color:rgba(var(--ax-sys-color-on-surface),.65)}ax-file-viewer-container .ax-file-viewer__thumb-preview img{display:block;height:100%;width:100%;object-fit:cover}ax-file-viewer-container .ax-file-viewer__thumb-footer{box-sizing:border-box;display:grid;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;gap:calc(var(--spacing, .25rem) * 1);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:calc(var(--spacing, .25rem) * 1.5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));grid-template-columns:minmax(0,1fr);color:rgba(var(--ax-sys-color-on-surface),.65)}ax-file-viewer-container .ax-file-viewer__thumb-name{overflow:hidden;--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);text-overflow:ellipsis;white-space:nowrap;color:rgba(var(--ax-sys-color-on-lightest-surface))}ax-file-viewer-container .ax-carousel-pagination{display:none}ax-file-viewer-container ax-file-viewer-slide{padding:calc(var(--spacing, .25rem) * 0)}@media(max-width:768px){ax-file-viewer-container{--ax-fv-stage-pad: .5rem;--ax-fv-nav-size: 2.25rem;border-radius:var(--radius-2xl, 1rem)}ax-file-viewer-container .ax-file-viewer__header{min-width:calc(var(--spacing, .25rem) * 0);column-gap:calc(var(--spacing, .25rem) * 3);row-gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}ax-file-viewer-container .ax-file-viewer__name{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}ax-file-viewer-container .ax-file-viewer__action-btn{width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8);min-width:calc(var(--spacing, .25rem) * 8)}ax-file-viewer-container .ax-file-viewer__stage--nav{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(14rem,1fr) auto;grid-template-areas:\"canvas canvas\" \"prev next\";gap:calc(var(--spacing, .25rem) * 2);align-items:stretch}ax-file-viewer-container .ax-file-viewer__nav--prev{justify-self:end}ax-file-viewer-container .ax-file-viewer__nav--next{justify-self:start}ax-file-viewer-container .ax-file-viewer__canvas{min-height:14rem}ax-file-viewer-container .ax-file-viewer__thumbs{padding-inline:calc(var(--spacing, .25rem) * 3);padding-top:calc(var(--spacing, .25rem) * 2.5);padding-bottom:calc(var(--spacing, .25rem) * 3.5)}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-slide{width:calc(var(--spacing, .25rem) * 24);max-width:calc(var(--spacing, .25rem) * 24)}ax-file-viewer-container .ax-file-viewer__thumb{width:calc(var(--spacing, .25rem) * 24);max-width:calc(var(--spacing, .25rem) * 24)}}@media(max-width:480px){ax-file-viewer-container{--ax-fv-nav-size: 2rem;border-radius:var(--radius-xl, .75rem)}ax-file-viewer-container .ax-file-viewer__type-badge{display:none}ax-file-viewer-container .ax-file-viewer__thumbs{padding:calc(var(--spacing, .25rem) * 2)}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-slide{width:calc(var(--spacing, .25rem) * 20);max-width:calc(var(--spacing, .25rem) * 20)}ax-file-viewer-container .ax-file-viewer__thumb{width:calc(var(--spacing, .25rem) * 20);max-width:calc(var(--spacing, .25rem) * 20)}}.ax-file-viewer-gallery-overlay.ax-overlay-centered{pointer-events:auto}.ax-file-viewer-gallery-overlay.ax-overlay-centered .ax-overlay-content{display:flex;height:100dvh;max-height:100dvh;width:100vw;max-width:100vw;align-items:stretch;justify-content:stretch}.ax-file-viewer-gallery-overlay.ax-overlay-centered ax-file-viewer-container{pointer-events:auto;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;border-radius:0}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-backdrop-blur{syntax: \"*\"; inherits: false;}@property --tw-backdrop-brightness{syntax: \"*\"; inherits: false;}@property --tw-backdrop-contrast{syntax: \"*\"; inherits: false;}@property --tw-backdrop-grayscale{syntax: \"*\"; inherits: false;}@property --tw-backdrop-hue-rotate{syntax: \"*\"; inherits: false;}@property --tw-backdrop-invert{syntax: \"*\"; inherits: false;}@property --tw-backdrop-opacity{syntax: \"*\"; inherits: false;}@property --tw-backdrop-saturate{syntax: \"*\"; inherits: false;}@property --tw-backdrop-sepia{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-translate-x{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-tracking{syntax: \"*\"; inherits: false;}@property --tw-ordinal{syntax: \"*\"; inherits: false;}@property --tw-slashed-zero{syntax: \"*\"; inherits: false;}@property --tw-numeric-figure{syntax: \"*\"; inherits: false;}@property --tw-numeric-spacing{syntax: \"*\"; inherits: false;}@property --tw-numeric-fraction{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial;--tw-font-weight: initial;--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-leading: initial;--tw-tracking: initial;--tw-ordinal: initial;--tw-slashed-zero: initial;--tw-numeric-figure: initial;--tw-numeric-spacing: initial;--tw-numeric-fraction: initial;--tw-duration: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXCarouselDirective, selector: "[axCarousel]", exportAs: ["axCarousel"] }, { kind: "component", type: AXFileViewerSlideComponent, selector: "ax-file-viewer-slide", inputs: ["item", "index", "fallbackContent", "fallbackContentInputs"] }, { kind: "component", type: AXFileViewerThumbPreviewComponent, selector: "ax-file-viewer-thumb-preview", inputs: ["item"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
709
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
710
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXFileViewerContainerComponent, isStandalone: true, selector: "ax-file-viewer-container", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, startIndex: { classPropertyName: "startIndex", publicName: "startIndex", isSignal: true, isRequired: false, transformFunction: null }, thumbnail: { classPropertyName: "thumbnail", publicName: "thumbnail", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null }, download: { classPropertyName: "download", publicName: "download", isSignal: true, isRequired: false, transformFunction: null }, fullscreen: { classPropertyName: "fullscreen", publicName: "fullscreen", isSignal: true, isRequired: false, transformFunction: null }, headerActions: { classPropertyName: "headerActions", publicName: "headerActions", isSignal: true, isRequired: false, transformFunction: null }, galleryMode: { classPropertyName: "galleryMode", publicName: "galleryMode", isSignal: true, isRequired: false, transformFunction: null }, headerContent: { classPropertyName: "headerContent", publicName: "headerContent", isSignal: true, isRequired: false, transformFunction: null }, headerContentInputs: { classPropertyName: "headerContentInputs", publicName: "headerContentInputs", isSignal: true, isRequired: false, transformFunction: null }, fallbackContent: { classPropertyName: "fallbackContent", publicName: "fallbackContent", isSignal: true, isRequired: false, transformFunction: null }, fallbackContentInputs: { classPropertyName: "fallbackContentInputs", publicName: "fallbackContentInputs", isSignal: true, isRequired: false, transformFunction: null }, emptyContent: { classPropertyName: "emptyContent", publicName: "emptyContent", isSignal: true, isRequired: false, transformFunction: null }, emptyContentInputs: { classPropertyName: "emptyContentInputs", publicName: "emptyContentInputs", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { headerActionClick: "headerActionClick", fullscreenClosed: "fullscreenClosed" }, host: { properties: { "class.ax-file-viewer--fullscreen": "isFullscreenActive()" } }, providers: [AXFileViewerService], viewQueries: [{ propertyName: "mainCarouselRef", first: true, predicate: ["mainCarousel"], descendants: true, isSignal: true }, { propertyName: "thumbCarouselRef", first: true, predicate: ["thumbCarousel"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (isBusy()) {\n <div class=\"ax-file-viewer__loading\" aria-busy=\"true\" aria-live=\"polite\">\n <ax-loading></ax-loading>\n </div>\n}\n\n@if (isEmpty()) {\n <div class=\"ax-file-viewer__empty\" [class.ax-file-viewer__empty--hidden]=\"isBusy()\">\n @if (emptyTemplateContent(); as template) {\n <ng-container *ngTemplateOutlet=\"template\" />\n } @else if (emptyComponentContent(); as component) {\n <ng-container *ngComponentOutlet=\"component; inputs: emptyContentInputs() ?? {}\" />\n } @else {\n <ax-file-viewer-empty-state />\n }\n </div>\n} @else {\n @if (currentItem(); as item) {\n <header class=\"ax-file-viewer__header\" [class.ax-file-viewer__header--no-content]=\"!hasHeaderCenterContent()\">\n <div class=\"ax-file-viewer__meta\">\n <div class=\"ax-file-viewer__title-row\">\n <span class=\"ax-file-viewer__name\">{{ item.name || 'Untitled' }}</span>\n </div>\n <div class=\"ax-file-viewer__submeta\">\n @if (formatSize(item.size); as sizeLabel) {\n <span>{{ sizeLabel }}</span>\n <span class=\"ax-file-viewer__dot\">\u00B7</span>\n }\n <ax-badge\n class=\"ax-file-viewer__type-badge ax-pill ax-sm\"\n look=\"outline\"\n [color]=\"currentTypeColor()\"\n [text]=\"currentTypeLabel()\"\n />\n </div>\n </div>\n\n @if (hasHeaderCenterContent()) {\n <div class=\"ax-file-viewer__header-content\">\n @if (headerTemplateContent(); as template) {\n <ng-container *ngTemplateOutlet=\"template; context: headerContentContext()\" />\n } @else if (headerComponentContent(); as component) {\n <ng-container *ngComponentOutlet=\"component; inputs: headerContentInputs() ?? {}\" />\n }\n </div>\n }\n\n <div class=\"ax-file-viewer__header-actions\">\n @for (action of resolvedHeaderActions(); track action.name ?? action.text) {\n <ax-button\n class=\"rounded-full\"\n [color]=\"action.color ?? 'default'\"\n [iconOnly]=\"!!action.icon\"\n [disabled]=\"action.disabled\"\n [axTooltip]=\"action.title ?? action.text\"\n (onClick)=\"onHeaderActionClick(action, $event)\"\n >\n @if (action.isLoading) {\n <ax-loading></ax-loading>\n } @else if (action.icon) {\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n } @else {\n {{ action.text }}\n }\n </ax-button>\n }\n </div>\n </header>\n }\n\n <div\n class=\"ax-file-viewer__stage\"\n [class.ax-file-viewer__stage--nav]=\"service.items().length > 1\"\n [class.ax-file-viewer__stage--hidden]=\"isBusy()\"\n >\n @if (service.items().length > 1) {\n <ax-button\n look=\"solid\"\n class=\"ax-file-viewer__nav ax-file-viewer__nav--prev\"\n color=\"default\"\n [iconOnly]=\"true\"\n [disabled]=\"isFirstSlide()\"\n (onClick)=\"prev()\"\n >\n <ax-icon icon=\"fa-light fa-chevron-left\"></ax-icon>\n </ax-button>\n }\n\n <div class=\"ax-file-viewer__canvas\">\n <div #mainCarousel=\"axCarousel\" axCarousel class=\"ax-carousel\">\n <div class=\"ax-carousel-wrapper\">\n @for (file of service.items(); track file.id) {\n <div class=\"ax-carousel-slide\">\n <ax-file-viewer-slide\n [item]=\"file\"\n [index]=\"$index\"\n [fallbackContent]=\"fallbackContent()\"\n [fallbackContentInputs]=\"fallbackContentInputs()\"\n />\n </div>\n }\n </div>\n </div>\n\n @if (service.items().length > 0) {\n <span class=\"ax-file-viewer__overlay-counter\">{{ slideCounter() }}</span>\n }\n </div>\n\n @if (service.items().length > 1) {\n <ax-button\n class=\"ax-file-viewer__nav ax-file-viewer__nav--next\"\n look=\"solid\"\n color=\"default\"\n [iconOnly]=\"true\"\n [disabled]=\"isLastSlide()\"\n (onClick)=\"next()\"\n >\n <ax-icon icon=\"fa-light fa-chevron-right\"></ax-icon>\n </ax-button>\n }\n </div>\n\n @if (thumbnail() && service.items().length > 1) {\n <footer class=\"ax-file-viewer__thumbs\" [class.ax-file-viewer__thumbs--hidden]=\"isBusy()\">\n <div class=\"ax-file-viewer__thumbs-track\">\n <div #thumbCarousel=\"axCarousel\" axCarousel class=\"ax-carousel\">\n <div class=\"ax-carousel-wrapper\">\n @for (file of service.items(); track file.id) {\n <div\n class=\"ax-carousel-slide ax-file-viewer__thumb\"\n [attr.data-type]=\"resolveFileType(file)\"\n (click)=\"goToIndex($index)\"\n >\n <ax-file-viewer-thumb-preview [item]=\"file\" />\n <div class=\"ax-file-viewer__thumb-footer\">\n <span class=\"ax-file-viewer__thumb-name\">{{ file.name || resolveTypeLabel(file) }}</span>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </footer>\n }\n}\n", styles: ["@layer properties;:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:\"\";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}:is(.swiper:not(.swiper-watch-progress),.swiper-watch-progress .swiper-slide-visible) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper:after{content:\"\";position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper:after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size: 44px}.swiper-button-prev,.swiper-button-next{position:absolute;width:var(--swiper-navigation-size);height:var(--swiper-navigation-size);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color, var(--swiper-theme-color))}:is(.swiper-button-prev,.swiper-button-next).swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}:is(.swiper-button-prev,.swiper-button-next).swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled :is(.swiper-button-prev,.swiper-button-next){display:none!important}:is(.swiper-button-prev,.swiper-button-next) svg{width:100%;height:100%;object-fit:contain;transform-origin:center;fill:currentColor;pointer-events:none}.swiper-button-lock{display:none}.swiper-button-prev,.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2))}.swiper-button-prev{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-button-prev .swiper-navigation-icon{transform:rotate(180deg)}.swiper-button-next{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-horizontal .swiper-button-prev,.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal~.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));margin-left:0}.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-next,.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev{right:var(--swiper-navigation-sides-offset, 4px);left:auto}:is(.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next) .swiper-navigation-icon{transform:rotate(180deg)}:is(.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(0)}.swiper-vertical .swiper-button-prev,.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-prev,.swiper-vertical~.swiper-button-next{left:var(--swiper-navigation-top-offset, 50%);right:auto;margin-left:calc(0px - (var(--swiper-navigation-size) / 2));margin-top:0}.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev{top:var(--swiper-navigation-sides-offset, 4px);bottom:auto}:is(.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(-90deg)}.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset, 4px);top:auto}:is(.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next) .swiper-navigation-icon{transform:rotate(90deg)}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets) .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets).swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets).swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets) .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets).swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets).swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius, 10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, .1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset, 1%);bottom:var(--swiper-scrollbar-bottom, 4px);top:var(--swiper-scrollbar-top, auto);z-index:50;height:var(--swiper-scrollbar-size, 4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-vertical>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-vertical{position:absolute;left:var(--swiper-scrollbar-left, auto);right:var(--swiper-scrollbar-right, 4px);top:var(--swiper-scrollbar-sides-offset, 1%);z-index:50;width:var(--swiper-scrollbar-size, 4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, .5));border-radius:var(--swiper-scrollbar-border-radius, 10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>img,.swiper-zoom-container>svg,.swiper-zoom-container>canvas{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:\"\";background:#000;position:absolute;inset:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right{z-index:0;backface-visibility:hidden}.swiper.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right{z-index:0;backface-visibility:hidden}.swiper-creative .swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;backface-visibility:hidden;overflow:hidden}@layer components{ax-file-viewer-container{--ax-fv-stage-pad: .75rem;--ax-fv-nav-size: 2.5rem;position:relative;box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));color:rgba(var(--ax-sys-color-on-lightest-surface))}ax-file-viewer-container>.ax-file-viewer__header,ax-file-viewer-container>.ax-file-viewer__stage,ax-file-viewer-container>.ax-file-viewer__thumbs{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);background-color:rgba(var(--ax-sys-color-lightest-surface))}ax-file-viewer-container.ax-file-viewer--fullscreen{border-radius:0;background-color:rgba(var(--ax-sys-color-lightest-surface))}ax-file-viewer-container .ax-file-viewer__loading{position:absolute;inset:calc(var(--spacing, .25rem) * 0);z-index:10;display:flex;align-items:center;justify-content:center;--tw-backdrop-blur: blur(var(--blur-sm, 8px));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);background-color:rgba(var(--ax-sys-color-lightest-surface),.7)}ax-file-viewer-container .ax-file-viewer__stage--hidden,ax-file-viewer-container .ax-file-viewer__thumbs--hidden,ax-file-viewer-container .ax-file-viewer__empty--hidden{pointer-events:none;visibility:hidden}ax-file-viewer-container .ax-file-viewer__empty{box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:center;justify-content:center;overflow:hidden;padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 8)}ax-file-viewer-container .ax-file-viewer__header{box-sizing:border-box;display:grid;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3);grid-template-columns:minmax(min-content,max-content) minmax(0,1fr) auto;grid-template-areas:\"meta content actions\"}ax-file-viewer-container .ax-file-viewer__header--no-content{grid-template-columns:minmax(min-content,max-content) auto;grid-template-areas:\"meta actions\"}ax-file-viewer-container .ax-file-viewer__meta{grid-area:meta;min-width:min-content;max-width:100%;justify-self:start}ax-file-viewer-container .ax-file-viewer__header-content{display:flex;width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;grid-area:content;justify-self:stretch}ax-file-viewer-container .ax-file-viewer__title-row{display:flex;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;gap:calc(var(--spacing, .25rem) * 2)}ax-file-viewer-container .ax-file-viewer__name{overflow:hidden;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);text-overflow:ellipsis;white-space:nowrap}ax-file-viewer-container .ax-file-viewer__type-badge{flex-shrink:0}ax-file-viewer-container .ax-file-viewer__submeta{margin-top:calc(var(--spacing, .25rem) * .5);display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 1.5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));color:rgba(var(--ax-sys-color-on-surface),.65)}ax-file-viewer-container .ax-file-viewer__dot{opacity:55%}ax-file-viewer-container .ax-file-viewer__header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1.5);grid-area:actions;justify-self:end}ax-file-viewer-container .ax-file-viewer__fullscreen-wrap{display:inline-flex;align-items:center;justify-content:center}ax-file-viewer-container .ax-file-viewer__stage{position:relative;box-sizing:border-box;display:grid;min-height:calc(var(--spacing, .25rem) * 0);width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:stretch;gap:calc(var(--spacing, .25rem) * 2);grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);grid-template-areas:\"canvas\";padding:var(--ax-fv-stage-pad)}ax-file-viewer-container .ax-file-viewer__stage--nav{grid-template-columns:var(--ax-fv-nav-size) minmax(0,1fr) var(--ax-fv-nav-size);grid-template-areas:\"prev canvas next\";align-items:stretch}ax-file-viewer-container .ax-file-viewer__nav{z-index:2;align-self:center;justify-self:center;border-radius:calc(infinity * 1px)}ax-file-viewer-container .ax-file-viewer__nav.ax-disabled,ax-file-viewer-container .ax-file-viewer__nav[disabled]{cursor:not-allowed;opacity:35%;box-shadow:none!important}ax-file-viewer-container .ax-file-viewer__nav--prev{grid-area:prev}ax-file-viewer-container .ax-file-viewer__nav--next{grid-area:next}ax-file-viewer-container .ax-file-viewer__canvas{position:relative;box-sizing:border-box;height:100%;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-self:stretch;overflow:hidden;border-radius:var(--radius-2xl, 1rem);grid-area:canvas;min-height:12rem}ax-file-viewer-container .ax-file-viewer__canvas .ax-carousel,ax-file-viewer-container .ax-file-viewer__canvas .swiper{box-sizing:border-box;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);overflow:hidden}ax-file-viewer-container .ax-file-viewer__canvas .ax-carousel-wrapper,ax-file-viewer-container .ax-file-viewer__canvas .swiper-wrapper{box-sizing:border-box;height:100%;align-items:stretch}ax-file-viewer-container .ax-file-viewer__canvas .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__canvas .swiper-slide{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);align-items:stretch;justify-content:stretch;overflow:hidden}ax-file-viewer-container .ax-file-viewer__canvas img,ax-file-viewer-container .ax-file-viewer__canvas video,ax-file-viewer-container .ax-file-viewer__canvas audio,ax-file-viewer-container .ax-file-viewer__canvas iframe,ax-file-viewer-container .ax-file-viewer__canvas ax-pdf-reader{max-height:100%;max-width:100%}ax-file-viewer-container .ax-file-viewer__canvas img{-webkit-user-drag:none;pointer-events:none}ax-file-viewer-container .ax-file-viewer__overlay-counter{pointer-events:none;position:absolute;bottom:calc(var(--spacing, .25rem) * 5);left:50%;z-index:3;display:inline-flex;min-height:calc(var(--spacing, .25rem) * 6);min-width:calc(var(--spacing, .25rem) * 12);--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y);align-items:center;justify-content:center;border-radius:calc(infinity * 1px);border-style:var(--tw-border-style);border-width:1px;border-color:color-mix(in srgb,#fff 15%,transparent);background-color:color-mix(in srgb,#000 70%,transparent);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 1);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-leading: 1;line-height:1;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking: var(--tracking-wide, .025em);letter-spacing:var(--tracking-wide, .025em);color:var(--color-white, #fff);--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--tw-backdrop-blur: blur(var(--blur-md, 12px));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);text-shadow:0 1px 1px rgba(0,0,0,.35)}@supports (color: color-mix(in lab,red,red)){ax-file-viewer-container .ax-file-viewer__overlay-counter{border-color:color-mix(in oklab,var(--color-white, #fff) 15%,transparent)}}@supports (color: color-mix(in lab,red,red)){ax-file-viewer-container .ax-file-viewer__overlay-counter{background-color:color-mix(in oklab,var(--color-black, #000) 70%,transparent)}}ax-file-viewer-container .ax-file-viewer__thumbs{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex-shrink:0;overflow:hidden;border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 4);padding-top:calc(var(--spacing, .25rem) * 3);padding-bottom:calc(var(--spacing, .25rem) * 4)}ax-file-viewer-container .ax-file-viewer__thumbs-track{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);overflow:hidden}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);overflow:hidden}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-wrapper,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-wrapper{align-items:stretch}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-slide{box-sizing:border-box;height:auto;width:calc(var(--spacing, .25rem) * 28);max-width:calc(var(--spacing, .25rem) * 28);overflow:hidden}ax-file-viewer-container .ax-file-viewer__thumb{box-sizing:border-box;display:flex;width:calc(var(--spacing, .25rem) * 28);max-width:calc(var(--spacing, .25rem) * 28);cursor:pointer;flex-direction:column;overflow:hidden;border-radius:var(--radius-xl, .75rem);border-style:var(--tw-border-style);border-width:2px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}ax-file-viewer-container .ax-file-viewer__thumb:hover{border-color:rgba(var(--ax-sys-color-border-lighter-surface))}ax-file-viewer-container .ax-file-viewer__thumb.swiper-slide-thumb-active,ax-file-viewer-container .ax-file-viewer__thumb.ax-file-viewer__thumb--active{border-color:rgba(var(--ax-sys-color-success-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=video].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=video].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-primary-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=audio].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=audio].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-danger-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=document].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=document].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-warning-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=file].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=file].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-secondary-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=image] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-success-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=video] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-primary-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=audio] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-danger-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=document] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-warning-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=file] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-secondary-500))}ax-file-viewer-container .ax-file-viewer__thumb-preview{box-sizing:border-box;display:flex;aspect-ratio:1.4;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;overflow:hidden;background-color:rgba(var(--ax-sys-color-lighter-surface))}ax-file-viewer-container .ax-file-viewer__thumb-preview i{font-size:var(--text-2xl, 1.5rem);line-height:var(--tw-leading, var(--text-2xl--line-height, calc(2 / 1.5)));color:rgba(var(--ax-sys-color-on-surface),.65)}ax-file-viewer-container .ax-file-viewer__thumb-preview img{display:block;height:100%;width:100%;object-fit:cover}ax-file-viewer-container .ax-file-viewer__thumb-footer{box-sizing:border-box;display:grid;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;gap:calc(var(--spacing, .25rem) * 1);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:calc(var(--spacing, .25rem) * 1.5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));grid-template-columns:minmax(0,1fr);color:rgba(var(--ax-sys-color-on-surface),.65)}ax-file-viewer-container .ax-file-viewer__thumb-name{overflow:hidden;--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);text-overflow:ellipsis;white-space:nowrap;color:rgba(var(--ax-sys-color-on-lightest-surface))}ax-file-viewer-container .ax-carousel-pagination{display:none}ax-file-viewer-container ax-file-viewer-slide{padding:calc(var(--spacing, .25rem) * 0)}@media(max-width:768px){ax-file-viewer-container{--ax-fv-stage-pad: .5rem;--ax-fv-nav-size: 2.5rem;border-radius:var(--radius-2xl, 1rem)}ax-file-viewer-container .ax-file-viewer__header{min-width:calc(var(--spacing, .25rem) * 0);column-gap:calc(var(--spacing, .25rem) * 3);row-gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}ax-file-viewer-container .ax-file-viewer__name{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}ax-file-viewer-container .ax-file-viewer__stage--nav{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(14rem,1fr);grid-template-areas:\"canvas\";gap:0}ax-file-viewer-container .ax-file-viewer__nav{position:absolute;inset-block:0;z-index:4;grid-area:canvas;height:max-content;margin-block:auto}ax-file-viewer-container .ax-file-viewer__nav--prev{left:.35rem;justify-self:start}ax-file-viewer-container .ax-file-viewer__nav--next{right:.35rem;justify-self:end}ax-file-viewer-container .ax-file-viewer__canvas{min-height:14rem}ax-file-viewer-container .ax-file-viewer__thumbs{padding-inline:calc(var(--spacing, .25rem) * 3);padding-top:calc(var(--spacing, .25rem) * 2.5);padding-bottom:calc(var(--spacing, .25rem) * 3.5)}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-slide{width:calc(var(--spacing, .25rem) * 24);max-width:calc(var(--spacing, .25rem) * 24)}ax-file-viewer-container .ax-file-viewer__thumb{width:calc(var(--spacing, .25rem) * 24);max-width:calc(var(--spacing, .25rem) * 24)}}@media(max-width:480px){ax-file-viewer-container{border-radius:var(--radius-xl, .75rem)}ax-file-viewer-container .ax-file-viewer__type-badge{display:none}ax-file-viewer-container .ax-file-viewer__thumbs{padding:calc(var(--spacing, .25rem) * 2)}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-slide{width:calc(var(--spacing, .25rem) * 20);max-width:calc(var(--spacing, .25rem) * 20)}ax-file-viewer-container .ax-file-viewer__thumb{width:calc(var(--spacing, .25rem) * 20);max-width:calc(var(--spacing, .25rem) * 20)}}.ax-file-viewer-gallery-overlay.ax-overlay-centered{pointer-events:auto}.ax-file-viewer-gallery-overlay.ax-overlay-centered .ax-overlay-content{display:flex;height:100dvh;max-height:100dvh;width:100vw;max-width:100vw;align-items:stretch;justify-content:stretch}.ax-file-viewer-gallery-overlay.ax-overlay-centered ax-file-viewer-container{pointer-events:auto;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;border-radius:0}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-backdrop-blur{syntax: \"*\"; inherits: false;}@property --tw-backdrop-brightness{syntax: \"*\"; inherits: false;}@property --tw-backdrop-contrast{syntax: \"*\"; inherits: false;}@property --tw-backdrop-grayscale{syntax: \"*\"; inherits: false;}@property --tw-backdrop-hue-rotate{syntax: \"*\"; inherits: false;}@property --tw-backdrop-invert{syntax: \"*\"; inherits: false;}@property --tw-backdrop-opacity{syntax: \"*\"; inherits: false;}@property --tw-backdrop-saturate{syntax: \"*\"; inherits: false;}@property --tw-backdrop-sepia{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-translate-x{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-tracking{syntax: \"*\"; inherits: false;}@property --tw-ordinal{syntax: \"*\"; inherits: false;}@property --tw-slashed-zero{syntax: \"*\"; inherits: false;}@property --tw-numeric-figure{syntax: \"*\"; inherits: false;}@property --tw-numeric-spacing{syntax: \"*\"; inherits: false;}@property --tw-numeric-fraction{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial;--tw-font-weight: initial;--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-leading: initial;--tw-tracking: initial;--tw-ordinal: initial;--tw-slashed-zero: initial;--tw-numeric-figure: initial;--tw-numeric-spacing: initial;--tw-numeric-fraction: initial;--tw-duration: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXCarouselDirective, selector: "[axCarousel]", exportAs: ["axCarousel"] }, { kind: "component", type: AXFileViewerEmptyStateComponent, selector: "ax-file-viewer-empty-state" }, { kind: "component", type: AXFileViewerSlideComponent, selector: "ax-file-viewer-slide", inputs: ["item", "index", "fallbackContent", "fallbackContentInputs"] }, { kind: "component", type: AXFileViewerThumbPreviewComponent, selector: "ax-file-viewer-thumb-preview", inputs: ["item"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
516
711
|
}
|
|
517
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
712
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerContainerComponent, decorators: [{
|
|
518
713
|
type: Component,
|
|
519
714
|
args: [{ selector: 'ax-file-viewer-container', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
520
715
|
'[class.ax-file-viewer--fullscreen]': 'isFullscreenActive()',
|
|
@@ -522,6 +717,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
522
717
|
NgComponentOutlet,
|
|
523
718
|
NgTemplateOutlet,
|
|
524
719
|
AXCarouselDirective,
|
|
720
|
+
AXFileViewerEmptyStateComponent,
|
|
525
721
|
AXFileViewerSlideComponent,
|
|
526
722
|
AXFileViewerThumbPreviewComponent,
|
|
527
723
|
AXBadgeComponent,
|
|
@@ -529,8 +725,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
529
725
|
AXDecoratorIconComponent,
|
|
530
726
|
AXLoadingComponent,
|
|
531
727
|
AXTooltipDirective,
|
|
532
|
-
], template: "@if (isBusy()) {\n <div class=\"ax-file-viewer__loading\" aria-busy=\"true\" aria-live=\"polite\">\n <ax-loading></ax-loading>\n </div>\n}\n\n@if (currentItem(); as item) {\n <header\n class=\"ax-file-viewer__header\"\n [class.ax-file-viewer__header--no-content]=\"!hasHeaderCenterContent()\"\n >\n <div class=\"ax-file-viewer__meta\">\n <div class=\"ax-file-viewer__title-row\">\n <span class=\"ax-file-viewer__name\">{{ item.name || 'Untitled' }}</span>\n </div>\n <div class=\"ax-file-viewer__submeta\">\n @if (formatSize(item.size); as sizeLabel) {\n <span>{{ sizeLabel }}</span>\n <span class=\"ax-file-viewer__dot\">\u00B7</span>\n }\n <ax-badge\n class=\"ax-file-viewer__type-badge ax-pill ax-sm\"\n look=\"outline\"\n [color]=\"currentTypeColor()\"\n [text]=\"currentTypeLabel()\"\n />\n </div>\n </div>\n\n @if (hasHeaderCenterContent()) {\n <div class=\"ax-file-viewer__header-content\">\n @if (headerTemplateContent(); as template) {\n <ng-container *ngTemplateOutlet=\"template; context: headerContentContext()\" />\n } @else if (headerComponentContent(); as component) {\n <ng-container *ngComponentOutlet=\"component; inputs: headerContentInputs() ?? {}\" />\n }\n </div>\n }\n\n <div class=\"ax-file-viewer__header-actions\">\n @if (download()) {\n <ax-button\n class=\"ax-file-viewer__action-btn\"\n color=\"default\"\n [iconOnly]=\"true\"\n [axTooltip]=\"'Download'\"\n (onClick)=\"downloadCurrent()\"\n >\n <ax-icon icon=\"fa-light fa-download\"></ax-icon>\n </ax-button>\n }\n\n @if (fullscreen()) {\n <ax-button\n class=\"ax-file-viewer__action-btn ax-file-viewer__fullscreen-wrap\"\n color=\"default\"\n [iconOnly]=\"true\"\n [axTooltip]=\"isFullscreenActive() ? 'Close' : 'Fullscreen'\"\n (onClick)=\"toggleFullscreen()\"\n >\n <ax-icon [icon]=\"isFullscreenActive() ? 'fa-light fa-xmark' : 'fa-light fa-expand'\"></ax-icon>\n </ax-button>\n }\n </div>\n </header>\n}\n\n<div\n class=\"ax-file-viewer__stage\"\n [class.ax-file-viewer__stage--nav]=\"service.items().length > 1\"\n [class.ax-file-viewer__stage--hidden]=\"isBusy()\"\n>\n @if (service.items().length > 1) {\n <ax-button\n class=\"ax-file-viewer__nav ax-file-viewer__nav--prev\"\n look=\"solid\"\n color=\"default\"\n [iconOnly]=\"true\"\n [disabled]=\"isFirstSlide()\"\n (onClick)=\"prev()\"\n >\n <ax-icon icon=\"fa-light fa-chevron-left\"></ax-icon>\n </ax-button>\n }\n\n <div class=\"ax-file-viewer__canvas\">\n <div #mainCarousel=\"axCarousel\" axCarousel class=\"ax-carousel\">\n <div class=\"ax-carousel-wrapper\">\n @for (file of service.items(); track file.id) {\n <div class=\"ax-carousel-slide\">\n <ax-file-viewer-slide\n [item]=\"file\"\n [index]=\"$index\"\n [fallbackContent]=\"fallbackContent()\"\n [fallbackContentInputs]=\"fallbackContentInputs()\"\n />\n </div>\n }\n </div>\n </div>\n\n @if (service.items().length > 0) {\n <span class=\"ax-file-viewer__overlay-counter\">{{ slideCounter() }}</span>\n }\n </div>\n\n @if (service.items().length > 1) {\n <ax-button\n class=\"ax-file-viewer__nav ax-file-viewer__nav--next\"\n look=\"solid\"\n color=\"default\"\n [iconOnly]=\"true\"\n [disabled]=\"isLastSlide()\"\n (onClick)=\"next()\"\n >\n <ax-icon icon=\"fa-light fa-chevron-right\"></ax-icon>\n </ax-button>\n }\n</div>\n\n@if (thumbnail() && service.items().length > 1) {\n <footer class=\"ax-file-viewer__thumbs\" [class.ax-file-viewer__thumbs--hidden]=\"isBusy()\">\n <div class=\"ax-file-viewer__thumbs-track\">\n <div #thumbCarousel=\"axCarousel\" axCarousel class=\"ax-carousel\">\n <div class=\"ax-carousel-wrapper\">\n @for (file of service.items(); track file.id) {\n <div\n class=\"ax-carousel-slide ax-file-viewer__thumb\"\n [attr.data-type]=\"resolveFileType(file)\"\n [class.ax-file-viewer__thumb--active]=\"service.selectedIndex() === $index\"\n (click)=\"goToIndex($index)\"\n >\n <ax-file-viewer-thumb-preview [item]=\"file\" />\n <div class=\"ax-file-viewer__thumb-footer\">\n <span class=\"ax-file-viewer__thumb-name\">{{ file.name || resolveTypeLabel(file) }}</span>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </footer>\n}\n", styles: ["@layer properties;:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:\"\";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}:is(.swiper:not(.swiper-watch-progress),.swiper-watch-progress .swiper-slide-visible) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper:after{content:\"\";position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper:after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size: 44px}.swiper-button-prev,.swiper-button-next{position:absolute;width:var(--swiper-navigation-size);height:var(--swiper-navigation-size);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color, var(--swiper-theme-color))}:is(.swiper-button-prev,.swiper-button-next).swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}:is(.swiper-button-prev,.swiper-button-next).swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled :is(.swiper-button-prev,.swiper-button-next){display:none!important}:is(.swiper-button-prev,.swiper-button-next) svg{width:100%;height:100%;object-fit:contain;transform-origin:center;fill:currentColor;pointer-events:none}.swiper-button-lock{display:none}.swiper-button-prev,.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2))}.swiper-button-prev{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-button-prev .swiper-navigation-icon{transform:rotate(180deg)}.swiper-button-next{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-horizontal .swiper-button-prev,.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal~.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));margin-left:0}.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-next,.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev{right:var(--swiper-navigation-sides-offset, 4px);left:auto}:is(.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next) .swiper-navigation-icon{transform:rotate(180deg)}:is(.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(0)}.swiper-vertical .swiper-button-prev,.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-prev,.swiper-vertical~.swiper-button-next{left:var(--swiper-navigation-top-offset, 50%);right:auto;margin-left:calc(0px - (var(--swiper-navigation-size) / 2));margin-top:0}.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev{top:var(--swiper-navigation-sides-offset, 4px);bottom:auto}:is(.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(-90deg)}.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset, 4px);top:auto}:is(.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next) .swiper-navigation-icon{transform:rotate(90deg)}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets) .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets).swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets).swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets) .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets).swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets).swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius, 10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, .1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset, 1%);bottom:var(--swiper-scrollbar-bottom, 4px);top:var(--swiper-scrollbar-top, auto);z-index:50;height:var(--swiper-scrollbar-size, 4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-vertical>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-vertical{position:absolute;left:var(--swiper-scrollbar-left, auto);right:var(--swiper-scrollbar-right, 4px);top:var(--swiper-scrollbar-sides-offset, 1%);z-index:50;width:var(--swiper-scrollbar-size, 4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, .5));border-radius:var(--swiper-scrollbar-border-radius, 10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>img,.swiper-zoom-container>svg,.swiper-zoom-container>canvas{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:\"\";background:#000;position:absolute;inset:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right{z-index:0;backface-visibility:hidden}.swiper.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right{z-index:0;backface-visibility:hidden}.swiper-creative .swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;backface-visibility:hidden;overflow:hidden}@layer components{ax-file-viewer-container{--ax-fv-stage-pad: .75rem;--ax-fv-nav-size: 2.5rem;position:relative;box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-radius:var(--radius-2xl, 1rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));color:rgba(var(--ax-sys-color-on-lightest-surface));box-shadow:0 10px 30px rgba(var(--ax-sys-color-on-surface),.08)}ax-file-viewer-container>.ax-file-viewer__header,ax-file-viewer-container>.ax-file-viewer__stage,ax-file-viewer-container>.ax-file-viewer__thumbs{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);background-color:rgba(var(--ax-sys-color-lightest-surface))}ax-file-viewer-container.ax-file-viewer--fullscreen{border-radius:0;background-color:rgba(var(--ax-sys-color-lightest-surface))}ax-file-viewer-container .ax-file-viewer__loading{position:absolute;inset:calc(var(--spacing, .25rem) * 0);z-index:10;display:flex;align-items:center;justify-content:center;--tw-backdrop-blur: blur(var(--blur-sm, 8px));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);background-color:rgba(var(--ax-sys-color-lightest-surface),.7)}ax-file-viewer-container .ax-file-viewer__stage--hidden,ax-file-viewer-container .ax-file-viewer__thumbs--hidden{pointer-events:none;visibility:hidden}ax-file-viewer-container .ax-file-viewer__header{box-sizing:border-box;display:grid;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3);grid-template-columns:minmax(min-content,max-content) minmax(0,1fr) auto;grid-template-areas:\"meta content actions\"}ax-file-viewer-container .ax-file-viewer__header--no-content{grid-template-columns:minmax(min-content,max-content) auto;grid-template-areas:\"meta actions\"}ax-file-viewer-container .ax-file-viewer__meta{grid-area:meta;min-width:min-content;max-width:100%;justify-self:start}ax-file-viewer-container .ax-file-viewer__header-content{display:flex;width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;grid-area:content;justify-self:stretch}ax-file-viewer-container .ax-file-viewer__title-row{display:flex;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;gap:calc(var(--spacing, .25rem) * 2)}ax-file-viewer-container .ax-file-viewer__name{overflow:hidden;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);text-overflow:ellipsis;white-space:nowrap}ax-file-viewer-container .ax-file-viewer__type-badge{flex-shrink:0}ax-file-viewer-container .ax-file-viewer__submeta{margin-top:calc(var(--spacing, .25rem) * .5);display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 1.5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));color:rgba(var(--ax-sys-color-on-surface),.65)}ax-file-viewer-container .ax-file-viewer__dot{opacity:55%}ax-file-viewer-container .ax-file-viewer__header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1.5);grid-area:actions;justify-self:end}ax-file-viewer-container .ax-file-viewer__action-btn{width:calc(var(--spacing, .25rem) * 9);height:calc(var(--spacing, .25rem) * 9);min-width:calc(var(--spacing, .25rem) * 9);border-radius:var(--radius-xl, .75rem)}ax-file-viewer-container .ax-file-viewer__fullscreen-wrap{display:inline-flex;align-items:center;justify-content:center}ax-file-viewer-container .ax-file-viewer__stage{box-sizing:border-box;display:grid;min-height:calc(var(--spacing, .25rem) * 0);width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:stretch;gap:calc(var(--spacing, .25rem) * 2);grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);grid-template-areas:\"canvas\";padding:var(--ax-fv-stage-pad)}ax-file-viewer-container .ax-file-viewer__stage--nav{grid-template-columns:var(--ax-fv-nav-size) minmax(0,1fr) var(--ax-fv-nav-size);grid-template-areas:\"prev canvas next\";align-items:stretch}ax-file-viewer-container .ax-file-viewer__nav{z-index:2;align-self:center;justify-self:center;border-radius:calc(infinity * 1px);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));color:rgba(var(--ax-sys-color-on-lightest-surface));width:var(--ax-fv-nav-size)!important;height:var(--ax-fv-nav-size)!important;min-width:var(--ax-fv-nav-size)!important;box-shadow:0 6px 18px rgba(var(--ax-sys-color-on-surface),.12)!important}ax-file-viewer-container .ax-file-viewer__nav.ax-disabled,ax-file-viewer-container .ax-file-viewer__nav[disabled]{cursor:not-allowed;opacity:35%;box-shadow:none!important}ax-file-viewer-container .ax-file-viewer__nav--prev{grid-area:prev}ax-file-viewer-container .ax-file-viewer__nav--next{grid-area:next}ax-file-viewer-container .ax-file-viewer__canvas{position:relative;box-sizing:border-box;height:100%;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-self:stretch;overflow:hidden;border-radius:var(--radius-2xl, 1rem);grid-area:canvas;min-height:12rem}ax-file-viewer-container .ax-file-viewer__canvas .ax-carousel,ax-file-viewer-container .ax-file-viewer__canvas .swiper{box-sizing:border-box;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);overflow:hidden}ax-file-viewer-container .ax-file-viewer__canvas .ax-carousel-wrapper,ax-file-viewer-container .ax-file-viewer__canvas .swiper-wrapper{box-sizing:border-box;height:100%;align-items:stretch}ax-file-viewer-container .ax-file-viewer__canvas .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__canvas .swiper-slide{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);align-items:stretch;justify-content:stretch;overflow:hidden}ax-file-viewer-container .ax-file-viewer__canvas img,ax-file-viewer-container .ax-file-viewer__canvas video,ax-file-viewer-container .ax-file-viewer__canvas audio,ax-file-viewer-container .ax-file-viewer__canvas iframe,ax-file-viewer-container .ax-file-viewer__canvas ax-pdf-reader{max-height:100%;max-width:100%}ax-file-viewer-container .ax-file-viewer__overlay-counter{pointer-events:none;position:absolute;bottom:calc(var(--spacing, .25rem) * 5);left:50%;z-index:3;display:inline-flex;min-height:calc(var(--spacing, .25rem) * 6);min-width:calc(var(--spacing, .25rem) * 12);--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y);align-items:center;justify-content:center;border-radius:calc(infinity * 1px);border-style:var(--tw-border-style);border-width:1px;border-color:color-mix(in srgb,#fff 15%,transparent);background-color:color-mix(in srgb,#000 70%,transparent);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 1);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-leading: 1;line-height:1;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking: var(--tracking-wide, .025em);letter-spacing:var(--tracking-wide, .025em);color:var(--color-white, #fff);--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--tw-backdrop-blur: blur(var(--blur-md, 12px));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);text-shadow:0 1px 1px rgba(0,0,0,.35)}@supports (color: color-mix(in lab,red,red)){ax-file-viewer-container .ax-file-viewer__overlay-counter{border-color:color-mix(in oklab,var(--color-white, #fff) 15%,transparent)}}@supports (color: color-mix(in lab,red,red)){ax-file-viewer-container .ax-file-viewer__overlay-counter{background-color:color-mix(in oklab,var(--color-black, #000) 70%,transparent)}}ax-file-viewer-container .ax-file-viewer__thumbs{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex-shrink:0;overflow:hidden;border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 4);padding-top:calc(var(--spacing, .25rem) * 3);padding-bottom:calc(var(--spacing, .25rem) * 4)}ax-file-viewer-container .ax-file-viewer__thumbs-track{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);overflow:hidden}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);overflow:hidden}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-wrapper,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-wrapper{align-items:stretch}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-slide{box-sizing:border-box;height:auto;width:calc(var(--spacing, .25rem) * 28);max-width:calc(var(--spacing, .25rem) * 28);overflow:hidden}ax-file-viewer-container .ax-file-viewer__thumb{box-sizing:border-box;display:flex;width:calc(var(--spacing, .25rem) * 28);max-width:calc(var(--spacing, .25rem) * 28);cursor:pointer;flex-direction:column;overflow:hidden;border-radius:var(--radius-xl, .75rem);border-style:var(--tw-border-style);border-width:2px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}ax-file-viewer-container .ax-file-viewer__thumb:hover{border-color:rgba(var(--ax-sys-color-border-lighter-surface))}ax-file-viewer-container .ax-file-viewer__thumb.swiper-slide-thumb-active,ax-file-viewer-container .ax-file-viewer__thumb.ax-file-viewer__thumb--active{border-color:rgba(var(--ax-sys-color-success-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=video].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=video].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-primary-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=audio].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=audio].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-danger-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=document].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=document].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-warning-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=file].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=file].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-secondary-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=image] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-success-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=video] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-primary-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=audio] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-danger-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=document] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-warning-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=file] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-secondary-500))}ax-file-viewer-container .ax-file-viewer__thumb-preview{box-sizing:border-box;display:flex;aspect-ratio:1.4;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;overflow:hidden;background-color:rgba(var(--ax-sys-color-lighter-surface))}ax-file-viewer-container .ax-file-viewer__thumb-preview i{font-size:var(--text-2xl, 1.5rem);line-height:var(--tw-leading, var(--text-2xl--line-height, calc(2 / 1.5)));color:rgba(var(--ax-sys-color-on-surface),.65)}ax-file-viewer-container .ax-file-viewer__thumb-preview img{display:block;height:100%;width:100%;object-fit:cover}ax-file-viewer-container .ax-file-viewer__thumb-footer{box-sizing:border-box;display:grid;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;gap:calc(var(--spacing, .25rem) * 1);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:calc(var(--spacing, .25rem) * 1.5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));grid-template-columns:minmax(0,1fr);color:rgba(var(--ax-sys-color-on-surface),.65)}ax-file-viewer-container .ax-file-viewer__thumb-name{overflow:hidden;--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);text-overflow:ellipsis;white-space:nowrap;color:rgba(var(--ax-sys-color-on-lightest-surface))}ax-file-viewer-container .ax-carousel-pagination{display:none}ax-file-viewer-container ax-file-viewer-slide{padding:calc(var(--spacing, .25rem) * 0)}@media(max-width:768px){ax-file-viewer-container{--ax-fv-stage-pad: .5rem;--ax-fv-nav-size: 2.25rem;border-radius:var(--radius-2xl, 1rem)}ax-file-viewer-container .ax-file-viewer__header{min-width:calc(var(--spacing, .25rem) * 0);column-gap:calc(var(--spacing, .25rem) * 3);row-gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}ax-file-viewer-container .ax-file-viewer__name{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}ax-file-viewer-container .ax-file-viewer__action-btn{width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8);min-width:calc(var(--spacing, .25rem) * 8)}ax-file-viewer-container .ax-file-viewer__stage--nav{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(14rem,1fr) auto;grid-template-areas:\"canvas canvas\" \"prev next\";gap:calc(var(--spacing, .25rem) * 2);align-items:stretch}ax-file-viewer-container .ax-file-viewer__nav--prev{justify-self:end}ax-file-viewer-container .ax-file-viewer__nav--next{justify-self:start}ax-file-viewer-container .ax-file-viewer__canvas{min-height:14rem}ax-file-viewer-container .ax-file-viewer__thumbs{padding-inline:calc(var(--spacing, .25rem) * 3);padding-top:calc(var(--spacing, .25rem) * 2.5);padding-bottom:calc(var(--spacing, .25rem) * 3.5)}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-slide{width:calc(var(--spacing, .25rem) * 24);max-width:calc(var(--spacing, .25rem) * 24)}ax-file-viewer-container .ax-file-viewer__thumb{width:calc(var(--spacing, .25rem) * 24);max-width:calc(var(--spacing, .25rem) * 24)}}@media(max-width:480px){ax-file-viewer-container{--ax-fv-nav-size: 2rem;border-radius:var(--radius-xl, .75rem)}ax-file-viewer-container .ax-file-viewer__type-badge{display:none}ax-file-viewer-container .ax-file-viewer__thumbs{padding:calc(var(--spacing, .25rem) * 2)}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-slide{width:calc(var(--spacing, .25rem) * 20);max-width:calc(var(--spacing, .25rem) * 20)}ax-file-viewer-container .ax-file-viewer__thumb{width:calc(var(--spacing, .25rem) * 20);max-width:calc(var(--spacing, .25rem) * 20)}}.ax-file-viewer-gallery-overlay.ax-overlay-centered{pointer-events:auto}.ax-file-viewer-gallery-overlay.ax-overlay-centered .ax-overlay-content{display:flex;height:100dvh;max-height:100dvh;width:100vw;max-width:100vw;align-items:stretch;justify-content:stretch}.ax-file-viewer-gallery-overlay.ax-overlay-centered ax-file-viewer-container{pointer-events:auto;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;border-radius:0}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-backdrop-blur{syntax: \"*\"; inherits: false;}@property --tw-backdrop-brightness{syntax: \"*\"; inherits: false;}@property --tw-backdrop-contrast{syntax: \"*\"; inherits: false;}@property --tw-backdrop-grayscale{syntax: \"*\"; inherits: false;}@property --tw-backdrop-hue-rotate{syntax: \"*\"; inherits: false;}@property --tw-backdrop-invert{syntax: \"*\"; inherits: false;}@property --tw-backdrop-opacity{syntax: \"*\"; inherits: false;}@property --tw-backdrop-saturate{syntax: \"*\"; inherits: false;}@property --tw-backdrop-sepia{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-translate-x{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-tracking{syntax: \"*\"; inherits: false;}@property --tw-ordinal{syntax: \"*\"; inherits: false;}@property --tw-slashed-zero{syntax: \"*\"; inherits: false;}@property --tw-numeric-figure{syntax: \"*\"; inherits: false;}@property --tw-numeric-spacing{syntax: \"*\"; inherits: false;}@property --tw-numeric-fraction{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial;--tw-font-weight: initial;--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-leading: initial;--tw-tracking: initial;--tw-ordinal: initial;--tw-slashed-zero: initial;--tw-numeric-figure: initial;--tw-numeric-spacing: initial;--tw-numeric-fraction: initial;--tw-duration: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
533
|
-
}], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], startIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "startIndex", required: false }] }], thumbnail: [{ type: i0.Input, args: [{ isSignal: true, alias: "thumbnail", required: false }] }], pagination: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagination", required: false }] }], download: [{ type: i0.Input, args: [{ isSignal: true, alias: "download", required: false }] }], fullscreen: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullscreen", required: false }] }], galleryMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "galleryMode", required: false }] }], headerContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerContent", required: false }] }], headerContentInputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerContentInputs", required: false }] }], fallbackContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "fallbackContent", required: false }] }], fallbackContentInputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fallbackContentInputs", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], fullscreenClosed: [{ type: i0.Output, args: ["fullscreenClosed"] }], mainCarouselRef: [{ type: i0.ViewChild, args: ['mainCarousel', { isSignal: true }] }], thumbCarouselRef: [{ type: i0.ViewChild, args: ['thumbCarousel', { isSignal: true }] }] } });
|
|
728
|
+
], template: "@if (isBusy()) {\n <div class=\"ax-file-viewer__loading\" aria-busy=\"true\" aria-live=\"polite\">\n <ax-loading></ax-loading>\n </div>\n}\n\n@if (isEmpty()) {\n <div class=\"ax-file-viewer__empty\" [class.ax-file-viewer__empty--hidden]=\"isBusy()\">\n @if (emptyTemplateContent(); as template) {\n <ng-container *ngTemplateOutlet=\"template\" />\n } @else if (emptyComponentContent(); as component) {\n <ng-container *ngComponentOutlet=\"component; inputs: emptyContentInputs() ?? {}\" />\n } @else {\n <ax-file-viewer-empty-state />\n }\n </div>\n} @else {\n @if (currentItem(); as item) {\n <header class=\"ax-file-viewer__header\" [class.ax-file-viewer__header--no-content]=\"!hasHeaderCenterContent()\">\n <div class=\"ax-file-viewer__meta\">\n <div class=\"ax-file-viewer__title-row\">\n <span class=\"ax-file-viewer__name\">{{ item.name || 'Untitled' }}</span>\n </div>\n <div class=\"ax-file-viewer__submeta\">\n @if (formatSize(item.size); as sizeLabel) {\n <span>{{ sizeLabel }}</span>\n <span class=\"ax-file-viewer__dot\">\u00B7</span>\n }\n <ax-badge\n class=\"ax-file-viewer__type-badge ax-pill ax-sm\"\n look=\"outline\"\n [color]=\"currentTypeColor()\"\n [text]=\"currentTypeLabel()\"\n />\n </div>\n </div>\n\n @if (hasHeaderCenterContent()) {\n <div class=\"ax-file-viewer__header-content\">\n @if (headerTemplateContent(); as template) {\n <ng-container *ngTemplateOutlet=\"template; context: headerContentContext()\" />\n } @else if (headerComponentContent(); as component) {\n <ng-container *ngComponentOutlet=\"component; inputs: headerContentInputs() ?? {}\" />\n }\n </div>\n }\n\n <div class=\"ax-file-viewer__header-actions\">\n @for (action of resolvedHeaderActions(); track action.name ?? action.text) {\n <ax-button\n class=\"rounded-full\"\n [color]=\"action.color ?? 'default'\"\n [iconOnly]=\"!!action.icon\"\n [disabled]=\"action.disabled\"\n [axTooltip]=\"action.title ?? action.text\"\n (onClick)=\"onHeaderActionClick(action, $event)\"\n >\n @if (action.isLoading) {\n <ax-loading></ax-loading>\n } @else if (action.icon) {\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n } @else {\n {{ action.text }}\n }\n </ax-button>\n }\n </div>\n </header>\n }\n\n <div\n class=\"ax-file-viewer__stage\"\n [class.ax-file-viewer__stage--nav]=\"service.items().length > 1\"\n [class.ax-file-viewer__stage--hidden]=\"isBusy()\"\n >\n @if (service.items().length > 1) {\n <ax-button\n look=\"solid\"\n class=\"ax-file-viewer__nav ax-file-viewer__nav--prev\"\n color=\"default\"\n [iconOnly]=\"true\"\n [disabled]=\"isFirstSlide()\"\n (onClick)=\"prev()\"\n >\n <ax-icon icon=\"fa-light fa-chevron-left\"></ax-icon>\n </ax-button>\n }\n\n <div class=\"ax-file-viewer__canvas\">\n <div #mainCarousel=\"axCarousel\" axCarousel class=\"ax-carousel\">\n <div class=\"ax-carousel-wrapper\">\n @for (file of service.items(); track file.id) {\n <div class=\"ax-carousel-slide\">\n <ax-file-viewer-slide\n [item]=\"file\"\n [index]=\"$index\"\n [fallbackContent]=\"fallbackContent()\"\n [fallbackContentInputs]=\"fallbackContentInputs()\"\n />\n </div>\n }\n </div>\n </div>\n\n @if (service.items().length > 0) {\n <span class=\"ax-file-viewer__overlay-counter\">{{ slideCounter() }}</span>\n }\n </div>\n\n @if (service.items().length > 1) {\n <ax-button\n class=\"ax-file-viewer__nav ax-file-viewer__nav--next\"\n look=\"solid\"\n color=\"default\"\n [iconOnly]=\"true\"\n [disabled]=\"isLastSlide()\"\n (onClick)=\"next()\"\n >\n <ax-icon icon=\"fa-light fa-chevron-right\"></ax-icon>\n </ax-button>\n }\n </div>\n\n @if (thumbnail() && service.items().length > 1) {\n <footer class=\"ax-file-viewer__thumbs\" [class.ax-file-viewer__thumbs--hidden]=\"isBusy()\">\n <div class=\"ax-file-viewer__thumbs-track\">\n <div #thumbCarousel=\"axCarousel\" axCarousel class=\"ax-carousel\">\n <div class=\"ax-carousel-wrapper\">\n @for (file of service.items(); track file.id) {\n <div\n class=\"ax-carousel-slide ax-file-viewer__thumb\"\n [attr.data-type]=\"resolveFileType(file)\"\n (click)=\"goToIndex($index)\"\n >\n <ax-file-viewer-thumb-preview [item]=\"file\" />\n <div class=\"ax-file-viewer__thumb-footer\">\n <span class=\"ax-file-viewer__thumb-name\">{{ file.name || resolveTypeLabel(file) }}</span>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </footer>\n }\n}\n", styles: ["@layer properties;:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:\"\";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}:is(.swiper:not(.swiper-watch-progress),.swiper-watch-progress .swiper-slide-visible) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper:after{content:\"\";position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper:after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size: 44px}.swiper-button-prev,.swiper-button-next{position:absolute;width:var(--swiper-navigation-size);height:var(--swiper-navigation-size);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color, var(--swiper-theme-color))}:is(.swiper-button-prev,.swiper-button-next).swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}:is(.swiper-button-prev,.swiper-button-next).swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled :is(.swiper-button-prev,.swiper-button-next){display:none!important}:is(.swiper-button-prev,.swiper-button-next) svg{width:100%;height:100%;object-fit:contain;transform-origin:center;fill:currentColor;pointer-events:none}.swiper-button-lock{display:none}.swiper-button-prev,.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2))}.swiper-button-prev{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-button-prev .swiper-navigation-icon{transform:rotate(180deg)}.swiper-button-next{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-horizontal .swiper-button-prev,.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal~.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));margin-left:0}.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-next,.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev{right:var(--swiper-navigation-sides-offset, 4px);left:auto}:is(.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next) .swiper-navigation-icon{transform:rotate(180deg)}:is(.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(0)}.swiper-vertical .swiper-button-prev,.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-prev,.swiper-vertical~.swiper-button-next{left:var(--swiper-navigation-top-offset, 50%);right:auto;margin-left:calc(0px - (var(--swiper-navigation-size) / 2));margin-top:0}.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev{top:var(--swiper-navigation-sides-offset, 4px);bottom:auto}:is(.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(-90deg)}.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset, 4px);top:auto}:is(.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next) .swiper-navigation-icon{transform:rotate(90deg)}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets) .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets).swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets).swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets) .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets).swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets).swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius, 10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, .1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset, 1%);bottom:var(--swiper-scrollbar-bottom, 4px);top:var(--swiper-scrollbar-top, auto);z-index:50;height:var(--swiper-scrollbar-size, 4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-vertical>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-vertical{position:absolute;left:var(--swiper-scrollbar-left, auto);right:var(--swiper-scrollbar-right, 4px);top:var(--swiper-scrollbar-sides-offset, 1%);z-index:50;width:var(--swiper-scrollbar-size, 4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, .5));border-radius:var(--swiper-scrollbar-border-radius, 10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>img,.swiper-zoom-container>svg,.swiper-zoom-container>canvas{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:\"\";background:#000;position:absolute;inset:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right{z-index:0;backface-visibility:hidden}.swiper.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right{z-index:0;backface-visibility:hidden}.swiper-creative .swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;backface-visibility:hidden;overflow:hidden}@layer components{ax-file-viewer-container{--ax-fv-stage-pad: .75rem;--ax-fv-nav-size: 2.5rem;position:relative;box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));color:rgba(var(--ax-sys-color-on-lightest-surface))}ax-file-viewer-container>.ax-file-viewer__header,ax-file-viewer-container>.ax-file-viewer__stage,ax-file-viewer-container>.ax-file-viewer__thumbs{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);background-color:rgba(var(--ax-sys-color-lightest-surface))}ax-file-viewer-container.ax-file-viewer--fullscreen{border-radius:0;background-color:rgba(var(--ax-sys-color-lightest-surface))}ax-file-viewer-container .ax-file-viewer__loading{position:absolute;inset:calc(var(--spacing, .25rem) * 0);z-index:10;display:flex;align-items:center;justify-content:center;--tw-backdrop-blur: blur(var(--blur-sm, 8px));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);background-color:rgba(var(--ax-sys-color-lightest-surface),.7)}ax-file-viewer-container .ax-file-viewer__stage--hidden,ax-file-viewer-container .ax-file-viewer__thumbs--hidden,ax-file-viewer-container .ax-file-viewer__empty--hidden{pointer-events:none;visibility:hidden}ax-file-viewer-container .ax-file-viewer__empty{box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:center;justify-content:center;overflow:hidden;padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 8)}ax-file-viewer-container .ax-file-viewer__header{box-sizing:border-box;display:grid;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3);grid-template-columns:minmax(min-content,max-content) minmax(0,1fr) auto;grid-template-areas:\"meta content actions\"}ax-file-viewer-container .ax-file-viewer__header--no-content{grid-template-columns:minmax(min-content,max-content) auto;grid-template-areas:\"meta actions\"}ax-file-viewer-container .ax-file-viewer__meta{grid-area:meta;min-width:min-content;max-width:100%;justify-self:start}ax-file-viewer-container .ax-file-viewer__header-content{display:flex;width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;grid-area:content;justify-self:stretch}ax-file-viewer-container .ax-file-viewer__title-row{display:flex;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;gap:calc(var(--spacing, .25rem) * 2)}ax-file-viewer-container .ax-file-viewer__name{overflow:hidden;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);text-overflow:ellipsis;white-space:nowrap}ax-file-viewer-container .ax-file-viewer__type-badge{flex-shrink:0}ax-file-viewer-container .ax-file-viewer__submeta{margin-top:calc(var(--spacing, .25rem) * .5);display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 1.5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));color:rgba(var(--ax-sys-color-on-surface),.65)}ax-file-viewer-container .ax-file-viewer__dot{opacity:55%}ax-file-viewer-container .ax-file-viewer__header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1.5);grid-area:actions;justify-self:end}ax-file-viewer-container .ax-file-viewer__fullscreen-wrap{display:inline-flex;align-items:center;justify-content:center}ax-file-viewer-container .ax-file-viewer__stage{position:relative;box-sizing:border-box;display:grid;min-height:calc(var(--spacing, .25rem) * 0);width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:stretch;gap:calc(var(--spacing, .25rem) * 2);grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);grid-template-areas:\"canvas\";padding:var(--ax-fv-stage-pad)}ax-file-viewer-container .ax-file-viewer__stage--nav{grid-template-columns:var(--ax-fv-nav-size) minmax(0,1fr) var(--ax-fv-nav-size);grid-template-areas:\"prev canvas next\";align-items:stretch}ax-file-viewer-container .ax-file-viewer__nav{z-index:2;align-self:center;justify-self:center;border-radius:calc(infinity * 1px)}ax-file-viewer-container .ax-file-viewer__nav.ax-disabled,ax-file-viewer-container .ax-file-viewer__nav[disabled]{cursor:not-allowed;opacity:35%;box-shadow:none!important}ax-file-viewer-container .ax-file-viewer__nav--prev{grid-area:prev}ax-file-viewer-container .ax-file-viewer__nav--next{grid-area:next}ax-file-viewer-container .ax-file-viewer__canvas{position:relative;box-sizing:border-box;height:100%;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-self:stretch;overflow:hidden;border-radius:var(--radius-2xl, 1rem);grid-area:canvas;min-height:12rem}ax-file-viewer-container .ax-file-viewer__canvas .ax-carousel,ax-file-viewer-container .ax-file-viewer__canvas .swiper{box-sizing:border-box;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);overflow:hidden}ax-file-viewer-container .ax-file-viewer__canvas .ax-carousel-wrapper,ax-file-viewer-container .ax-file-viewer__canvas .swiper-wrapper{box-sizing:border-box;height:100%;align-items:stretch}ax-file-viewer-container .ax-file-viewer__canvas .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__canvas .swiper-slide{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);align-items:stretch;justify-content:stretch;overflow:hidden}ax-file-viewer-container .ax-file-viewer__canvas img,ax-file-viewer-container .ax-file-viewer__canvas video,ax-file-viewer-container .ax-file-viewer__canvas audio,ax-file-viewer-container .ax-file-viewer__canvas iframe,ax-file-viewer-container .ax-file-viewer__canvas ax-pdf-reader{max-height:100%;max-width:100%}ax-file-viewer-container .ax-file-viewer__canvas img{-webkit-user-drag:none;pointer-events:none}ax-file-viewer-container .ax-file-viewer__overlay-counter{pointer-events:none;position:absolute;bottom:calc(var(--spacing, .25rem) * 5);left:50%;z-index:3;display:inline-flex;min-height:calc(var(--spacing, .25rem) * 6);min-width:calc(var(--spacing, .25rem) * 12);--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y);align-items:center;justify-content:center;border-radius:calc(infinity * 1px);border-style:var(--tw-border-style);border-width:1px;border-color:color-mix(in srgb,#fff 15%,transparent);background-color:color-mix(in srgb,#000 70%,transparent);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 1);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-leading: 1;line-height:1;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking: var(--tracking-wide, .025em);letter-spacing:var(--tracking-wide, .025em);color:var(--color-white, #fff);--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--tw-backdrop-blur: blur(var(--blur-md, 12px));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);text-shadow:0 1px 1px rgba(0,0,0,.35)}@supports (color: color-mix(in lab,red,red)){ax-file-viewer-container .ax-file-viewer__overlay-counter{border-color:color-mix(in oklab,var(--color-white, #fff) 15%,transparent)}}@supports (color: color-mix(in lab,red,red)){ax-file-viewer-container .ax-file-viewer__overlay-counter{background-color:color-mix(in oklab,var(--color-black, #000) 70%,transparent)}}ax-file-viewer-container .ax-file-viewer__thumbs{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex-shrink:0;overflow:hidden;border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 4);padding-top:calc(var(--spacing, .25rem) * 3);padding-bottom:calc(var(--spacing, .25rem) * 4)}ax-file-viewer-container .ax-file-viewer__thumbs-track{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);overflow:hidden}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper{box-sizing:border-box;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);overflow:hidden}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-wrapper,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-wrapper{align-items:stretch}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-slide{box-sizing:border-box;height:auto;width:calc(var(--spacing, .25rem) * 28);max-width:calc(var(--spacing, .25rem) * 28);overflow:hidden}ax-file-viewer-container .ax-file-viewer__thumb{box-sizing:border-box;display:flex;width:calc(var(--spacing, .25rem) * 28);max-width:calc(var(--spacing, .25rem) * 28);cursor:pointer;flex-direction:column;overflow:hidden;border-radius:var(--radius-xl, .75rem);border-style:var(--tw-border-style);border-width:2px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}ax-file-viewer-container .ax-file-viewer__thumb:hover{border-color:rgba(var(--ax-sys-color-border-lighter-surface))}ax-file-viewer-container .ax-file-viewer__thumb.swiper-slide-thumb-active,ax-file-viewer-container .ax-file-viewer__thumb.ax-file-viewer__thumb--active{border-color:rgba(var(--ax-sys-color-success-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=video].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=video].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-primary-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=audio].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=audio].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-danger-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=document].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=document].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-warning-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=file].ax-file-viewer__thumb--active,ax-file-viewer-container .ax-file-viewer__thumb[data-type=file].swiper-slide-thumb-active{border-color:rgba(var(--ax-sys-color-secondary-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=image] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-success-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=video] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-primary-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=audio] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-danger-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=document] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-warning-500))}ax-file-viewer-container .ax-file-viewer__thumb[data-type=file] .ax-file-viewer__thumb-preview i{color:rgba(var(--ax-sys-color-secondary-500))}ax-file-viewer-container .ax-file-viewer__thumb-preview{box-sizing:border-box;display:flex;aspect-ratio:1.4;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;overflow:hidden;background-color:rgba(var(--ax-sys-color-lighter-surface))}ax-file-viewer-container .ax-file-viewer__thumb-preview i{font-size:var(--text-2xl, 1.5rem);line-height:var(--tw-leading, var(--text-2xl--line-height, calc(2 / 1.5)));color:rgba(var(--ax-sys-color-on-surface),.65)}ax-file-viewer-container .ax-file-viewer__thumb-preview img{display:block;height:100%;width:100%;object-fit:cover}ax-file-viewer-container .ax-file-viewer__thumb-footer{box-sizing:border-box;display:grid;width:100%;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;gap:calc(var(--spacing, .25rem) * 1);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:calc(var(--spacing, .25rem) * 1.5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));grid-template-columns:minmax(0,1fr);color:rgba(var(--ax-sys-color-on-surface),.65)}ax-file-viewer-container .ax-file-viewer__thumb-name{overflow:hidden;--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);text-overflow:ellipsis;white-space:nowrap;color:rgba(var(--ax-sys-color-on-lightest-surface))}ax-file-viewer-container .ax-carousel-pagination{display:none}ax-file-viewer-container ax-file-viewer-slide{padding:calc(var(--spacing, .25rem) * 0)}@media(max-width:768px){ax-file-viewer-container{--ax-fv-stage-pad: .5rem;--ax-fv-nav-size: 2.5rem;border-radius:var(--radius-2xl, 1rem)}ax-file-viewer-container .ax-file-viewer__header{min-width:calc(var(--spacing, .25rem) * 0);column-gap:calc(var(--spacing, .25rem) * 3);row-gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}ax-file-viewer-container .ax-file-viewer__name{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}ax-file-viewer-container .ax-file-viewer__stage--nav{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(14rem,1fr);grid-template-areas:\"canvas\";gap:0}ax-file-viewer-container .ax-file-viewer__nav{position:absolute;inset-block:0;z-index:4;grid-area:canvas;height:max-content;margin-block:auto}ax-file-viewer-container .ax-file-viewer__nav--prev{left:.35rem;justify-self:start}ax-file-viewer-container .ax-file-viewer__nav--next{right:.35rem;justify-self:end}ax-file-viewer-container .ax-file-viewer__canvas{min-height:14rem}ax-file-viewer-container .ax-file-viewer__thumbs{padding-inline:calc(var(--spacing, .25rem) * 3);padding-top:calc(var(--spacing, .25rem) * 2.5);padding-bottom:calc(var(--spacing, .25rem) * 3.5)}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-slide{width:calc(var(--spacing, .25rem) * 24);max-width:calc(var(--spacing, .25rem) * 24)}ax-file-viewer-container .ax-file-viewer__thumb{width:calc(var(--spacing, .25rem) * 24);max-width:calc(var(--spacing, .25rem) * 24)}}@media(max-width:480px){ax-file-viewer-container{border-radius:var(--radius-xl, .75rem)}ax-file-viewer-container .ax-file-viewer__type-badge{display:none}ax-file-viewer-container .ax-file-viewer__thumbs{padding:calc(var(--spacing, .25rem) * 2)}ax-file-viewer-container .ax-file-viewer__thumbs-track .ax-carousel-slide,ax-file-viewer-container .ax-file-viewer__thumbs-track .swiper-slide{width:calc(var(--spacing, .25rem) * 20);max-width:calc(var(--spacing, .25rem) * 20)}ax-file-viewer-container .ax-file-viewer__thumb{width:calc(var(--spacing, .25rem) * 20);max-width:calc(var(--spacing, .25rem) * 20)}}.ax-file-viewer-gallery-overlay.ax-overlay-centered{pointer-events:auto}.ax-file-viewer-gallery-overlay.ax-overlay-centered .ax-overlay-content{display:flex;height:100dvh;max-height:100dvh;width:100vw;max-width:100vw;align-items:stretch;justify-content:stretch}.ax-file-viewer-gallery-overlay.ax-overlay-centered ax-file-viewer-container{pointer-events:auto;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;border-radius:0}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-backdrop-blur{syntax: \"*\"; inherits: false;}@property --tw-backdrop-brightness{syntax: \"*\"; inherits: false;}@property --tw-backdrop-contrast{syntax: \"*\"; inherits: false;}@property --tw-backdrop-grayscale{syntax: \"*\"; inherits: false;}@property --tw-backdrop-hue-rotate{syntax: \"*\"; inherits: false;}@property --tw-backdrop-invert{syntax: \"*\"; inherits: false;}@property --tw-backdrop-opacity{syntax: \"*\"; inherits: false;}@property --tw-backdrop-saturate{syntax: \"*\"; inherits: false;}@property --tw-backdrop-sepia{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-translate-x{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-tracking{syntax: \"*\"; inherits: false;}@property --tw-ordinal{syntax: \"*\"; inherits: false;}@property --tw-slashed-zero{syntax: \"*\"; inherits: false;}@property --tw-numeric-figure{syntax: \"*\"; inherits: false;}@property --tw-numeric-spacing{syntax: \"*\"; inherits: false;}@property --tw-numeric-fraction{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial;--tw-font-weight: initial;--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-leading: initial;--tw-tracking: initial;--tw-ordinal: initial;--tw-slashed-zero: initial;--tw-numeric-figure: initial;--tw-numeric-spacing: initial;--tw-numeric-fraction: initial;--tw-duration: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
729
|
+
}], ctorParameters: () => [], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], startIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "startIndex", required: false }] }], thumbnail: [{ type: i0.Input, args: [{ isSignal: true, alias: "thumbnail", required: false }] }], pagination: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagination", required: false }] }], download: [{ type: i0.Input, args: [{ isSignal: true, alias: "download", required: false }] }], fullscreen: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullscreen", required: false }] }], headerActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerActions", required: false }] }], galleryMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "galleryMode", required: false }] }], headerContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerContent", required: false }] }], headerContentInputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerContentInputs", required: false }] }], fallbackContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "fallbackContent", required: false }] }], fallbackContentInputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fallbackContentInputs", required: false }] }], emptyContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyContent", required: false }] }], emptyContentInputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyContentInputs", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], headerActionClick: [{ type: i0.Output, args: ["headerActionClick"] }], fullscreenClosed: [{ type: i0.Output, args: ["fullscreenClosed"] }], mainCarouselRef: [{ type: i0.ViewChild, args: ['mainCarousel', { isSignal: true }] }], thumbCarouselRef: [{ type: i0.ViewChild, args: ['thumbCarousel', { isSignal: true }] }] } });
|
|
534
730
|
|
|
535
731
|
/** Opens {@link AXFileViewerContainerComponent} in fullscreen gallery mode. */
|
|
536
732
|
class AXFileViewerGalleryService {
|
|
@@ -635,12 +831,15 @@ class AXFileViewerGalleryService {
|
|
|
635
831
|
thumbnail: config.thumbnail ?? true,
|
|
636
832
|
download: config.download ?? true,
|
|
637
833
|
fullscreen: true,
|
|
834
|
+
headerActions: config.headerActions ?? [],
|
|
638
835
|
galleryMode: true,
|
|
639
836
|
loading: config.loading ?? false,
|
|
640
837
|
headerContent: config.headerContent ?? null,
|
|
641
838
|
headerContentInputs: config.headerContentInputs ?? null,
|
|
642
839
|
fallbackContent: config.fallbackContent ?? null,
|
|
643
840
|
fallbackContentInputs: config.fallbackContentInputs ?? null,
|
|
841
|
+
emptyContent: config.emptyContent ?? null,
|
|
842
|
+
emptyContentInputs: config.emptyContentInputs ?? null,
|
|
644
843
|
},
|
|
645
844
|
});
|
|
646
845
|
const componentRef = overlayRef.instance;
|
|
@@ -651,10 +850,10 @@ class AXFileViewerGalleryService {
|
|
|
651
850
|
this.galleryList.set(randomId, { overlay: overlayRef, gallery: returnRef, closedSub });
|
|
652
851
|
return returnRef;
|
|
653
852
|
}
|
|
654
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
655
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.
|
|
853
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerGalleryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
854
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerGalleryService, providedIn: 'root' }); }
|
|
656
855
|
}
|
|
657
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
856
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerGalleryService, decorators: [{
|
|
658
857
|
type: Injectable,
|
|
659
858
|
args: [{ providedIn: 'root' }]
|
|
660
859
|
}] });
|
|
@@ -713,12 +912,12 @@ class AXFileViewerHeaderPlaceholderComponent {
|
|
|
713
912
|
this.slideCounter = input('0 / 0', /* @ts-ignore */
|
|
714
913
|
...(ngDevMode ? [{ debugName: "slideCounter" }] : /* istanbul ignore next */ []));
|
|
715
914
|
}
|
|
716
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
717
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.
|
|
915
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerHeaderPlaceholderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
916
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: AXFileViewerHeaderPlaceholderComponent, isStandalone: true, selector: "ax-file-viewer-header-placeholder", inputs: { slideCounter: { classPropertyName: "slideCounter", publicName: "slideCounter", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
718
917
|
<span class="ax-file-viewer__header-placeholder">{{ slideCounter() }}</span>
|
|
719
918
|
`, isInline: true, styles: ["@layer properties;@layer components{ax-file-viewer-header-placeholder{display:flex;width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center}ax-file-viewer-header-placeholder .ax-file-viewer__header-placeholder{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);white-space:nowrap;color:rgba(var(--ax-sys-color-on-surface),.65)}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
720
919
|
}
|
|
721
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
920
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerHeaderPlaceholderComponent, decorators: [{
|
|
722
921
|
type: Component,
|
|
723
922
|
args: [{ selector: 'ax-file-viewer-header-placeholder', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
|
|
724
923
|
<span class="ax-file-viewer__header-placeholder">{{ slideCounter() }}</span>
|
|
@@ -746,8 +945,8 @@ class AXFileViewerThumbnailsComponent {
|
|
|
746
945
|
}), /* @ts-ignore */
|
|
747
946
|
...(ngDevMode ? [{ debugName: "thumbnails" }] : /* istanbul ignore next */ []));
|
|
748
947
|
}
|
|
749
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
750
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
948
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerThumbnailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
949
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXFileViewerThumbnailsComponent, isStandalone: true, selector: "ax-file-viewer-thumbnails", ngImport: i0, template: `
|
|
751
950
|
<div class="ax-file-viewer-thumbnails">
|
|
752
951
|
@for (thumb of thumbnails(); track thumb.id) {
|
|
753
952
|
<button
|
|
@@ -761,7 +960,7 @@ class AXFileViewerThumbnailsComponent {
|
|
|
761
960
|
</div>
|
|
762
961
|
`, isInline: true, styles: ["@layer properties;@layer components{ax-file-viewer-thumbnails{display:block}ax-file-viewer-thumbnails .ax-file-viewer-thumbnails{display:flex;flex-wrap:wrap;justify-content:center;gap:calc(var(--spacing, .25rem) * 2);padding:calc(var(--spacing, .25rem) * 2)}ax-file-viewer-thumbnails .ax-file-viewer-thumb{display:flex;width:calc(var(--spacing, .25rem) * 12);height:calc(var(--spacing, .25rem) * 12);cursor:pointer;align-items:center;justify-content:center;border-radius:var(--ax-sys-border-radius);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:transparent;font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)));color:rgba(var(--ax-sys-color-on-surface));opacity:50%;transition-property:opacity;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s}ax-file-viewer-thumbnails .ax-file-viewer-thumb--active{border-color:rgba(var(--ax-sys-color-primary-surface));opacity:100%}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-duration: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
763
962
|
}
|
|
764
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
963
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerThumbnailsComponent, decorators: [{
|
|
765
964
|
type: Component,
|
|
766
965
|
args: [{ selector: 'ax-file-viewer-thumbnails', encapsulation: ViewEncapsulation.None, template: `
|
|
767
966
|
<div class="ax-file-viewer-thumbnails">
|
|
@@ -778,6 +977,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
778
977
|
`, styles: ["@layer properties;@layer components{ax-file-viewer-thumbnails{display:block}ax-file-viewer-thumbnails .ax-file-viewer-thumbnails{display:flex;flex-wrap:wrap;justify-content:center;gap:calc(var(--spacing, .25rem) * 2);padding:calc(var(--spacing, .25rem) * 2)}ax-file-viewer-thumbnails .ax-file-viewer-thumb{display:flex;width:calc(var(--spacing, .25rem) * 12);height:calc(var(--spacing, .25rem) * 12);cursor:pointer;align-items:center;justify-content:center;border-radius:var(--ax-sys-border-radius);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:transparent;font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)));color:rgba(var(--ax-sys-color-on-surface));opacity:50%;transition-property:opacity;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s}ax-file-viewer-thumbnails .ax-file-viewer-thumb--active{border-color:rgba(var(--ax-sys-color-primary-surface));opacity:100%}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-duration: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
779
978
|
}] });
|
|
780
979
|
|
|
980
|
+
/** Load the active slide and its neighbors so swipe transitions have content ready. */
|
|
981
|
+
function shouldLoadViewerSlide(payload, selectedIndex, distance = 1) {
|
|
982
|
+
return Math.abs(payload.index - selectedIndex) <= distance;
|
|
983
|
+
}
|
|
984
|
+
|
|
781
985
|
class AXFileViewerImageComponent {
|
|
782
986
|
constructor() {
|
|
783
987
|
this.payload = input.required(/* @ts-ignore */
|
|
@@ -787,37 +991,44 @@ class AXFileViewerImageComponent {
|
|
|
787
991
|
...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
|
|
788
992
|
this.loading = signal(false, /* @ts-ignore */
|
|
789
993
|
...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
994
|
+
this.loadedId = null;
|
|
790
995
|
this.#resolve = effect(() => {
|
|
791
996
|
const p = this.payload();
|
|
792
|
-
if (p.
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
997
|
+
if (!shouldLoadViewerSlide(p, this.service.selectedIndex()))
|
|
998
|
+
return;
|
|
999
|
+
if (this.loadedId === p.item.id && untracked(() => this.src()))
|
|
1000
|
+
return;
|
|
1001
|
+
const itemId = p.item.id;
|
|
1002
|
+
this.loading.set(this.loadedId !== itemId || !untracked(() => this.src()));
|
|
1003
|
+
void this.service
|
|
1004
|
+
.resolveUrl(p.item, 'url')
|
|
1005
|
+
.then((url) => {
|
|
1006
|
+
this.loadedId = itemId;
|
|
1007
|
+
this.src.set(url ?? null);
|
|
1008
|
+
})
|
|
1009
|
+
.finally(() => this.loading.set(false));
|
|
799
1010
|
}, /* @ts-ignore */
|
|
800
1011
|
...(ngDevMode ? [{ debugName: "#resolve" }] : /* istanbul ignore next */ []));
|
|
801
1012
|
}
|
|
802
1013
|
#resolve;
|
|
803
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
804
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
1014
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1015
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXFileViewerImageComponent, isStandalone: true, selector: "ax-file-viewer-image", inputs: { payload: { classPropertyName: "payload", publicName: "payload", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
805
1016
|
@if (loading()) {
|
|
806
1017
|
<ax-loading></ax-loading>
|
|
807
1018
|
} @else if (src()) {
|
|
808
|
-
<img [src]="src()" [alt]="payload().item.name ?? 'Image'" />
|
|
1019
|
+
<img [src]="src()" [alt]="payload().item.name ?? 'Image'" draggable="false" />
|
|
809
1020
|
}
|
|
810
|
-
`, isInline: true, styles: ["@layer components{ax-file-viewer-image{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 3)}ax-file-viewer-image img{height:100%;max-height:100%;width:100%;max-width:100%;border-radius:var(--radius-xl, .75rem);object-fit:contain}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1021
|
+
`, isInline: true, styles: ["@layer components{ax-file-viewer-image{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 3)}ax-file-viewer-image img{height:100%;max-height:100%;width:100%;max-width:100%;border-radius:var(--radius-xl, .75rem);object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:none}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
811
1022
|
}
|
|
812
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1023
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerImageComponent, decorators: [{
|
|
813
1024
|
type: Component,
|
|
814
1025
|
args: [{ selector: 'ax-file-viewer-image', encapsulation: ViewEncapsulation.None, imports: [AXLoadingComponent], template: `
|
|
815
1026
|
@if (loading()) {
|
|
816
1027
|
<ax-loading></ax-loading>
|
|
817
1028
|
} @else if (src()) {
|
|
818
|
-
<img [src]="src()" [alt]="payload().item.name ?? 'Image'" />
|
|
1029
|
+
<img [src]="src()" [alt]="payload().item.name ?? 'Image'" draggable="false" />
|
|
819
1030
|
}
|
|
820
|
-
`, styles: ["@layer components{ax-file-viewer-image{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 3)}ax-file-viewer-image img{height:100%;max-height:100%;width:100%;max-width:100%;border-radius:var(--radius-xl, .75rem);object-fit:contain}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
1031
|
+
`, styles: ["@layer components{ax-file-viewer-image{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 3)}ax-file-viewer-image img{height:100%;max-height:100%;width:100%;max-width:100%;border-radius:var(--radius-xl, .75rem);object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:none}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
821
1032
|
}], propDecorators: { payload: [{ type: i0.Input, args: [{ isSignal: true, alias: "payload", required: true }] }] } });
|
|
822
1033
|
|
|
823
1034
|
var imageViewer_component = /*#__PURE__*/Object.freeze({
|
|
@@ -830,42 +1041,59 @@ class AXFileViewerVideoComponent {
|
|
|
830
1041
|
this.payload = input.required(/* @ts-ignore */
|
|
831
1042
|
...(ngDevMode ? [{ debugName: "payload" }] : /* istanbul ignore next */ []));
|
|
832
1043
|
this.service = inject(AXFileViewerService);
|
|
1044
|
+
this.mediaEl = viewChild('mediaEl', /* @ts-ignore */
|
|
1045
|
+
...(ngDevMode ? [{ debugName: "mediaEl" }] : /* istanbul ignore next */ []));
|
|
833
1046
|
this.src = signal(null, /* @ts-ignore */
|
|
834
1047
|
...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
|
|
835
1048
|
this.loading = signal(false, /* @ts-ignore */
|
|
836
1049
|
...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
1050
|
+
this.loadedId = null;
|
|
837
1051
|
this.#resolve = effect(() => {
|
|
838
1052
|
const p = this.payload();
|
|
839
|
-
if (p.
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
1053
|
+
if (!shouldLoadViewerSlide(p, this.service.selectedIndex()))
|
|
1054
|
+
return;
|
|
1055
|
+
if (this.loadedId === p.item.id && untracked(() => this.src()))
|
|
1056
|
+
return;
|
|
1057
|
+
const itemId = p.item.id;
|
|
1058
|
+
this.loading.set(this.loadedId !== itemId || !untracked(() => this.src()));
|
|
1059
|
+
void this.service
|
|
1060
|
+
.resolveUrl(p.item, 'url')
|
|
1061
|
+
.then((url) => {
|
|
1062
|
+
this.loadedId = itemId;
|
|
1063
|
+
this.src.set(url ?? null);
|
|
1064
|
+
})
|
|
1065
|
+
.finally(() => this.loading.set(false));
|
|
846
1066
|
}, /* @ts-ignore */
|
|
847
1067
|
...(ngDevMode ? [{ debugName: "#resolve" }] : /* istanbul ignore next */ []));
|
|
1068
|
+
this.#pauseInactive = effect(() => {
|
|
1069
|
+
const media = this.mediaEl()?.nativeElement;
|
|
1070
|
+
if (media && !this.payload().active) {
|
|
1071
|
+
media.pause();
|
|
1072
|
+
}
|
|
1073
|
+
}, /* @ts-ignore */
|
|
1074
|
+
...(ngDevMode ? [{ debugName: "#pauseInactive" }] : /* istanbul ignore next */ []));
|
|
848
1075
|
}
|
|
849
1076
|
#resolve;
|
|
850
|
-
|
|
851
|
-
static { this.ɵ
|
|
1077
|
+
#pauseInactive;
|
|
1078
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerVideoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1079
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXFileViewerVideoComponent, isStandalone: true, selector: "ax-file-viewer-video", inputs: { payload: { classPropertyName: "payload", publicName: "payload", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "mediaEl", first: true, predicate: ["mediaEl"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
852
1080
|
@if (loading()) {
|
|
853
1081
|
<ax-loading></ax-loading>
|
|
854
1082
|
} @else if (src()) {
|
|
855
|
-
<video controls [src]="src()"></video>
|
|
1083
|
+
<video #mediaEl controls preload="metadata" [src]="src()" [draggable]="false"></video>
|
|
856
1084
|
}
|
|
857
|
-
`, isInline: true, styles: ["@layer components{ax-file-viewer-video{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 3)}ax-file-viewer-video video{height:100%;max-height:100%;width:100%;max-width:100%;border-radius:var(--radius-xl, .75rem);background-color:rgba(var(--ax-sys-color-dark-surface));object-fit:contain}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1085
|
+
`, isInline: true, styles: ["@layer components{ax-file-viewer-video{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 3)}ax-file-viewer-video video{height:100%;max-height:100%;width:100%;max-width:100%;border-radius:var(--radius-xl, .75rem);background-color:rgba(var(--ax-sys-color-dark-surface));object-fit:contain;-webkit-user-drag:none}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
858
1086
|
}
|
|
859
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1087
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerVideoComponent, decorators: [{
|
|
860
1088
|
type: Component,
|
|
861
1089
|
args: [{ selector: 'ax-file-viewer-video', encapsulation: ViewEncapsulation.None, imports: [AXLoadingComponent], template: `
|
|
862
1090
|
@if (loading()) {
|
|
863
1091
|
<ax-loading></ax-loading>
|
|
864
1092
|
} @else if (src()) {
|
|
865
|
-
<video controls [src]="src()"></video>
|
|
1093
|
+
<video #mediaEl controls preload="metadata" [src]="src()" [draggable]="false"></video>
|
|
866
1094
|
}
|
|
867
|
-
`, styles: ["@layer components{ax-file-viewer-video{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 3)}ax-file-viewer-video video{height:100%;max-height:100%;width:100%;max-width:100%;border-radius:var(--radius-xl, .75rem);background-color:rgba(var(--ax-sys-color-dark-surface));object-fit:contain}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
868
|
-
}], propDecorators: { payload: [{ type: i0.Input, args: [{ isSignal: true, alias: "payload", required: true }] }] } });
|
|
1095
|
+
`, styles: ["@layer components{ax-file-viewer-video{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 3)}ax-file-viewer-video video{height:100%;max-height:100%;width:100%;max-width:100%;border-radius:var(--radius-xl, .75rem);background-color:rgba(var(--ax-sys-color-dark-surface));object-fit:contain;-webkit-user-drag:none}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
1096
|
+
}], propDecorators: { payload: [{ type: i0.Input, args: [{ isSignal: true, alias: "payload", required: true }] }], mediaEl: [{ type: i0.ViewChild, args: ['mediaEl', { isSignal: true }] }] } });
|
|
869
1097
|
|
|
870
1098
|
var videoViewer_component = /*#__PURE__*/Object.freeze({
|
|
871
1099
|
__proto__: null,
|
|
@@ -877,42 +1105,59 @@ class AXFileViewerAudioComponent {
|
|
|
877
1105
|
this.payload = input.required(/* @ts-ignore */
|
|
878
1106
|
...(ngDevMode ? [{ debugName: "payload" }] : /* istanbul ignore next */ []));
|
|
879
1107
|
this.service = inject(AXFileViewerService);
|
|
1108
|
+
this.mediaEl = viewChild('mediaEl', /* @ts-ignore */
|
|
1109
|
+
...(ngDevMode ? [{ debugName: "mediaEl" }] : /* istanbul ignore next */ []));
|
|
880
1110
|
this.src = signal(null, /* @ts-ignore */
|
|
881
1111
|
...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
|
|
882
1112
|
this.loading = signal(false, /* @ts-ignore */
|
|
883
1113
|
...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
1114
|
+
this.loadedId = null;
|
|
884
1115
|
this.#resolve = effect(() => {
|
|
885
1116
|
const p = this.payload();
|
|
886
|
-
if (p.
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
1117
|
+
if (!shouldLoadViewerSlide(p, this.service.selectedIndex()))
|
|
1118
|
+
return;
|
|
1119
|
+
if (this.loadedId === p.item.id && untracked(() => this.src()))
|
|
1120
|
+
return;
|
|
1121
|
+
const itemId = p.item.id;
|
|
1122
|
+
this.loading.set(this.loadedId !== itemId || !untracked(() => this.src()));
|
|
1123
|
+
void this.service
|
|
1124
|
+
.resolveUrl(p.item, 'url')
|
|
1125
|
+
.then((url) => {
|
|
1126
|
+
this.loadedId = itemId;
|
|
1127
|
+
this.src.set(url ?? null);
|
|
1128
|
+
})
|
|
1129
|
+
.finally(() => this.loading.set(false));
|
|
893
1130
|
}, /* @ts-ignore */
|
|
894
1131
|
...(ngDevMode ? [{ debugName: "#resolve" }] : /* istanbul ignore next */ []));
|
|
1132
|
+
this.#pauseInactive = effect(() => {
|
|
1133
|
+
const media = this.mediaEl()?.nativeElement;
|
|
1134
|
+
if (media && !this.payload().active) {
|
|
1135
|
+
media.pause();
|
|
1136
|
+
}
|
|
1137
|
+
}, /* @ts-ignore */
|
|
1138
|
+
...(ngDevMode ? [{ debugName: "#pauseInactive" }] : /* istanbul ignore next */ []));
|
|
895
1139
|
}
|
|
896
1140
|
#resolve;
|
|
897
|
-
|
|
898
|
-
static { this.ɵ
|
|
1141
|
+
#pauseInactive;
|
|
1142
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerAudioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1143
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXFileViewerAudioComponent, isStandalone: true, selector: "ax-file-viewer-audio", inputs: { payload: { classPropertyName: "payload", publicName: "payload", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "mediaEl", first: true, predicate: ["mediaEl"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
899
1144
|
@if (loading()) {
|
|
900
1145
|
<ax-loading></ax-loading>
|
|
901
1146
|
} @else if (src()) {
|
|
902
|
-
<audio controls [src]="src()"></audio>
|
|
1147
|
+
<audio #mediaEl controls preload="metadata" [src]="src()"></audio>
|
|
903
1148
|
}
|
|
904
1149
|
`, isInline: true, styles: ["@layer components{ax-file-viewer-audio{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 4)}ax-file-viewer-audio audio{width:100%;max-width:var(--container-2xl, 42rem);min-width:calc(var(--spacing, .25rem) * 0)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
905
1150
|
}
|
|
906
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerAudioComponent, decorators: [{
|
|
907
1152
|
type: Component,
|
|
908
1153
|
args: [{ selector: 'ax-file-viewer-audio', encapsulation: ViewEncapsulation.None, imports: [AXLoadingComponent], template: `
|
|
909
1154
|
@if (loading()) {
|
|
910
1155
|
<ax-loading></ax-loading>
|
|
911
1156
|
} @else if (src()) {
|
|
912
|
-
<audio controls [src]="src()"></audio>
|
|
1157
|
+
<audio #mediaEl controls preload="metadata" [src]="src()"></audio>
|
|
913
1158
|
}
|
|
914
1159
|
`, styles: ["@layer components{ax-file-viewer-audio{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 4)}ax-file-viewer-audio audio{width:100%;max-width:var(--container-2xl, 42rem);min-width:calc(var(--spacing, .25rem) * 0)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
915
|
-
}], propDecorators: { payload: [{ type: i0.Input, args: [{ isSignal: true, alias: "payload", required: true }] }] } });
|
|
1160
|
+
}], propDecorators: { payload: [{ type: i0.Input, args: [{ isSignal: true, alias: "payload", required: true }] }], mediaEl: [{ type: i0.ViewChild, args: ['mediaEl', { isSignal: true }] }] } });
|
|
916
1161
|
|
|
917
1162
|
var audioViewer_component = /*#__PURE__*/Object.freeze({
|
|
918
1163
|
__proto__: null,
|
|
@@ -929,23 +1174,28 @@ class AXFileViewerPdfComponent {
|
|
|
929
1174
|
...(ngDevMode ? [{ debugName: "safeSrc" }] : /* istanbul ignore next */ []));
|
|
930
1175
|
this.loading = signal(false, /* @ts-ignore */
|
|
931
1176
|
...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
1177
|
+
this.loadedId = null;
|
|
932
1178
|
this.#resolve = effect(() => {
|
|
933
1179
|
const p = this.payload();
|
|
934
|
-
if (p.
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
1180
|
+
if (!shouldLoadViewerSlide(p, this.service.selectedIndex()))
|
|
1181
|
+
return;
|
|
1182
|
+
if (this.loadedId === p.item.id && untracked(() => this.safeSrc()))
|
|
1183
|
+
return;
|
|
1184
|
+
const itemId = p.item.id;
|
|
1185
|
+
this.loading.set(this.loadedId !== itemId || !untracked(() => this.safeSrc()));
|
|
1186
|
+
void this.service
|
|
1187
|
+
.resolveUrl(p.item, 'url')
|
|
1188
|
+
.then((url) => {
|
|
1189
|
+
this.loadedId = itemId;
|
|
1190
|
+
this.safeSrc.set(url ? this.sanitizer.bypassSecurityTrustResourceUrl(url) : null);
|
|
1191
|
+
})
|
|
1192
|
+
.finally(() => this.loading.set(false));
|
|
943
1193
|
}, /* @ts-ignore */
|
|
944
1194
|
...(ngDevMode ? [{ debugName: "#resolve" }] : /* istanbul ignore next */ []));
|
|
945
1195
|
}
|
|
946
1196
|
#resolve;
|
|
947
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
948
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
1197
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerPdfComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1198
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXFileViewerPdfComponent, isStandalone: true, selector: "ax-file-viewer-pdf", inputs: { payload: { classPropertyName: "payload", publicName: "payload", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
949
1199
|
@if (loading()) {
|
|
950
1200
|
<ax-loading></ax-loading>
|
|
951
1201
|
} @else if (safeSrc()) {
|
|
@@ -953,7 +1203,7 @@ class AXFileViewerPdfComponent {
|
|
|
953
1203
|
}
|
|
954
1204
|
`, isInline: true, styles: ["@layer components{ax-file-viewer-pdf{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);padding:calc(var(--spacing, .25rem) * 2)}ax-file-viewer-pdf ax-pdf-reader{display:block;height:100%;width:100%}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: AXPdfReaderComponent, selector: "ax-pdf-reader", inputs: ["src"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
955
1205
|
}
|
|
956
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1206
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerPdfComponent, decorators: [{
|
|
957
1207
|
type: Component,
|
|
958
1208
|
args: [{ selector: 'ax-file-viewer-pdf', encapsulation: ViewEncapsulation.None, imports: [AXLoadingComponent, AXPdfReaderComponent], template: `
|
|
959
1209
|
@if (loading()) {
|
|
@@ -976,8 +1226,8 @@ class AXFileViewerFileFallbackComponent {
|
|
|
976
1226
|
this.name = computed(() => this.payload().item.name, /* @ts-ignore */
|
|
977
1227
|
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
978
1228
|
}
|
|
979
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
980
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
1229
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerFileFallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1230
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXFileViewerFileFallbackComponent, isStandalone: true, selector: "ax-file-viewer-fallback", inputs: { payload: { classPropertyName: "payload", publicName: "payload", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
981
1231
|
<div class="ax-file-viewer-fallback">
|
|
982
1232
|
<i class="fa-light fa-file ax-file-viewer-fallback__icon"></i>
|
|
983
1233
|
@if (name()) {
|
|
@@ -986,7 +1236,7 @@ class AXFileViewerFileFallbackComponent {
|
|
|
986
1236
|
</div>
|
|
987
1237
|
`, isInline: true, styles: ["@layer components{ax-file-viewer-fallback{box-sizing:border-box;display:flex;height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:100%;min-width:calc(var(--spacing, .25rem) * 0);align-items:center;justify-content:center}ax-file-viewer-fallback .ax-file-viewer-fallback{display:flex;flex-direction:column;align-items:center;gap:calc(var(--spacing, .25rem) * 2);color:inherit;opacity:85%}ax-file-viewer-fallback .ax-file-viewer-fallback__icon{font-size:var(--text-5xl, 3rem);line-height:var(--tw-leading, var(--text-5xl--line-height, 1));opacity:.55}ax-file-viewer-fallback .ax-file-viewer-fallback__name{max-width:calc(var(--spacing, .25rem) * 80);overflow:hidden;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));text-overflow:ellipsis;white-space:nowrap;opacity:75%}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
988
1238
|
}
|
|
989
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXFileViewerFileFallbackComponent, decorators: [{
|
|
990
1240
|
type: Component,
|
|
991
1241
|
args: [{ selector: 'ax-file-viewer-fallback', encapsulation: ViewEncapsulation.None, template: `
|
|
992
1242
|
<div class="ax-file-viewer-fallback">
|
|
@@ -1007,5 +1257,5 @@ var fileFallbackViewer_component = /*#__PURE__*/Object.freeze({
|
|
|
1007
1257
|
* Generated bundle index. Do not edit.
|
|
1008
1258
|
*/
|
|
1009
1259
|
|
|
1010
|
-
export { AXFileViewerAudioComponent, AXFileViewerContainerComponent, AXFileViewerFileFallbackComponent, AXFileViewerGalleryService, AXFileViewerHeaderPlaceholderComponent, AXFileViewerImageComponent, AXFileViewerPdfComponent, AXFileViewerService, AXFileViewerSlideComponent, AXFileViewerThumbPreviewComponent, AXFileViewerThumbnailsComponent, AXFileViewerVideoComponent, buildFileViewerExtensionHint, createFileViewerFileTypes, provideFileViewer, resolveFileViewerFileType };
|
|
1260
|
+
export { AXFileViewerAudioComponent, AXFileViewerContainerComponent, AXFileViewerEmptyStateComponent, AXFileViewerFileFallbackComponent, AXFileViewerGalleryService, AXFileViewerHeaderPlaceholderComponent, AXFileViewerImageComponent, AXFileViewerPdfComponent, AXFileViewerService, AXFileViewerSlideComponent, AXFileViewerThumbPreviewComponent, AXFileViewerThumbnailsComponent, AXFileViewerVideoComponent, buildFileViewerExtensionHint, createFileViewerFileTypes, provideFileViewer, resolveFileViewerFileType };
|
|
1011
1261
|
//# sourceMappingURL=acorex-components-file-viewer.mjs.map
|