{"version":3,"file":"binom-sdk-utils-object-move.mjs","sources":["../../../../../../binom/public/sdks/sdk-utils/object-move/src/bn-object-move-utils.ts","../../../../../../binom/public/sdks/sdk-utils/object-move/src/binom-sdk-utils-object-move.ts"],"sourcesContent":["import { BnObjectUtils } from '@binom/sdk-utils/object';\n\nexport interface SelectableItem {\n    selected?: boolean;\n    [key: string]: unknown;\n}\n\nexport class BnObjectMoveUtils {\n    public static moveItems<T extends SelectableItem>(\n        sourceArray: T[],\n        destinationArray: T[],\n        items: T[],\n        keepSelection = false\n    ): void {\n        if (!BnObjectUtils.isArray(sourceArray) || !BnObjectUtils.isArray(destinationArray) || !BnObjectUtils.isArray(items)) {\n            return;\n        }\n\n        if (keepSelection) {\n            destinationArray.push(...items);\n        }\n\n        for (const item of items) {\n            if (!keepSelection && item.selected !== undefined) {\n                item.selected = false;\n            }\n            const index = sourceArray.findIndex((obj) => BnObjectUtils.deepEquals(obj, item));\n            if (index !== -1) {\n                destinationArray.push(item);\n                sourceArray.splice(index, 1);\n            }\n        }\n    }\n    \n    public static moveAllItems<T>(sourceArray: T[], destinationArray: T[]): void {\n        if (!BnObjectUtils.isArray(sourceArray) || !BnObjectUtils.isArray(destinationArray)) return;\n        destinationArray.push(...sourceArray);\n        sourceArray.splice(0, sourceArray.length);\n    }\n\n    public static moveAllRight<T extends SelectableItem>(leftData: T[], rightData: T[]): void {\n        this.moveAllItems(leftData, rightData);\n    }\n\n    public static moveRight<T extends SelectableItem>(\n        leftData: T[],\n        rightData: T[],\n        leftSelected: T[],\n        keepSelection = false\n    ): void {\n        this.moveItems(leftData, rightData, leftSelected, keepSelection);\n        leftSelected.splice(0, leftSelected.length);\n    }\n\n    public static moveAllLeft<T extends SelectableItem>(leftData: T[], rightData: T[]): void {\n        this.moveAllItems(rightData, leftData);\n    }\n\n    public static moveLeft<T extends SelectableItem>(\n        leftData: T[],\n        rightData: T[],\n        rightSelected: T[],\n        keepSelection = false\n    ): void {\n        this.moveItems(rightData, leftData, rightSelected, keepSelection);\n        rightSelected.splice(0, rightSelected.length);\n    }\n\n    public static moveUp<T extends Record<string, unknown>>(\n        list: T[],\n        moveItems: T[],\n        useField: keyof T = 'orderNum' as keyof T\n    ): void {\n        if (!BnObjectUtils.isArray(list) || !BnObjectUtils.isArray(moveItems)) return;\n\n        for (let i = 0; i < list.length; i++) {\n            const item = list[i];\n            if (moveItems.includes(item)) {\n                const index = list.indexOf(item);\n                if (index > 0) {\n                    [list[index], list[index - 1]] = [list[index - 1], list[index]];\n                }\n            }\n        }\n        this.updateIndex(list, useField);\n    }\n\n    public static moveDown<T extends Record<string, unknown>>(\n        list: T[],\n        moveItems: T[],\n        useField: keyof T = 'orderNum' as keyof T\n    ): void {\n        if (!BnObjectUtils.isArray(list) || !BnObjectUtils.isArray(moveItems)) return;\n\n        for (let i = list.length - 1; i >= 0; i--) {\n            const item = list[i];\n            if (moveItems.includes(item)) {\n                const index = list.indexOf(item);\n                if (index < list.length - 1) {\n                    [list[index], list[index + 1]] = [list[index + 1], list[index]];\n                }\n            }\n        }\n        this.updateIndex(list, useField);\n    }\n\n    public static moveToStart<T extends Record<string, unknown>>(\n        list: T[],\n        moveItems: T[],\n        useField: keyof T = 'orderNum' as keyof T\n    ): void {\n        if (!BnObjectUtils.isArray(list) || !BnObjectUtils.isArray(moveItems)) return;\n\n        for (const item of [...moveItems]) {\n            const index = list.indexOf(item);\n            if (index !== -1) {\n                list.splice(index, 1);\n                list.unshift(item);\n            }\n        }\n        this.updateIndex(list, useField);\n    }\n\n    public static moveToEnd<T extends Record<string, unknown>>(\n        list: T[],\n        moveItems: T[],\n        useField: keyof T = 'orderNum' as keyof T\n    ): void {\n        if (!BnObjectUtils.isArray(list) || !BnObjectUtils.isArray(moveItems)) return;\n\n        for (const item of [...moveItems]) {\n            const index = list.indexOf(item);\n            if (index !== -1) {\n                list.splice(index, 1);\n                list.push(item);\n            }\n        }\n        this.updateIndex(list, useField);\n    }\n\n    private static updateIndex<T extends Record<string, unknown>>(list: T[], useField: keyof T): void {\n        for (let i = 0; i < list.length; i++) {\n            list[i][useField] = i as T[keyof T];\n        }\n    }\n}\n    \n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}