UNPKG

@atlaskit/adf-schema

Version:

Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs

99 lines (95 loc) 4.07 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.layoutColumnWithLocalId = exports.layoutColumnStage0 = exports.layoutColumn = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _nodeTypes = require("../../next-schema/generated/nodeTypes"); var _uuid = require("../../utils/uuid"); var _experiments = require("@atlaskit/tmp-editor-statsig/experiments"); var _valign = require("./types/valign"); 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) { (0, _defineProperty2.default)(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 setColumnAttributes = function setColumnAttributes(node) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref$withLocalId = _ref.withLocalId, withLocalId = _ref$withLocalId === void 0 ? false : _ref$withLocalId; var attrs = { 'data-layout-column': 'true' }; var _node$attrs = node.attrs, width = _node$attrs.width, valign = _node$attrs.valign, localId = _node$attrs.localId; if (width) { var baseStyle = "flex-basis: ".concat(width, "%"); var columnWidthVar = (0, _experiments.editorExperiment)('platform_editor_layout_column_resize_handle', true) ? "; --column-width: ".concat(width, "%") : ''; attrs['style'] = baseStyle + columnWidthVar; attrs['data-column-width'] = "".concat(width); } if (valign) { attrs['data-valign'] = valign; } if (withLocalId && localId) { attrs['data-local-id'] = localId; } return attrs; }; var getColumnAttrs = function getColumnAttrs() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref2$withLocalId = _ref2.withLocalId, withLocalId = _ref2$withLocalId === void 0 ? false : _ref2$withLocalId; return function (domNode) { // eslint-disable-next-line @atlaskit/editor/no-as-casting var dom = domNode; var base = _objectSpread({ width: Number(dom.getAttribute('data-column-width')) || undefined }, withLocalId && { localId: _uuid.uuid.generate() }); var valign = (0, _valign.parseValign)(dom.getAttribute('data-valign')); return valign ? _objectSpread(_objectSpread({}, base), {}, { valign: valign }) : base; }; }; // We need to apply an attribute to the innermost child to help ProseMirror // identify its boundaries better. var LAYOUT_CONTENT_ATTRS = { 'data-layout-content': 'true' }; /** * @name layoutColumn_node */ var layoutColumn = exports.layoutColumn = (0, _nodeTypes.layoutColumn)({ parseDOM: [{ context: 'layoutColumn//', tag: 'div[data-layout-column]', skip: true }, { tag: 'div[data-layout-column]', getAttrs: getColumnAttrs() }], toDOM: function toDOM(node) { return ['div', setColumnAttributes(node), ['div', LAYOUT_CONTENT_ATTRS, 0]]; } }); var layoutColumnWithLocalId = exports.layoutColumnWithLocalId = (0, _nodeTypes.layoutColumn)({ parseDOM: [{ context: 'layoutColumn//', tag: 'div[data-layout-column]', skip: true }, { tag: 'div[data-layout-column]', getAttrs: getColumnAttrs({ withLocalId: true }) }], toDOM: function toDOM(node) { return ['div', setColumnAttributes(node, { withLocalId: true }), ['div', LAYOUT_CONTENT_ATTRS, 0]]; } }); var layoutColumnStage0 = exports.layoutColumnStage0 = layoutColumnWithLocalId;