@mmlogic/components 0.4.3 → 0.5.1
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/dist/cjs/client-layout-RZ3Ix-4a.js +87 -0
- package/dist/cjs/{index-CAzwGt9u.js → index-DzRfoAPz.js} +36 -9
- package/dist/cjs/index.cjs.js +56 -81
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/mosterdcomponents.cjs.js +3 -3
- package/dist/cjs/{mrd-boolean-field_24.cjs.entry.js → mrd-boolean-field_23.cjs.entry.js} +159 -286
- package/dist/collection/collection-manifest.json +1 -2
- package/dist/collection/components/documents/mrd-document-container/mrd-document-container.css +0 -17
- package/dist/collection/components/documents/mrd-document-container/mrd-document-container.js +12 -4
- package/dist/collection/components/documents/mrd-document-list/mrd-document-list.css +9 -43
- package/dist/collection/components/documents/mrd-document-list/mrd-document-list.js +14 -6
- package/dist/collection/components/documents/mrd-document-view/mrd-document-view.css +30 -68
- package/dist/collection/components/documents/mrd-document-view/mrd-document-view.js +49 -90
- package/dist/collection/components/fields/mrd-boolean-field/mrd-boolean-field.css +0 -10
- package/dist/collection/components/fields/mrd-currency-field/mrd-currency-field.css +0 -7
- package/dist/collection/components/fields/mrd-file-field/mrd-file-field.css +0 -11
- package/dist/collection/components/fields/mrd-hyperlink-field/mrd-hyperlink-field.css +0 -3
- package/dist/collection/components/fields/mrd-image-field/mrd-image-field.css +6 -20
- package/dist/collection/components/fields/mrd-list-field/mrd-list-field.css +0 -4
- package/dist/collection/components/fields/mrd-longtext-field/mrd-longtext-field.css +0 -1
- package/dist/collection/components/fields/mrd-relation-field/mrd-relation-field.css +9 -35
- package/dist/collection/components/fields/mrd-textarea-field/mrd-textarea-field.css +0 -9
- package/dist/collection/components/form/mrd-field/mrd-field.css +0 -13
- package/dist/collection/components/form/mrd-form/mrd-form.css +0 -19
- package/dist/collection/components/layout/mrd-layout-section/mrd-layout-section.css +3 -58
- package/dist/collection/components/layout/mrd-layout-section/mrd-layout-section.js +25 -66
- package/dist/collection/components/table/mrd-table/mrd-table.css +38 -185
- package/dist/collection/components/table/mrd-table/mrd-table.js +3 -5
- package/dist/collection/components/table/mrd-table/table-parts.js +2 -5
- package/dist/collection/dev/app.js +76 -40
- package/dist/collection/dev/example-data.js +2 -1
- package/dist/collection/index.js +1 -0
- package/dist/collection/utils/document-attachments.js +20 -0
- package/dist/collection/{components/documents/mrd-file-preview → utils}/file-preview-kind.js +4 -4
- package/dist/collection/utils/i18n.js +0 -32
- package/dist/components/document-attachments.js +1 -0
- package/dist/components/field-helpers.js +1 -1
- package/dist/components/i18n.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/mrd-document-container2.js +1 -1
- package/dist/components/mrd-document-list2.js +1 -1
- package/dist/components/mrd-document-view2.js +1 -1
- package/dist/components/mrd-email-field2.js +1 -1
- package/dist/components/mrd-form.js +1 -1
- package/dist/components/mrd-hyperlink-field2.js +1 -1
- package/dist/components/mrd-image-field2.js +1 -1
- package/dist/components/mrd-layout-section.js +1 -1
- package/dist/components/mrd-number-field2.js +1 -1
- package/dist/components/mrd-relation-field2.js +1 -1
- package/dist/components/mrd-table2.js +1 -1
- package/dist/esm/client-layout-DCOAAH92.js +84 -0
- package/dist/esm/{index-DiSEJMA8.js → index-DiSe6vjv.js} +36 -9
- package/dist/esm/index.js +30 -80
- package/dist/esm/loader.js +3 -3
- package/dist/esm/mosterdcomponents.js +4 -4
- package/dist/esm/{mrd-boolean-field_24.entry.js → mrd-boolean-field_23.entry.js} +69 -195
- package/dist/mosterdcomponents/index.esm.js +1 -1
- package/dist/mosterdcomponents/mosterdcomponents.css +7 -1
- package/dist/mosterdcomponents/mosterdcomponents.esm.js +1 -1
- package/dist/mosterdcomponents/p-DCOAAH92.js +1 -0
- package/dist/mosterdcomponents/p-DiSe6vjv.js +2 -0
- package/dist/mosterdcomponents/p-cdecc698.entry.js +1 -0
- package/dist/types/components/documents/mrd-document-container/mrd-document-container.d.ts +4 -2
- package/dist/types/components/documents/mrd-document-list/mrd-document-list.d.ts +6 -2
- package/dist/types/components/documents/mrd-document-view/mrd-document-view.d.ts +27 -29
- package/dist/types/components/layout/mrd-layout-section/mrd-layout-section.d.ts +12 -15
- package/dist/types/components.d.ts +61 -195
- package/dist/types/index.d.ts +2 -0
- package/dist/types/stencil-public-runtime.d.ts +1 -0
- package/dist/types/types/client-layout.d.ts +10 -3
- package/dist/types/utils/document-attachments.d.ts +8 -0
- package/dist/types/utils/file-preview-kind.d.ts +9 -0
- package/package.json +10 -12
- package/dist/collection/components/documents/mrd-file-preview/mrd-file-preview.css +0 -59
- package/dist/collection/components/documents/mrd-file-preview/mrd-file-preview.js +0 -212
- package/dist/components/mrd-file-preview.d.ts +0 -11
- package/dist/components/mrd-file-preview.js +0 -1
- package/dist/components/mrd-file-preview2.js +0 -1
- package/dist/mosterdcomponents/p-DiSEJMA8.js +0 -2
- package/dist/mosterdcomponents/p-e816d459.entry.js +0 -1
- package/dist/types/components/documents/mrd-file-preview/file-preview-kind.d.ts +0 -9
- package/dist/types/components/documents/mrd-file-preview/mrd-file-preview.d.ts +0 -41
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
|
|
8
8
|
import { ClientLayout, ClientLayoutItem as ClientLayoutItem1, ClientLayoutItemFieldDataType, ClientLayoutItemRelationDisplayType, ClientLayoutItemRelationEditBehavior, ClientListValue, CurrencyValue, RelationSearchResult } from "./types";
|
|
9
|
-
import { AggregationResult, ClientArchetype, ClientLayoutItem, ClientLayoutItemNavigate, ClientLayoutNavigateBehaviour, ClientViewMetadata, HyperlinkValue, RelationSearchResult as RelationSearchResult1 } from "./types/client-layout";
|
|
9
|
+
import { AggregationResult, ClientArchetype, ClientLayoutItem, ClientLayoutItemNavigate, ClientLayoutNavigateBehaviour, ClientViewMetadata, DocumentAttachment, HyperlinkValue, RelationSearchResult as RelationSearchResult1 } from "./types/client-layout";
|
|
10
10
|
import { ListNavigationContext } from "./utils/query-params";
|
|
11
11
|
import { DistinctValue, DocRow } from "./components/documents/mrd-document-list/folder-tree";
|
|
12
12
|
export { ClientLayout, ClientLayoutItem as ClientLayoutItem1, ClientLayoutItemFieldDataType, ClientLayoutItemRelationDisplayType, ClientLayoutItemRelationEditBehavior, ClientListValue, CurrencyValue, RelationSearchResult } from "./types";
|
|
13
|
-
export { AggregationResult, ClientArchetype, ClientLayoutItem, ClientLayoutItemNavigate, ClientLayoutNavigateBehaviour, ClientViewMetadata, HyperlinkValue, RelationSearchResult as RelationSearchResult1 } from "./types/client-layout";
|
|
13
|
+
export { AggregationResult, ClientArchetype, ClientLayoutItem, ClientLayoutItemNavigate, ClientLayoutNavigateBehaviour, ClientViewMetadata, DocumentAttachment, HyperlinkValue, RelationSearchResult as RelationSearchResult1 } from "./types/client-layout";
|
|
14
14
|
export { ListNavigationContext } from "./utils/query-params";
|
|
15
15
|
export { DistinctValue, DocRow } from "./components/documents/mrd-document-list/folder-tree";
|
|
16
16
|
export namespace Components {
|
|
@@ -226,12 +226,18 @@ export namespace Components {
|
|
|
226
226
|
}
|
|
227
227
|
/**
|
|
228
228
|
* Archetype-driven single-document view. Given a `commons.document` binding and a
|
|
229
|
-
* data record, renders the document recognisably — title,
|
|
230
|
-
*
|
|
231
|
-
*
|
|
229
|
+
* data record, renders the document recognisably — title, date, a navigation
|
|
230
|
+
* link to the container (the dossier) presented like any other data-object link
|
|
231
|
+
* (primary-coloured text link), an optional muted folder path, a download button
|
|
232
|
+
* and summary — instead of a generic field form.
|
|
232
233
|
* The component keys on the slot→field map (`archetype.slots`) to locate values:
|
|
233
234
|
* value slots read `data[field]`; the `container` relation slot reads
|
|
234
235
|
* `data._links[field]` (`{ href, name }`). Empty slots are omitted.
|
|
236
|
+
* This component never renders the file itself (no iframe/image preview) — it
|
|
237
|
+
* only ever exposes the file reference via `mrdAttachments`. The host resolves
|
|
238
|
+
* the href and decides how (or whether) to show it inline, so the preview can
|
|
239
|
+
* live anywhere in the host's own layout instead of being boxed into this
|
|
240
|
+
* component's DOM (see TASK-0165 / FINDING-0111).
|
|
235
241
|
*/
|
|
236
242
|
interface MrdDocumentView {
|
|
237
243
|
/**
|
|
@@ -247,16 +253,6 @@ export namespace Components {
|
|
|
247
253
|
* @default navigator.language
|
|
248
254
|
*/
|
|
249
255
|
"locale": string;
|
|
250
|
-
/**
|
|
251
|
-
* Minimum height (px) of the inline preview area — it stretches to fill the available row height in the wide side-by-side layout (see mrd-document-view.scss), and falls back to this height when stacked. Overlay hosts typically pass a smaller value than the full-page default to fit available chrome.
|
|
252
|
-
* @default 640
|
|
253
|
-
*/
|
|
254
|
-
"previewHeight": number;
|
|
255
|
-
/**
|
|
256
|
-
* Signed URL for the file's inline preview (mrd-file-preview), resolved by the host in response to mrdLoadPreview. Empty while unresolved — the preview area shows a loading state until the host injects a value.
|
|
257
|
-
* @default ''
|
|
258
|
-
*/
|
|
259
|
-
"previewUrl": string;
|
|
260
256
|
}
|
|
261
257
|
interface MrdEmailField {
|
|
262
258
|
/**
|
|
@@ -330,40 +326,6 @@ export namespace Components {
|
|
|
330
326
|
*/
|
|
331
327
|
"value": unknown;
|
|
332
328
|
}
|
|
333
|
-
/**
|
|
334
|
-
* Renders a signed URL inline as a PDF (native browser viewer, via `<iframe>`)
|
|
335
|
-
* or an image (`<img>`), picked from `mimeType`/`fileName`. Purely
|
|
336
|
-
* presentational: the signed URL is used directly as element `src` — a
|
|
337
|
-
* navigation, not a fetch/XHR, so no CORS handling is needed here. Fetching
|
|
338
|
-
* the signed URL itself is the host's responsibility, same as `mrdLoadImage` /
|
|
339
|
-
* `setImagePreview` on mrd-layout-section.
|
|
340
|
-
*/
|
|
341
|
-
interface MrdFilePreview {
|
|
342
|
-
/**
|
|
343
|
-
* Original file name — used for extension-based detection when `mimeType` is absent, and as alt/title text.
|
|
344
|
-
* @default ''
|
|
345
|
-
*/
|
|
346
|
-
"fileName": string;
|
|
347
|
-
/**
|
|
348
|
-
* The file's own reference href (not the signed preview URL in `src`). When set, an unsupported type falls back to the same download button used elsewhere in the library, so hosts need no new wiring.
|
|
349
|
-
* @default ''
|
|
350
|
-
*/
|
|
351
|
-
"href": string;
|
|
352
|
-
/**
|
|
353
|
-
* @default navigator.language
|
|
354
|
-
*/
|
|
355
|
-
"locale": string;
|
|
356
|
-
/**
|
|
357
|
-
* Declared mime type (e.g. 'application/pdf', 'image/png'), when known. Authoritative over `fileName` when present.
|
|
358
|
-
* @default ''
|
|
359
|
-
*/
|
|
360
|
-
"mimeType": string;
|
|
361
|
-
/**
|
|
362
|
-
* Signed URL to render.
|
|
363
|
-
* @default ''
|
|
364
|
-
*/
|
|
365
|
-
"src": string;
|
|
366
|
-
}
|
|
367
329
|
interface MrdForm {
|
|
368
330
|
"layout": ClientLayout;
|
|
369
331
|
/**
|
|
@@ -471,11 +433,6 @@ export namespace Components {
|
|
|
471
433
|
* @default {}
|
|
472
434
|
*/
|
|
473
435
|
"data": Record<string, unknown>;
|
|
474
|
-
/**
|
|
475
|
-
* Minimum height (px) of the commons.document inline file preview — it stretches taller in the wide side-by-side layout. Pass a smaller value when embedding the record in an overlay with limited height.
|
|
476
|
-
* @default 640
|
|
477
|
-
*/
|
|
478
|
-
"documentPreviewHeight": number;
|
|
479
436
|
/**
|
|
480
437
|
* Items from one layout entry in ClientDashboardMetadata.layouts[].
|
|
481
438
|
* @default []
|
|
@@ -494,10 +451,6 @@ export namespace Components {
|
|
|
494
451
|
* Open the lightbox directly with a URL (e.g. after mrdDownload on a FILE field).
|
|
495
452
|
*/
|
|
496
453
|
"openImagePreview": (url: string) => Promise<void>;
|
|
497
|
-
/**
|
|
498
|
-
* Provide a resolved signed URL for the commons.document archetype's inline file preview, in response to mrdLoadDocumentPreview.
|
|
499
|
-
*/
|
|
500
|
-
"setDocumentPreviewUrl": (url: string) => Promise<void>;
|
|
501
454
|
/**
|
|
502
455
|
* Provide a resolved URL for an IMAGE field. Shows as thumbnail; clicking opens the lightbox.
|
|
503
456
|
*/
|
|
@@ -744,7 +697,7 @@ export namespace Components {
|
|
|
744
697
|
"parentId": string;
|
|
745
698
|
/**
|
|
746
699
|
* Time (ms) to wait for setPage() before retrying a page request; after MAX_RETRY_ATTEMPTS retries the page is marked failed (see failedPages).
|
|
747
|
-
* @default
|
|
700
|
+
* @default 15000
|
|
748
701
|
*/
|
|
749
702
|
"requestTimeoutMs": number;
|
|
750
703
|
/**
|
|
@@ -903,10 +856,6 @@ export interface MrdFileFieldCustomEvent<T> extends CustomEvent<T> {
|
|
|
903
856
|
detail: T;
|
|
904
857
|
target: HTMLMrdFileFieldElement;
|
|
905
858
|
}
|
|
906
|
-
export interface MrdFilePreviewCustomEvent<T> extends CustomEvent<T> {
|
|
907
|
-
detail: T;
|
|
908
|
-
target: HTMLMrdFilePreviewElement;
|
|
909
|
-
}
|
|
910
859
|
export interface MrdFormCustomEvent<T> extends CustomEvent<T> {
|
|
911
860
|
detail: T;
|
|
912
861
|
target: HTMLMrdFormElement;
|
|
@@ -1036,7 +985,7 @@ declare global {
|
|
|
1036
985
|
"mrdLoadPage": { page: number; sort: string; path: string; qs: string; nodeId?: string };
|
|
1037
986
|
"mrdLoadDistinct": { nodeId: string; distinct: string; path: string; qs: string };
|
|
1038
987
|
"mrdLoadAggregations": { path: string; qs: string; aggQs: string };
|
|
1039
|
-
"mrdNavigate": { href?: string; label: string; navigateBehaviour?: ClientLayoutNavigateBehaviour; listContext?: ListNavigationContext };
|
|
988
|
+
"mrdNavigate": { href?: string; label: string; navigateBehaviour?: ClientLayoutNavigateBehaviour; listContext?: ListNavigationContext; attachments?: DocumentAttachment[] };
|
|
1040
989
|
"mrdAction": { action: string; path?: string; qs?: string; parentPath?: string | null; basicType?: string };
|
|
1041
990
|
"mrdUpdateObject": { href: string; values: Record<string, unknown> };
|
|
1042
991
|
"mrdUpload": { file: File };
|
|
@@ -1070,7 +1019,7 @@ declare global {
|
|
|
1070
1019
|
interface HTMLMrdDocumentListElementEventMap {
|
|
1071
1020
|
"mrdLoadDistinct": { nodeId: string; distinct: string; path: string; qs: string };
|
|
1072
1021
|
"mrdLoadPage": { nodeId: string; page: number; sort: string; path: string; qs: string };
|
|
1073
|
-
"mrdNavigate": { href?: string; label: string; listContext?: ListNavigationContext };
|
|
1022
|
+
"mrdNavigate": { href?: string; label: string; listContext?: ListNavigationContext; attachments?: DocumentAttachment[] };
|
|
1074
1023
|
"mrdCanCreate": boolean;
|
|
1075
1024
|
"mrdUpdateObject": { href: string; values: Record<string, unknown> };
|
|
1076
1025
|
"mrdUpload": { file: File };
|
|
@@ -1108,16 +1057,22 @@ declare global {
|
|
|
1108
1057
|
interface HTMLMrdDocumentViewElementEventMap {
|
|
1109
1058
|
"mrdNavigate": { href?: string; label: string };
|
|
1110
1059
|
"mrdDownload": { href: string; fileName: string };
|
|
1111
|
-
"
|
|
1060
|
+
"mrdAttachments": { attachments: DocumentAttachment[] };
|
|
1112
1061
|
}
|
|
1113
1062
|
/**
|
|
1114
1063
|
* Archetype-driven single-document view. Given a `commons.document` binding and a
|
|
1115
|
-
* data record, renders the document recognisably — title,
|
|
1116
|
-
*
|
|
1117
|
-
*
|
|
1064
|
+
* data record, renders the document recognisably — title, date, a navigation
|
|
1065
|
+
* link to the container (the dossier) presented like any other data-object link
|
|
1066
|
+
* (primary-coloured text link), an optional muted folder path, a download button
|
|
1067
|
+
* and summary — instead of a generic field form.
|
|
1118
1068
|
* The component keys on the slot→field map (`archetype.slots`) to locate values:
|
|
1119
1069
|
* value slots read `data[field]`; the `container` relation slot reads
|
|
1120
1070
|
* `data._links[field]` (`{ href, name }`). Empty slots are omitted.
|
|
1071
|
+
* This component never renders the file itself (no iframe/image preview) — it
|
|
1072
|
+
* only ever exposes the file reference via `mrdAttachments`. The host resolves
|
|
1073
|
+
* the href and decides how (or whether) to show it inline, so the preview can
|
|
1074
|
+
* live anywhere in the host's own layout instead of being boxed into this
|
|
1075
|
+
* component's DOM (see TASK-0165 / FINDING-0111).
|
|
1121
1076
|
*/
|
|
1122
1077
|
interface HTMLMrdDocumentViewElement extends Components.MrdDocumentView, HTMLStencilElement {
|
|
1123
1078
|
addEventListener<K extends keyof HTMLMrdDocumentViewElementEventMap>(type: K, listener: (this: HTMLMrdDocumentViewElement, ev: MrdDocumentViewCustomEvent<HTMLMrdDocumentViewElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -1191,32 +1146,6 @@ declare global {
|
|
|
1191
1146
|
prototype: HTMLMrdFileFieldElement;
|
|
1192
1147
|
new (): HTMLMrdFileFieldElement;
|
|
1193
1148
|
};
|
|
1194
|
-
interface HTMLMrdFilePreviewElementEventMap {
|
|
1195
|
-
"mrdPreviewReload": void;
|
|
1196
|
-
"mrdDownload": { href: string; fileName: string };
|
|
1197
|
-
}
|
|
1198
|
-
/**
|
|
1199
|
-
* Renders a signed URL inline as a PDF (native browser viewer, via `<iframe>`)
|
|
1200
|
-
* or an image (`<img>`), picked from `mimeType`/`fileName`. Purely
|
|
1201
|
-
* presentational: the signed URL is used directly as element `src` — a
|
|
1202
|
-
* navigation, not a fetch/XHR, so no CORS handling is needed here. Fetching
|
|
1203
|
-
* the signed URL itself is the host's responsibility, same as `mrdLoadImage` /
|
|
1204
|
-
* `setImagePreview` on mrd-layout-section.
|
|
1205
|
-
*/
|
|
1206
|
-
interface HTMLMrdFilePreviewElement extends Components.MrdFilePreview, HTMLStencilElement {
|
|
1207
|
-
addEventListener<K extends keyof HTMLMrdFilePreviewElementEventMap>(type: K, listener: (this: HTMLMrdFilePreviewElement, ev: MrdFilePreviewCustomEvent<HTMLMrdFilePreviewElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1208
|
-
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1209
|
-
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1210
|
-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1211
|
-
removeEventListener<K extends keyof HTMLMrdFilePreviewElementEventMap>(type: K, listener: (this: HTMLMrdFilePreviewElement, ev: MrdFilePreviewCustomEvent<HTMLMrdFilePreviewElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1212
|
-
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1213
|
-
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1214
|
-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1215
|
-
}
|
|
1216
|
-
var HTMLMrdFilePreviewElement: {
|
|
1217
|
-
prototype: HTMLMrdFilePreviewElement;
|
|
1218
|
-
new (): HTMLMrdFilePreviewElement;
|
|
1219
|
-
};
|
|
1220
1149
|
interface HTMLMrdFormElementEventMap {
|
|
1221
1150
|
"mrdSubmit": Record<string, unknown>;
|
|
1222
1151
|
"mrdCancel": void;
|
|
@@ -1276,12 +1205,12 @@ declare global {
|
|
|
1276
1205
|
new (): HTMLMrdImageFieldElement;
|
|
1277
1206
|
};
|
|
1278
1207
|
interface HTMLMrdLayoutSectionElementEventMap {
|
|
1279
|
-
"mrdNavigate": { href?: string; label: string; navigate?: ClientLayoutItemNavigate; navigateBehaviour?: ClientLayoutNavigateBehaviour; listContext?: ListNavigationContext };
|
|
1208
|
+
"mrdNavigate": { href?: string; label: string; navigate?: ClientLayoutItemNavigate; navigateBehaviour?: ClientLayoutNavigateBehaviour; listContext?: ListNavigationContext; attachments?: DocumentAttachment[] };
|
|
1280
1209
|
"mrdSearch": { query: string; dataClass: string };
|
|
1281
1210
|
"mrdDownload": { href: string; fileName: string };
|
|
1282
1211
|
"mrdLoadViewPage": { name: string; page: number; sort: string; path: string; qs: string; nodeId?: string };
|
|
1283
1212
|
"mrdLoadImage": { fieldName: string; href: string };
|
|
1284
|
-
"
|
|
1213
|
+
"mrdAttachments": { attachments: DocumentAttachment[] };
|
|
1285
1214
|
"mrdViewAction": { name: string; action: string; dataClass: string; path?: string; qs?: string; parentPath?: string | null; basicType?: string };
|
|
1286
1215
|
"mrdLoadViewAggregations": { name: string; dataClass: string; path: string; qs: string; aggQs: string };
|
|
1287
1216
|
"mrdLoadViewDistinct": { name: string; nodeId: string; distinct: string; path: string; qs: string };
|
|
@@ -1482,7 +1411,6 @@ declare global {
|
|
|
1482
1411
|
"mrd-email-field": HTMLMrdEmailFieldElement;
|
|
1483
1412
|
"mrd-field": HTMLMrdFieldElement;
|
|
1484
1413
|
"mrd-file-field": HTMLMrdFileFieldElement;
|
|
1485
|
-
"mrd-file-preview": HTMLMrdFilePreviewElement;
|
|
1486
1414
|
"mrd-form": HTMLMrdFormElement;
|
|
1487
1415
|
"mrd-hyperlink-field": HTMLMrdHyperlinkFieldElement;
|
|
1488
1416
|
"mrd-image-field": HTMLMrdImageFieldElement;
|
|
@@ -1667,9 +1595,9 @@ declare namespace LocalJSX {
|
|
|
1667
1595
|
*/
|
|
1668
1596
|
"onMrdLoadPage"?: (event: MrdDocumentContainerCustomEvent<{ page: number; sort: string; path: string; qs: string; nodeId?: string }>) => void;
|
|
1669
1597
|
/**
|
|
1670
|
-
* A row / document was activated. Host routes to the object page. Documents are always the "quick look" use case, so navigateBehaviour is hardcoded to OVERLAY_PAGE here — unlike the generic VIEW/RELATED_VIEW table path in mrd-layout-section, which takes it from the item's configuration.
|
|
1598
|
+
* A row / document was activated. Host routes to the object page. Documents are always the "quick look" use case, so navigateBehaviour is hardcoded to OVERLAY_PAGE here — unlike the generic VIEW/RELATED_VIEW table path in mrd-layout-section, which takes it from the item's configuration. `attachments` prefetches the clicked row's file slot (see TASK-0169).
|
|
1671
1599
|
*/
|
|
1672
|
-
"onMrdNavigate"?: (event: MrdDocumentContainerCustomEvent<{ href?: string; label: string; navigateBehaviour?: ClientLayoutNavigateBehaviour; listContext?: ListNavigationContext }>) => void;
|
|
1600
|
+
"onMrdNavigate"?: (event: MrdDocumentContainerCustomEvent<{ href?: string; label: string; navigateBehaviour?: ClientLayoutNavigateBehaviour; listContext?: ListNavigationContext; attachments?: DocumentAttachment[] }>) => void;
|
|
1673
1601
|
/**
|
|
1674
1602
|
* Generic "update an existing object" request, re-emitted from the folder tree (a document was dragged into another folder/container).
|
|
1675
1603
|
*/
|
|
@@ -1740,9 +1668,9 @@ declare namespace LocalJSX {
|
|
|
1740
1668
|
*/
|
|
1741
1669
|
"onMrdLoadPage"?: (event: MrdDocumentListCustomEvent<{ nodeId: string; page: number; sort: string; path: string; qs: string }>) => void;
|
|
1742
1670
|
/**
|
|
1743
|
-
* A document row was clicked. Host routes to the document object page. `listContext` can be used to re-fetch this exact record (or its neighbours) via `{path}?{qs}&page={index}&size=1`.
|
|
1671
|
+
* A document row was clicked. Host routes to the document object page. `listContext` can be used to re-fetch this exact record (or its neighbours) via `{path}?{qs}&page={index}&size=1`. `attachments` is a prefetch of the clicked row's own file slot (derived from `archetype`) so the host can render a preview immediately, without waiting for the navigated-to page's own mrdAttachments — see TASK-0169 / FINDING-0111.
|
|
1744
1672
|
*/
|
|
1745
|
-
"onMrdNavigate"?: (event: MrdDocumentListCustomEvent<{ href?: string; label: string; listContext?: ListNavigationContext }>) => void;
|
|
1673
|
+
"onMrdNavigate"?: (event: MrdDocumentListCustomEvent<{ href?: string; label: string; listContext?: ListNavigationContext; attachments?: DocumentAttachment[] }>) => void;
|
|
1746
1674
|
/**
|
|
1747
1675
|
* Generic "update an existing object" request — fired when a document is dragged into another folder/container. Host PATCHes `href` with `values` (no move/folder knowledge needed). `values` carries the new folder string (or null for the container root) and, on a cross-container move, the new container relation href.
|
|
1748
1676
|
*/
|
|
@@ -1759,12 +1687,18 @@ declare namespace LocalJSX {
|
|
|
1759
1687
|
}
|
|
1760
1688
|
/**
|
|
1761
1689
|
* Archetype-driven single-document view. Given a `commons.document` binding and a
|
|
1762
|
-
* data record, renders the document recognisably — title,
|
|
1763
|
-
*
|
|
1764
|
-
*
|
|
1690
|
+
* data record, renders the document recognisably — title, date, a navigation
|
|
1691
|
+
* link to the container (the dossier) presented like any other data-object link
|
|
1692
|
+
* (primary-coloured text link), an optional muted folder path, a download button
|
|
1693
|
+
* and summary — instead of a generic field form.
|
|
1765
1694
|
* The component keys on the slot→field map (`archetype.slots`) to locate values:
|
|
1766
1695
|
* value slots read `data[field]`; the `container` relation slot reads
|
|
1767
1696
|
* `data._links[field]` (`{ href, name }`). Empty slots are omitted.
|
|
1697
|
+
* This component never renders the file itself (no iframe/image preview) — it
|
|
1698
|
+
* only ever exposes the file reference via `mrdAttachments`. The host resolves
|
|
1699
|
+
* the href and decides how (or whether) to show it inline, so the preview can
|
|
1700
|
+
* live anywhere in the host's own layout instead of being boxed into this
|
|
1701
|
+
* component's DOM (see TASK-0165 / FINDING-0111).
|
|
1768
1702
|
*/
|
|
1769
1703
|
interface MrdDocumentView {
|
|
1770
1704
|
/**
|
|
@@ -1781,27 +1715,17 @@ declare namespace LocalJSX {
|
|
|
1781
1715
|
*/
|
|
1782
1716
|
"locale"?: string;
|
|
1783
1717
|
/**
|
|
1784
|
-
*
|
|
1718
|
+
* The file(s) belonging to this document, fired once on load and again whenever the file slot's value changes (e.g. the overlay is reused for a different document via prev/next). The host resolves the href(s) itself and decides whether/how to render them (e.g. pdf.js next to the layout) — this component does not fetch or preview the file.
|
|
1785
1719
|
*/
|
|
1786
|
-
"
|
|
1720
|
+
"onMrdAttachments"?: (event: MrdDocumentViewCustomEvent<{ attachments: DocumentAttachment[] }>) => void;
|
|
1787
1721
|
/**
|
|
1788
|
-
*
|
|
1722
|
+
* Download the document file. Host resolves the href to a signed URL.
|
|
1789
1723
|
*/
|
|
1790
|
-
"
|
|
1724
|
+
"onMrdDownload"?: (event: MrdDocumentViewCustomEvent<{ href: string; fileName: string }>) => void;
|
|
1791
1725
|
/**
|
|
1792
1726
|
* Navigate to the container (dossier). Host resolves the href and routes.
|
|
1793
1727
|
*/
|
|
1794
1728
|
"onMrdNavigate"?: (event: MrdDocumentViewCustomEvent<{ href?: string; label: string }>) => void;
|
|
1795
|
-
/**
|
|
1796
|
-
* Minimum height (px) of the inline preview area — it stretches to fill the available row height in the wide side-by-side layout (see mrd-document-view.scss), and falls back to this height when stacked. Overlay hosts typically pass a smaller value than the full-page default to fit available chrome.
|
|
1797
|
-
* @default 640
|
|
1798
|
-
*/
|
|
1799
|
-
"previewHeight"?: number;
|
|
1800
|
-
/**
|
|
1801
|
-
* Signed URL for the file's inline preview (mrd-file-preview), resolved by the host in response to mrdLoadPreview. Empty while unresolved — the preview area shows a loading state until the host injects a value.
|
|
1802
|
-
* @default ''
|
|
1803
|
-
*/
|
|
1804
|
-
"previewUrl"?: string;
|
|
1805
1729
|
}
|
|
1806
1730
|
interface MrdEmailField {
|
|
1807
1731
|
/**
|
|
@@ -1888,48 +1812,6 @@ declare namespace LocalJSX {
|
|
|
1888
1812
|
*/
|
|
1889
1813
|
"value"?: unknown;
|
|
1890
1814
|
}
|
|
1891
|
-
/**
|
|
1892
|
-
* Renders a signed URL inline as a PDF (native browser viewer, via `<iframe>`)
|
|
1893
|
-
* or an image (`<img>`), picked from `mimeType`/`fileName`. Purely
|
|
1894
|
-
* presentational: the signed URL is used directly as element `src` — a
|
|
1895
|
-
* navigation, not a fetch/XHR, so no CORS handling is needed here. Fetching
|
|
1896
|
-
* the signed URL itself is the host's responsibility, same as `mrdLoadImage` /
|
|
1897
|
-
* `setImagePreview` on mrd-layout-section.
|
|
1898
|
-
*/
|
|
1899
|
-
interface MrdFilePreview {
|
|
1900
|
-
/**
|
|
1901
|
-
* Original file name — used for extension-based detection when `mimeType` is absent, and as alt/title text.
|
|
1902
|
-
* @default ''
|
|
1903
|
-
*/
|
|
1904
|
-
"fileName"?: string;
|
|
1905
|
-
/**
|
|
1906
|
-
* The file's own reference href (not the signed preview URL in `src`). When set, an unsupported type falls back to the same download button used elsewhere in the library, so hosts need no new wiring.
|
|
1907
|
-
* @default ''
|
|
1908
|
-
*/
|
|
1909
|
-
"href"?: string;
|
|
1910
|
-
/**
|
|
1911
|
-
* @default navigator.language
|
|
1912
|
-
*/
|
|
1913
|
-
"locale"?: string;
|
|
1914
|
-
/**
|
|
1915
|
-
* Declared mime type (e.g. 'application/pdf', 'image/png'), when known. Authoritative over `fileName` when present.
|
|
1916
|
-
* @default ''
|
|
1917
|
-
*/
|
|
1918
|
-
"mimeType"?: string;
|
|
1919
|
-
/**
|
|
1920
|
-
* Download the file. Same shape as mrd-document-view / mrd-layout-section's mrdDownload — host resolves `href` to a signed URL.
|
|
1921
|
-
*/
|
|
1922
|
-
"onMrdDownload"?: (event: MrdFilePreviewCustomEvent<{ href: string; fileName: string }>) => void;
|
|
1923
|
-
/**
|
|
1924
|
-
* The image failed to load — most likely an expired signed URL. Host should fetch a fresh signed URL and update `src`. Note: this is only raised for images. Browsers don't reliably surface HTTP-level failures (e.g. a 403 on an expired URL) through an iframe's load/error events, so the same detection isn't available for PDFs.
|
|
1925
|
-
*/
|
|
1926
|
-
"onMrdPreviewReload"?: (event: MrdFilePreviewCustomEvent<void>) => void;
|
|
1927
|
-
/**
|
|
1928
|
-
* Signed URL to render.
|
|
1929
|
-
* @default ''
|
|
1930
|
-
*/
|
|
1931
|
-
"src"?: string;
|
|
1932
|
-
}
|
|
1933
1815
|
interface MrdForm {
|
|
1934
1816
|
"layout": ClientLayout;
|
|
1935
1817
|
/**
|
|
@@ -2049,11 +1931,6 @@ declare namespace LocalJSX {
|
|
|
2049
1931
|
* @default {}
|
|
2050
1932
|
*/
|
|
2051
1933
|
"data"?: Record<string, unknown>;
|
|
2052
|
-
/**
|
|
2053
|
-
* Minimum height (px) of the commons.document inline file preview — it stretches taller in the wide side-by-side layout. Pass a smaller value when embedding the record in an overlay with limited height.
|
|
2054
|
-
* @default 640
|
|
2055
|
-
*/
|
|
2056
|
-
"documentPreviewHeight"?: number;
|
|
2057
1934
|
/**
|
|
2058
1935
|
* Items from one layout entry in ClientDashboardMetadata.layouts[].
|
|
2059
1936
|
* @default []
|
|
@@ -2068,15 +1945,15 @@ declare namespace LocalJSX {
|
|
|
2068
1945
|
* @default navigator.language
|
|
2069
1946
|
*/
|
|
2070
1947
|
"locale"?: string;
|
|
1948
|
+
/**
|
|
1949
|
+
* Re-emitted from an embedded mrd-document-view (commons.document single-object view) whenever its file slot's value changes. The component never renders the file itself — the host resolves the href(s) and decides how/whether to show them, e.g. in a panel next to this mrd-layout-section.
|
|
1950
|
+
*/
|
|
1951
|
+
"onMrdAttachments"?: (event: MrdLayoutSectionCustomEvent<{ attachments: DocumentAttachment[] }>) => void;
|
|
2071
1952
|
/**
|
|
2072
1953
|
* Create a new document from an uploaded file; host POSTs `values` to `path`, then calls setViewCreatedObject(name, href) with the new object's href.
|
|
2073
1954
|
*/
|
|
2074
1955
|
"onMrdCreateObject"?: (event: MrdLayoutSectionCustomEvent<{ name: string; path: string; values: Record<string, unknown> }>) => void;
|
|
2075
1956
|
"onMrdDownload"?: (event: MrdLayoutSectionCustomEvent<{ href: string; fileName: string }>) => void;
|
|
2076
|
-
/**
|
|
2077
|
-
* Re-emitted from an embedded mrd-document-view's mrdLoadPreview (commons.document single-object view); host resolves the file href to a signed URL and calls setDocumentPreviewUrl().
|
|
2078
|
-
*/
|
|
2079
|
-
"onMrdLoadDocumentPreview"?: (event: MrdLayoutSectionCustomEvent<{ href: string }>) => void;
|
|
2080
1957
|
/**
|
|
2081
1958
|
* Fired once on load for each IMAGE field that has an href; host resolves the URL and calls setImagePreview().
|
|
2082
1959
|
*/
|
|
@@ -2093,7 +1970,10 @@ declare namespace LocalJSX {
|
|
|
2093
1970
|
* Re-emitted from an embedded mrd-table's or mrd-document-list's mrdLoadPage; host fetches the rows and calls setViewPage(). `nodeId` is present for a document-list folder load.
|
|
2094
1971
|
*/
|
|
2095
1972
|
"onMrdLoadViewPage"?: (event: MrdLayoutSectionCustomEvent<{ name: string; page: number; sort: string; path: string; qs: string; nodeId?: string }>) => void;
|
|
2096
|
-
|
|
1973
|
+
/**
|
|
1974
|
+
* `attachments`, when present, prefetches the clicked document row's file slot (see TASK-0169 / FINDING-0111) so the host can render a preview immediately, without waiting for the navigated-to page's own mrdAttachments. Only set for commons.document rows opened from an embedded document view.
|
|
1975
|
+
*/
|
|
1976
|
+
"onMrdNavigate"?: (event: MrdLayoutSectionCustomEvent<{ href?: string; label: string; navigate?: ClientLayoutItemNavigate; navigateBehaviour?: ClientLayoutNavigateBehaviour; listContext?: ListNavigationContext; attachments?: DocumentAttachment[] }>) => void;
|
|
2097
1977
|
"onMrdSearch"?: (event: MrdLayoutSectionCustomEvent<{ query: string; dataClass: string }>) => void;
|
|
2098
1978
|
/**
|
|
2099
1979
|
* Generic "update an existing object" request from an embedded document view (a document dragged into another folder). Host PATCHes `href` with `values`.
|
|
@@ -2354,7 +2234,7 @@ declare namespace LocalJSX {
|
|
|
2354
2234
|
"parentId"?: string;
|
|
2355
2235
|
/**
|
|
2356
2236
|
* Time (ms) to wait for setPage() before retrying a page request; after MAX_RETRY_ATTEMPTS retries the page is marked failed (see failedPages).
|
|
2357
|
-
* @default
|
|
2237
|
+
* @default 15000
|
|
2358
2238
|
*/
|
|
2359
2239
|
"requestTimeoutMs"?: number;
|
|
2360
2240
|
/**
|
|
@@ -2516,8 +2396,6 @@ declare namespace LocalJSX {
|
|
|
2516
2396
|
}
|
|
2517
2397
|
interface MrdDocumentViewAttributes {
|
|
2518
2398
|
"locale": string;
|
|
2519
|
-
"previewUrl": string;
|
|
2520
|
-
"previewHeight": number;
|
|
2521
2399
|
}
|
|
2522
2400
|
interface MrdEmailFieldAttributes {
|
|
2523
2401
|
"name": string;
|
|
@@ -2540,13 +2418,6 @@ declare namespace LocalJSX {
|
|
|
2540
2418
|
"accept": string;
|
|
2541
2419
|
"maxSize": number;
|
|
2542
2420
|
}
|
|
2543
|
-
interface MrdFilePreviewAttributes {
|
|
2544
|
-
"src": string;
|
|
2545
|
-
"mimeType": string;
|
|
2546
|
-
"fileName": string;
|
|
2547
|
-
"href": string;
|
|
2548
|
-
"locale": string;
|
|
2549
|
-
}
|
|
2550
2421
|
interface MrdFormAttributes {
|
|
2551
2422
|
"locale": string;
|
|
2552
2423
|
"referenceHref": string;
|
|
@@ -2573,7 +2444,6 @@ declare namespace LocalJSX {
|
|
|
2573
2444
|
}
|
|
2574
2445
|
interface MrdLayoutSectionAttributes {
|
|
2575
2446
|
"locale": string;
|
|
2576
|
-
"documentPreviewHeight": number;
|
|
2577
2447
|
}
|
|
2578
2448
|
interface MrdListFieldAttributes {
|
|
2579
2449
|
"name": string;
|
|
@@ -2674,7 +2544,6 @@ declare namespace LocalJSX {
|
|
|
2674
2544
|
"mrd-email-field": Omit<MrdEmailField, keyof MrdEmailFieldAttributes> & { [K in keyof MrdEmailField & keyof MrdEmailFieldAttributes]?: MrdEmailField[K] } & { [K in keyof MrdEmailField & keyof MrdEmailFieldAttributes as `attr:${K}`]?: MrdEmailFieldAttributes[K] } & { [K in keyof MrdEmailField & keyof MrdEmailFieldAttributes as `prop:${K}`]?: MrdEmailField[K] };
|
|
2675
2545
|
"mrd-field": Omit<MrdField, keyof MrdFieldAttributes> & { [K in keyof MrdField & keyof MrdFieldAttributes]?: MrdField[K] } & { [K in keyof MrdField & keyof MrdFieldAttributes as `attr:${K}`]?: MrdFieldAttributes[K] } & { [K in keyof MrdField & keyof MrdFieldAttributes as `prop:${K}`]?: MrdField[K] };
|
|
2676
2546
|
"mrd-file-field": Omit<MrdFileField, keyof MrdFileFieldAttributes> & { [K in keyof MrdFileField & keyof MrdFileFieldAttributes]?: MrdFileField[K] } & { [K in keyof MrdFileField & keyof MrdFileFieldAttributes as `attr:${K}`]?: MrdFileFieldAttributes[K] } & { [K in keyof MrdFileField & keyof MrdFileFieldAttributes as `prop:${K}`]?: MrdFileField[K] };
|
|
2677
|
-
"mrd-file-preview": Omit<MrdFilePreview, keyof MrdFilePreviewAttributes> & { [K in keyof MrdFilePreview & keyof MrdFilePreviewAttributes]?: MrdFilePreview[K] } & { [K in keyof MrdFilePreview & keyof MrdFilePreviewAttributes as `attr:${K}`]?: MrdFilePreviewAttributes[K] } & { [K in keyof MrdFilePreview & keyof MrdFilePreviewAttributes as `prop:${K}`]?: MrdFilePreview[K] };
|
|
2678
2547
|
"mrd-form": Omit<MrdForm, keyof MrdFormAttributes> & { [K in keyof MrdForm & keyof MrdFormAttributes]?: MrdForm[K] } & { [K in keyof MrdForm & keyof MrdFormAttributes as `attr:${K}`]?: MrdFormAttributes[K] } & { [K in keyof MrdForm & keyof MrdFormAttributes as `prop:${K}`]?: MrdForm[K] };
|
|
2679
2548
|
"mrd-hyperlink-field": Omit<MrdHyperlinkField, keyof MrdHyperlinkFieldAttributes> & { [K in keyof MrdHyperlinkField & keyof MrdHyperlinkFieldAttributes]?: MrdHyperlinkField[K] } & { [K in keyof MrdHyperlinkField & keyof MrdHyperlinkFieldAttributes as `attr:${K}`]?: MrdHyperlinkFieldAttributes[K] } & { [K in keyof MrdHyperlinkField & keyof MrdHyperlinkFieldAttributes as `prop:${K}`]?: MrdHyperlinkField[K] };
|
|
2680
2549
|
"mrd-image-field": Omit<MrdImageField, keyof MrdImageFieldAttributes> & { [K in keyof MrdImageField & keyof MrdImageFieldAttributes]?: MrdImageField[K] } & { [K in keyof MrdImageField & keyof MrdImageFieldAttributes as `attr:${K}`]?: MrdImageFieldAttributes[K] } & { [K in keyof MrdImageField & keyof MrdImageFieldAttributes as `prop:${K}`]?: MrdImageField[K] };
|
|
@@ -2728,26 +2597,23 @@ declare module "@stencil/core" {
|
|
|
2728
2597
|
"mrd-document-list": LocalJSX.IntrinsicElements["mrd-document-list"] & JSXBase.HTMLAttributes<HTMLMrdDocumentListElement>;
|
|
2729
2598
|
/**
|
|
2730
2599
|
* Archetype-driven single-document view. Given a `commons.document` binding and a
|
|
2731
|
-
* data record, renders the document recognisably — title,
|
|
2732
|
-
*
|
|
2733
|
-
*
|
|
2600
|
+
* data record, renders the document recognisably — title, date, a navigation
|
|
2601
|
+
* link to the container (the dossier) presented like any other data-object link
|
|
2602
|
+
* (primary-coloured text link), an optional muted folder path, a download button
|
|
2603
|
+
* and summary — instead of a generic field form.
|
|
2734
2604
|
* The component keys on the slot→field map (`archetype.slots`) to locate values:
|
|
2735
2605
|
* value slots read `data[field]`; the `container` relation slot reads
|
|
2736
2606
|
* `data._links[field]` (`{ href, name }`). Empty slots are omitted.
|
|
2607
|
+
* This component never renders the file itself (no iframe/image preview) — it
|
|
2608
|
+
* only ever exposes the file reference via `mrdAttachments`. The host resolves
|
|
2609
|
+
* the href and decides how (or whether) to show it inline, so the preview can
|
|
2610
|
+
* live anywhere in the host's own layout instead of being boxed into this
|
|
2611
|
+
* component's DOM (see TASK-0165 / FINDING-0111).
|
|
2737
2612
|
*/
|
|
2738
2613
|
"mrd-document-view": LocalJSX.IntrinsicElements["mrd-document-view"] & JSXBase.HTMLAttributes<HTMLMrdDocumentViewElement>;
|
|
2739
2614
|
"mrd-email-field": LocalJSX.IntrinsicElements["mrd-email-field"] & JSXBase.HTMLAttributes<HTMLMrdEmailFieldElement>;
|
|
2740
2615
|
"mrd-field": LocalJSX.IntrinsicElements["mrd-field"] & JSXBase.HTMLAttributes<HTMLMrdFieldElement>;
|
|
2741
2616
|
"mrd-file-field": LocalJSX.IntrinsicElements["mrd-file-field"] & JSXBase.HTMLAttributes<HTMLMrdFileFieldElement>;
|
|
2742
|
-
/**
|
|
2743
|
-
* Renders a signed URL inline as a PDF (native browser viewer, via `<iframe>`)
|
|
2744
|
-
* or an image (`<img>`), picked from `mimeType`/`fileName`. Purely
|
|
2745
|
-
* presentational: the signed URL is used directly as element `src` — a
|
|
2746
|
-
* navigation, not a fetch/XHR, so no CORS handling is needed here. Fetching
|
|
2747
|
-
* the signed URL itself is the host's responsibility, same as `mrdLoadImage` /
|
|
2748
|
-
* `setImagePreview` on mrd-layout-section.
|
|
2749
|
-
*/
|
|
2750
|
-
"mrd-file-preview": LocalJSX.IntrinsicElements["mrd-file-preview"] & JSXBase.HTMLAttributes<HTMLMrdFilePreviewElement>;
|
|
2751
2617
|
"mrd-form": LocalJSX.IntrinsicElements["mrd-form"] & JSXBase.HTMLAttributes<HTMLMrdFormElement>;
|
|
2752
2618
|
"mrd-hyperlink-field": LocalJSX.IntrinsicElements["mrd-hyperlink-field"] & JSXBase.HTMLAttributes<HTMLMrdHyperlinkFieldElement>;
|
|
2753
2619
|
"mrd-image-field": LocalJSX.IntrinsicElements["mrd-image-field"] & JSXBase.HTMLAttributes<HTMLMrdImageFieldElement>;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export * from './types';
|
|
2
2
|
export type { AlternativeView, ColumnFilter, TableAction, TableColumn } from './utils/cell-renderer';
|
|
3
3
|
export type { ListNavigationContext } from './utils/query-params';
|
|
4
|
+
export { detectPreviewKind } from './utils/file-preview-kind';
|
|
5
|
+
export type { FilePreviewKind } from './utils/file-preview-kind';
|
|
@@ -1070,6 +1070,7 @@ export declare namespace JSXBase {
|
|
|
1070
1070
|
importance?: 'low' | 'auto' | 'high';
|
|
1071
1071
|
height?: number | string;
|
|
1072
1072
|
loading?: 'lazy' | 'auto' | 'eager';
|
|
1073
|
+
referrerPolicy?: ReferrerPolicy;
|
|
1073
1074
|
sizes?: string;
|
|
1074
1075
|
src?: string;
|
|
1075
1076
|
srcSet?: string;
|
|
@@ -87,6 +87,14 @@ export interface RelationSearchResult {
|
|
|
87
87
|
label: string;
|
|
88
88
|
description?: string;
|
|
89
89
|
}
|
|
90
|
+
/** A single file belonging to a `commons.document`-archetype record. The host
|
|
91
|
+
* resolves `href` to a signed URL and decides how (or whether) to render it
|
|
92
|
+
* inline — the component only ever hands over the reference. */
|
|
93
|
+
export interface DocumentAttachment {
|
|
94
|
+
href: string;
|
|
95
|
+
fileName: string;
|
|
96
|
+
mimeType?: string;
|
|
97
|
+
}
|
|
90
98
|
/**
|
|
91
99
|
* A resolved archetype binding as published on a dashboard.
|
|
92
100
|
* `archetype` is the platform-defined id (e.g. `commons.document`); `slots` maps
|
|
@@ -126,11 +134,10 @@ export interface ClientLayoutItemField {
|
|
|
126
134
|
aggregate?: 'sum' | 'avg' | 'count' | null;
|
|
127
135
|
historyEnabled?: boolean;
|
|
128
136
|
}
|
|
129
|
-
/** Response shape from the /aggregations endpoint.
|
|
130
|
-
* `count` is a plain number (total record count) when returned at the top level. */
|
|
137
|
+
/** Response shape from the /aggregations endpoint. */
|
|
131
138
|
export interface AggregationResult {
|
|
132
139
|
total?: number;
|
|
133
|
-
count?:
|
|
140
|
+
count?: Record<string, number>;
|
|
134
141
|
sum?: Record<string, number>;
|
|
135
142
|
avg?: Record<string, number>;
|
|
136
143
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClientArchetype, DocumentAttachment } from '../types/client-layout';
|
|
2
|
+
/**
|
|
3
|
+
* Extract the `commons.document` archetype's file slot from a data record as a
|
|
4
|
+
* `DocumentAttachment[]` — empty when the slot is unmapped or has no value.
|
|
5
|
+
* Shared by mrd-document-view (on load/data-change) and mrd-document-container
|
|
6
|
+
* (row-click prefetch on mrdNavigate), so both report the exact same shape.
|
|
7
|
+
*/
|
|
8
|
+
export declare function attachmentsFromRecord(archetype: ClientArchetype | null | undefined, record: Record<string, unknown> | null | undefined): DocumentAttachment[];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Pure classification logic for deciding whether a file can be shown inline. */
|
|
2
|
+
export type FilePreviewKind = 'pdf' | 'image' | 'unsupported';
|
|
3
|
+
/**
|
|
4
|
+
* Decide how a file could be rendered given its declared mime type and/or file
|
|
5
|
+
* name. A declared mime type is authoritative when present (a mismatched file
|
|
6
|
+
* name extension is ignored); the file name extension is only consulted as a
|
|
7
|
+
* fallback when no mime type is known.
|
|
8
|
+
*/
|
|
9
|
+
export declare function detectPreviewKind(mimeType?: string | null, fileName?: string | null): FilePreviewKind;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmlogic/components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Stencil.js web component library for dynamic forms and virtual-scroll data tables",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Mosterd",
|
|
@@ -34,26 +34,24 @@
|
|
|
34
34
|
"scripts": {
|
|
35
35
|
"build": "stencil build --docs",
|
|
36
36
|
"start": "stencil build --dev --watch --serve",
|
|
37
|
-
"test": "
|
|
38
|
-
"test.watch": "
|
|
37
|
+
"test": "vitest run",
|
|
38
|
+
"test.watch": "vitest",
|
|
39
39
|
"generate": "stencil generate"
|
|
40
40
|
},
|
|
41
41
|
"publishConfig": {
|
|
42
42
|
"access": "public"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@stencil/core": "^4.
|
|
45
|
+
"@stencil/core": "^4.43.5",
|
|
46
46
|
"quill": "^2.0.3"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@stencil/angular-output-target": "^1.
|
|
50
|
-
"@stencil/sass": "
|
|
51
|
-
"@
|
|
49
|
+
"@stencil/angular-output-target": "^1.4.0",
|
|
50
|
+
"@stencil/sass": "3.2.3",
|
|
51
|
+
"@stencil/vitest": "^1.13.3",
|
|
52
52
|
"@types/quill": "^2.0.14",
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"sass": "^1.69.7",
|
|
57
|
-
"typescript": "^5.3.3"
|
|
53
|
+
"sass": "^1.101.0",
|
|
54
|
+
"typescript": "^6.0.3",
|
|
55
|
+
"vitest": "^4.1.10"
|
|
58
56
|
}
|
|
59
57
|
}
|