@atlaskit/editor-plugin-card
Version:
Card plugin for @atlaskit/editor-core
154 lines • 6.91 kB
JavaScript
import _typeof from "@babel/runtime/helpers/typeof";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var queue = function queue(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
requests: state.requests.concat(action.requests)
});
};
var resolve = function resolve(state, action) {
var requests = state.requests.reduce(function (requests, request) {
if (request.url !== action.url) {
requests.push(request);
}
return requests;
}, []);
return _objectSpread(_objectSpread({}, state), {}, {
requests: requests
});
};
var register = function register(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
cards: state.cards.filter(function (card) {
return card.pos !== action.info.pos;
}).concat(action.info)
});
};
var removeCard = function removeCard(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
cards: state.cards.filter(function (card) {
return card.id !== action.info.id;
})
});
};
var setProvider = function setProvider(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
provider: action.provider
});
};
var setCardLayout = function setCardLayout(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
layout: action.layout
});
};
var setDatasourceTableRef = function setDatasourceTableRef(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
datasourceTableRef: action.datasourceTableRef
});
};
var setResolvedToolbarAttributes = function setResolvedToolbarAttributes(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
resolvedToolbarAttributesByUrl: _objectSpread(_objectSpread({}, state.resolvedToolbarAttributesByUrl), {}, _defineProperty({}, action.url, action.attributes))
});
};
var setCardLayoutDatasourceTableRef = function setCardLayoutDatasourceTableRef(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
datasourceTableRef: action.datasourceTableRef,
layout: action.layout
});
};
var registerEvents = function registerEvents(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
smartLinkEvents: action.smartLinkEvents
});
};
var setLinkToolbar = function setLinkToolbar(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
showLinkingToolbar: action.type === 'SHOW_LINK_TOOLBAR'
});
};
var showDatasourceModal = function showDatasourceModal(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
showDatasourceModal: true,
datasourceModalType: action.type === 'SHOW_DATASOURCE_MODAL' ? action.modalType : undefined
});
};
var hideDatasourceModal = function hideDatasourceModal(state) {
return _objectSpread(_objectSpread({}, state), {}, {
showDatasourceModal: false,
datasourceModalType: undefined
});
};
var clearOverlayCandidate = function clearOverlayCandidate(state) {
return _objectSpread(_objectSpread({}, state), {}, {
overlayCandidatePosition: undefined
});
};
var registerRemoveOverlayOnInsertedLink = function registerRemoveOverlayOnInsertedLink(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
cards: action.info ? state.cards.filter(function (card) {
var _action$info;
return card.pos !== ((_action$info = action.info) === null || _action$info === void 0 ? void 0 : _action$info.pos);
}).concat(action.info) : state.cards,
removeOverlay: action.callback
});
};
var setDatasourceStash = function setDatasourceStash(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
datasourceStash: _objectSpread(_objectSpread({}, state.datasourceStash), {}, _defineProperty({}, action.datasourceStash.url, {
views: action.datasourceStash.views
}))
});
};
var removeDatasourceStash = function removeDatasourceStash(state, action) {
var _state$datasourceStas = state.datasourceStash,
_action$url = action.url,
_ = _state$datasourceStas[_action$url],
datasourceStash = _objectWithoutProperties(_state$datasourceStas, [_action$url].map(_toPropertyKey));
return _objectSpread(_objectSpread({}, state), {}, {
datasourceStash: datasourceStash
});
};
export default (function (state, action) {
switch (action.type) {
case 'QUEUE':
return queue(state, action);
case 'SET_PROVIDER':
return setProvider(state, action);
case 'RESOLVE':
return resolve(state, action);
case 'REGISTER':
return register(state, action);
case 'REMOVE_CARD':
return removeCard(state, action);
case 'REGISTER_EVENTS':
return registerEvents(state, action);
case 'SET_DATASOURCE_TABLE_REF':
return setDatasourceTableRef(state, action);
case 'SET_RESOLVED_TOOLBAR_ATTRIBUTES':
return setResolvedToolbarAttributes(state, action);
case 'SET_CARD_LAYOUT':
return setCardLayout(state, action);
case 'SET_CARD_LAYOUT_AND_DATASOURCE_TABLE_REF':
return setCardLayoutDatasourceTableRef(state, action);
case 'SHOW_LINK_TOOLBAR':
case 'HIDE_LINK_TOOLBAR':
return setLinkToolbar(state, action);
case 'SHOW_DATASOURCE_MODAL':
return showDatasourceModal(state, action);
case 'HIDE_DATASOURCE_MODAL':
return hideDatasourceModal(state);
case 'CLEAR_OVERLAY_CANDIDATE':
return clearOverlayCandidate(state);
case 'REGISTER_REMOVE_OVERLAY_ON_INSERTED_LINK':
return registerRemoveOverlayOnInsertedLink(state, action);
case 'SET_DATASOURCE_STASH':
return setDatasourceStash(state, action);
case 'REMOVE_DATASOURCE_STASH':
return removeDatasourceStash(state, action);
}
});