UNPKG

@turbox3d/renderer-core

Version:

Large-scale declarative graphic ui core renderer

149 lines (148 loc) 5.33 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.PureComponent = exports.Component = void 0; var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _shared = require("@turbox3d/shared"); var _utils = require("./utils"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var dummyPreserveProps = { key: void 0, // children: void 0, // onClick: void 0, // onDBClick: void 0, // onRightClick: void 0, // onDragStart: void 0, // onDragMove: void 0, // onDragEnd: void 0, // onPinchStart: void 0, // onPinch: void 0, // onPinchEnd: void 0, // onRotateStart: void 0, // onRotate: void 0, // onRotateEnd: void 0, // onPress: void 0, // onPressUp: void 0, // onHoverIn: void 0, // onHoverOut: void 0, clickable: void 0, hoverable: void 0, draggable: void 0, pinchable: void 0, rotatable: void 0, pressable: void 0, id: void 0, type: void 0 }; /** * graphic render component */ var Component = exports.Component = /*#__PURE__*/function () { function Component() { var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; (0, _classCallCheck2["default"])(this, Component); this.props = props; } return (0, _createClass2["default"])(Component, [{ key: "context", get: function get() { var scene = (0, _utils.getSceneParent)(this); if (scene) { return scene.sceneContext || {}; } return {}; } }, { key: "forceUpdate", value: function forceUpdate() { this._vNode.update(true); } }, { key: "shouldComponentUpdate", value: function shouldComponentUpdate() { var nextProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return true; } }, { key: "shouldComponentInteractiveUpdate", value: function shouldComponentInteractiveUpdate() { var nextProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return !(0, _shared.shallowEqual)({ clickable: this.props.clickable, hoverable: this.props.hoverable, draggable: this.props.draggable, pinchable: this.props.pinchable, rotatable: this.props.rotatable, pressable: this.props.pressable }, { clickable: nextProps.clickable, hoverable: nextProps.hoverable, draggable: nextProps.draggable, pinchable: nextProps.pinchable, rotatable: nextProps.rotatable, pressable: nextProps.pressable }); } }, { key: "shouldComponentCustomPropsUpdate", value: function shouldComponentCustomPropsUpdate() { var nextProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var preserveKeys = Object.keys(dummyPreserveProps); return !(0, _shared.shallowEqual)(this.props, nextProps, preserveKeys); } }, { key: "componentWillMount", value: function componentWillMount() { // } }, { key: "componentWillUpdate", value: function componentWillUpdate() { var nextProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; } // }, { key: "render", value: function render() { return this.props.children || null; } }, { key: "componentDidMount", value: function componentDidMount() { // } }, { key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { // } }, { key: "componentWillUnmount", value: function componentWillUnmount() { // } }]); }(); var PureComponent = exports.PureComponent = /*#__PURE__*/function (_Component) { function PureComponent() { (0, _classCallCheck2["default"])(this, PureComponent); return _callSuper(this, PureComponent, arguments); } (0, _inherits2["default"])(PureComponent, _Component); return (0, _createClass2["default"])(PureComponent, [{ key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps) { var interactiveKeys = new Set(['clickable', 'hoverable', 'draggable', 'pinchable', 'rotatable', 'pressable']); var preserveKeys = Object.keys(dummyPreserveProps).filter(function (key) { return !interactiveKeys.has(key); }); return !(0, _shared.shallowEqual)(this.props, nextProps, preserveKeys); } }]); }(Component);