@titaui/pc 1.10.39 → 1.10.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/dynamic/dynamic-item/dynamic-chart/index.js +18 -3
- package/lib/components/upload/index.js +2 -4
- package/lib/index.js +0 -8
- package/package.json +2 -20
- package/lib/components/rich-editor/basic/schema.js +0 -47
- package/lib/components/rich-editor/consts/events.js +0 -12
- package/lib/components/rich-editor/enums.js +0 -42
- package/lib/components/rich-editor/index.js +0 -58
- package/lib/components/rich-editor/keymap.js +0 -119
- package/lib/components/rich-editor/keymaps/index.js +0 -241
- package/lib/components/rich-editor/models/controller.js +0 -18
- package/lib/components/rich-editor/models/editor.js +0 -47
- package/lib/components/rich-editor/models/plugin.js +0 -20
- package/lib/components/rich-editor/models/schema.js +0 -121
- package/lib/components/rich-editor/plugins/block/block-quote/commond.js +0 -27
- package/lib/components/rich-editor/plugins/block/block-quote/index.js +0 -126
- package/lib/components/rich-editor/plugins/block/heading/commonds.js +0 -31
- package/lib/components/rich-editor/plugins/block/heading/index.js +0 -188
- package/lib/components/rich-editor/plugins/block/index.js +0 -57
- package/lib/components/rich-editor/plugins/block/lists/actions/conversions.js +0 -172
- package/lib/components/rich-editor/plugins/block/lists/actions/indent-list-items-selected.js +0 -163
- package/lib/components/rich-editor/plugins/block/lists/actions/indent-list.js +0 -59
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-forward.js +0 -74
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/index.js +0 -45
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-list-item-with-paragraph.js +0 -104
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-list-item-with-parent-nested-list.js +0 -92
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-nested-list-with-parent-list-item.js +0 -89
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-paragraph-with-list.js +0 -48
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-sibling-list-items.js +0 -61
- package/lib/components/rich-editor/plugins/block/lists/actions/merge-lists.js +0 -34
- package/lib/components/rich-editor/plugins/block/lists/actions/outdent-list-items-selected.js +0 -289
- package/lib/components/rich-editor/plugins/block/lists/actions/wrap-and-join-lists.js +0 -180
- package/lib/components/rich-editor/plugins/block/lists/baseCommand.js +0 -328
- package/lib/components/rich-editor/plugins/block/lists/commond/indent-list.js +0 -60
- package/lib/components/rich-editor/plugins/block/lists/commond/index.js +0 -398
- package/lib/components/rich-editor/plugins/block/lists/commond/join-list-item-forward.js +0 -45
- package/lib/components/rich-editor/plugins/block/lists/commond/listBackspace.js +0 -302
- package/lib/components/rich-editor/plugins/block/lists/commond/outdent-list.js +0 -43
- package/lib/components/rich-editor/plugins/block/lists/index.js +0 -222
- package/lib/components/rich-editor/plugins/block/lists/messages.js +0 -38
- package/lib/components/rich-editor/plugins/block/lists/pm-plugins/input-rule.js +0 -152
- package/lib/components/rich-editor/plugins/block/lists/pm-plugins/keymap.js +0 -33
- package/lib/components/rich-editor/plugins/block/lists/pm-plugins/main.js +0 -94
- package/lib/components/rich-editor/plugins/block/lists/styles.js +0 -15
- package/lib/components/rich-editor/plugins/block/lists/transforms.js +0 -347
- package/lib/components/rich-editor/plugins/block/lists/utils/analytics.js +0 -48
- package/lib/components/rich-editor/plugins/block/lists/utils/find.js +0 -126
- package/lib/components/rich-editor/plugins/block/lists/utils/indentation.js +0 -87
- package/lib/components/rich-editor/plugins/block/lists/utils/node.js +0 -144
- package/lib/components/rich-editor/plugins/block/lists/utils/replace-content.js +0 -31
- package/lib/components/rich-editor/plugins/block/lists/utils/selection.js +0 -201
- package/lib/components/rich-editor/plugins/block/lists/utils.js +0 -52
- package/lib/components/rich-editor/plugins/block/paragraph/index.js +0 -91
- package/lib/components/rich-editor/plugins/core/index.js +0 -90
- package/lib/components/rich-editor/plugins/core/pm-plugins/focus-handler.js +0 -67
- package/lib/components/rich-editor/plugins/core/pm-plugins/keymap.js +0 -29
- package/lib/components/rich-editor/plugins/core/pm-plugins/reactNodeView.js +0 -80
- package/lib/components/rich-editor/plugins/extension/alignment/commond.js +0 -24
- package/lib/components/rich-editor/plugins/extension/alignment/index.js +0 -111
- package/lib/components/rich-editor/plugins/extension/alignment/utils.js +0 -19
- package/lib/components/rich-editor/plugins/extension/index.js +0 -18
- package/lib/components/rich-editor/plugins/index.js +0 -44
- package/lib/components/rich-editor/plugins/inline/color/commond.js +0 -128
- package/lib/components/rich-editor/plugins/inline/color/consts.js +0 -43
- package/lib/components/rich-editor/plugins/inline/color/index.css +0 -61
- package/lib/components/rich-editor/plugins/inline/color/index.js +0 -209
- package/lib/components/rich-editor/plugins/inline/color/selector.js +0 -252
- package/lib/components/rich-editor/plugins/inline/delete-line/index.js +0 -147
- package/lib/components/rich-editor/plugins/inline/em/index.js +0 -93
- package/lib/components/rich-editor/plugins/inline/index.js +0 -83
- package/lib/components/rich-editor/plugins/inline/link/commands.js +0 -256
- package/lib/components/rich-editor/plugins/inline/link/index.js +0 -149
- package/lib/components/rich-editor/plugins/inline/link/pm-plugins/fake-cursor-for-toolbar.js +0 -77
- package/lib/components/rich-editor/plugins/inline/link/pm-plugins/main.js +0 -293
- package/lib/components/rich-editor/plugins/inline/link/ui/index.css +0 -79
- package/lib/components/rich-editor/plugins/inline/link/ui/linkEditor.js +0 -148
- package/lib/components/rich-editor/plugins/inline/link/ui/linkToolbar.js +0 -88
- package/lib/components/rich-editor/plugins/inline/link/ui/toolbarBtn.js +0 -117
- package/lib/components/rich-editor/plugins/inline/link/utils.js +0 -33
- package/lib/components/rich-editor/plugins/inline/strong/index.js +0 -137
- package/lib/components/rich-editor/plugins/inline/under-line/index.js +0 -145
- package/lib/components/rich-editor/plugins/util.js +0 -281
- package/lib/components/rich-editor/react/reactNodeView.js +0 -383
- package/lib/components/rich-editor/react/uiProvider.js +0 -185
- package/lib/components/rich-editor/schemas/basic.js +0 -309
- package/lib/components/rich-editor/schemas/index.js +0 -19
- package/lib/components/rich-editor/schemas/list.js +0 -342
- package/lib/components/rich-editor/types/commond.js +0 -5
- package/lib/components/rich-editor/types/index.js +0 -18
- package/lib/components/rich-editor/ui/Popup/index.js +0 -247
- package/lib/components/rich-editor/ui/Popup/utils.js +0 -399
- package/lib/components/rich-editor/ui/editor/index.css +0 -141
- package/lib/components/rich-editor/ui/editor/index.js +0 -130
- package/lib/components/rich-editor/ui/normal-toolbar/index.css +0 -28
- package/lib/components/rich-editor/ui/normal-toolbar/index.js +0 -109
- package/lib/components/rich-editor/utils/browser.js +0 -35
- package/lib/components/rich-editor/utils/commands.js +0 -266
- package/lib/components/rich-editor/utils/document.js +0 -160
- package/lib/components/rich-editor/utils/event.js +0 -79
- package/lib/components/rich-editor/utils/helpers.js +0 -16
- package/lib/components/rich-editor/utils/mark.js +0 -168
- package/lib/components/rich-editor/utils/slice.js +0 -85
- package/lib/components/rich-editor/utils/toolbar.js +0 -228
- package/yarn-error.log +0 -22184
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = void 0;
|
|
9
|
-
|
|
10
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
|
-
|
|
14
|
-
var _tooltip = _interopRequireDefault(require("../../../tooltip"));
|
|
15
|
-
|
|
16
|
-
require("./index.css");
|
|
17
|
-
|
|
18
|
-
var _events = require("../../consts/events");
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
21
|
-
|
|
22
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
-
|
|
24
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
|
-
|
|
26
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
27
|
-
|
|
28
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
29
|
-
|
|
30
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
31
|
-
|
|
32
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
33
|
-
|
|
34
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
35
|
-
|
|
36
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
37
|
-
|
|
38
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
39
|
-
|
|
40
|
-
var preCls = 'tita-rich-editor-normal-toolbar';
|
|
41
|
-
|
|
42
|
-
function MenuItem(_ref) {
|
|
43
|
-
var _config$active, _config$disabled, _classNames;
|
|
44
|
-
|
|
45
|
-
var editor = _ref.editor,
|
|
46
|
-
config = _ref.config;
|
|
47
|
-
|
|
48
|
-
var _useState = (0, _react.useState)(editor.state),
|
|
49
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
50
|
-
state = _useState2[0],
|
|
51
|
-
setState = _useState2[1];
|
|
52
|
-
|
|
53
|
-
var handleClickItem = (0, _react.useCallback)(function () {
|
|
54
|
-
var _config$handler;
|
|
55
|
-
|
|
56
|
-
(_config$handler = config.handler) === null || _config$handler === void 0 ? void 0 : _config$handler.call(config, editor);
|
|
57
|
-
}, []);
|
|
58
|
-
(0, _react.useEffect)(function () {
|
|
59
|
-
editor.on(_events.EDITOR_STATE_CHANGE, setState);
|
|
60
|
-
}, []);
|
|
61
|
-
var itemClass = (0, _classnames["default"])(preCls + '-item', (_classNames = {}, _defineProperty(_classNames, preCls + '-item--active', (_config$active = config.active) === null || _config$active === void 0 ? void 0 : _config$active.call(config, state)), _defineProperty(_classNames, preCls + '-item--disabled', (_config$disabled = config.disabled) === null || _config$disabled === void 0 ? void 0 : _config$disabled.call(config, state)), _classNames));
|
|
62
|
-
|
|
63
|
-
if (config.renderMenu) {
|
|
64
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
65
|
-
className: itemClass
|
|
66
|
-
}, config.renderMenu(editor, config));
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
70
|
-
overlay: config.title,
|
|
71
|
-
placement: "top"
|
|
72
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
73
|
-
className: itemClass,
|
|
74
|
-
onClick: handleClickItem
|
|
75
|
-
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
76
|
-
className: config === null || config === void 0 ? void 0 : config.icon
|
|
77
|
-
})));
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function RichEditorToolBar(_ref2) {
|
|
81
|
-
var editor = _ref2.editor;
|
|
82
|
-
var toolbars = (0, _react.useMemo)(function () {
|
|
83
|
-
var res = [];
|
|
84
|
-
editor === null || editor === void 0 ? void 0 : editor.controllers.forEach(function (controller) {
|
|
85
|
-
if (Array.isArray(controller.toolbar)) {
|
|
86
|
-
res = res.concat(controller.toolbar);
|
|
87
|
-
} else {
|
|
88
|
-
controller.toolbar && res.push(controller.toolbar);
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
return res;
|
|
92
|
-
}, [editor === null || editor === void 0 ? void 0 : editor.controllers]);
|
|
93
|
-
var handleMouseDown = (0, _react.useCallback)(function () {
|
|
94
|
-
editor === null || editor === void 0 ? void 0 : editor.emit(_events.TOOLBAR_MOUSE_DOWN);
|
|
95
|
-
}, [editor]);
|
|
96
|
-
if (!editor) return null;
|
|
97
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
98
|
-
className: preCls,
|
|
99
|
-
onMouseDown: handleMouseDown
|
|
100
|
-
}, toolbars.map(function (config) {
|
|
101
|
-
return /*#__PURE__*/_react["default"].createElement(MenuItem, {
|
|
102
|
-
editor: editor,
|
|
103
|
-
config: config
|
|
104
|
-
});
|
|
105
|
-
}));
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
var _default = RichEditorToolBar;
|
|
109
|
-
exports["default"] = _default;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var result = {
|
|
8
|
-
mac: false,
|
|
9
|
-
ie: false,
|
|
10
|
-
ie_version: 0,
|
|
11
|
-
gecko: false,
|
|
12
|
-
chrome: false,
|
|
13
|
-
chrome_version: 0,
|
|
14
|
-
android: false,
|
|
15
|
-
ios: false,
|
|
16
|
-
webkit: false
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
if (typeof navigator !== 'undefined') {
|
|
20
|
-
var ieEdge = /Edge\/(\d+)/.exec(navigator.userAgent);
|
|
21
|
-
var ieUpTo10 = /MSIE \d/.test(navigator.userAgent);
|
|
22
|
-
var ie11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);
|
|
23
|
-
result.mac = /Mac/.test(navigator.platform);
|
|
24
|
-
var ie = result.ie = !!(ieUpTo10 || ie11up || ieEdge);
|
|
25
|
-
result.ie_version = ieUpTo10 ? document.documentMode || 6 : ie11up ? +ie11up[1] : ieEdge ? +ieEdge[1] : null;
|
|
26
|
-
result.gecko = !ie && /gecko\/\d/i.test(navigator.userAgent);
|
|
27
|
-
result.chrome = !ie && /Chrome\//.test(navigator.userAgent);
|
|
28
|
-
result.chrome_version = parseInt((navigator.userAgent.match(/Chrome\/(\d{2})/) || [])[1], 10);
|
|
29
|
-
result.android = /Android \d/.test(navigator.userAgent);
|
|
30
|
-
result.ios = !ie && /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent);
|
|
31
|
-
result.webkit = !ie && !!document.documentElement && 'WebkitAppearance' in document.documentElement.style;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
var _default = result;
|
|
35
|
-
exports["default"] = _default;
|
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.chainTransactions = chainTransactions;
|
|
7
|
-
exports.filter = exports.clearNodes = void 0;
|
|
8
|
-
exports.findCutBefore = findCutBefore;
|
|
9
|
-
exports.selectNode = exports.isFirstChildOfParent = exports.isEmptySelectionAtStart = exports.isEmptySelectionAtEnd = exports.insertContentDeleteRange = void 0;
|
|
10
|
-
exports.setAlignment = setAlignment;
|
|
11
|
-
exports.setHeadLine = setHeadLine;
|
|
12
|
-
exports.walkPrevNode = exports.walkNextNode = void 0;
|
|
13
|
-
|
|
14
|
-
var _prosemirrorCommands = require("prosemirror-commands");
|
|
15
|
-
|
|
16
|
-
var _prosemirrorState = require("prosemirror-state");
|
|
17
|
-
|
|
18
|
-
var _prosemirrorTransform = require("prosemirror-transform");
|
|
19
|
-
|
|
20
|
-
var _schemas = _interopRequireDefault(require("../schemas"));
|
|
21
|
-
|
|
22
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
23
|
-
|
|
24
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
25
|
-
|
|
26
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
27
|
-
|
|
28
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
29
|
-
|
|
30
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
31
|
-
|
|
32
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
33
|
-
|
|
34
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
35
|
-
|
|
36
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
37
|
-
|
|
38
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
39
|
-
|
|
40
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
41
|
-
|
|
42
|
-
function chainTransactions() {
|
|
43
|
-
for (var _len = arguments.length, commands = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
44
|
-
commands[_key] = arguments[_key];
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return function (state, dispatch) {
|
|
48
|
-
var dispatcher = function dispatcher(tr) {
|
|
49
|
-
state = state.apply(tr);
|
|
50
|
-
dispatch(tr);
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
var last = commands.pop();
|
|
54
|
-
var reduced = commands.reduce(function (result, command) {
|
|
55
|
-
return result || command(state, dispatcher);
|
|
56
|
-
}, false);
|
|
57
|
-
return reduced && last !== undefined && last(state, dispatch);
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function setHeadLine(state, dispatchTransiction, level) {
|
|
62
|
-
var $from = state.selection.$from;
|
|
63
|
-
var node = $from.node();
|
|
64
|
-
|
|
65
|
-
if (node.type === _schemas["default"].nodes.heading && level === node.attrs.level) {
|
|
66
|
-
return (0, _prosemirrorCommands.setBlockType)(_schemas["default"].nodes.paragraph, node.attrs)(state, dispatchTransiction);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return chainTransactions(clearNodes(), (0, _prosemirrorCommands.setBlockType)(_schemas["default"].nodes.heading, _objectSpread(_objectSpread({}, node.attrs), {}, {
|
|
70
|
-
level: level
|
|
71
|
-
})))(state, dispatchTransiction);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
function setAlignment(state, dispatchTransiction, alignment) {
|
|
75
|
-
var $from = state.selection.$from;
|
|
76
|
-
var node = $from.node();
|
|
77
|
-
return (0, _prosemirrorCommands.setBlockType)(node.type, _objectSpread(_objectSpread({}, node.attrs), {}, {
|
|
78
|
-
textAlign: alignment
|
|
79
|
-
}))(state, dispatchTransiction);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
var clearNodes = function clearNodes() {
|
|
83
|
-
return function (state, dispatch) {
|
|
84
|
-
var tr = state.tr;
|
|
85
|
-
var selection = tr.selection;
|
|
86
|
-
var ranges = selection.ranges;
|
|
87
|
-
ranges.forEach(function (range) {
|
|
88
|
-
state.doc.nodesBetween(range.$from.pos, range.$to.pos, function (node, pos) {
|
|
89
|
-
if (node.type.isText) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
var $fromPos = tr.doc.resolve(tr.mapping.map(pos));
|
|
94
|
-
var $toPos = tr.doc.resolve(tr.mapping.map(pos + node.nodeSize));
|
|
95
|
-
var nodeRange = $fromPos.blockRange($toPos);
|
|
96
|
-
|
|
97
|
-
if (!nodeRange) {
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
var targetLiftDepth = (0, _prosemirrorTransform.liftTarget)(nodeRange);
|
|
102
|
-
|
|
103
|
-
if (node.type.isTextblock && dispatch) {
|
|
104
|
-
var _$fromPos$parent$cont = $fromPos.parent.contentMatchAt($fromPos.index()),
|
|
105
|
-
defaultType = _$fromPos$parent$cont.defaultType;
|
|
106
|
-
|
|
107
|
-
tr.setNodeMarkup(nodeRange.start, defaultType);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if ((targetLiftDepth || targetLiftDepth === 0) && dispatch) {
|
|
111
|
-
tr.lift(nodeRange, targetLiftDepth);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
tr.docChanged && dispatch(tr);
|
|
116
|
-
return true;
|
|
117
|
-
};
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
exports.clearNodes = clearNodes;
|
|
121
|
-
|
|
122
|
-
var filter = function filter(predicates, cmd) {
|
|
123
|
-
return function (state, dispatch, view) {
|
|
124
|
-
if (!Array.isArray(predicates)) {
|
|
125
|
-
predicates = [predicates];
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (predicates.some(function (pred) {
|
|
129
|
-
return !pred(state, view);
|
|
130
|
-
})) {
|
|
131
|
-
return false;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
return cmd(state, dispatch, view) || false;
|
|
135
|
-
};
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
exports.filter = filter;
|
|
139
|
-
|
|
140
|
-
var isFirstChildOfParent = function isFirstChildOfParent(state) {
|
|
141
|
-
var $from = state.selection.$from;
|
|
142
|
-
return $from.depth > 1 ? // ? (state.selection instanceof GapCursorSelection &&
|
|
143
|
-
// $from.parentOffset === 0) ||
|
|
144
|
-
$from.index($from.depth - 1) === 0 : true;
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
exports.isFirstChildOfParent = isFirstChildOfParent;
|
|
148
|
-
|
|
149
|
-
function findCutBefore($pos) {
|
|
150
|
-
// parent is non-isolating, so we can look across this boundary
|
|
151
|
-
if (!$pos.parent.type.spec.isolating) {
|
|
152
|
-
// search up the tree from the pos's *parent*
|
|
153
|
-
for (var i = $pos.depth - 1; i >= 0; i--) {
|
|
154
|
-
// starting from the inner most node's parent, find out
|
|
155
|
-
// if we're not its first child
|
|
156
|
-
if ($pos.index(i) > 0) {
|
|
157
|
-
return $pos.doc.resolve($pos.before(i + 1));
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
if ($pos.node(i).type.spec.isolating) {
|
|
161
|
-
break;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
return null;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
var isEmptySelectionAtStart = function isEmptySelectionAtStart(state) {
|
|
170
|
-
var _state$selection = state.selection,
|
|
171
|
-
empty = _state$selection.empty,
|
|
172
|
-
$from = _state$selection.$from;
|
|
173
|
-
return empty && $from.parentOffset === 0;
|
|
174
|
-
};
|
|
175
|
-
|
|
176
|
-
exports.isEmptySelectionAtStart = isEmptySelectionAtStart;
|
|
177
|
-
|
|
178
|
-
var isEmptySelectionAtEnd = function isEmptySelectionAtEnd(state) {
|
|
179
|
-
var _state$selection2 = state.selection,
|
|
180
|
-
empty = _state$selection2.empty,
|
|
181
|
-
$from = _state$selection2.$from;
|
|
182
|
-
return empty && $from.end() === $from.pos;
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
exports.isEmptySelectionAtEnd = isEmptySelectionAtEnd;
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* Walk backwards from a position until we encounter the (inside) end of
|
|
189
|
-
* the previous node, or reach the start of the document.
|
|
190
|
-
*
|
|
191
|
-
* @param $startPos Position to start walking from.
|
|
192
|
-
*/
|
|
193
|
-
var walkPrevNode = function walkPrevNode($startPos) {
|
|
194
|
-
var $pos = $startPos;
|
|
195
|
-
|
|
196
|
-
while ($pos.pos > 0 && ($pos.pos === $startPos.pos || $pos.parentOffset < $pos.parent.nodeSize - 2)) {
|
|
197
|
-
$pos = $pos.doc.resolve($pos.pos - 1);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
return {
|
|
201
|
-
$pos: $pos,
|
|
202
|
-
foundNode: $pos.pos > 0
|
|
203
|
-
};
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
exports.walkPrevNode = walkPrevNode;
|
|
207
|
-
|
|
208
|
-
var walkNextNode = function walkNextNode($startPos) {
|
|
209
|
-
var $pos = $startPos; // invariant 1: don't walk past the end of the document
|
|
210
|
-
// invariant 2: we are at the beginning or
|
|
211
|
-
// we haven't walked to the start of *any* node
|
|
212
|
-
// parentOffset includes textOffset.
|
|
213
|
-
|
|
214
|
-
while ($pos.pos < $pos.doc.nodeSize - 2 && ($pos.pos === $startPos.pos || $pos.parentOffset > 0)) {
|
|
215
|
-
$pos = $pos.doc.resolve($pos.pos + 1);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
return {
|
|
219
|
-
$pos: $pos,
|
|
220
|
-
foundNode: $pos.pos < $pos.doc.nodeSize - 2
|
|
221
|
-
};
|
|
222
|
-
};
|
|
223
|
-
/**
|
|
224
|
-
* Insert content, delete a range and create a new selection
|
|
225
|
-
* This function automatically handles the mapping of positions for insertion and deletion.
|
|
226
|
-
* The new selection is handled as a function since it may not always be necessary to resolve a position to the transactions mapping
|
|
227
|
-
*
|
|
228
|
-
* @param getSelectionResolvedPos get the resolved position to create a new selection
|
|
229
|
-
* @param insertions content to insert at the specified position
|
|
230
|
-
* @param deletions the ranges to delete
|
|
231
|
-
*/
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
exports.walkNextNode = walkNextNode;
|
|
235
|
-
|
|
236
|
-
var insertContentDeleteRange = function insertContentDeleteRange(tr, getSelectionResolvedPos, insertions, deletions) {
|
|
237
|
-
insertions.forEach(function (contentInsert) {
|
|
238
|
-
var _contentInsert = _slicedToArray(contentInsert, 2),
|
|
239
|
-
content = _contentInsert[0],
|
|
240
|
-
pos = _contentInsert[1];
|
|
241
|
-
|
|
242
|
-
tr.insert(tr.mapping.map(pos), content);
|
|
243
|
-
});
|
|
244
|
-
deletions.forEach(function (deleteRange) {
|
|
245
|
-
var _deleteRange = _slicedToArray(deleteRange, 2),
|
|
246
|
-
firstPos = _deleteRange[0],
|
|
247
|
-
lastPos = _deleteRange[1];
|
|
248
|
-
|
|
249
|
-
tr["delete"](tr.mapping.map(firstPos), tr.mapping.map(lastPos));
|
|
250
|
-
});
|
|
251
|
-
tr.setSelection(new _prosemirrorState.TextSelection(getSelectionResolvedPos(tr)));
|
|
252
|
-
};
|
|
253
|
-
|
|
254
|
-
exports.insertContentDeleteRange = insertContentDeleteRange;
|
|
255
|
-
|
|
256
|
-
var selectNode = function selectNode(pos) {
|
|
257
|
-
return function (state, dispatch) {
|
|
258
|
-
if (dispatch) {
|
|
259
|
-
dispatch(state.tr.setSelection(new _prosemirrorState.NodeSelection(state.doc.resolve(pos))));
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
return true;
|
|
263
|
-
};
|
|
264
|
-
};
|
|
265
|
-
|
|
266
|
-
exports.selectNode = selectNode;
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.findFarthestParentNode = void 0;
|
|
7
|
-
exports.getNodesCount = getNodesCount;
|
|
8
|
-
exports.getStepRange = void 0;
|
|
9
|
-
exports.hasVisibleContent = hasVisibleContent;
|
|
10
|
-
exports.isEmptyDocument = isEmptyDocument;
|
|
11
|
-
exports.isEmptyParagraph = isEmptyParagraph;
|
|
12
|
-
exports.isNodeEmpty = isNodeEmpty;
|
|
13
|
-
exports.isSelectionEndOfParagraph = void 0;
|
|
14
|
-
exports.nodesBetweenChanged = nodesBetweenChanged;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Checks if node is an empty paragraph.
|
|
18
|
-
*/
|
|
19
|
-
function isEmptyParagraph(node) {
|
|
20
|
-
return !node || node.type.name === 'paragraph' && !node.textContent && !node.childCount;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Returns false if node contains only empty inline nodes and hardBreaks.
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
function hasVisibleContent(node) {
|
|
28
|
-
var isInlineNodeHasVisibleContent = function isInlineNodeHasVisibleContent(inlineNode) {
|
|
29
|
-
return inlineNode.isText ? !!inlineNode.textContent.trim() : inlineNode.type.name !== 'hardBreak';
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
if (node.isInline) {
|
|
33
|
-
return isInlineNodeHasVisibleContent(node);
|
|
34
|
-
} else if (node.isBlock && (node.isLeaf || node.isAtom)) {
|
|
35
|
-
return true;
|
|
36
|
-
} else if (!node.childCount) {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
for (var _index = 0; _index < node.childCount; _index++) {
|
|
41
|
-
var child = node.child(_index);
|
|
42
|
-
|
|
43
|
-
if (hasVisibleContent(child)) {
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Checks if a node has any content. Ignores node that only contain empty block nodes.
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
function isNodeEmpty(node) {
|
|
56
|
-
if (node && node.textContent) {
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
if (!node || !node.childCount || node.childCount === 1 && isEmptyParagraph(node.firstChild)) {
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
var block = [];
|
|
65
|
-
var nonBlock = [];
|
|
66
|
-
node.forEach(function (child) {
|
|
67
|
-
child.isInline ? nonBlock.push(child) : block.push(child);
|
|
68
|
-
});
|
|
69
|
-
return !nonBlock.length && !block.filter(function (childNode) {
|
|
70
|
-
return !!childNode.childCount && !(childNode.childCount === 1 && isEmptyParagraph(childNode.firstChild)) || childNode.isAtom;
|
|
71
|
-
}).length;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Checks if a node looks like an empty document
|
|
75
|
-
*/
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
function isEmptyDocument(node) {
|
|
79
|
-
var nodeChild = node.content.firstChild;
|
|
80
|
-
|
|
81
|
-
if (node.childCount !== 1 || !nodeChild) {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return nodeChild.type.name === 'paragraph' && !nodeChild.childCount && nodeChild.nodeSize === 2 && (!nodeChild.marks || nodeChild.marks.length === 0);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
var getStepRange = function getStepRange(transaction) {
|
|
89
|
-
var from = -1;
|
|
90
|
-
var to = -1;
|
|
91
|
-
transaction.steps.forEach(function (step) {
|
|
92
|
-
step.getMap().forEach(function (_oldStart, _oldEnd, newStart, newEnd) {
|
|
93
|
-
from = newStart < from || from === -1 ? newStart : from;
|
|
94
|
-
to = newEnd < to || to === -1 ? newEnd : to;
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
if (from !== -1) {
|
|
99
|
-
return {
|
|
100
|
-
from: from,
|
|
101
|
-
to: to
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return null;
|
|
106
|
-
};
|
|
107
|
-
/**
|
|
108
|
-
* Find the farthest node given a condition
|
|
109
|
-
* @param predicate Function to check the node
|
|
110
|
-
*/
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
exports.getStepRange = getStepRange;
|
|
114
|
-
|
|
115
|
-
var findFarthestParentNode = function findFarthestParentNode(predicate) {
|
|
116
|
-
return function ($pos) {
|
|
117
|
-
var candidate = null;
|
|
118
|
-
|
|
119
|
-
for (var i = $pos.depth; i > 0; i--) {
|
|
120
|
-
var _node = $pos.node(i);
|
|
121
|
-
|
|
122
|
-
if (predicate(_node)) {
|
|
123
|
-
candidate = {
|
|
124
|
-
pos: i > 0 ? $pos.before(i) : 0,
|
|
125
|
-
start: $pos.start(i),
|
|
126
|
-
depth: i,
|
|
127
|
-
node: _node
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return candidate;
|
|
133
|
-
};
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
exports.findFarthestParentNode = findFarthestParentNode;
|
|
137
|
-
|
|
138
|
-
var isSelectionEndOfParagraph = function isSelectionEndOfParagraph(state) {
|
|
139
|
-
return state.selection.$to.parent.type === state.schema.nodes.paragraph && state.selection.$to.pos === state.doc.resolve(state.selection.$to.pos).end();
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
exports.isSelectionEndOfParagraph = isSelectionEndOfParagraph;
|
|
143
|
-
|
|
144
|
-
function nodesBetweenChanged(tr, f, startPos) {
|
|
145
|
-
var stepRange = getStepRange(tr);
|
|
146
|
-
|
|
147
|
-
if (!stepRange) {
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
tr.doc.nodesBetween(stepRange.from, stepRange.to, f, startPos);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
function getNodesCount(node) {
|
|
155
|
-
var count = {};
|
|
156
|
-
node.nodesBetween(0, node.nodeSize - 2, function (node) {
|
|
157
|
-
count[node.type.name] = (count[node.type.name] || 0) + 1;
|
|
158
|
-
});
|
|
159
|
-
return count;
|
|
160
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.EventDispatcher = void 0;
|
|
7
|
-
exports.createDispatch = createDispatch;
|
|
8
|
-
|
|
9
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
10
|
-
|
|
11
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
12
|
-
|
|
13
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
14
|
-
|
|
15
|
-
var EventDispatcher = /*#__PURE__*/function () {
|
|
16
|
-
function EventDispatcher() {
|
|
17
|
-
_classCallCheck(this, EventDispatcher);
|
|
18
|
-
|
|
19
|
-
this.listeners = {};
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
_createClass(EventDispatcher, [{
|
|
23
|
-
key: "on",
|
|
24
|
-
value: function on(event, cb) {
|
|
25
|
-
if (!this.listeners[event]) {
|
|
26
|
-
this.listeners[event] = new Set();
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
this.listeners[event].add(cb);
|
|
30
|
-
}
|
|
31
|
-
}, {
|
|
32
|
-
key: "off",
|
|
33
|
-
value: function off(event, cb) {
|
|
34
|
-
if (!this.listeners[event]) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (this.listeners[event].has(cb)) {
|
|
39
|
-
this.listeners[event]["delete"](cb);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}, {
|
|
43
|
-
key: "emit",
|
|
44
|
-
value: function emit(event, data) {
|
|
45
|
-
if (!this.listeners[event]) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
this.listeners[event].forEach(function (cb) {
|
|
50
|
-
return cb(data);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
}, {
|
|
54
|
-
key: "destroy",
|
|
55
|
-
value: function destroy() {
|
|
56
|
-
this.listeners = {};
|
|
57
|
-
}
|
|
58
|
-
}]);
|
|
59
|
-
|
|
60
|
-
return EventDispatcher;
|
|
61
|
-
}();
|
|
62
|
-
/**
|
|
63
|
-
* Creates a dispatch function that can be called inside ProseMirror Plugin
|
|
64
|
-
* to notify listeners about that plugin's state change.
|
|
65
|
-
*/
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
exports.EventDispatcher = EventDispatcher;
|
|
69
|
-
|
|
70
|
-
function createDispatch(eventDispatcher) {
|
|
71
|
-
return function (eventName, data) {
|
|
72
|
-
if (!eventName) {
|
|
73
|
-
throw new Error('event name is required!');
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
var event = typeof eventName === 'string' ? eventName : eventName.key;
|
|
77
|
-
eventDispatcher.emit(event, data);
|
|
78
|
-
};
|
|
79
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.shallowEqual = shallowEqual;
|
|
7
|
-
|
|
8
|
-
function shallowEqual() {
|
|
9
|
-
var obj1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
10
|
-
var obj2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
11
|
-
var keys1 = Object.keys(obj1);
|
|
12
|
-
var keys2 = Object.keys(obj2);
|
|
13
|
-
return keys1.length === keys2.length && keys1.reduce(function (acc, key) {
|
|
14
|
-
return acc && obj1[key] === obj2[key];
|
|
15
|
-
}, true);
|
|
16
|
-
}
|