UNPKG

@adaptabletools/adaptable-cjs

Version:

Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

119 lines (118 loc) 5.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TeamSharingReducer = exports.TeamSharingCheckForUpdates = exports.TeamSharingUpdateItem = exports.TeamSharingLinkItem = exports.TeamSharingGet = exports.TeamSharingRemoveItem = exports.TeamSharingCommitImport = exports.TeamSharingProcessImport = exports.TeamSharingImportItem = exports.TeamSharingSet = exports.TeamSharingShareCustom = exports.TeamSharingShare = exports.TEAMSHARING_CHECK_FOR_UPDATES = exports.TEAMSHARING_UPDATE_ITEM = exports.TEAMSHARING_LINK_ITEM = exports.TEAMSHARING_REMOVE_ITEM = exports.TEAMSHARING_COMMIT_IMPORT = exports.TEAMSHARING_PROCESS_IMPORT = exports.TEAMSHARING_IMPORT_ITEM = exports.TEAMSHARING_SHARE_CUSTOM = exports.TEAMSHARING_SHARE = exports.TEAMSHARING_SET = exports.TEAMSHARING_GET = void 0; const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants"); exports.TEAMSHARING_GET = 'TEAMSHARING_GET'; exports.TEAMSHARING_SET = 'TEAMSHARING_SET'; exports.TEAMSHARING_SHARE = 'TEAMSHARING_SHARE'; exports.TEAMSHARING_SHARE_CUSTOM = 'TEAMSHARING_SHARE_CUSTOM'; exports.TEAMSHARING_IMPORT_ITEM = 'TEAMSHARING_IMPORT_ITEM'; exports.TEAMSHARING_PROCESS_IMPORT = 'TEAMSHARING_PROCESS_IMPORT'; exports.TEAMSHARING_COMMIT_IMPORT = 'TEAMSHARING_COMMIT_IMPORT'; exports.TEAMSHARING_REMOVE_ITEM = 'TEAMSHARING_REMOVE_ITEM'; exports.TEAMSHARING_LINK_ITEM = 'TEAMSHARING_LINK_ITEM'; exports.TEAMSHARING_UPDATE_ITEM = 'TEAMSHARING_UPDATE_ITEM'; exports.TEAMSHARING_CHECK_FOR_UPDATES = 'TEAMSHARING_CHECK_FOR_UPDATES'; const TeamSharingShare = (entity, module, configuration) => ({ type: exports.TEAMSHARING_SHARE, Entity: entity, Module: module, Configuration: configuration, }); exports.TeamSharingShare = TeamSharingShare; const TeamSharingShareCustom = (entity, configuration) => ({ type: exports.TEAMSHARING_SHARE_CUSTOM, Entity: entity, Configuration: configuration, }); exports.TeamSharingShareCustom = TeamSharingShareCustom; const TeamSharingSet = (Entities) => ({ type: exports.TEAMSHARING_SET, Entities, }); exports.TeamSharingSet = TeamSharingSet; const TeamSharingImportItem = (SharedEntity) => ({ type: exports.TEAMSHARING_IMPORT_ITEM, SharedEntity, }); exports.TeamSharingImportItem = TeamSharingImportItem; const TeamSharingProcessImport = (ImportSteps) => ({ type: exports.TEAMSHARING_PROCESS_IMPORT, ImportSteps, }); exports.TeamSharingProcessImport = TeamSharingProcessImport; const TeamSharingCommitImport = () => ({ type: exports.TEAMSHARING_COMMIT_IMPORT, }); exports.TeamSharingCommitImport = TeamSharingCommitImport; const TeamSharingRemoveItem = (Uuid) => ({ type: exports.TEAMSHARING_REMOVE_ITEM, Uuid, }); exports.TeamSharingRemoveItem = TeamSharingRemoveItem; const TeamSharingGet = () => ({ type: exports.TEAMSHARING_GET, }); exports.TeamSharingGet = TeamSharingGet; const TeamSharingLinkItem = (...SharedEntities) => ({ type: exports.TEAMSHARING_LINK_ITEM, SharedEntities, }); exports.TeamSharingLinkItem = TeamSharingLinkItem; const TeamSharingUpdateItem = (ChangedAdaptableObject, UserName) => ({ type: exports.TEAMSHARING_UPDATE_ITEM, ChangedAdaptableObject, UserName, }); exports.TeamSharingUpdateItem = TeamSharingUpdateItem; const TeamSharingCheckForUpdates = () => ({ type: exports.TEAMSHARING_CHECK_FOR_UPDATES, }); exports.TeamSharingCheckForUpdates = TeamSharingCheckForUpdates; const initialTeamSharingState = { SharedEntities: GeneralConstants_1.EMPTY_ARRAY, ActiveSharedEntityMap: {}, importProcessInProgress: false, }; const TeamSharingReducer = (state = initialTeamSharingState, action) => { switch (action.type) { case exports.TEAMSHARING_SET: { const actionTyped = action; const sharedEntities = actionTyped.Entities; // keep only the active entities which are still shared (some may have been removed by other users) const sharedEntityItemIds = sharedEntities.map((sharedEntity) => sharedEntity.Entity.Uuid); const activeSharedEntityMap = {}; Object.keys(state.ActiveSharedEntityMap).forEach((activeObjectId) => { if (sharedEntityItemIds.includes(activeObjectId)) { activeSharedEntityMap[activeObjectId] = state.ActiveSharedEntityMap[activeObjectId]; } }); return Object.assign({}, state, { SharedEntities: sharedEntities, ActiveSharedEntityMap: activeSharedEntityMap, }); } case exports.TEAMSHARING_LINK_ITEM: { const actionTyped = action; const newActiveEntities = actionTyped.SharedEntities; const activeSharedEntityMap = { ...state.ActiveSharedEntityMap }; newActiveEntities.forEach((newActiveEntity) => (activeSharedEntityMap[newActiveEntity.Entity.Uuid] = newActiveEntity)); return Object.assign({}, state, { ActiveSharedEntityMap: activeSharedEntityMap, }); } case exports.TEAMSHARING_PROCESS_IMPORT: { return Object.assign({}, state, { importProcessInProgress: true, }); } case exports.TEAMSHARING_COMMIT_IMPORT: { return Object.assign({}, state, { importProcessInProgress: false, }); } default: return state; } }; exports.TeamSharingReducer = TeamSharingReducer;