UNPKG

@atlaskit/renderer

Version:
63 lines (59 loc) 2.71 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.ADFEncoder = void 0; exports.findInTree = findInTree; exports.getText = exports.getEventHandler = void 0; var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _schemaDefault = require("@atlaskit/adf-schema/schema-default"); var _editorJsonTransformer = require("@atlaskit/editor-json-transformer"); /* eslint-disable @atlaskit/editor/no-re-export */ // Entry file in package.json // Ignored via go/ees005 // eslint-disable-next-line @typescript-eslint/no-explicit-any function createEncoder(parser, encoder) { return function (value) { return encoder.encode(parser.parse(value)); }; } var ADFEncoder = exports.ADFEncoder = /*#__PURE__*/(0, _createClass2.default)( // Ignored via go/ees005 // eslint-disable-next-line @typescript-eslint/no-explicit-any function ADFEncoder(createTransformerWithSchema) { (0, _classCallCheck2.default)(this, ADFEncoder); var transformer = createTransformerWithSchema(_schemaDefault.defaultSchema); this.encode = createEncoder(transformer, new _editorJsonTransformer.JSONTransformer()); }); var getText = exports.getText = function getText(node) { return node.text || node.attrs && (node.attrs.text || node.attrs.shortName) || "[".concat(typeof node.type === 'string' ? node.type : node.type.name, "]"); }; var getEventHandler = exports.getEventHandler = function getEventHandler(eventHandlers, type) { var eventName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'onClick'; // Ignored via go/ees005 // eslint-disable-next-line @typescript-eslint/no-explicit-any return eventHandlers && type && eventHandlers[type] && eventHandlers[type][eventName]; }; /** * Traverse through parent elements of element. Return element for which evaluate(element) returns * true. If topElement is reached before evaluate returns true, return false. Does not run evaluate * on topElement. * @param element Starting HTMLElement * @param topElement HTMLElement to end search at. evaluate is not called on this element * @param evaluate Function which returns true or false based on the given element. eg: Checks if * element has desired classname. */ function findInTree(element, topElement, evaluate) { if (element === topElement) { return false; } if (evaluate(element)) { return true; } if (!element.parentElement) { return false; } return findInTree(element.parentElement, topElement, evaluate); }