@pie-lib/mask-markup 3.1.6-beta.3 → 4.0.0-next.20261002094057
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/dist/_virtual/_rolldown/runtime.js +4 -0
- package/dist/choices/choice.d.ts +28 -0
- package/dist/choices/choice.js +92 -0
- package/dist/choices/index.d.ts +29 -0
- package/dist/choices/index.js +59 -0
- package/dist/componentize.d.ts +12 -0
- package/dist/componentize.js +4 -0
- package/dist/components/blank.d.ts +45 -0
- package/dist/components/blank.js +273 -0
- package/dist/components/dropdown.d.ts +37 -0
- package/dist/components/dropdown.js +311 -0
- package/dist/constructed-response.d.ts +44 -0
- package/dist/constructed-response.js +56 -0
- package/dist/customizable.d.ts +43 -0
- package/dist/customizable.js +8 -0
- package/dist/drag-in-the-blank.d.ts +47 -0
- package/dist/drag-in-the-blank.js +220 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +7 -0
- package/dist/inline-dropdown.d.ts +44 -0
- package/dist/inline-dropdown.js +24 -0
- package/dist/keyboard-coordinates.d.ts +25 -0
- package/dist/keyboard-coordinates.js +49 -0
- package/dist/mask.d.ts +30 -0
- package/dist/mask.js +95 -0
- package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +16 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/index.js +17 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/cssPrefix.js +9 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/cssUnitless.js +26 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/hasOwn.js +11 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/isFunction.js +11 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/isObject.js +11 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/prefixInfo.js +24 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/prefixProperties.js +32 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/prefixer.js +29 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/stringUtils/camelize.js +14 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/stringUtils/hyphenRe.js +8 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/stringUtils/hyphenate.js +12 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/stringUtils/separate.js +11 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/stringUtils/toLowerFirst.js +10 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/stringUtils/toUpperFirst.js +10 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/toStyleObject.js +55 -0
- package/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/toStyleString.js +16 -0
- package/dist/serialization.d.ts +34 -0
- package/dist/serialization.js +132 -0
- package/dist/with-mask.d.ts +55 -0
- package/dist/with-mask.js +45 -0
- package/package.json +35 -19
- package/CHANGELOG.json +0 -17
- package/CHANGELOG.md +0 -1256
- package/lib/choices/choice.js +0 -120
- package/lib/choices/choice.js.map +0 -1
- package/lib/choices/index.js +0 -103
- package/lib/choices/index.js.map +0 -1
- package/lib/componentize.js +0 -21
- package/lib/componentize.js.map +0 -1
- package/lib/components/blank.js +0 -412
- package/lib/components/blank.js.map +0 -1
- package/lib/components/correct-input.js +0 -94
- package/lib/components/correct-input.js.map +0 -1
- package/lib/components/dropdown.js +0 -483
- package/lib/components/dropdown.js.map +0 -1
- package/lib/components/input.js +0 -50
- package/lib/components/input.js.map +0 -1
- package/lib/constructed-response.js +0 -101
- package/lib/constructed-response.js.map +0 -1
- package/lib/customizable.js +0 -42
- package/lib/customizable.js.map +0 -1
- package/lib/drag-in-the-blank.js +0 -254
- package/lib/drag-in-the-blank.js.map +0 -1
- package/lib/index.js +0 -55
- package/lib/index.js.map +0 -1
- package/lib/inline-dropdown.js +0 -40
- package/lib/inline-dropdown.js.map +0 -1
- package/lib/keyboard-coordinates.js +0 -156
- package/lib/mask.js +0 -198
- package/lib/mask.js.map +0 -1
- package/lib/serialization.js +0 -261
- package/lib/serialization.js.map +0 -1
- package/lib/with-mask.js +0 -97
- package/lib/with-mask.js.map +0 -1
- package/src/choices/choice.jsx +0 -100
- package/src/choices/index.jsx +0 -64
- package/src/componentize.js +0 -13
- package/src/components/blank.jsx +0 -431
- package/src/components/correct-input.jsx +0 -82
- package/src/components/dropdown.jsx +0 -423
- package/src/components/input.jsx +0 -48
- package/src/constructed-response.jsx +0 -87
- package/src/customizable.jsx +0 -34
- package/src/drag-in-the-blank.jsx +0 -241
- package/src/index.js +0 -16
- package/src/inline-dropdown.jsx +0 -29
- package/src/mask.jsx +0 -172
- package/src/serialization.js +0 -260
- package/src/with-mask.jsx +0 -75
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.closestDroppableKeyboardCoordinates = void 0;
|
|
8
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
-
var _core = require("@dnd-kit/core");
|
|
10
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
11
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
12
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
13
|
-
// Matches the id `drag-in-the-blank-dp.jsx` registers for the choice board's droppable.
|
|
14
|
-
var CHOICE_BOARD_ID = 'drag-in-the-blank-droppable';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Custom keyboard coordinate getter for drag-in-the-blank's Tab-based placement.
|
|
18
|
-
*
|
|
19
|
-
* Tab/Shift+Tab cycle the dragged item directly onto the next/previous enabled
|
|
20
|
-
* droppable — a blank (`mask-blank-drop-{id}`), sorted by on-screen position
|
|
21
|
-
* (top-to-bottom, then left-to-right, since blanks sit inline in flowing text rather
|
|
22
|
-
* than a simple list) — followed by the choice board as a fixed last stop (see below
|
|
23
|
-
* for why the board isn't sorted alongside the blanks).
|
|
24
|
-
*
|
|
25
|
-
* Arrow keys are delegated to dnd-kit's own `defaultKeyboardCoordinateGetter`, leaving
|
|
26
|
-
* the existing free-form arrow-key dragging behavior completely unchanged.
|
|
27
|
-
*/
|
|
28
|
-
var closestDroppableKeyboardCoordinates = exports.closestDroppableKeyboardCoordinates = function closestDroppableKeyboardCoordinates(event, _ref) {
|
|
29
|
-
var _active$data;
|
|
30
|
-
var active = _ref.active,
|
|
31
|
-
context = _ref.context,
|
|
32
|
-
currentCoordinates = _ref.currentCoordinates;
|
|
33
|
-
var code = event.code;
|
|
34
|
-
var isTab = code === _core.KeyboardCode.Tab;
|
|
35
|
-
var isArrow = code === _core.KeyboardCode.Down || code === _core.KeyboardCode.Up || code === _core.KeyboardCode.Left || code === _core.KeyboardCode.Right;
|
|
36
|
-
if (!isTab && !isArrow) {
|
|
37
|
-
return undefined;
|
|
38
|
-
}
|
|
39
|
-
if (isArrow) {
|
|
40
|
-
return (0, _core.defaultKeyboardCoordinateGetter)(event, {
|
|
41
|
-
context: context,
|
|
42
|
-
currentCoordinates: currentCoordinates
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
event.preventDefault();
|
|
46
|
-
var droppableRects = context.droppableRects,
|
|
47
|
-
droppableContainers = context.droppableContainers,
|
|
48
|
-
collisionRect = context.collisionRect;
|
|
49
|
-
if (!droppableRects || droppableRects.size === 0) {
|
|
50
|
-
return currentCoordinates;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// A blank is itself a droppable for its own slot ("mask-blank-drop-{id}"), and
|
|
54
|
-
// simultaneously draggable from that same slot — the same shape as match-list's
|
|
55
|
-
// placed "target" tiles. That self drop-zone must never be treated as a navigable
|
|
56
|
-
// target: exclude it outright rather than relying on a distance threshold.
|
|
57
|
-
var draggedData = active === null || active === void 0 || (_active$data = active.data) === null || _active$data === void 0 ? void 0 : _active$data.current;
|
|
58
|
-
var ownDropId = draggedData && draggedData.fromChoice === false && draggedData.id != null ? "mask-blank-drop-".concat(draggedData.id) : undefined;
|
|
59
|
-
var targets = [];
|
|
60
|
-
var boardTarget;
|
|
61
|
-
var _iterator = _createForOfIteratorHelper(droppableContainers),
|
|
62
|
-
_step;
|
|
63
|
-
try {
|
|
64
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
65
|
-
var _step$value = (0, _slicedToArray2["default"])(_step.value, 2),
|
|
66
|
-
id = _step$value[0],
|
|
67
|
-
container = _step$value[1];
|
|
68
|
-
if (container !== null && container !== void 0 && container.disabled) continue;
|
|
69
|
-
if (id === ownDropId) continue;
|
|
70
|
-
var rect = droppableRects.get(id);
|
|
71
|
-
if (!rect) continue;
|
|
72
|
-
var center = {
|
|
73
|
-
x: rect.left + rect.width / 2,
|
|
74
|
-
y: rect.top + rect.height / 2
|
|
75
|
-
};
|
|
76
|
-
// Land the dragged item's own top-left corner at the target's center-left point,
|
|
77
|
-
// rather than at the target's own top-left corner (avoids overshooting into a
|
|
78
|
-
// neighboring droppable when the target is much wider than the dragged item).
|
|
79
|
-
var dropPosition = {
|
|
80
|
-
x: rect.left,
|
|
81
|
-
y: rect.top + rect.height / 2
|
|
82
|
-
};
|
|
83
|
-
var target = {
|
|
84
|
-
id: id,
|
|
85
|
-
rect: rect,
|
|
86
|
-
dropPosition: dropPosition,
|
|
87
|
-
center: center
|
|
88
|
-
};
|
|
89
|
-
if (id === CHOICE_BOARD_ID) {
|
|
90
|
-
boardTarget = target;
|
|
91
|
-
} else {
|
|
92
|
-
targets.push(target);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
} catch (err) {
|
|
96
|
-
_iterator.e(err);
|
|
97
|
-
} finally {
|
|
98
|
-
_iterator.f();
|
|
99
|
-
}
|
|
100
|
-
if (targets.length === 0 && !boardTarget) {
|
|
101
|
-
return currentCoordinates;
|
|
102
|
-
}
|
|
103
|
-
var reverse = event.shiftKey;
|
|
104
|
-
targets.sort(function (a, b) {
|
|
105
|
-
if (Math.abs(a.center.y - b.center.y) > 10) return a.center.y - b.center.y;
|
|
106
|
-
return a.center.x - b.center.x;
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
// The choice board can be an arbitrarily large container — e.g. several choices
|
|
110
|
-
// stacked beside the markup (`choicePosition: 'right'`/`'left'`) — so its own center
|
|
111
|
-
// can land anywhere relative to the blanks it sits beside, including numerically
|
|
112
|
-
// between two of them. Sorting it by position the same way as a blank would then
|
|
113
|
-
// interleave it into the middle of the cycle, making a single Tab press jump over
|
|
114
|
-
// more than one blank (confirmed live: with 3 stacked choices beside wrapped text,
|
|
115
|
-
// the board's center fell between blank 2 and blank 3, so the very first Tab press
|
|
116
|
-
// from the pool landed on blank 3, skipping blanks 1 and 2 entirely). Anchor it as a
|
|
117
|
-
// fixed stop after every blank, in every layout, instead of trusting its own bounds.
|
|
118
|
-
if (boardTarget) {
|
|
119
|
-
targets.push(boardTarget);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// Find the current target: whichever target's rect actually contains the dragged
|
|
123
|
-
// item's own center. This holds regardless of how the dragged item's size compares
|
|
124
|
-
// to the target's — a compact chip landed (per `dropPosition` above) at a much wider
|
|
125
|
-
// target's left edge is still contained within that target's rect. Comparing
|
|
126
|
-
// distances between reconstructed centers instead breaks down for exactly that shape
|
|
127
|
-
// (a small item in a much wider target): the reconstructed center can end up closer
|
|
128
|
-
// to a completely different droppable than to the one the item is actually sitting
|
|
129
|
-
// on, so the *next* press re-matches the wrong target and looks like it does nothing.
|
|
130
|
-
var draggedCenter = collisionRect ? {
|
|
131
|
-
x: collisionRect.left + collisionRect.width / 2,
|
|
132
|
-
y: collisionRect.top + collisionRect.height / 2
|
|
133
|
-
} : currentCoordinates;
|
|
134
|
-
var currentIndex = targets.findIndex(function (t) {
|
|
135
|
-
return draggedCenter.x >= t.rect.left && draggedCenter.x <= t.rect.right && draggedCenter.y >= t.rect.top && draggedCenter.y <= t.rect.bottom;
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
// Fall back to nearest-by-dropPosition if the dragged item's center isn't strictly
|
|
139
|
-
// inside any target (e.g. mid-flight after a free arrow-key move).
|
|
140
|
-
if (currentIndex === -1) {
|
|
141
|
-
var minDist = Infinity;
|
|
142
|
-
for (var i = 0; i < targets.length; i++) {
|
|
143
|
-
var dist = distance(currentCoordinates, targets[i].dropPosition);
|
|
144
|
-
if (dist < minDist) {
|
|
145
|
-
minDist = dist;
|
|
146
|
-
currentIndex = i;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
var nextIndex = reverse ? (currentIndex - 1 + targets.length) % targets.length : (currentIndex + 1) % targets.length;
|
|
151
|
-
return targets[nextIndex].dropPosition;
|
|
152
|
-
};
|
|
153
|
-
var distance = function distance(a, b) {
|
|
154
|
-
return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));
|
|
155
|
-
};
|
|
156
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInIiLCJlIiwidCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwibyIsImEiLCJ1IiwiY2FsbCIsIm5leHQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIkNIT0lDRV9CT0FSRF9JRCIsImNsb3Nlc3REcm9wcGFibGVLZXlib2FyZENvb3JkaW5hdGVzIiwiZXhwb3J0cyIsImV2ZW50IiwiX3JlZiIsIl9hY3RpdmUkZGF0YSIsImFjdGl2ZSIsImNvbnRleHQiLCJjdXJyZW50Q29vcmRpbmF0ZXMiLCJjb2RlIiwiaXNUYWIiLCJLZXlib2FyZENvZGUiLCJUYWIiLCJpc0Fycm93IiwiRG93biIsIlVwIiwiTGVmdCIsIlJpZ2h0IiwidW5kZWZpbmVkIiwiZGVmYXVsdEtleWJvYXJkQ29vcmRpbmF0ZUdldHRlciIsInByZXZlbnREZWZhdWx0IiwiZHJvcHBhYmxlUmVjdHMiLCJkcm9wcGFibGVDb250YWluZXJzIiwiY29sbGlzaW9uUmVjdCIsInNpemUiLCJkcmFnZ2VkRGF0YSIsImRhdGEiLCJjdXJyZW50Iiwib3duRHJvcElkIiwiZnJvbUNob2ljZSIsImlkIiwiY29uY2F0IiwidGFyZ2V0cyIsImJvYXJkVGFyZ2V0IiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJfc3RlcCR2YWx1ZSIsIl9zbGljZWRUb0FycmF5MiIsImNvbnRhaW5lciIsImRpc2FibGVkIiwicmVjdCIsImdldCIsImNlbnRlciIsIngiLCJsZWZ0Iiwid2lkdGgiLCJ5IiwidG9wIiwiaGVpZ2h0IiwiZHJvcFBvc2l0aW9uIiwidGFyZ2V0IiwicHVzaCIsImVyciIsInJldmVyc2UiLCJzaGlmdEtleSIsInNvcnQiLCJiIiwiTWF0aCIsImFicyIsImRyYWdnZWRDZW50ZXIiLCJjdXJyZW50SW5kZXgiLCJmaW5kSW5kZXgiLCJyaWdodCIsImJvdHRvbSIsIm1pbkRpc3QiLCJJbmZpbml0eSIsImkiLCJkaXN0IiwiZGlzdGFuY2UiLCJuZXh0SW5kZXgiLCJzcXJ0IiwicG93Il0sInNvdXJjZXMiOlsiLi4vc3JjL2tleWJvYXJkLWNvb3JkaW5hdGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmF1bHRLZXlib2FyZENvb3JkaW5hdGVHZXR0ZXIsIEtleWJvYXJkQ29kZSB9IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuXG4vLyBNYXRjaGVzIHRoZSBpZCBgZHJhZy1pbi10aGUtYmxhbmstZHAuanN4YCByZWdpc3RlcnMgZm9yIHRoZSBjaG9pY2UgYm9hcmQncyBkcm9wcGFibGUuXG5jb25zdCBDSE9JQ0VfQk9BUkRfSUQgPSAnZHJhZy1pbi10aGUtYmxhbmstZHJvcHBhYmxlJztcblxuLyoqXG4gKiBDdXN0b20ga2V5Ym9hcmQgY29vcmRpbmF0ZSBnZXR0ZXIgZm9yIGRyYWctaW4tdGhlLWJsYW5rJ3MgVGFiLWJhc2VkIHBsYWNlbWVudC5cbiAqXG4gKiBUYWIvU2hpZnQrVGFiIGN5Y2xlIHRoZSBkcmFnZ2VkIGl0ZW0gZGlyZWN0bHkgb250byB0aGUgbmV4dC9wcmV2aW91cyBlbmFibGVkXG4gKiBkcm9wcGFibGUg4oCUIGEgYmxhbmsgKGBtYXNrLWJsYW5rLWRyb3Ate2lkfWApLCBzb3J0ZWQgYnkgb24tc2NyZWVuIHBvc2l0aW9uXG4gKiAodG9wLXRvLWJvdHRvbSwgdGhlbiBsZWZ0LXRvLXJpZ2h0LCBzaW5jZSBibGFua3Mgc2l0IGlubGluZSBpbiBmbG93aW5nIHRleHQgcmF0aGVyXG4gKiB0aGFuIGEgc2ltcGxlIGxpc3QpIOKAlCBmb2xsb3dlZCBieSB0aGUgY2hvaWNlIGJvYXJkIGFzIGEgZml4ZWQgbGFzdCBzdG9wIChzZWUgYmVsb3dcbiAqIGZvciB3aHkgdGhlIGJvYXJkIGlzbid0IHNvcnRlZCBhbG9uZ3NpZGUgdGhlIGJsYW5rcykuXG4gKlxuICogQXJyb3cga2V5cyBhcmUgZGVsZWdhdGVkIHRvIGRuZC1raXQncyBvd24gYGRlZmF1bHRLZXlib2FyZENvb3JkaW5hdGVHZXR0ZXJgLCBsZWF2aW5nXG4gKiB0aGUgZXhpc3RpbmcgZnJlZS1mb3JtIGFycm93LWtleSBkcmFnZ2luZyBiZWhhdmlvciBjb21wbGV0ZWx5IHVuY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNsb3Nlc3REcm9wcGFibGVLZXlib2FyZENvb3JkaW5hdGVzID0gKGV2ZW50LCB7IGFjdGl2ZSwgY29udGV4dCwgY3VycmVudENvb3JkaW5hdGVzIH0pID0+IHtcbiAgY29uc3QgeyBjb2RlIH0gPSBldmVudDtcbiAgY29uc3QgaXNUYWIgPSBjb2RlID09PSBLZXlib2FyZENvZGUuVGFiO1xuICBjb25zdCBpc0Fycm93ID1cbiAgICBjb2RlID09PSBLZXlib2FyZENvZGUuRG93biB8fCBjb2RlID09PSBLZXlib2FyZENvZGUuVXAgfHwgY29kZSA9PT0gS2V5Ym9hcmRDb2RlLkxlZnQgfHwgY29kZSA9PT0gS2V5Ym9hcmRDb2RlLlJpZ2h0O1xuXG4gIGlmICghaXNUYWIgJiYgIWlzQXJyb3cpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKGlzQXJyb3cpIHtcbiAgICByZXR1cm4gZGVmYXVsdEtleWJvYXJkQ29vcmRpbmF0ZUdldHRlcihldmVudCwgeyBjb250ZXh0LCBjdXJyZW50Q29vcmRpbmF0ZXMgfSk7XG4gIH1cblxuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gIGNvbnN0IHsgZHJvcHBhYmxlUmVjdHMsIGRyb3BwYWJsZUNvbnRhaW5lcnMsIGNvbGxpc2lvblJlY3QgfSA9IGNvbnRleHQ7XG5cbiAgaWYgKCFkcm9wcGFibGVSZWN0cyB8fCBkcm9wcGFibGVSZWN0cy5zaXplID09PSAwKSB7XG4gICAgcmV0dXJuIGN1cnJlbnRDb29yZGluYXRlcztcbiAgfVxuXG4gIC8vIEEgYmxhbmsgaXMgaXRzZWxmIGEgZHJvcHBhYmxlIGZvciBpdHMgb3duIHNsb3QgKFwibWFzay1ibGFuay1kcm9wLXtpZH1cIiksIGFuZFxuICAvLyBzaW11bHRhbmVvdXNseSBkcmFnZ2FibGUgZnJvbSB0aGF0IHNhbWUgc2xvdCDigJQgdGhlIHNhbWUgc2hhcGUgYXMgbWF0Y2gtbGlzdCdzXG4gIC8vIHBsYWNlZCBcInRhcmdldFwiIHRpbGVzLiBUaGF0IHNlbGYgZHJvcC16b25lIG11c3QgbmV2ZXIgYmUgdHJlYXRlZCBhcyBhIG5hdmlnYWJsZVxuICAvLyB0YXJnZXQ6IGV4Y2x1ZGUgaXQgb3V0cmlnaHQgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBhIGRpc3RhbmNlIHRocmVzaG9sZC5cbiAgY29uc3QgZHJhZ2dlZERhdGEgPSBhY3RpdmU/LmRhdGE/LmN1cnJlbnQ7XG4gIGNvbnN0IG93bkRyb3BJZCA9XG4gICAgZHJhZ2dlZERhdGEgJiYgZHJhZ2dlZERhdGEuZnJvbUNob2ljZSA9PT0gZmFsc2UgJiYgZHJhZ2dlZERhdGEuaWQgIT0gbnVsbFxuICAgICAgPyBgbWFzay1ibGFuay1kcm9wLSR7ZHJhZ2dlZERhdGEuaWR9YFxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgdGFyZ2V0cyA9IFtdO1xuICBsZXQgYm9hcmRUYXJnZXQ7XG5cbiAgZm9yIChjb25zdCBbaWQsIGNvbnRhaW5lcl0gb2YgZHJvcHBhYmxlQ29udGFpbmVycykge1xuICAgIGlmIChjb250YWluZXI/LmRpc2FibGVkKSBjb250aW51ZTtcbiAgICBpZiAoaWQgPT09IG93bkRyb3BJZCkgY29udGludWU7XG5cbiAgICBjb25zdCByZWN0ID0gZHJvcHBhYmxlUmVjdHMuZ2V0KGlkKTtcbiAgICBpZiAoIXJlY3QpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgY2VudGVyID0ge1xuICAgICAgeDogcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDIsXG4gICAgICB5OiByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMixcbiAgICB9O1xuICAgIC8vIExhbmQgdGhlIGRyYWdnZWQgaXRlbSdzIG93biB0b3AtbGVmdCBjb3JuZXIgYXQgdGhlIHRhcmdldCdzIGNlbnRlci1sZWZ0IHBvaW50LFxuICAgIC8vIHJhdGhlciB0aGFuIGF0IHRoZSB0YXJnZXQncyBvd24gdG9wLWxlZnQgY29ybmVyIChhdm9pZHMgb3ZlcnNob290aW5nIGludG8gYVxuICAgIC8vIG5laWdoYm9yaW5nIGRyb3BwYWJsZSB3aGVuIHRoZSB0YXJnZXQgaXMgbXVjaCB3aWRlciB0aGFuIHRoZSBkcmFnZ2VkIGl0ZW0pLlxuICAgIGNvbnN0IGRyb3BQb3NpdGlvbiA9IHtcbiAgICAgIHg6IHJlY3QubGVmdCxcbiAgICAgIHk6IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyLFxuICAgIH07XG5cbiAgICBjb25zdCB0YXJnZXQgPSB7IGlkLCByZWN0LCBkcm9wUG9zaXRpb24sIGNlbnRlciB9O1xuXG4gICAgaWYgKGlkID09PSBDSE9JQ0VfQk9BUkRfSUQpIHtcbiAgICAgIGJvYXJkVGFyZ2V0ID0gdGFyZ2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRzLnB1c2godGFyZ2V0KTtcbiAgICB9XG4gIH1cblxuICBpZiAodGFyZ2V0cy5sZW5ndGggPT09IDAgJiYgIWJvYXJkVGFyZ2V0KSB7XG4gICAgcmV0dXJuIGN1cnJlbnRDb29yZGluYXRlcztcbiAgfVxuXG4gIGNvbnN0IHJldmVyc2UgPSBldmVudC5zaGlmdEtleTtcblxuICB0YXJnZXRzLnNvcnQoKGEsIGIpID0+IHtcbiAgICBpZiAoTWF0aC5hYnMoYS5jZW50ZXIueSAtIGIuY2VudGVyLnkpID4gMTApIHJldHVybiBhLmNlbnRlci55IC0gYi5jZW50ZXIueTtcbiAgICByZXR1cm4gYS5jZW50ZXIueCAtIGIuY2VudGVyLng7XG4gIH0pO1xuXG4gIC8vIFRoZSBjaG9pY2UgYm9hcmQgY2FuIGJlIGFuIGFyYml0cmFyaWx5IGxhcmdlIGNvbnRhaW5lciDigJQgZS5nLiBzZXZlcmFsIGNob2ljZXNcbiAgLy8gc3RhY2tlZCBiZXNpZGUgdGhlIG1hcmt1cCAoYGNob2ljZVBvc2l0aW9uOiAncmlnaHQnYC9gJ2xlZnQnYCkg4oCUIHNvIGl0cyBvd24gY2VudGVyXG4gIC8vIGNhbiBsYW5kIGFueXdoZXJlIHJlbGF0aXZlIHRvIHRoZSBibGFua3MgaXQgc2l0cyBiZXNpZGUsIGluY2x1ZGluZyBudW1lcmljYWxseVxuICAvLyBiZXR3ZWVuIHR3byBvZiB0aGVtLiBTb3J0aW5nIGl0IGJ5IHBvc2l0aW9uIHRoZSBzYW1lIHdheSBhcyBhIGJsYW5rIHdvdWxkIHRoZW5cbiAgLy8gaW50ZXJsZWF2ZSBpdCBpbnRvIHRoZSBtaWRkbGUgb2YgdGhlIGN5Y2xlLCBtYWtpbmcgYSBzaW5nbGUgVGFiIHByZXNzIGp1bXAgb3ZlclxuICAvLyBtb3JlIHRoYW4gb25lIGJsYW5rIChjb25maXJtZWQgbGl2ZTogd2l0aCAzIHN0YWNrZWQgY2hvaWNlcyBiZXNpZGUgd3JhcHBlZCB0ZXh0LFxuICAvLyB0aGUgYm9hcmQncyBjZW50ZXIgZmVsbCBiZXR3ZWVuIGJsYW5rIDIgYW5kIGJsYW5rIDMsIHNvIHRoZSB2ZXJ5IGZpcnN0IFRhYiBwcmVzc1xuICAvLyBmcm9tIHRoZSBwb29sIGxhbmRlZCBvbiBibGFuayAzLCBza2lwcGluZyBibGFua3MgMSBhbmQgMiBlbnRpcmVseSkuIEFuY2hvciBpdCBhcyBhXG4gIC8vIGZpeGVkIHN0b3AgYWZ0ZXIgZXZlcnkgYmxhbmssIGluIGV2ZXJ5IGxheW91dCwgaW5zdGVhZCBvZiB0cnVzdGluZyBpdHMgb3duIGJvdW5kcy5cbiAgaWYgKGJvYXJkVGFyZ2V0KSB7XG4gICAgdGFyZ2V0cy5wdXNoKGJvYXJkVGFyZ2V0KTtcbiAgfVxuXG4gIC8vIEZpbmQgdGhlIGN1cnJlbnQgdGFyZ2V0OiB3aGljaGV2ZXIgdGFyZ2V0J3MgcmVjdCBhY3R1YWxseSBjb250YWlucyB0aGUgZHJhZ2dlZFxuICAvLyBpdGVtJ3Mgb3duIGNlbnRlci4gVGhpcyBob2xkcyByZWdhcmRsZXNzIG9mIGhvdyB0aGUgZHJhZ2dlZCBpdGVtJ3Mgc2l6ZSBjb21wYXJlc1xuICAvLyB0byB0aGUgdGFyZ2V0J3Mg4oCUIGEgY29tcGFjdCBjaGlwIGxhbmRlZCAocGVyIGBkcm9wUG9zaXRpb25gIGFib3ZlKSBhdCBhIG11Y2ggd2lkZXJcbiAgLy8gdGFyZ2V0J3MgbGVmdCBlZGdlIGlzIHN0aWxsIGNvbnRhaW5lZCB3aXRoaW4gdGhhdCB0YXJnZXQncyByZWN0LiBDb21wYXJpbmdcbiAgLy8gZGlzdGFuY2VzIGJldHdlZW4gcmVjb25zdHJ1Y3RlZCBjZW50ZXJzIGluc3RlYWQgYnJlYWtzIGRvd24gZm9yIGV4YWN0bHkgdGhhdCBzaGFwZVxuICAvLyAoYSBzbWFsbCBpdGVtIGluIGEgbXVjaCB3aWRlciB0YXJnZXQpOiB0aGUgcmVjb25zdHJ1Y3RlZCBjZW50ZXIgY2FuIGVuZCB1cCBjbG9zZXJcbiAgLy8gdG8gYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBkcm9wcGFibGUgdGhhbiB0byB0aGUgb25lIHRoZSBpdGVtIGlzIGFjdHVhbGx5IHNpdHRpbmdcbiAgLy8gb24sIHNvIHRoZSAqbmV4dCogcHJlc3MgcmUtbWF0Y2hlcyB0aGUgd3JvbmcgdGFyZ2V0IGFuZCBsb29rcyBsaWtlIGl0IGRvZXMgbm90aGluZy5cbiAgY29uc3QgZHJhZ2dlZENlbnRlciA9IGNvbGxpc2lvblJlY3RcbiAgICA/IHsgeDogY29sbGlzaW9uUmVjdC5sZWZ0ICsgY29sbGlzaW9uUmVjdC53aWR0aCAvIDIsIHk6IGNvbGxpc2lvblJlY3QudG9wICsgY29sbGlzaW9uUmVjdC5oZWlnaHQgLyAyIH1cbiAgICA6IGN1cnJlbnRDb29yZGluYXRlcztcblxuICBsZXQgY3VycmVudEluZGV4ID0gdGFyZ2V0cy5maW5kSW5kZXgoXG4gICAgKHQpID0+XG4gICAgICBkcmFnZ2VkQ2VudGVyLnggPj0gdC5yZWN0LmxlZnQgJiZcbiAgICAgIGRyYWdnZWRDZW50ZXIueCA8PSB0LnJlY3QucmlnaHQgJiZcbiAgICAgIGRyYWdnZWRDZW50ZXIueSA+PSB0LnJlY3QudG9wICYmXG4gICAgICBkcmFnZ2VkQ2VudGVyLnkgPD0gdC5yZWN0LmJvdHRvbSxcbiAgKTtcblxuICAvLyBGYWxsIGJhY2sgdG8gbmVhcmVzdC1ieS1kcm9wUG9zaXRpb24gaWYgdGhlIGRyYWdnZWQgaXRlbSdzIGNlbnRlciBpc24ndCBzdHJpY3RseVxuICAvLyBpbnNpZGUgYW55IHRhcmdldCAoZS5nLiBtaWQtZmxpZ2h0IGFmdGVyIGEgZnJlZSBhcnJvdy1rZXkgbW92ZSkuXG4gIGlmIChjdXJyZW50SW5kZXggPT09IC0xKSB7XG4gICAgbGV0IG1pbkRpc3QgPSBJbmZpbml0eTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZGlzdCA9IGRpc3RhbmNlKGN1cnJlbnRDb29yZGluYXRlcywgdGFyZ2V0c1tpXS5kcm9wUG9zaXRpb24pO1xuXG4gICAgICBpZiAoZGlzdCA8IG1pbkRpc3QpIHtcbiAgICAgICAgbWluRGlzdCA9IGRpc3Q7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IGk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbmV4dEluZGV4ID0gcmV2ZXJzZVxuICAgID8gKGN1cnJlbnRJbmRleCAtIDEgKyB0YXJnZXRzLmxlbmd0aCkgJSB0YXJnZXRzLmxlbmd0aFxuICAgIDogKGN1cnJlbnRJbmRleCArIDEpICUgdGFyZ2V0cy5sZW5ndGg7XG5cbiAgcmV0dXJuIHRhcmdldHNbbmV4dEluZGV4XS5kcm9wUG9zaXRpb247XG59O1xuXG5jb25zdCBkaXN0YW5jZSA9IChhLCBiKSA9PiBNYXRoLnNxcnQoKGEueCAtIGIueCkgKiogMiArIChhLnkgLSBiLnkpICoqIDIpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsT0FBQTtBQUE4RSxTQUFBQywyQkFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEseUJBQUFDLE1B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
|
package/lib/mask.js
DELETED
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.renderChildren = exports["default"] = void 0;
|
|
8
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
11
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
|
-
var _react = _interopRequireDefault(require("react"));
|
|
16
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
-
var _lodashEs = require("lodash-es");
|
|
18
|
-
var _styles = require("@mui/material/styles");
|
|
19
|
-
var _mathRendering = require("@pie-lib/math-rendering");
|
|
20
|
-
var _serialization = require("./serialization");
|
|
21
|
-
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; }
|
|
22
|
-
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; }
|
|
23
|
-
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)); }
|
|
24
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
25
|
-
var Paragraph = (0, _styles.styled)('div')(function (_ref) {
|
|
26
|
-
var theme = _ref.theme;
|
|
27
|
-
return {
|
|
28
|
-
paddingTop: theme.spacing(0.5),
|
|
29
|
-
paddingBottom: theme.spacing(0.5)
|
|
30
|
-
};
|
|
31
|
-
});
|
|
32
|
-
var Spacer = (0, _styles.styled)('span')(function () {
|
|
33
|
-
return {
|
|
34
|
-
display: 'inline-block',
|
|
35
|
-
width: '.75em'
|
|
36
|
-
};
|
|
37
|
-
});
|
|
38
|
-
var restrictWhitespaceTypes = ['tbody', 'tr'];
|
|
39
|
-
var addText = function addText(parentNode, text) {
|
|
40
|
-
var isWhitespace = text.trim() === '';
|
|
41
|
-
var parentType = parentNode && parentNode.type;
|
|
42
|
-
if (isWhitespace && restrictWhitespaceTypes.includes(parentType)) {
|
|
43
|
-
return undefined;
|
|
44
|
-
} else {
|
|
45
|
-
return text;
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
var getMark = function getMark(n) {
|
|
49
|
-
var mark = n.leaves.find(function (leave) {
|
|
50
|
-
return (0, _lodashEs.get)(leave, 'marks', []).length;
|
|
51
|
-
});
|
|
52
|
-
if (mark) {
|
|
53
|
-
return mark.marks[0];
|
|
54
|
-
}
|
|
55
|
-
return null;
|
|
56
|
-
};
|
|
57
|
-
var _renderChildren = exports.renderChildren = function renderChildren(layout, value, onChange, rootRenderChildren, parentNode, elementType) {
|
|
58
|
-
if (!value) {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
var children = [];
|
|
62
|
-
(layout.nodes || []).forEach(function (n, index) {
|
|
63
|
-
var key = n.type ? "".concat(n.type, "-").concat(index) : "".concat(index);
|
|
64
|
-
if (n.isMath) {
|
|
65
|
-
children.push(/*#__PURE__*/_react["default"].createElement("span", {
|
|
66
|
-
dangerouslySetInnerHTML: {
|
|
67
|
-
__html: "<math displaystyle=\"true\">".concat(n.nodes[0].innerHTML, "</math>")
|
|
68
|
-
}
|
|
69
|
-
}));
|
|
70
|
-
return children;
|
|
71
|
-
}
|
|
72
|
-
if (rootRenderChildren) {
|
|
73
|
-
var c = rootRenderChildren(n, value, onChange);
|
|
74
|
-
if (c) {
|
|
75
|
-
var _n$data;
|
|
76
|
-
var isDndComponent = ((_n$data = n.data) === null || _n$data === void 0 || (_n$data = _n$data.dataset) === null || _n$data === void 0 ? void 0 : _n$data.component) === 'blank';
|
|
77
|
-
if (isDndComponent) {
|
|
78
|
-
children.push(/*#__PURE__*/_react["default"].createElement(Spacer, {
|
|
79
|
-
key: "spacer-".concat(index)
|
|
80
|
-
}));
|
|
81
|
-
}
|
|
82
|
-
children.push(c);
|
|
83
|
-
if (isDndComponent) {
|
|
84
|
-
children.push(/*#__PURE__*/_react["default"].createElement(Spacer, {
|
|
85
|
-
key: "spacer-".concat(index)
|
|
86
|
-
}));
|
|
87
|
-
}
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
if (n.object === 'text') {
|
|
92
|
-
var content = n.leaves.reduce(function (acc, l) {
|
|
93
|
-
var t = l.text;
|
|
94
|
-
var extraText = addText(parentNode, t);
|
|
95
|
-
return extraText ? acc + extraText : acc;
|
|
96
|
-
}, '');
|
|
97
|
-
var mark = getMark(n);
|
|
98
|
-
if (mark) {
|
|
99
|
-
var markKey;
|
|
100
|
-
for (markKey in _serialization.MARK_TAGS) {
|
|
101
|
-
if (_serialization.MARK_TAGS[markKey] === mark.type) {
|
|
102
|
-
var Tag = markKey;
|
|
103
|
-
children.push(/*#__PURE__*/_react["default"].createElement(Tag, {
|
|
104
|
-
key: key
|
|
105
|
-
}, content));
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
} else if (content.length > 0) {
|
|
110
|
-
children.push(content);
|
|
111
|
-
}
|
|
112
|
-
} else {
|
|
113
|
-
var subNodes = _renderChildren(n, value, onChange, rootRenderChildren, n, elementType);
|
|
114
|
-
if (n.type === 'p' || n.type === 'paragraph') {
|
|
115
|
-
children.push(/*#__PURE__*/_react["default"].createElement(Paragraph, {
|
|
116
|
-
key: key
|
|
117
|
-
}, subNodes));
|
|
118
|
-
} else {
|
|
119
|
-
var _Tag = n.type;
|
|
120
|
-
if (n.nodes && n.nodes.length > 0) {
|
|
121
|
-
children.push(/*#__PURE__*/_react["default"].createElement(_Tag, (0, _extends2["default"])({
|
|
122
|
-
key: key
|
|
123
|
-
}, n.data.attributes), subNodes));
|
|
124
|
-
} else {
|
|
125
|
-
children.push(/*#__PURE__*/_react["default"].createElement(_Tag, (0, _extends2["default"])({
|
|
126
|
-
key: key
|
|
127
|
-
}, n.data.attributes)));
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
return children;
|
|
133
|
-
};
|
|
134
|
-
var MaskContainer = (0, _styles.styled)('div')(function () {
|
|
135
|
-
return {
|
|
136
|
-
display: 'initial',
|
|
137
|
-
'&:not(.MathJax) table': {
|
|
138
|
-
borderCollapse: 'collapse'
|
|
139
|
-
},
|
|
140
|
-
// align table content to left as per STAR requirement PD-3687
|
|
141
|
-
'&:not(.MathJax) table td, &:not(.MathJax) table th': {
|
|
142
|
-
padding: '8px 12px',
|
|
143
|
-
textAlign: 'left'
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
});
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Renders a layout that uses the slate.js Value model structure.
|
|
150
|
-
*/
|
|
151
|
-
var Mask = exports["default"] = /*#__PURE__*/function (_React$Component) {
|
|
152
|
-
function Mask(props) {
|
|
153
|
-
var _this;
|
|
154
|
-
(0, _classCallCheck2["default"])(this, Mask);
|
|
155
|
-
_this = _callSuper(this, Mask, [props]);
|
|
156
|
-
(0, _defineProperty2["default"])(_this, "handleChange", function (id, value) {
|
|
157
|
-
var data = _objectSpread(_objectSpread({}, _this.props.value), {}, (0, _defineProperty2["default"])({}, id, value));
|
|
158
|
-
_this.props.onChange(data);
|
|
159
|
-
});
|
|
160
|
-
_this.internalContainerRef = /*#__PURE__*/_react["default"].createRef();
|
|
161
|
-
return _this;
|
|
162
|
-
}
|
|
163
|
-
(0, _inherits2["default"])(Mask, _React$Component);
|
|
164
|
-
return (0, _createClass2["default"])(Mask, [{
|
|
165
|
-
key: "componentDidMount",
|
|
166
|
-
value: function componentDidMount() {
|
|
167
|
-
var containerRef = this.props.containerRef || this.internalContainerRef;
|
|
168
|
-
if (containerRef.current && typeof _mathRendering.renderMath === 'function') {
|
|
169
|
-
(0, _mathRendering.renderMath)(containerRef.current);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}, {
|
|
173
|
-
key: "render",
|
|
174
|
-
value: function render() {
|
|
175
|
-
var _this$props = this.props,
|
|
176
|
-
value = _this$props.value,
|
|
177
|
-
layout = _this$props.layout,
|
|
178
|
-
elementType = _this$props.elementType,
|
|
179
|
-
containerRef = _this$props.containerRef;
|
|
180
|
-
var children = _renderChildren(layout, value, this.handleChange, this.props.renderChildren, null, elementType);
|
|
181
|
-
var ref = containerRef || this.internalContainerRef;
|
|
182
|
-
return /*#__PURE__*/_react["default"].createElement(MaskContainer, {
|
|
183
|
-
ref: ref
|
|
184
|
-
}, children);
|
|
185
|
-
}
|
|
186
|
-
}]);
|
|
187
|
-
}(_react["default"].Component);
|
|
188
|
-
(0, _defineProperty2["default"])(Mask, "propTypes", {
|
|
189
|
-
renderChildren: _propTypes["default"].func,
|
|
190
|
-
layout: _propTypes["default"].object,
|
|
191
|
-
value: _propTypes["default"].object,
|
|
192
|
-
onChange: _propTypes["default"].func,
|
|
193
|
-
elementType: _propTypes["default"].string,
|
|
194
|
-
containerRef: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].shape({
|
|
195
|
-
current: _propTypes["default"].instanceOf(Element)
|
|
196
|
-
})])
|
|
197
|
-
});
|
|
198
|
-
//# sourceMappingURL=mask.js.map
|
package/lib/mask.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mask.js","names":["_react","_interopRequireDefault","require","_propTypes","_lodashEs","_styles","_mathRendering","_serialization","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","Paragraph","styled","_ref","theme","paddingTop","spacing","paddingBottom","Spacer","display","width","restrictWhitespaceTypes","addText","parentNode","text","isWhitespace","trim","parentType","type","includes","undefined","getMark","n","mark","leaves","find","leave","get","marks","renderChildren","exports","layout","value","onChange","rootRenderChildren","elementType","children","nodes","index","key","concat","isMath","createElement","dangerouslySetInnerHTML","__html","innerHTML","c","_n$data","isDndComponent","data","dataset","component","object","content","reduce","acc","l","extraText","markKey","MARK_TAGS","Tag","subNodes","_Tag","_extends2","attributes","MaskContainer","borderCollapse","padding","textAlign","Mask","_React$Component","props","_this","_classCallCheck2","id","internalContainerRef","React","createRef","_inherits2","_createClass2","componentDidMount","containerRef","current","renderMath","render","_this$props","handleChange","ref","Component","PropTypes","func","string","oneOfType","shape","instanceOf","Element"],"sources":["../src/mask.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { get } from 'lodash-es';\nimport { styled } from '@mui/material/styles';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { MARK_TAGS } from './serialization';\n\nconst Paragraph = styled('div')(({ theme }) => ({\n paddingTop: theme.spacing(0.5),\n paddingBottom: theme.spacing(0.5),\n}));\n\nconst Spacer = styled('span')(() => ({\n display: 'inline-block',\n width: '.75em',\n}));\n\nconst restrictWhitespaceTypes = ['tbody', 'tr'];\n\nconst addText = (parentNode, text) => {\n const isWhitespace = text.trim() === '';\n const parentType = parentNode && parentNode.type;\n\n if (isWhitespace && restrictWhitespaceTypes.includes(parentType)) {\n return undefined;\n } else {\n return text;\n }\n};\n\nconst getMark = (n) => {\n const mark = n.leaves.find((leave) => get(leave, 'marks', []).length);\n\n if (mark) {\n return mark.marks[0];\n }\n\n return null;\n};\n\nexport const renderChildren = (layout, value, onChange, rootRenderChildren, parentNode, elementType) => {\n if (!value) {\n return null;\n }\n\n const children = [];\n\n (layout.nodes || []).forEach((n, index) => {\n const key = n.type ? `${n.type}-${index}` : `${index}`;\n\n if (n.isMath) {\n children.push(\n <span\n dangerouslySetInnerHTML={{\n __html: `<math displaystyle=\"true\">${n.nodes[0].innerHTML}</math>`,\n }}\n />,\n );\n return children;\n }\n\n if (rootRenderChildren) {\n const c = rootRenderChildren(n, value, onChange);\n if (c) {\n const isDndComponent = n.data?.dataset?.component === 'blank';\n\n if (isDndComponent) {\n children.push(<Spacer key={`spacer-${index}`} />);\n }\n\n children.push(c);\n\n if (isDndComponent) {\n children.push(<Spacer key={`spacer-${index}`} />);\n }\n return;\n }\n }\n\n if (n.object === 'text') {\n const content = n.leaves.reduce((acc, l) => {\n const t = l.text;\n const extraText = addText(parentNode, t);\n return extraText ? acc + extraText : acc;\n }, '');\n const mark = getMark(n);\n\n if (mark) {\n let markKey;\n\n for (markKey in MARK_TAGS) {\n if (MARK_TAGS[markKey] === mark.type) {\n const Tag = markKey;\n\n children.push(<Tag key={key}>{content}</Tag>);\n break;\n }\n }\n } else if (content.length > 0) {\n children.push(content);\n }\n } else {\n const subNodes = renderChildren(n, value, onChange, rootRenderChildren, n, elementType);\n if (n.type === 'p' || n.type === 'paragraph') {\n children.push(<Paragraph key={key}>{subNodes}</Paragraph>);\n } else {\n const Tag = n.type;\n if (n.nodes && n.nodes.length > 0) {\n children.push(\n <Tag key={key} {...n.data.attributes}>\n {subNodes}\n </Tag>,\n );\n } else {\n children.push(<Tag key={key} {...n.data.attributes} />);\n }\n }\n }\n });\n return children;\n};\n\nconst MaskContainer = styled('div')(() => ({\n display: 'initial',\n '&:not(.MathJax) table': {\n borderCollapse: 'collapse',\n },\n // align table content to left as per STAR requirement PD-3687\n '&:not(.MathJax) table td, &:not(.MathJax) table th': {\n padding: '8px 12px',\n textAlign: 'left',\n },\n}));\n\n/**\n * Renders a layout that uses the slate.js Value model structure.\n */\nexport default class Mask extends React.Component {\n constructor(props) {\n super(props);\n this.internalContainerRef = React.createRef();\n }\n\n static propTypes = {\n renderChildren: PropTypes.func,\n layout: PropTypes.object,\n value: PropTypes.object,\n onChange: PropTypes.func,\n elementType: PropTypes.string,\n containerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.instanceOf(Element) })]),\n };\n\n componentDidMount() {\n const containerRef = this.props.containerRef || this.internalContainerRef;\n if (containerRef.current && typeof renderMath === 'function') {\n renderMath(containerRef.current);\n }\n }\n\n handleChange = (id, value) => {\n const data = { ...this.props.value, [id]: value };\n this.props.onChange(data);\n };\n\n render() {\n const { value, layout, elementType, containerRef } = this.props;\n const children = renderChildren(layout, value, this.handleChange, this.props.renderChildren, null, elementType);\n const ref = containerRef || this.internalContainerRef;\n\n return <MaskContainer ref={ref}>{children}</MaskContainer>;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|