@atlaskit/adf-schema
Version:
Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs
99 lines (95 loc) • 4.07 kB
JavaScript
;
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;