@acorex-platform/module-document-management-client 0.0.21
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/fesm2022/acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-LQjccofO.mjs +7849 -0
- package/fesm2022/acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-LQjccofO.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-attachment-view-skeleton.component-CEC9HdMa.mjs +27 -0
- package/fesm2022/acorex-platform-module-document-management-client-attachment-view-skeleton.component-CEC9HdMa.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-attachment-widget.component-CBpWl_FH.mjs +36 -0
- package/fesm2022/acorex-platform-module-document-management-client-attachment-widget.component-CBpWl_FH.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-contracts.mjs +313 -0
- package/fesm2022/acorex-platform-module-document-management-client-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-drive-choose.component-Deduhl99.mjs +250 -0
- package/fesm2022/acorex-platform-module-document-management-client-drive-choose.component-Deduhl99.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-large-icons-view-skeleton.component-wZG913_E.mjs +27 -0
- package/fesm2022/acorex-platform-module-document-management-client-large-icons-view-skeleton.component-wZG913_E.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-large-icons-view.component-Bv5JFRtL.mjs +30 -0
- package/fesm2022/acorex-platform-module-document-management-client-large-icons-view.component-Bv5JFRtL.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-large-tiles-view.component-DTEIhPcT.mjs +35 -0
- package/fesm2022/acorex-platform-module-document-management-client-large-tiles-view.component-DTEIhPcT.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-link-dialog.component-DXwE55QU.mjs +68 -0
- package/fesm2022/acorex-platform-module-document-management-client-link-dialog.component-DXwE55QU.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-list-view-skeleton.component-C3-7rgTu.mjs +27 -0
- package/fesm2022/acorex-platform-module-document-management-client-list-view-skeleton.component-C3-7rgTu.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-list-view.component-_r7VP4i8.mjs +30 -0
- package/fesm2022/acorex-platform-module-document-management-client-list-view.component-_r7VP4i8.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-open-document.command-BbMZf6zo.mjs +96 -0
- package/fesm2022/acorex-platform-module-document-management-client-open-document.command-BbMZf6zo.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-share-dialog.component-D0D75M7u.mjs +143 -0
- package/fesm2022/acorex-platform-module-document-management-client-share-dialog.component-D0D75M7u.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-share-email-dialog.component-CTP-r-4w.mjs +54 -0
- package/fesm2022/acorex-platform-module-document-management-client-share-email-dialog.component-CTP-r-4w.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-small-icons-view-skeleton.component-Dskk_B96.mjs +27 -0
- package/fesm2022/acorex-platform-module-document-management-client-small-icons-view-skeleton.component-Dskk_B96.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-small-icons-view.component-RMDX74O9.mjs +30 -0
- package/fesm2022/acorex-platform-module-document-management-client-small-icons-view.component-RMDX74O9.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DQW2VZJH.mjs +27 -0
- package/fesm2022/acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DQW2VZJH.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-small-tiles-view.component-BT6fRWVH.mjs +35 -0
- package/fesm2022/acorex-platform-module-document-management-client-small-tiles-view.component-BT6fRWVH.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-upload-document.command-CFFOw4gM.mjs +88 -0
- package/fesm2022/acorex-platform-module-document-management-client-upload-document.command-CFFOw4gM.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client.mjs +3 -0
- package/fesm2022/acorex-platform-module-document-management-client.mjs.map +1 -0
- package/package.json +28 -0
- package/types/acorex-platform-module-document-management-client-contracts.d.ts +375 -0
- package/types/acorex-platform-module-document-management-client.d.ts +2401 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as i1 from '@acorex/components/skeleton';
|
|
2
|
+
import { AXSkeletonModule } from '@acorex/components/skeleton';
|
|
3
|
+
import * as i3 from '@acorex/core/translation';
|
|
4
|
+
import { AXTranslationModule } from '@acorex/core/translation';
|
|
5
|
+
import * as i1$1 from '@angular/common';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import * as i0 from '@angular/core';
|
|
8
|
+
import { inject, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
9
|
+
import { A as AXPDocumentExplorerViewModel } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-LQjccofO.mjs';
|
|
10
|
+
|
|
11
|
+
class AXMDocumentExplorerSmallIconsViewSkeletonComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.vm = inject(AXPDocumentExplorerViewModel);
|
|
14
|
+
this.folderPlaceholders = [0, 1, 2];
|
|
15
|
+
this.filePlaceholders = [0, 1];
|
|
16
|
+
this.flatPlaceholders = [0, 1, 2, 3, 4];
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerSmallIconsViewSkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMDocumentExplorerSmallIconsViewSkeletonComponent, isStandalone: true, selector: "axm-document-explorer-small-icons-view-skeleton", ngImport: i0, template: "@if (vm.groupByType()) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.folders' | translate | async }}</h3>\n </div>\n <div class=\"__content\">\n @for (item of folderPlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n </div>\n }\n </div>\n </div>\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.files' | translate | async }}</h3>\n </div>\n <div class=\"__content\">\n @for (item of filePlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n </div>\n }\n </div>\n </div>\n} @else {\n <div class=\"__content\">\n @for (item of flatPlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n </div>\n }\n </div>\n}\n", styles: ["@layer properties;:host{display:block;width:100%}:host .__section{margin-bottom:calc(var(--spacing, .25rem) * 8);width:100%}:host .__section:last-child{margin-bottom:0}:host .__section .__header .__title{margin-bottom:calc(var(--spacing, .25rem) * 4);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}:host .__content{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:calc(var(--spacing, .25rem) * 2)}:host .__item{display:flex;flex-direction:column;align-items:center;gap:var(--spacing, .25rem);padding:calc(var(--spacing, .25rem) * 2)}:host .__icon{height:calc(var(--spacing, .25rem) * 8);width:calc(var(--spacing, .25rem) * 8);border-radius:.25rem}:host .__name{height:calc(var(--spacing, .25rem) * 3);width:100%;border-radius:.25rem}@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.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i1.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerSmallIconsViewSkeletonComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'axm-document-explorer-small-icons-view-skeleton', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXSkeletonModule, AXTranslationModule], template: "@if (vm.groupByType()) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.folders' | translate | async }}</h3>\n </div>\n <div class=\"__content\">\n @for (item of folderPlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n </div>\n }\n </div>\n </div>\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.files' | translate | async }}</h3>\n </div>\n <div class=\"__content\">\n @for (item of filePlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n </div>\n }\n </div>\n </div>\n} @else {\n <div class=\"__content\">\n @for (item of flatPlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n </div>\n }\n </div>\n}\n", styles: ["@layer properties;:host{display:block;width:100%}:host .__section{margin-bottom:calc(var(--spacing, .25rem) * 8);width:100%}:host .__section:last-child{margin-bottom:0}:host .__section .__header .__title{margin-bottom:calc(var(--spacing, .25rem) * 4);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}:host .__content{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:calc(var(--spacing, .25rem) * 2)}:host .__item{display:flex;flex-direction:column;align-items:center;gap:var(--spacing, .25rem);padding:calc(var(--spacing, .25rem) * 2)}:host .__icon{height:calc(var(--spacing, .25rem) * 8);width:calc(var(--spacing, .25rem) * 8);border-radius:.25rem}:host .__name{height:calc(var(--spacing, .25rem) * 3);width:100%;border-radius:.25rem}@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.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
24
|
+
}] });
|
|
25
|
+
|
|
26
|
+
export { AXMDocumentExplorerSmallIconsViewSkeletonComponent };
|
|
27
|
+
//# sourceMappingURL=acorex-platform-module-document-management-client-small-icons-view-skeleton.component-Dskk_B96.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-document-management-client-small-icons-view-skeleton.component-Dskk_B96.mjs","sources":["../../../../libs/modules/document-management/client/src/lib/features/document-explorer/views/small-icons/small-icons-view-skeleton.component.ts","../../../../libs/modules/document-management/client/src/lib/features/document-explorer/views/small-icons/small-icons-view-skeleton.component.html"],"sourcesContent":["import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { AXPDocumentExplorerViewModel } from '../../document-explorer.viewmodel';\n\n@Component({\n selector: 'axm-document-explorer-small-icons-view-skeleton',\n templateUrl: './small-icons-view-skeleton.component.html',\n styleUrl: './small-icons-view-skeleton.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXSkeletonModule, AXTranslationModule],\n})\nexport class AXMDocumentExplorerSmallIconsViewSkeletonComponent {\n protected readonly vm = inject(AXPDocumentExplorerViewModel);\n\n protected readonly folderPlaceholders = [0, 1, 2];\n protected readonly filePlaceholders = [0, 1];\n protected readonly flatPlaceholders = [0, 1, 2, 3, 4];\n}\n","@if (vm.groupByType()) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.folders' | translate | async }}</h3>\n </div>\n <div class=\"__content\">\n @for (item of folderPlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n </div>\n }\n </div>\n </div>\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.files' | translate | async }}</h3>\n </div>\n <div class=\"__content\">\n @for (item of filePlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n </div>\n }\n </div>\n </div>\n} @else {\n <div class=\"__content\">\n @for (item of flatPlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n </div>\n }\n </div>\n}\n"],"names":["i2"],"mappings":";;;;;;;;;;MAaa,kDAAkD,CAAA;AAP/D,IAAA,WAAA,GAAA;AAQqB,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,4BAA4B,CAAC;QAEzC,IAAA,CAAA,kBAAkB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA;8GANY,kDAAkD,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kDAAkD,2GCb/D,+xCAqCA,EAAA,MAAA,EAAA,CAAA,suCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1BY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,kIAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAElD,kDAAkD,EAAA,UAAA,EAAA,CAAA;kBAP9D,SAAS;+BACE,iDAAiD,EAAA,eAAA,EAG1C,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,+xCAAA,EAAA,MAAA,EAAA,CAAA,suCAAA,CAAA,EAAA;;;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { AXPElementDataDirective, AXPDblClickDirective } from '@acorex-platform/framework-client/core';
|
|
6
|
+
import { A as AXPDocumentExplorerViewModel, a as AXMDocumentExpirationBadgeComponent, b as AXMFolderExpirationBadgesComponent } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-LQjccofO.mjs';
|
|
7
|
+
import * as i3 from '@acorex/core/translation';
|
|
8
|
+
import { AXTranslationModule } from '@acorex/core/translation';
|
|
9
|
+
|
|
10
|
+
class AXMDocumentExplorerSmallIconsViewComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.vm = inject(AXPDocumentExplorerViewModel);
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerSmallIconsViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMDocumentExplorerSmallIconsViewComponent, isStandalone: true, selector: "axm-document-explorer-small-icons-view", ngImport: i0, template: "@if (vm.groupByType()) {\n @if (vm.filteredFolders().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.folders' | translate | async }}</h3>\n </div>\n <div class=\"__content fa-2x\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div class=\"__icon\" [style.color]=\"vm.getFolderColor(folder)\" [class.__shortcut]=\"folderDisplay.isShortcut\">\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i class=\"__shortcut-arrow fa-light fa-up-right-from-square\" aria-hidden=\"true\"></i>\n }\n </div>\n <div class=\"inline-flex max-w-full items-center justify-center gap-1\">\n <div class=\"__name\">{{ folder.name }}</div>\n <!-- ----- Expiration counts after folder name ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.filteredFiles().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.files' | translate | async }}</h3>\n </div>\n <div class=\"__content fa-2x\">\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon\" [class.__shortcut]=\"fileDisplay.isShortcut\">\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i class=\"__shortcut-arrow fa-light fa-up-right-from-square\" aria-hidden=\"true\"></i>\n }\n <axm-document-expiration-badge class=\"__expiration-badge\" [node]=\"file\" />\n </div>\n <div class=\"__name\">{{ file.name }}</div>\n </div>\n }\n </div>\n </div>\n }\n} @else {\n <div class=\"__content fa-2x\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div class=\"__icon\" [style.color]=\"vm.getFolderColor(folder)\" [class.__shortcut]=\"folderDisplay.isShortcut\">\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i class=\"__shortcut-arrow fa-light fa-up-right-from-square\" aria-hidden=\"true\"></i>\n }\n </div>\n <div class=\"inline-flex max-w-full items-center justify-center gap-1\">\n <div class=\"__name\">{{ folder.name }}</div>\n <!-- ----- Expiration counts after folder name ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n </div>\n }\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon\" [class.__shortcut]=\"fileDisplay.isShortcut\">\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i class=\"__shortcut-arrow fa-light fa-up-right-from-square\" aria-hidden=\"true\"></i>\n }\n <axm-document-expiration-badge class=\"__expiration-badge\" [node]=\"file\" />\n </div>\n <div class=\"__name\">{{ file.name }}</div>\n </div>\n }\n </div>\n}\n", styles: ["@layer properties;:host{width:100%}:host .__section{margin-bottom:calc(var(--spacing, .25rem) * 8);width:100%}:host .__section:last-child{margin-bottom:0}:host .__section .__header .__title{margin-bottom:calc(var(--spacing, .25rem) * 4);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}:host .__content{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:calc(var(--spacing, .25rem) * 2)}:host .__content .__explorer-item{display:flex;cursor:pointer;flex-direction:column;align-items:center;gap:var(--spacing, .25rem);border-radius:var(--radius-md, .375rem);padding:calc(var(--spacing, .25rem) * 2);text-align:center}:host .__content .__explorer-item:hover{background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light)}:host .__content .__explorer-item .__icon.__shortcut .__shortcut-arrow{position:absolute;bottom:0;right:0;font-size:.5em;opacity:.9}:host .__content .__explorer-item .__icon{position:relative;display:inline-flex;flex-shrink:0}:host .__content .__explorer-item .__icon .__expiration-badge{position:absolute;top:-.35rem;right:-.75rem;font-size:.7rem;z-index:1}:host .__content .__explorer-item .__name{width:100%;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:3.6em}:host .__content .__explorer-item.--selected{background-color:var(--color-darker);color:var(--color-on-darker);border-color:var(--color-border-darker)}@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.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: AXPElementDataDirective, selector: "[axp-data]", inputs: ["axp-data", "axp-data-path"] }, { kind: "directive", type: AXPDblClickDirective, selector: "[onDblClick]", outputs: ["onDblClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXMDocumentExpirationBadgeComponent, selector: "axm-document-expiration-badge", inputs: ["node"] }, { kind: "component", type: AXMFolderExpirationBadgesComponent, selector: "axm-folder-expiration-badges", inputs: ["node"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerSmallIconsViewComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'axm-document-explorer-small-icons-view', standalone: true, changeDetection: ChangeDetectionStrategy.Eager, imports: [
|
|
20
|
+
CommonModule,
|
|
21
|
+
AXPElementDataDirective,
|
|
22
|
+
AXPDblClickDirective,
|
|
23
|
+
AXTranslationModule,
|
|
24
|
+
AXMDocumentExpirationBadgeComponent,
|
|
25
|
+
AXMFolderExpirationBadgesComponent,
|
|
26
|
+
], template: "@if (vm.groupByType()) {\n @if (vm.filteredFolders().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.folders' | translate | async }}</h3>\n </div>\n <div class=\"__content fa-2x\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div class=\"__icon\" [style.color]=\"vm.getFolderColor(folder)\" [class.__shortcut]=\"folderDisplay.isShortcut\">\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i class=\"__shortcut-arrow fa-light fa-up-right-from-square\" aria-hidden=\"true\"></i>\n }\n </div>\n <div class=\"inline-flex max-w-full items-center justify-center gap-1\">\n <div class=\"__name\">{{ folder.name }}</div>\n <!-- ----- Expiration counts after folder name ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.filteredFiles().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.files' | translate | async }}</h3>\n </div>\n <div class=\"__content fa-2x\">\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon\" [class.__shortcut]=\"fileDisplay.isShortcut\">\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i class=\"__shortcut-arrow fa-light fa-up-right-from-square\" aria-hidden=\"true\"></i>\n }\n <axm-document-expiration-badge class=\"__expiration-badge\" [node]=\"file\" />\n </div>\n <div class=\"__name\">{{ file.name }}</div>\n </div>\n }\n </div>\n </div>\n }\n} @else {\n <div class=\"__content fa-2x\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div class=\"__icon\" [style.color]=\"vm.getFolderColor(folder)\" [class.__shortcut]=\"folderDisplay.isShortcut\">\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i class=\"__shortcut-arrow fa-light fa-up-right-from-square\" aria-hidden=\"true\"></i>\n }\n </div>\n <div class=\"inline-flex max-w-full items-center justify-center gap-1\">\n <div class=\"__name\">{{ folder.name }}</div>\n <!-- ----- Expiration counts after folder name ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n </div>\n }\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon\" [class.__shortcut]=\"fileDisplay.isShortcut\">\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i class=\"__shortcut-arrow fa-light fa-up-right-from-square\" aria-hidden=\"true\"></i>\n }\n <axm-document-expiration-badge class=\"__expiration-badge\" [node]=\"file\" />\n </div>\n <div class=\"__name\">{{ file.name }}</div>\n </div>\n }\n </div>\n}\n", styles: ["@layer properties;:host{width:100%}:host .__section{margin-bottom:calc(var(--spacing, .25rem) * 8);width:100%}:host .__section:last-child{margin-bottom:0}:host .__section .__header .__title{margin-bottom:calc(var(--spacing, .25rem) * 4);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}:host .__content{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:calc(var(--spacing, .25rem) * 2)}:host .__content .__explorer-item{display:flex;cursor:pointer;flex-direction:column;align-items:center;gap:var(--spacing, .25rem);border-radius:var(--radius-md, .375rem);padding:calc(var(--spacing, .25rem) * 2);text-align:center}:host .__content .__explorer-item:hover{background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light)}:host .__content .__explorer-item .__icon.__shortcut .__shortcut-arrow{position:absolute;bottom:0;right:0;font-size:.5em;opacity:.9}:host .__content .__explorer-item .__icon{position:relative;display:inline-flex;flex-shrink:0}:host .__content .__explorer-item .__icon .__expiration-badge{position:absolute;top:-.35rem;right:-.75rem;font-size:.7rem;z-index:1}:host .__content .__explorer-item .__name{width:100%;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:3.6em}:host .__content .__explorer-item.--selected{background-color:var(--color-darker);color:var(--color-on-darker);border-color:var(--color-border-darker)}@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.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
27
|
+
}] });
|
|
28
|
+
|
|
29
|
+
export { AXMDocumentExplorerSmallIconsViewComponent };
|
|
30
|
+
//# sourceMappingURL=acorex-platform-module-document-management-client-small-icons-view.component-RMDX74O9.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-document-management-client-small-icons-view.component-RMDX74O9.mjs","sources":["../../../../libs/modules/document-management/client/src/lib/features/document-explorer/views/small-icons/small-icons-view.component.ts","../../../../libs/modules/document-management/client/src/lib/features/document-explorer/views/small-icons/small-icons-view.component.html"],"sourcesContent":["import { Component, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AXPDblClickDirective, AXPElementDataDirective } from '@acorex-platform/framework-client/core';\nimport { AXPDocumentExplorerViewModel } from '../../document-explorer.viewmodel';\n\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXMDocumentExpirationBadgeComponent } from '../../../shared/components/document-expiration-badge/document-expiration-badge.component';\nimport { AXMFolderExpirationBadgesComponent } from '../../../shared/components/folder-expiration-badges/folder-expiration-badges.component';\n\n@Component({\n selector: 'axm-document-explorer-small-icons-view',\n templateUrl: './small-icons-view.component.html',\n styleUrls: ['./small-icons-view.component.css'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [\n CommonModule,\n AXPElementDataDirective,\n AXPDblClickDirective,\n AXTranslationModule,\n AXMDocumentExpirationBadgeComponent,\n AXMFolderExpirationBadgesComponent,\n ],\n})\nexport class AXMDocumentExplorerSmallIconsViewComponent {\n protected vm = inject(AXPDocumentExplorerViewModel);\n} ","@if (vm.groupByType()) {\n @if (vm.filteredFolders().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.folders' | translate | async }}</h3>\n </div>\n <div class=\"__content fa-2x\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div class=\"__icon\" [style.color]=\"vm.getFolderColor(folder)\" [class.__shortcut]=\"folderDisplay.isShortcut\">\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i class=\"__shortcut-arrow fa-light fa-up-right-from-square\" aria-hidden=\"true\"></i>\n }\n </div>\n <div class=\"inline-flex max-w-full items-center justify-center gap-1\">\n <div class=\"__name\">{{ folder.name }}</div>\n <!-- ----- Expiration counts after folder name ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.filteredFiles().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.files' | translate | async }}</h3>\n </div>\n <div class=\"__content fa-2x\">\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon\" [class.__shortcut]=\"fileDisplay.isShortcut\">\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i class=\"__shortcut-arrow fa-light fa-up-right-from-square\" aria-hidden=\"true\"></i>\n }\n <axm-document-expiration-badge class=\"__expiration-badge\" [node]=\"file\" />\n </div>\n <div class=\"__name\">{{ file.name }}</div>\n </div>\n }\n </div>\n </div>\n }\n} @else {\n <div class=\"__content fa-2x\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div class=\"__icon\" [style.color]=\"vm.getFolderColor(folder)\" [class.__shortcut]=\"folderDisplay.isShortcut\">\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i class=\"__shortcut-arrow fa-light fa-up-right-from-square\" aria-hidden=\"true\"></i>\n }\n </div>\n <div class=\"inline-flex max-w-full items-center justify-center gap-1\">\n <div class=\"__name\">{{ folder.name }}</div>\n <!-- ----- Expiration counts after folder name ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n </div>\n }\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon\" [class.__shortcut]=\"fileDisplay.isShortcut\">\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i class=\"__shortcut-arrow fa-light fa-up-right-from-square\" aria-hidden=\"true\"></i>\n }\n <axm-document-expiration-badge class=\"__expiration-badge\" [node]=\"file\" />\n </div>\n <div class=\"__name\">{{ file.name }}</div>\n </div>\n }\n </div>\n}\n"],"names":["i2"],"mappings":";;;;;;;;;MAyBa,0CAA0C,CAAA;AAfvD,IAAA,WAAA,GAAA;AAgBc,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,4BAA4B,CAAC;AACtD,IAAA;8GAFY,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0CAA0C,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzBvD,2tJAkHA,EAAA,MAAA,EAAA,CAAA,qoEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjGM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,uBAAuB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,mCAAmC,4FACnC,kCAAkC,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA,CAAA;;2FAG3B,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAftD,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wCAAwC,cAGtC,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,KAAK,EAAA,OAAA,EACrC;wBACP,YAAY;wBACZ,uBAAuB;wBACvB,oBAAoB;wBACpB,mBAAmB;wBACnB,mCAAmC;wBACnC,kCAAkC;AACnC,qBAAA,EAAA,QAAA,EAAA,2tJAAA,EAAA,MAAA,EAAA,CAAA,qoEAAA,CAAA,EAAA;;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as i1 from '@acorex/components/skeleton';
|
|
2
|
+
import { AXSkeletonModule } from '@acorex/components/skeleton';
|
|
3
|
+
import * as i3 from '@acorex/core/translation';
|
|
4
|
+
import { AXTranslationModule } from '@acorex/core/translation';
|
|
5
|
+
import * as i1$1 from '@angular/common';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import * as i0 from '@angular/core';
|
|
8
|
+
import { inject, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
9
|
+
import { A as AXPDocumentExplorerViewModel } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-LQjccofO.mjs';
|
|
10
|
+
|
|
11
|
+
class AXMDocumentExplorerSmallTilesViewSkeletonComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.vm = inject(AXPDocumentExplorerViewModel);
|
|
14
|
+
this.folderPlaceholders = [0, 1, 2];
|
|
15
|
+
this.filePlaceholders = [0, 1];
|
|
16
|
+
this.flatPlaceholders = [0, 1, 2, 3, 4];
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerSmallTilesViewSkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMDocumentExplorerSmallTilesViewSkeletonComponent, isStandalone: true, selector: "axm-document-explorer-small-tiles-view-skeleton", ngImport: i0, template: "@if (vm.groupByType()) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.folders' | translate | async }}</h3>\n </div>\n <div class=\"__content\">\n @for (item of folderPlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <div class=\"__details\">\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n <div class=\"__info\">\n <ax-skeleton [animated]=\"true\" class=\"__meta\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__meta --short\"></ax-skeleton>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.files' | translate | async }}</h3>\n </div>\n <div class=\"__content\">\n @for (item of filePlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <div class=\"__details\">\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n <div class=\"__info\">\n <ax-skeleton [animated]=\"true\" class=\"__meta\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__meta --short\"></ax-skeleton>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n} @else {\n <div class=\"__section\">\n <div class=\"__content\">\n @for (item of flatPlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <div class=\"__details\">\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n <div class=\"__info\">\n <ax-skeleton [animated]=\"true\" class=\"__meta\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__meta --short\"></ax-skeleton>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@layer properties;:host{display:block;width:100%}:host .__section{margin-bottom:calc(var(--spacing, .25rem) * 8);width:100%}:host .__section:last-child{margin-bottom:0}:host .__section .__header .__title{margin-bottom:calc(var(--spacing, .25rem) * 4);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}:host .__section .__content{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:calc(var(--spacing, .25rem) * 2)}:host .__section .__item{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter);padding:calc(var(--spacing, .25rem) * 2)}:host .__section .__icon{height:calc(var(--spacing, .25rem) * 8);width:calc(var(--spacing, .25rem) * 8);flex-shrink:0;border-radius:.25rem}:host .__section .__details{display:flex;min-width:0px;flex:1;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}:host .__section .__name{height:calc(var(--spacing, .25rem) * 4);width:75%;border-radius:.25rem}:host .__section .__info{display:flex;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}:host .__section .__info .__meta{height:calc(var(--spacing, .25rem) * 3);width:calc(var(--spacing, .25rem) * 16);border-radius:.25rem}:host .__section .__info .__meta.--short{width:calc(var(--spacing, .25rem) * 20)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@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-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i1.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerSmallTilesViewSkeletonComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'axm-document-explorer-small-tiles-view-skeleton', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXSkeletonModule, AXTranslationModule], template: "@if (vm.groupByType()) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.folders' | translate | async }}</h3>\n </div>\n <div class=\"__content\">\n @for (item of folderPlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <div class=\"__details\">\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n <div class=\"__info\">\n <ax-skeleton [animated]=\"true\" class=\"__meta\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__meta --short\"></ax-skeleton>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.files' | translate | async }}</h3>\n </div>\n <div class=\"__content\">\n @for (item of filePlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <div class=\"__details\">\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n <div class=\"__info\">\n <ax-skeleton [animated]=\"true\" class=\"__meta\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__meta --short\"></ax-skeleton>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n} @else {\n <div class=\"__section\">\n <div class=\"__content\">\n @for (item of flatPlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <div class=\"__details\">\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n <div class=\"__info\">\n <ax-skeleton [animated]=\"true\" class=\"__meta\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__meta --short\"></ax-skeleton>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@layer properties;:host{display:block;width:100%}:host .__section{margin-bottom:calc(var(--spacing, .25rem) * 8);width:100%}:host .__section:last-child{margin-bottom:0}:host .__section .__header .__title{margin-bottom:calc(var(--spacing, .25rem) * 4);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}:host .__section .__content{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:calc(var(--spacing, .25rem) * 2)}:host .__section .__item{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter);padding:calc(var(--spacing, .25rem) * 2)}:host .__section .__icon{height:calc(var(--spacing, .25rem) * 8);width:calc(var(--spacing, .25rem) * 8);flex-shrink:0;border-radius:.25rem}:host .__section .__details{display:flex;min-width:0px;flex:1;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}:host .__section .__name{height:calc(var(--spacing, .25rem) * 4);width:75%;border-radius:.25rem}:host .__section .__info{display:flex;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}:host .__section .__info .__meta{height:calc(var(--spacing, .25rem) * 3);width:calc(var(--spacing, .25rem) * 16);border-radius:.25rem}:host .__section .__info .__meta.--short{width:calc(var(--spacing, .25rem) * 20)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@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-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
24
|
+
}] });
|
|
25
|
+
|
|
26
|
+
export { AXMDocumentExplorerSmallTilesViewSkeletonComponent };
|
|
27
|
+
//# sourceMappingURL=acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DQW2VZJH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DQW2VZJH.mjs","sources":["../../../../libs/modules/document-management/client/src/lib/features/document-explorer/views/small-tiles/small-tiles-view-skeleton.component.ts","../../../../libs/modules/document-management/client/src/lib/features/document-explorer/views/small-tiles/small-tiles-view-skeleton.component.html"],"sourcesContent":["import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { AXPDocumentExplorerViewModel } from '../../document-explorer.viewmodel';\n\n@Component({\n selector: 'axm-document-explorer-small-tiles-view-skeleton',\n templateUrl: './small-tiles-view-skeleton.component.html',\n styleUrl: './small-tiles-view-skeleton.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXSkeletonModule, AXTranslationModule],\n})\nexport class AXMDocumentExplorerSmallTilesViewSkeletonComponent {\n protected readonly vm = inject(AXPDocumentExplorerViewModel);\n\n protected readonly folderPlaceholders = [0, 1, 2];\n protected readonly filePlaceholders = [0, 1];\n protected readonly flatPlaceholders = [0, 1, 2, 3, 4];\n}\n","@if (vm.groupByType()) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.folders' | translate | async }}</h3>\n </div>\n <div class=\"__content\">\n @for (item of folderPlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <div class=\"__details\">\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n <div class=\"__info\">\n <ax-skeleton [animated]=\"true\" class=\"__meta\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__meta --short\"></ax-skeleton>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">{{ '@document-management:terms.common.files' | translate | async }}</h3>\n </div>\n <div class=\"__content\">\n @for (item of filePlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <div class=\"__details\">\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n <div class=\"__info\">\n <ax-skeleton [animated]=\"true\" class=\"__meta\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__meta --short\"></ax-skeleton>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n} @else {\n <div class=\"__section\">\n <div class=\"__content\">\n @for (item of flatPlaceholders; track item) {\n <div class=\"__item\">\n <ax-skeleton [animated]=\"true\" class=\"__icon\"></ax-skeleton>\n <div class=\"__details\">\n <ax-skeleton [animated]=\"true\" class=\"__name\"></ax-skeleton>\n <div class=\"__info\">\n <ax-skeleton [animated]=\"true\" class=\"__meta\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"__meta --short\"></ax-skeleton>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n"],"names":["i2"],"mappings":";;;;;;;;;;MAaa,kDAAkD,CAAA;AAP/D,IAAA,WAAA,GAAA;AAQqB,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,4BAA4B,CAAC;QAEzC,IAAA,CAAA,kBAAkB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA;8GANY,kDAAkD,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kDAAkD,2GCb/D,iqEAyDA,EAAA,MAAA,EAAA,CAAA,ggEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED9CY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,kIAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAElD,kDAAkD,EAAA,UAAA,EAAA,CAAA;kBAP9D,SAAS;+BACE,iDAAiD,EAAA,eAAA,EAG1C,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,iqEAAA,EAAA,MAAA,EAAA,CAAA,ggEAAA,CAAA,EAAA;;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { AXPElementDataDirective, AXPDblClickDirective } from '@acorex-platform/framework-client/core';
|
|
6
|
+
import { A as AXPDocumentExplorerViewModel, a as AXMDocumentExpirationBadgeComponent, b as AXMFolderExpirationBadgesComponent } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-LQjccofO.mjs';
|
|
7
|
+
import * as i2 from '@acorex/core/format';
|
|
8
|
+
import { AXFormatModule } from '@acorex/core/format';
|
|
9
|
+
import { AXDateTimeModule } from '@acorex/core/date-time';
|
|
10
|
+
import * as i3 from '@acorex/core/translation';
|
|
11
|
+
import { AXTranslationModule } from '@acorex/core/translation';
|
|
12
|
+
|
|
13
|
+
class AXMDocumentExplorerSmallTilesViewComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.vm = inject(AXPDocumentExplorerViewModel);
|
|
16
|
+
}
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerSmallTilesViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMDocumentExplorerSmallTilesViewComponent, isStandalone: true, selector: "axm-document-explorer-small-tiles-view", ngImport: i0, template: "@if (vm.groupByType()) {\n @if (vm.filteredFolders().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">\n {{ '@document-management:terms.common.folders' | translate | async }}\n </h3>\n </div>\n <div class=\"__content\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div\n class=\"__icon fa-2x\"\n [style.color]=\"vm.getFolderColor(folder)\"\n [class.__shortcut]=\"folderDisplay.isShortcut\"\n >\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"__name\">{{ folder.name }}</div>\n <div class=\"__info\">\n <div class=\"inline-flex items-center gap-1\">\n <span>{{ (folder.childrenCount ?? 0) + (folder.itemsCount ?? 0) }} items</span>\n <!-- ----- Expiration counts after item count ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n <span>{{\n folder.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.filteredFiles().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">\n {{ '@document-management:terms.common.files' | translate | async }}\n </h3>\n </div>\n <div class=\"__content\">\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div\n class=\"__icon fa-2x\"\n [class.__shortcut]=\"fileDisplay.isShortcut\"\n >\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"flex min-w-0 items-center gap-1.5\">\n <div class=\"__name\">{{ file.name }}</div>\n <axm-document-expiration-badge [node]=\"file\" />\n </div>\n <div class=\"__info\">\n <span>{{ file.size | format: 'filesize' | async }}</span>\n <span>{{\n file.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n} @else {\n <div class=\"__section\">\n <div class=\"__content\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div\n class=\"__icon fa-2x\"\n [style.color]=\"vm.getFolderColor(folder)\"\n [class.__shortcut]=\"folderDisplay.isShortcut\"\n >\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"__name\">{{ folder.name }}</div>\n <div class=\"__info\">\n <div class=\"inline-flex items-center gap-1\">\n <span>{{ (folder.childrenCount ?? 0) + (folder.itemsCount ?? 0) }} items</span>\n <!-- ----- Expiration counts after item count ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n <span>{{\n folder.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon fa-2x\" [class.__shortcut]=\"fileDisplay.isShortcut\">\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"flex min-w-0 items-center gap-1.5\">\n <div class=\"__name\">{{ file.name }}</div>\n <axm-document-expiration-badge [node]=\"file\" />\n </div>\n <div class=\"__info\">\n <span>{{ file.size | format: 'filesize' | async }}</span>\n <span>{{\n file.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@layer properties;:host .__section{margin-bottom:calc(var(--spacing, .25rem) * 8)}:host .__section:last-child{margin-bottom:0}:host .__section .__header .__title{margin-bottom:calc(var(--spacing, .25rem) * 4);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}:host .__section .__content{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:calc(var(--spacing, .25rem) * 2)}:host .__section .__content .__explorer-item{display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter);padding:calc(var(--spacing, .25rem) * 2)}:host .__section .__content .__explorer-item:hover{background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light)}:host .__section .__content .__explorer-item .__icon.__shortcut .__shortcut-arrow{position:absolute;bottom:0;right:0;font-size:.5em;opacity:.9}:host .__section .__content .__explorer-item .__icon{position:relative;display:inline-flex;flex-shrink:0}:host .__section .__content .__explorer-item .__details{min-width:0px;flex:1}:host .__section .__content .__explorer-item .__details .__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start;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-semibold, 600);font-weight:var(--font-weight-semibold, 600)}:host .__section .__content .__explorer-item .__details .__info{display:flex;width:100%;justify-content:space-between;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);opacity:65%}:host .__section .__content .__explorer-item .__details .__info span{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}:host .__section .__content .__explorer-item.--selected{background-color:var(--color-darker);color:var(--color-on-darker);border-color:var(--color-border-darker)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@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-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: AXPElementDataDirective, selector: "[axp-data]", inputs: ["axp-data", "axp-data-path"] }, { kind: "directive", type: AXPDblClickDirective, selector: "[onDblClick]", outputs: ["onDblClick"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXMDocumentExpirationBadgeComponent, selector: "axm-document-expiration-badge", inputs: ["node"] }, { kind: "component", type: AXMFolderExpirationBadgesComponent, selector: "axm-folder-expiration-badges", inputs: ["node"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXFormatPipe, name: "format" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerSmallTilesViewComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{ selector: 'axm-document-explorer-small-tiles-view', standalone: true, changeDetection: ChangeDetectionStrategy.Eager, imports: [
|
|
23
|
+
CommonModule,
|
|
24
|
+
AXPElementDataDirective,
|
|
25
|
+
AXPDblClickDirective,
|
|
26
|
+
AXFormatModule,
|
|
27
|
+
AXDateTimeModule,
|
|
28
|
+
AXTranslationModule,
|
|
29
|
+
AXMDocumentExpirationBadgeComponent,
|
|
30
|
+
AXMFolderExpirationBadgesComponent,
|
|
31
|
+
], template: "@if (vm.groupByType()) {\n @if (vm.filteredFolders().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">\n {{ '@document-management:terms.common.folders' | translate | async }}\n </h3>\n </div>\n <div class=\"__content\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div\n class=\"__icon fa-2x\"\n [style.color]=\"vm.getFolderColor(folder)\"\n [class.__shortcut]=\"folderDisplay.isShortcut\"\n >\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"__name\">{{ folder.name }}</div>\n <div class=\"__info\">\n <div class=\"inline-flex items-center gap-1\">\n <span>{{ (folder.childrenCount ?? 0) + (folder.itemsCount ?? 0) }} items</span>\n <!-- ----- Expiration counts after item count ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n <span>{{\n folder.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.filteredFiles().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">\n {{ '@document-management:terms.common.files' | translate | async }}\n </h3>\n </div>\n <div class=\"__content\">\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div\n class=\"__icon fa-2x\"\n [class.__shortcut]=\"fileDisplay.isShortcut\"\n >\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"flex min-w-0 items-center gap-1.5\">\n <div class=\"__name\">{{ file.name }}</div>\n <axm-document-expiration-badge [node]=\"file\" />\n </div>\n <div class=\"__info\">\n <span>{{ file.size | format: 'filesize' | async }}</span>\n <span>{{\n file.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n} @else {\n <div class=\"__section\">\n <div class=\"__content\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div\n class=\"__icon fa-2x\"\n [style.color]=\"vm.getFolderColor(folder)\"\n [class.__shortcut]=\"folderDisplay.isShortcut\"\n >\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"__name\">{{ folder.name }}</div>\n <div class=\"__info\">\n <div class=\"inline-flex items-center gap-1\">\n <span>{{ (folder.childrenCount ?? 0) + (folder.itemsCount ?? 0) }} items</span>\n <!-- ----- Expiration counts after item count ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n <span>{{\n folder.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon fa-2x\" [class.__shortcut]=\"fileDisplay.isShortcut\">\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"flex min-w-0 items-center gap-1.5\">\n <div class=\"__name\">{{ file.name }}</div>\n <axm-document-expiration-badge [node]=\"file\" />\n </div>\n <div class=\"__info\">\n <span>{{ file.size | format: 'filesize' | async }}</span>\n <span>{{\n file.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@layer properties;:host .__section{margin-bottom:calc(var(--spacing, .25rem) * 8)}:host .__section:last-child{margin-bottom:0}:host .__section .__header .__title{margin-bottom:calc(var(--spacing, .25rem) * 4);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}:host .__section .__content{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:calc(var(--spacing, .25rem) * 2)}:host .__section .__content .__explorer-item{display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter);padding:calc(var(--spacing, .25rem) * 2)}:host .__section .__content .__explorer-item:hover{background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light)}:host .__section .__content .__explorer-item .__icon.__shortcut .__shortcut-arrow{position:absolute;bottom:0;right:0;font-size:.5em;opacity:.9}:host .__section .__content .__explorer-item .__icon{position:relative;display:inline-flex;flex-shrink:0}:host .__section .__content .__explorer-item .__details{min-width:0px;flex:1}:host .__section .__content .__explorer-item .__details .__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start;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-semibold, 600);font-weight:var(--font-weight-semibold, 600)}:host .__section .__content .__explorer-item .__details .__info{display:flex;width:100%;justify-content:space-between;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);opacity:65%}:host .__section .__content .__explorer-item .__details .__info span{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}:host .__section .__content .__explorer-item.--selected{background-color:var(--color-darker);color:var(--color-on-darker);border-color:var(--color-border-darker)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@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-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
32
|
+
}] });
|
|
33
|
+
|
|
34
|
+
export { AXMDocumentExplorerSmallTilesViewComponent };
|
|
35
|
+
//# sourceMappingURL=acorex-platform-module-document-management-client-small-tiles-view.component-BT6fRWVH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-document-management-client-small-tiles-view.component-BT6fRWVH.mjs","sources":["../../../../libs/modules/document-management/client/src/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.ts","../../../../libs/modules/document-management/client/src/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.html"],"sourcesContent":["import { Component, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXPElementDataDirective, AXPDblClickDirective } from '@acorex-platform/framework-client/core';\nimport { AXPDocumentExplorerViewModel } from '../../document-explorer.viewmodel';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXMDocumentExpirationBadgeComponent } from '../../../shared/components/document-expiration-badge/document-expiration-badge.component';\nimport { AXMFolderExpirationBadgesComponent } from '../../../shared/components/folder-expiration-badges/folder-expiration-badges.component';\n\n@Component({\n selector: 'axm-document-explorer-small-tiles-view',\n templateUrl: './small-tiles-view.component.html',\n styleUrls: ['./small-tiles-view.component.css'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [\n CommonModule,\n AXPElementDataDirective,\n AXPDblClickDirective,\n AXFormatModule,\n AXDateTimeModule,\n AXTranslationModule,\n AXMDocumentExpirationBadgeComponent,\n AXMFolderExpirationBadgesComponent,\n ],\n})\nexport class AXMDocumentExplorerSmallTilesViewComponent {\n protected vm = inject(AXPDocumentExplorerViewModel);\n} ","@if (vm.groupByType()) {\n @if (vm.filteredFolders().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">\n {{ '@document-management:terms.common.folders' | translate | async }}\n </h3>\n </div>\n <div class=\"__content\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div\n class=\"__icon fa-2x\"\n [style.color]=\"vm.getFolderColor(folder)\"\n [class.__shortcut]=\"folderDisplay.isShortcut\"\n >\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"__name\">{{ folder.name }}</div>\n <div class=\"__info\">\n <div class=\"inline-flex items-center gap-1\">\n <span>{{ (folder.childrenCount ?? 0) + (folder.itemsCount ?? 0) }} items</span>\n <!-- ----- Expiration counts after item count ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n <span>{{\n folder.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.filteredFiles().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">\n {{ '@document-management:terms.common.files' | translate | async }}\n </h3>\n </div>\n <div class=\"__content\">\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div\n class=\"__icon fa-2x\"\n [class.__shortcut]=\"fileDisplay.isShortcut\"\n >\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"flex min-w-0 items-center gap-1.5\">\n <div class=\"__name\">{{ file.name }}</div>\n <axm-document-expiration-badge [node]=\"file\" />\n </div>\n <div class=\"__info\">\n <span>{{ file.size | format: 'filesize' | async }}</span>\n <span>{{\n file.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n} @else {\n <div class=\"__section\">\n <div class=\"__content\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div\n class=\"__icon fa-2x\"\n [style.color]=\"vm.getFolderColor(folder)\"\n [class.__shortcut]=\"folderDisplay.isShortcut\"\n >\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"__name\">{{ folder.name }}</div>\n <div class=\"__info\">\n <div class=\"inline-flex items-center gap-1\">\n <span>{{ (folder.childrenCount ?? 0) + (folder.itemsCount ?? 0) }} items</span>\n <!-- ----- Expiration counts after item count ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n <span>{{\n folder.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon fa-2x\" [class.__shortcut]=\"fileDisplay.isShortcut\">\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"flex min-w-0 items-center gap-1.5\">\n <div class=\"__name\">{{ file.name }}</div>\n <axm-document-expiration-badge [node]=\"file\" />\n </div>\n <div class=\"__info\">\n <span>{{ file.size | format: 'filesize' | async }}</span>\n <span>{{\n file.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n"],"names":[],"mappings":";;;;;;;;;;;;MA2Ba,0CAA0C,CAAA;AAjBvD,IAAA,WAAA,GAAA;AAkBc,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,4BAA4B,CAAC;AACtD,IAAA;8GAFY,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0CAA0C,kGC3BvD,01NA2LA,EAAA,MAAA,EAAA,CAAA,msFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1KM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,uBAAuB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,cAAc,8BACd,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,mCAAmC,4FACnC,kCAAkC,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA,CAAA;;2FAG3B,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAjBtD,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wCAAwC,cAGtC,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,KAAK,EAAA,OAAA,EACrC;wBACP,YAAY;wBACZ,uBAAuB;wBACvB,oBAAoB;wBACpB,cAAc;wBACd,gBAAgB;wBAChB,mBAAmB;wBACnB,mCAAmC;wBACnC,kCAAkC;AACnC,qBAAA,EAAA,QAAA,EAAA,01NAAA,EAAA,MAAA,EAAA,CAAA,msFAAA,CAAA,EAAA;;;;;"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { AXPFileChooserService } from '@acorex-platform/framework-client/layout/components';
|
|
2
|
+
import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';
|
|
3
|
+
import { AXPPlatformScope } from '@acorex-platform/framework-shared/core';
|
|
4
|
+
import { AXFileService } from '@acorex/core/file';
|
|
5
|
+
import { RootConfig } from '@acorex-platform/module-document-management-client/contracts';
|
|
6
|
+
import * as i0 from '@angular/core';
|
|
7
|
+
import { inject, Injectable } from '@angular/core';
|
|
8
|
+
import { d as AXMDocumentDialogService, e as buildFileChooserOptionsFromDocumentType } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-LQjccofO.mjs';
|
|
9
|
+
|
|
10
|
+
//#region ---- Imports ----
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region ---- Helpers ----
|
|
13
|
+
function resolveUploadDocumentInput(input = {}) {
|
|
14
|
+
const data = input.data ?? {};
|
|
15
|
+
const options = input.options ?? {};
|
|
16
|
+
return {
|
|
17
|
+
documentType: input.documentType ?? data.documentType ?? options.documentType,
|
|
18
|
+
documentTypeId: input.documentTypeId ?? data.documentTypeId ?? options.documentTypeId,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region ---- Upload document command ----
|
|
23
|
+
/**
|
|
24
|
+
* Resolves document type (optional picker), then opens the file chooser for drive upload.
|
|
25
|
+
* Replaces the former upload-document workflow (check type → choose type → choose file).
|
|
26
|
+
* Registered as DocumentManagement.Document:Upload.
|
|
27
|
+
*/
|
|
28
|
+
class AXMUploadDocumentCommand {
|
|
29
|
+
constructor() {
|
|
30
|
+
this.documentDialog = inject(AXMDocumentDialogService);
|
|
31
|
+
this.entityService = inject(AXPEntityService);
|
|
32
|
+
this.chooserService = inject(AXPFileChooserService);
|
|
33
|
+
this.fileService = inject(AXFileService);
|
|
34
|
+
this.documentTypeService = this.entityService
|
|
35
|
+
.withEntity(RootConfig.module.name, RootConfig.entities.documentType.name)
|
|
36
|
+
.data();
|
|
37
|
+
}
|
|
38
|
+
async execute(input = {}) {
|
|
39
|
+
let { documentType, documentTypeId } = resolveUploadDocumentInput(input);
|
|
40
|
+
if (!documentType) {
|
|
41
|
+
const chooseTypeResult = await this.documentDialog.chooseDocumentType();
|
|
42
|
+
if (chooseTypeResult.cancelled) {
|
|
43
|
+
return { success: true, kind: 'object', data: { cancelled: true } };
|
|
44
|
+
}
|
|
45
|
+
documentTypeId = chooseTypeResult.documentTypeId;
|
|
46
|
+
}
|
|
47
|
+
let resolvedDocumentType = documentType;
|
|
48
|
+
if (!resolvedDocumentType && documentTypeId) {
|
|
49
|
+
resolvedDocumentType = (await this.documentTypeService.byKey(documentTypeId)) ?? undefined;
|
|
50
|
+
}
|
|
51
|
+
if (!resolvedDocumentType) {
|
|
52
|
+
return {
|
|
53
|
+
success: false,
|
|
54
|
+
message: { text: 'Document type is required to upload a document.' },
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const { accept, fileType } = await buildFileChooserOptionsFromDocumentType(resolvedDocumentType, this.fileService);
|
|
58
|
+
const chosen = await this.chooserService.promptChoose({
|
|
59
|
+
options: {
|
|
60
|
+
multiple: false,
|
|
61
|
+
accept: accept || undefined,
|
|
62
|
+
fileType: fileType.length ? fileType : undefined,
|
|
63
|
+
scope: AXPPlatformScope.Tenant,
|
|
64
|
+
browseMode: 'file',
|
|
65
|
+
destination: 'drive',
|
|
66
|
+
},
|
|
67
|
+
items: [],
|
|
68
|
+
});
|
|
69
|
+
if (!chosen?.length) {
|
|
70
|
+
return { success: true, kind: 'object', data: { cancelled: true } };
|
|
71
|
+
}
|
|
72
|
+
return { success: true, kind: 'object',
|
|
73
|
+
data: {
|
|
74
|
+
documentType: resolvedDocumentType,
|
|
75
|
+
chosenFiles: chosen,
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMUploadDocumentCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
80
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMUploadDocumentCommand, providedIn: 'root' }); }
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMUploadDocumentCommand, decorators: [{
|
|
83
|
+
type: Injectable,
|
|
84
|
+
args: [{ providedIn: 'root' }]
|
|
85
|
+
}] });
|
|
86
|
+
|
|
87
|
+
export { AXMUploadDocumentCommand };
|
|
88
|
+
//# sourceMappingURL=acorex-platform-module-document-management-client-upload-document.command-CFFOw4gM.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-document-management-client-upload-document.command-CFFOw4gM.mjs","sources":["../../../../libs/modules/document-management/client/src/lib/features/commands/upload-document.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPFileChooserService } from '@acorex-platform/framework-client/layout/components';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPPlatformScope } from '@acorex-platform/framework-shared/core';\nimport { AXFileService } from '@acorex/core/file';\nimport { AXMDocumentDocDto } from '@acorex-platform/module-document-management-client/contracts';\nimport { RootConfig } from '@acorex-platform/module-document-management-client/contracts';\nimport { inject, Injectable } from '@angular/core';\n\nimport { buildFileChooserOptionsFromDocumentType } from '../shared/document-type-accept.util';\nimport { AXMDocumentDialogService } from '../shared/services/document-dialog.service';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMUploadDocumentCommandInput {\n documentType?: AXMDocumentDocDto;\n documentTypeId?: string;\n data?: {\n documentType?: AXMDocumentDocDto;\n documentTypeId?: string;\n };\n options?: {\n documentType?: AXMDocumentDocDto;\n documentTypeId?: string;\n };\n}\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction resolveUploadDocumentInput(input: AXMUploadDocumentCommandInput = {}) {\n const data = input.data ?? {};\n const options = input.options ?? {};\n\n return {\n documentType: input.documentType ?? data.documentType ?? options.documentType,\n documentTypeId: input.documentTypeId ?? data.documentTypeId ?? options.documentTypeId,\n };\n}\n\n//#endregion\n\n//#region ---- Upload document command ----\n\n/**\n * Resolves document type (optional picker), then opens the file chooser for drive upload.\n * Replaces the former upload-document workflow (check type → choose type → choose file).\n * Registered as DocumentManagement.Document:Upload.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMUploadDocumentCommand implements AXPCommand<AXMUploadDocumentCommandInput> {\n private readonly documentDialog = inject(AXMDocumentDialogService);\n private readonly entityService = inject(AXPEntityService);\n private readonly chooserService = inject(AXPFileChooserService);\n private readonly fileService = inject(AXFileService);\n\n private readonly documentTypeService = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.documentType.name)\n .data<string, AXMDocumentDocDto>();\n\n async execute(input: AXMUploadDocumentCommandInput = {}): AXPCommandExecuteResultPromise {\n let { documentType, documentTypeId } = resolveUploadDocumentInput(input);\n\n if (!documentType) {\n const chooseTypeResult = await this.documentDialog.chooseDocumentType();\n if (chooseTypeResult.cancelled) {\n return { success: true, kind: 'object', data: { cancelled: true } };\n }\n documentTypeId = chooseTypeResult.documentTypeId;\n }\n\n let resolvedDocumentType = documentType;\n if (!resolvedDocumentType && documentTypeId) {\n resolvedDocumentType = (await this.documentTypeService.byKey(documentTypeId)) ?? undefined;\n }\n\n if (!resolvedDocumentType) {\n return {\n success: false,\n message: { text: 'Document type is required to upload a document.' },\n };\n }\n\n const { accept, fileType } = await buildFileChooserOptionsFromDocumentType(\n resolvedDocumentType,\n this.fileService,\n );\n const chosen = await this.chooserService.promptChoose({\n options: {\n multiple: false,\n accept: accept || undefined,\n fileType: fileType.length ? fileType : undefined,\n scope: AXPPlatformScope.Tenant,\n browseMode: 'file',\n destination: 'drive',\n },\n items: [],\n });\n\n if (!chosen?.length) {\n return { success: true, kind: 'object', data: { cancelled: true } };\n }\n\n return { success: true, kind: 'object',\n data: {\n documentType: resolvedDocumentType,\n chosenFiles: chosen,\n },\n };\n }\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;;;;;AAAA;AA+BA;AAEA;AAEA,SAAS,0BAA0B,CAAC,KAAA,GAAuC,EAAE,EAAA;AAC3E,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE;AAC7B,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE;IAEnC,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY;QAC7E,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,cAAc;KACtF;AACH;AAEA;AAEA;AAEA;;;;AAIG;MAEU,wBAAwB,CAAA;AADrC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACjD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC9C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;QAEnC,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC;AACzC,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI;AACxE,aAAA,IAAI,EAA6B;AAoDrC,IAAA;AAlDC,IAAA,MAAM,OAAO,CAAC,KAAA,GAAuC,EAAE,EAAA;QACrD,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,0BAA0B,CAAC,KAAK,CAAC;QAExE,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;AACvE,YAAA,IAAI,gBAAgB,CAAC,SAAS,EAAE;AAC9B,gBAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;YACrE;AACA,YAAA,cAAc,GAAG,gBAAgB,CAAC,cAAc;QAClD;QAEA,IAAI,oBAAoB,GAAG,YAAY;AACvC,QAAA,IAAI,CAAC,oBAAoB,IAAI,cAAc,EAAE;AAC3C,YAAA,oBAAoB,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,SAAS;QAC5F;QAEA,IAAI,CAAC,oBAAoB,EAAE;YACzB,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,EAAE,IAAI,EAAE,iDAAiD,EAAE;aACrE;QACH;AAEA,QAAA,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,uCAAuC,CACxE,oBAAoB,EACpB,IAAI,CAAC,WAAW,CACjB;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;AACpD,YAAA,OAAO,EAAE;AACP,gBAAA,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,MAAM,IAAI,SAAS;gBAC3B,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS;gBAChD,KAAK,EAAE,gBAAgB,CAAC,MAAM;AAC9B,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE,OAAO;AACrB,aAAA;AACD,YAAA,KAAK,EAAE,EAAE;AACV,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;AACnB,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;QACrE;AAEA,QAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ;AACpC,YAAA,IAAI,EAAE;AACJ,gBAAA,YAAY,EAAE,oBAAoB;AAClC,gBAAA,WAAW,EAAE,MAAM;AACpB,aAAA;SACF;IACH;8GA3DW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cADX,MAAM,EAAA,CAAA,CAAA;;2FACnB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { h as AXMDocumentDriveComponent, i as AXMDocumentDrivePageComponent, j as AXMDocumentDrivePageComponentProvider, a as AXMDocumentExpirationBadgeComponent, k as AXMDocumentExpirationStatusProvider, f as AXMDocumentExplorerComponent, l as AXMDocumentManagementApiService, m as AXMDocumentManagementFileTypeProvider, n as AXMDocumentManagementModule, c as AXMDocumentManagerService, o as AXMDocumentManagerServiceImpl, p as AXMFileTypeExtensionWidgetColumnComponent, q as AXMFileTypeExtensionWidgetDesignerComponent, r as AXMFileTypeExtensionWidgetEditComponent, s as AXMFileTypeExtensionWidgetViewComponent, t as AXMFileTypeModule, b as AXMFolderExpirationBadgesComponent, g as AXMFolderPathBreadcrumbsComponent, u as AXMMenuProvider, v as AXMSearchCommandProvider, w as AXM_DOCUMENT_ATTACHMENT_DIALOG_ON_ACTION_HOOK_KEY, x as AXM_DOCUMENT_DIALOG_SURFACE_ATTACHMENT, y as AXM_DOCUMENT_DIALOG_SURFACE_ATTACHMENT_NO_SAVE, z as AXM_DOCUMENT_EXPIRATION_STATUS, B as AXM_DOCUMENT_EXPIRATION_STATUS_DEFINITION_KEY, A as AXPDocumentExplorerViewModel, C as AXPDocumentManagementService, D as AXPDocumentManagementSettingProvider, E as AXmFileTypeExtensionWidget, F as DM_AUDIO_EXTENSION_ICONS, G as DM_DOCUMENT_EXTENSION_ICONS, H as DM_FILE_EXTENSION_ICONS, I as DM_FILE_TYPE_ICONS, J as DM_VIDEO_EXTENSION_ICONS, K as DOCUMENT_DRIVE_PAGE_COMPONENT_KEY, S as ScopedDriveService, L as buildDocumentManagementFileTypeCatalog, M as documentPlugin, N as resolveDocumentExpirationBadge, O as resolveFolderExpirationCountBadges } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-LQjccofO.mjs';
|
|
2
|
+
export { AXM_DOCUMENT_EXPIRATION_NEAR_DAYS, toDocumentExpirationDate } from '@acorex-platform/module-document-management-contracts';
|
|
3
|
+
//# sourceMappingURL=acorex-platform-module-document-management-client.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-document-management-client.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@acorex-platform/module-document-management-client",
|
|
3
|
+
"version": "0.0.21",
|
|
4
|
+
"sideEffects": false,
|
|
5
|
+
"peerDependencies": {
|
|
6
|
+
"@angular/common": "^21.0.0",
|
|
7
|
+
"@angular/core": "^21.0.0"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"tslib": "^2.3.0"
|
|
11
|
+
},
|
|
12
|
+
"module": "fesm2022/acorex-platform-module-document-management-client.mjs",
|
|
13
|
+
"typings": "types/acorex-platform-module-document-management-client.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
"./package.json": {
|
|
16
|
+
"default": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./types/acorex-platform-module-document-management-client.d.ts",
|
|
20
|
+
"default": "./fesm2022/acorex-platform-module-document-management-client.mjs"
|
|
21
|
+
},
|
|
22
|
+
"./contracts": {
|
|
23
|
+
"types": "./types/acorex-platform-module-document-management-client-contracts.d.ts",
|
|
24
|
+
"default": "./fesm2022/acorex-platform-module-document-management-client-contracts.mjs"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"type": "module"
|
|
28
|
+
}
|