diff --git a/projects/angular-grid-layout/src/lib/grid.component.ts b/projects/angular-grid-layout/src/lib/grid.component.ts index e24d5b5..fc655b7 100644 --- a/projects/angular-grid-layout/src/lib/grid.component.ts +++ b/projects/angular-grid-layout/src/lib/grid.component.ts @@ -702,6 +702,7 @@ export class KtdGridComponent implements OnChanges, AfterContentInit, AfterConte minH: item.minH, maxW: item.maxW, maxH: item.maxH, + metadata: item.metadata })) as KtdGridLayout); } else { // TODO: Need we really to emit if there is no layout change but drag started and ended? diff --git a/projects/angular-grid-layout/src/lib/grid.definitions.ts b/projects/angular-grid-layout/src/lib/grid.definitions.ts index b41131c..1fb2404 100644 --- a/projects/angular-grid-layout/src/lib/grid.definitions.ts +++ b/projects/angular-grid-layout/src/lib/grid.definitions.ts @@ -13,6 +13,7 @@ export interface KtdGridLayoutItem { minH?: number; maxW?: number; maxH?: number; + metadata?: any; } export type KtdGridCompactType = CompactType; diff --git a/projects/angular-grid-layout/src/lib/utils/grid.utils.ts b/projects/angular-grid-layout/src/lib/utils/grid.utils.ts index f4eca5b..02bd8fd 100644 --- a/projects/angular-grid-layout/src/lib/utils/grid.utils.ts +++ b/projects/angular-grid-layout/src/lib/utils/grid.utils.ts @@ -29,7 +29,7 @@ export function ktdGetGridItemRowHeight(layout: KtdGridLayout, gridHeight: numbe export function ktdGridCompact(layout: KtdGridLayout, compactType: KtdGridCompactType, cols: number): KtdGridLayout { return compact(layout, compactType, cols) // Prune react-grid-layout compact extra properties. - .map(item => ({ id: item.id, x: item.x, y: item.y, w: item.w, h: item.h, minW: item.minW, minH: item.minH, maxW: item.maxW, maxH: item.maxH })); + .map(item => ({ id: item.id, x: item.x, y: item.y, w: item.w, h: item.h, minW: item.minW, minH: item.minH, maxW: item.maxW, maxH: item.maxH, metadata: item.metadata })); } /** diff --git a/projects/angular-grid-layout/src/lib/utils/react-grid-layout.utils.ts b/projects/angular-grid-layout/src/lib/utils/react-grid-layout.utils.ts index 58bf306..40311ba 100644 --- a/projects/angular-grid-layout/src/lib/utils/react-grid-layout.utils.ts +++ b/projects/angular-grid-layout/src/lib/utils/react-grid-layout.utils.ts @@ -20,6 +20,7 @@ export type LayoutItem = { static?: boolean; isDraggable?: boolean | null | undefined; isResizable?: boolean | null | undefined; + metadata?: any; }; export type Layout = Array; export type Position = { @@ -110,6 +111,7 @@ export function cloneLayoutItem(layoutItem: LayoutItem): LayoutItem { id: layoutItem.id, moved: !!layoutItem.moved, static: !!layoutItem.static, + metadata: layoutItem.metadata, }; if (layoutItem.minW !== undefined) { clonedLayoutItem.minW = layoutItem.minW;} diff --git a/projects/demo-app/src/app/playground/playground.component.html b/projects/demo-app/src/app/playground/playground.component.html index c1b8aad..9088110 100644 --- a/projects/demo-app/src/app/playground/playground.component.html +++ b/projects/demo-app/src/app/playground/playground.component.html @@ -177,7 +177,11 @@ [dragStartThreshold]="dragStartThreshold" [draggable]="!disableDrag" [resizable]="!disableResize"> -
{{item.id}}
+
+
+ +
+