From fe2d8176f15b087ee1e0fc49260dba2fa8d11155 Mon Sep 17 00:00:00 2001
From: Andrey Platov <andrey@hardcoreeng.com>
Date: Sat, 9 Oct 2021 13:17:00 +0200
Subject: [PATCH] add $move descriptor

Signed-off-by: Andrey Platov <andrey@hardcoreeng.com>
---
 packages/core/src/tx.ts                          | 16 ++++++++++++++++
 .../src/components/KanbanView.svelte             |  1 -
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/packages/core/src/tx.ts b/packages/core/src/tx.ts
index 9a1bf47c78..c4d376c3d8 100644
--- a/packages/core/src/tx.ts
+++ b/packages/core/src/tx.ts
@@ -85,6 +85,14 @@ export interface Position<X extends PropertyType> {
   $position: number
 }
 
+/**
+ * @public
+ */
+export interface MoveDescriptor<X extends PropertyType> {
+  $value: X
+  $position: number
+}
+
 /**
  * @public
  */
@@ -92,6 +100,13 @@ export type ArrayAsElementPosition<T extends Doc> = {
   [P in keyof T]: T[P] extends Arr<infer X> ? X | Position<X> : never
 }
 
+/**
+ * @public
+ */
+export type ArrayMoveDescriptor<T extends Doc> = {
+  [P in keyof T]: T[P] extends Arr<infer X> ? MoveDescriptor<X> : never
+}
+
 /**
  * @public
  */
@@ -110,6 +125,7 @@ export type OmitNever<T extends object> = Omit<T, KeysByType<T, never>>
 export interface PushOptions<T extends Doc> {
   $push?: Partial<OmitNever<ArrayAsElementPosition<T>>>
   $pull?: Partial<OmitNever<ArrayAsElement<T>>>
+  $move?: Partial<OmitNever<ArrayMoveDescriptor<T>>>
 }
 
 /**
diff --git a/plugins/view-resources/src/components/KanbanView.svelte b/plugins/view-resources/src/components/KanbanView.svelte
index 25d3af78b2..61d14d9fd8 100644
--- a/plugins/view-resources/src/components/KanbanView.svelte
+++ b/plugins/view-resources/src/components/KanbanView.svelte
@@ -181,7 +181,6 @@
           <KanbanCardEmpty label={'Create new application'} />
           {#each objects as object, j}
             {#if object.state === state._id}
-              {j}
               <div
                 on:dragover|preventDefault={(ev) => {
                   dragover(ev, object)