@pie-lib/mask-markup 3.0.4-next.31 → 3.0.4-next.32
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 +24 -0
- package/dist/choices/choice.js +77 -0
- package/dist/choices/index.d.ts +25 -0
- package/dist/choices/index.js +49 -0
- package/dist/componentize.d.ts +12 -0
- package/dist/componentize.js +4 -0
- package/dist/components/blank.d.ts +39 -0
- package/dist/components/blank.js +240 -0
- package/dist/components/correct-input.d.ts +11 -0
- package/dist/components/dropdown.d.ts +37 -0
- package/dist/components/dropdown.js +320 -0
- package/dist/components/input.d.ts +37 -0
- package/dist/constructed-response.d.ts +44 -0
- package/dist/constructed-response.js +55 -0
- package/dist/customizable.d.ts +43 -0
- package/dist/customizable.js +8 -0
- package/dist/drag-in-the-blank.d.ts +37 -0
- package/dist/drag-in-the-blank.js +164 -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/mask.d.ts +30 -0
- package/dist/mask.js +99 -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 +39 -20
- package/CHANGELOG.json +0 -17
- package/CHANGELOG.md +0 -1256
- package/LICENSE.md +0 -5
- package/lib/choices/choice.js +0 -116
- 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 -371
- 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/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/__tests__/drag-in-the-blank.test.js +0 -111
- package/src/__tests__/index.test.js +0 -38
- package/src/__tests__/mask.test.js +0 -381
- package/src/__tests__/serialization.test.js +0 -54
- package/src/__tests__/utils.js +0 -1
- package/src/__tests__/with-mask.test.js +0 -76
- package/src/choices/__tests__/index.test.js +0 -75
- package/src/choices/choice.jsx +0 -97
- package/src/choices/index.jsx +0 -64
- package/src/componentize.js +0 -13
- package/src/components/__tests__/blank.test.js +0 -199
- package/src/components/__tests__/correct-input.test.js +0 -90
- package/src/components/__tests__/dropdown.test.js +0 -129
- package/src/components/__tests__/input.test.js +0 -102
- package/src/components/blank.jsx +0 -386
- 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
package/lib/index.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
Object.defineProperty(exports, "ConstructedResponse", {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
get: function get() {
|
|
10
|
-
return _constructedResponse["default"];
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
Object.defineProperty(exports, "Customizable", {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
get: function get() {
|
|
16
|
-
return _customizable["default"];
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
Object.defineProperty(exports, "DragInTheBlank", {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: function get() {
|
|
22
|
-
return _dragInTheBlank["default"];
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
Object.defineProperty(exports, "InlineDropdown", {
|
|
26
|
-
enumerable: true,
|
|
27
|
-
get: function get() {
|
|
28
|
-
return _inlineDropdown["default"];
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
Object.defineProperty(exports, "buildLayoutFromMarkup", {
|
|
32
|
-
enumerable: true,
|
|
33
|
-
get: function get() {
|
|
34
|
-
return _withMask.buildLayoutFromMarkup;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
Object.defineProperty(exports, "componentize", {
|
|
38
|
-
enumerable: true,
|
|
39
|
-
get: function get() {
|
|
40
|
-
return _componentize["default"];
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
Object.defineProperty(exports, "withMask", {
|
|
44
|
-
enumerable: true,
|
|
45
|
-
get: function get() {
|
|
46
|
-
return _withMask.withMask;
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
var _withMask = require("./with-mask");
|
|
50
|
-
var _dragInTheBlank = _interopRequireDefault(require("./drag-in-the-blank"));
|
|
51
|
-
var _constructedResponse = _interopRequireDefault(require("./constructed-response"));
|
|
52
|
-
var _customizable = _interopRequireDefault(require("./customizable"));
|
|
53
|
-
var _inlineDropdown = _interopRequireDefault(require("./inline-dropdown"));
|
|
54
|
-
var _componentize = _interopRequireDefault(require("./componentize"));
|
|
55
|
-
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_withMask","require","_dragInTheBlank","_interopRequireDefault","_constructedResponse","_customizable","_inlineDropdown","_componentize"],"sources":["../src/index.js"],"sourcesContent":["import { buildLayoutFromMarkup, withMask } from './with-mask';\nimport DragInTheBlank from './drag-in-the-blank';\nimport ConstructedResponse from './constructed-response';\nimport Customizable from './customizable';\nimport InlineDropdown from './inline-dropdown';\nimport componentize from './componentize';\n\nexport {\n withMask,\n buildLayoutFromMarkup,\n DragInTheBlank,\n ConstructedResponse,\n InlineDropdown,\n componentize,\n Customizable,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,aAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,eAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,aAAA,GAAAJ,sBAAA,CAAAF,OAAA","ignoreList":[]}
|
package/lib/inline-dropdown.js
DELETED
|
@@ -1,40 +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["default"] = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _dropdown = _interopRequireDefault(require("./components/dropdown"));
|
|
10
|
-
var _withMask = require("./with-mask");
|
|
11
|
-
// eslint-disable-next-line react/display-name
|
|
12
|
-
var _default = exports["default"] = (0, _withMask.withMask)('dropdown', function (props) {
|
|
13
|
-
return function (node, data, onChange) {
|
|
14
|
-
var dataset = node.data ? node.data.dataset || {} : {};
|
|
15
|
-
if (dataset.component === 'dropdown') {
|
|
16
|
-
// eslint-disable-next-line react/prop-types
|
|
17
|
-
var choices = props.choices,
|
|
18
|
-
disabled = props.disabled,
|
|
19
|
-
feedback = props.feedback,
|
|
20
|
-
showCorrectAnswer = props.showCorrectAnswer;
|
|
21
|
-
var correctAnswer = choices && choices[dataset.id] && choices[dataset.id].find(function (c) {
|
|
22
|
-
return c.correct;
|
|
23
|
-
});
|
|
24
|
-
var finalChoice = showCorrectAnswer ? correctAnswer && correctAnswer.value : data[dataset.id];
|
|
25
|
-
return /*#__PURE__*/_react["default"].createElement(_dropdown["default"], {
|
|
26
|
-
key: "".concat(node.type, "-dropdown-").concat(dataset.id),
|
|
27
|
-
correct: feedback && feedback[dataset.id] && feedback[dataset.id] === 'correct',
|
|
28
|
-
disabled: disabled || showCorrectAnswer,
|
|
29
|
-
value: finalChoice,
|
|
30
|
-
correctValue: showCorrectAnswer ? correctAnswer && correctAnswer.label : undefined,
|
|
31
|
-
id: dataset.id,
|
|
32
|
-
onChange: onChange,
|
|
33
|
-
choices: choices[dataset.id],
|
|
34
|
-
showCorrectAnswer: showCorrectAnswer,
|
|
35
|
-
singleQuery: Object.keys(choices).length == 1
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
});
|
|
40
|
-
//# sourceMappingURL=inline-dropdown.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inline-dropdown.js","names":["_react","_interopRequireDefault","require","_dropdown","_withMask","_default","exports","withMask","props","node","data","onChange","dataset","component","choices","disabled","feedback","showCorrectAnswer","correctAnswer","id","find","c","correct","finalChoice","value","createElement","key","concat","type","correctValue","label","undefined","singleQuery","Object","keys","length"],"sources":["../src/inline-dropdown.jsx"],"sourcesContent":["import React from 'react';\nimport Dropdown from './components/dropdown';\nimport { withMask } from './with-mask';\n\n// eslint-disable-next-line react/display-name\nexport default withMask('dropdown', (props) => (node, data, onChange) => {\n const dataset = node.data ? node.data.dataset || {} : {};\n if (dataset.component === 'dropdown') {\n // eslint-disable-next-line react/prop-types\n const { choices, disabled, feedback, showCorrectAnswer } = props;\n const correctAnswer = choices && choices[dataset.id] && choices[dataset.id].find((c) => c.correct);\n const finalChoice = showCorrectAnswer ? correctAnswer && correctAnswer.value : data[dataset.id];\n\n return (\n <Dropdown\n key={`${node.type}-dropdown-${dataset.id}`}\n correct={feedback && feedback[dataset.id] && feedback[dataset.id] === 'correct'}\n disabled={disabled || showCorrectAnswer}\n value={finalChoice}\n correctValue={showCorrectAnswer ? correctAnswer && correctAnswer.label : undefined}\n id={dataset.id}\n onChange={onChange}\n choices={choices[dataset.id]}\n showCorrectAnswer={showCorrectAnswer}\n singleQuery={Object.keys(choices).length == 1}\n />\n );\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEA;AAAA,IAAAG,QAAA,GAAAC,OAAA,cACe,IAAAC,kBAAQ,EAAC,UAAU,EAAE,UAACC,KAAK;EAAA,OAAK,UAACC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAK;IACvE,IAAMC,OAAO,GAAGH,IAAI,CAACC,IAAI,GAAGD,IAAI,CAACC,IAAI,CAACE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACxD,IAAIA,OAAO,CAACC,SAAS,KAAK,UAAU,EAAE;MACpC;MACA,IAAQC,OAAO,GAA4CN,KAAK,CAAxDM,OAAO;QAAEC,QAAQ,GAAkCP,KAAK,CAA/CO,QAAQ;QAAEC,QAAQ,GAAwBR,KAAK,CAArCQ,QAAQ;QAAEC,iBAAiB,GAAKT,KAAK,CAA3BS,iBAAiB;MACtD,IAAMC,aAAa,GAAGJ,OAAO,IAAIA,OAAO,CAACF,OAAO,CAACO,EAAE,CAAC,IAAIL,OAAO,CAACF,OAAO,CAACO,EAAE,CAAC,CAACC,IAAI,CAAC,UAACC,CAAC;QAAA,OAAKA,CAAC,CAACC,OAAO;MAAA,EAAC;MAClG,IAAMC,WAAW,GAAGN,iBAAiB,GAAGC,aAAa,IAAIA,aAAa,CAACM,KAAK,GAAGd,IAAI,CAACE,OAAO,CAACO,EAAE,CAAC;MAE/F,oBACEnB,MAAA,YAAAyB,aAAA,CAACtB,SAAA,WAAQ;QACPuB,GAAG,KAAAC,MAAA,CAAKlB,IAAI,CAACmB,IAAI,gBAAAD,MAAA,CAAaf,OAAO,CAACO,EAAE,CAAG;QAC3CG,OAAO,EAAEN,QAAQ,IAAIA,QAAQ,CAACJ,OAAO,CAACO,EAAE,CAAC,IAAIH,QAAQ,CAACJ,OAAO,CAACO,EAAE,CAAC,KAAK,SAAU;QAChFJ,QAAQ,EAAEA,QAAQ,IAAIE,iBAAkB;QACxCO,KAAK,EAAED,WAAY;QACnBM,YAAY,EAAEZ,iBAAiB,GAAGC,aAAa,IAAIA,aAAa,CAACY,KAAK,GAAGC,SAAU;QACnFZ,EAAE,EAAEP,OAAO,CAACO,EAAG;QACfR,QAAQ,EAAEA,QAAS;QACnBG,OAAO,EAAEA,OAAO,CAACF,OAAO,CAACO,EAAE,CAAE;QAC7BF,iBAAiB,EAAEA,iBAAkB;QACrCe,WAAW,EAAEC,MAAM,CAACC,IAAI,CAACpB,OAAO,CAAC,CAACqB,MAAM,IAAI;MAAE,CAC/C,CAAC;IAEN;EACF,CAAC;AAAA,EAAC","ignoreList":[]}
|
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":[]}
|
package/lib/serialization.js
DELETED
|
@@ -1,261 +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.reactAttributes = exports.parseStyleString = exports.deserialize = exports.MARK_TAGS = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
-
var _toStyle = require("to-style");
|
|
11
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
12
|
-
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; }
|
|
13
|
-
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; }
|
|
14
|
-
var log = (0, _debug["default"])('@pie-lib:mask-markup:serialization');
|
|
15
|
-
var INLINE = ['span'];
|
|
16
|
-
var MARK = ['em', 'strong', 'u'];
|
|
17
|
-
var TEXT_NODE = 3;
|
|
18
|
-
var COMMENT_NODE = 8;
|
|
19
|
-
var ELEMENT_NODE = 1;
|
|
20
|
-
var attr = function attr(el) {
|
|
21
|
-
if (!el.attributes || el.attributes.length <= 0) {
|
|
22
|
-
return undefined;
|
|
23
|
-
}
|
|
24
|
-
var out = {};
|
|
25
|
-
var i;
|
|
26
|
-
for (i = 0; i < el.attributes.length; i++) {
|
|
27
|
-
var a = el.attributes[i];
|
|
28
|
-
out[a.name] = a.value;
|
|
29
|
-
}
|
|
30
|
-
return out;
|
|
31
|
-
};
|
|
32
|
-
var getObject = function getObject(type) {
|
|
33
|
-
if (INLINE.includes(type)) {
|
|
34
|
-
return 'inline';
|
|
35
|
-
} else if (MARK.includes(type)) {
|
|
36
|
-
return 'mark';
|
|
37
|
-
}
|
|
38
|
-
return 'block';
|
|
39
|
-
};
|
|
40
|
-
var parseStyleString = exports.parseStyleString = function parseStyleString(s) {
|
|
41
|
-
var regex = /([\w-]*)\s*:\s*([^;]*)/g;
|
|
42
|
-
var match;
|
|
43
|
-
var result = {};
|
|
44
|
-
while (match = regex.exec(s)) {
|
|
45
|
-
result[match[1]] = match[2].trim();
|
|
46
|
-
}
|
|
47
|
-
return result;
|
|
48
|
-
};
|
|
49
|
-
var reactAttributes = exports.reactAttributes = function reactAttributes(o) {
|
|
50
|
-
return (0, _toStyle.object)(o, {
|
|
51
|
-
camelize: true,
|
|
52
|
-
addUnits: false
|
|
53
|
-
});
|
|
54
|
-
};
|
|
55
|
-
var handleStyles = function handleStyles(el, attribute) {
|
|
56
|
-
var styleString = el.getAttribute(attribute);
|
|
57
|
-
return reactAttributes(parseStyleString(styleString));
|
|
58
|
-
};
|
|
59
|
-
var handleClass = function handleClass(el, acc, attribute) {
|
|
60
|
-
var classNames = el.getAttribute(attribute);
|
|
61
|
-
delete acc["class"];
|
|
62
|
-
return classNames;
|
|
63
|
-
};
|
|
64
|
-
var attributesToMap = function attributesToMap(el) {
|
|
65
|
-
return function (acc, attribute) {
|
|
66
|
-
if (!el.getAttribute) {
|
|
67
|
-
return acc;
|
|
68
|
-
}
|
|
69
|
-
var value = el.getAttribute(attribute);
|
|
70
|
-
if (value) {
|
|
71
|
-
switch (attribute) {
|
|
72
|
-
case 'style':
|
|
73
|
-
acc.style = handleStyles(el, attribute);
|
|
74
|
-
break;
|
|
75
|
-
case 'class':
|
|
76
|
-
acc.className = handleClass(el, acc, attribute);
|
|
77
|
-
break;
|
|
78
|
-
default:
|
|
79
|
-
acc[attribute] = el.getAttribute(attribute);
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return acc;
|
|
84
|
-
};
|
|
85
|
-
};
|
|
86
|
-
var attributes = ['border', 'class', 'style'];
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Tags to marks.
|
|
90
|
-
*
|
|
91
|
-
* @type {Object}
|
|
92
|
-
*/
|
|
93
|
-
|
|
94
|
-
var MARK_TAGS = exports.MARK_TAGS = {
|
|
95
|
-
b: 'bold',
|
|
96
|
-
em: 'italic',
|
|
97
|
-
u: 'underline',
|
|
98
|
-
s: 'strikethrough',
|
|
99
|
-
code: 'code',
|
|
100
|
-
strong: 'strong'
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Recursively process DOM nodes and convert them to Slate JSON format
|
|
105
|
-
*/
|
|
106
|
-
var processNode = function processNode(node) {
|
|
107
|
-
var marks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
108
|
-
// Skip comment nodes
|
|
109
|
-
if (node.nodeType === COMMENT_NODE) {
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// Handle text nodes
|
|
114
|
-
if (node.nodeType === TEXT_NODE) {
|
|
115
|
-
var text = node.textContent;
|
|
116
|
-
var leaf = {
|
|
117
|
-
text: text
|
|
118
|
-
};
|
|
119
|
-
if (marks.length > 0) {
|
|
120
|
-
leaf.marks = marks.map(function (m) {
|
|
121
|
-
return {
|
|
122
|
-
type: m,
|
|
123
|
-
data: undefined
|
|
124
|
-
};
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
return {
|
|
128
|
-
object: 'text',
|
|
129
|
-
leaves: [leaf]
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// Handle element nodes
|
|
134
|
-
if (node.nodeType === ELEMENT_NODE) {
|
|
135
|
-
var type = node.tagName.toLowerCase();
|
|
136
|
-
|
|
137
|
-
// Check if this is a mark tag
|
|
138
|
-
var markType = MARK_TAGS[type];
|
|
139
|
-
if (markType) {
|
|
140
|
-
log('[deserialize] mark: ', markType);
|
|
141
|
-
// Process children with this mark added and return them flattened
|
|
142
|
-
var _childNodes = processNodes(node.childNodes, [].concat((0, _toConsumableArray2["default"])(marks), [markType]));
|
|
143
|
-
// Return an array indicator with the nodes (will be flattened by parent)
|
|
144
|
-
return {
|
|
145
|
-
_flatten: true,
|
|
146
|
-
nodes: _childNodes
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// Handle math elements specially
|
|
151
|
-
if (type === 'math') {
|
|
152
|
-
return {
|
|
153
|
-
isMath: true,
|
|
154
|
-
nodes: [node]
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
// Process regular elements
|
|
159
|
-
var normalAttrs = attr(node) || {};
|
|
160
|
-
if (type === 'audio' && normalAttrs.controls === '') {
|
|
161
|
-
normalAttrs.controls = true;
|
|
162
|
-
}
|
|
163
|
-
var allAttrs = attributes.reduce(attributesToMap(node), _objectSpread({}, normalAttrs));
|
|
164
|
-
var object = getObject(type);
|
|
165
|
-
var childNodes = processNodes(node.childNodes, marks);
|
|
166
|
-
return {
|
|
167
|
-
object: object,
|
|
168
|
-
type: type,
|
|
169
|
-
data: {
|
|
170
|
-
dataset: _objectSpread({}, node.dataset),
|
|
171
|
-
attributes: _objectSpread({}, allAttrs)
|
|
172
|
-
},
|
|
173
|
-
nodes: childNodes
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
return null;
|
|
177
|
-
};
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Process a NodeList and convert to array of Slate nodes
|
|
181
|
-
*/
|
|
182
|
-
var processNodes = function processNodes(nodeList) {
|
|
183
|
-
var marks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
184
|
-
var nodes = [];
|
|
185
|
-
for (var i = 0; i < nodeList.length; i++) {
|
|
186
|
-
var result = processNode(nodeList[i], marks);
|
|
187
|
-
if (result !== null) {
|
|
188
|
-
// Handle flattening for mark nodes
|
|
189
|
-
if (result._flatten && result.nodes) {
|
|
190
|
-
nodes.push.apply(nodes, (0, _toConsumableArray2["default"])(result.nodes));
|
|
191
|
-
} else {
|
|
192
|
-
nodes.push(result);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
return nodes;
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Deserialize HTML string to Slate JSON format
|
|
201
|
-
*/
|
|
202
|
-
var deserialize = exports.deserialize = function deserialize(htmlString) {
|
|
203
|
-
// Handle empty or whitespace-only strings
|
|
204
|
-
if (!htmlString || !htmlString.trim()) {
|
|
205
|
-
return {
|
|
206
|
-
object: 'value',
|
|
207
|
-
document: {
|
|
208
|
-
object: 'document',
|
|
209
|
-
data: {},
|
|
210
|
-
nodes: [{
|
|
211
|
-
object: 'block',
|
|
212
|
-
type: 'span',
|
|
213
|
-
data: {},
|
|
214
|
-
isVoid: false,
|
|
215
|
-
nodes: []
|
|
216
|
-
}]
|
|
217
|
-
}
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// Use DOMParser to parse the HTML
|
|
222
|
-
var parser = new DOMParser();
|
|
223
|
-
var doc = parser.parseFromString(htmlString, 'text/html');
|
|
224
|
-
|
|
225
|
-
// Process all nodes in the body
|
|
226
|
-
var nodes = processNodes(doc.body.childNodes);
|
|
227
|
-
|
|
228
|
-
// If we only have text nodes (no block elements), wrap in default span block
|
|
229
|
-
var hasBlockElements = nodes.some(function (node) {
|
|
230
|
-
return node.object === 'block' || node.object === 'inline';
|
|
231
|
-
});
|
|
232
|
-
if (!hasBlockElements && nodes.length > 0) {
|
|
233
|
-
nodes = [{
|
|
234
|
-
object: 'block',
|
|
235
|
-
type: 'span',
|
|
236
|
-
data: {},
|
|
237
|
-
isVoid: false,
|
|
238
|
-
nodes: nodes
|
|
239
|
-
}];
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
// If no nodes were produced, add a default span block
|
|
243
|
-
if (nodes.length === 0) {
|
|
244
|
-
nodes = [{
|
|
245
|
-
object: 'block',
|
|
246
|
-
type: 'span',
|
|
247
|
-
data: {},
|
|
248
|
-
isVoid: false,
|
|
249
|
-
nodes: []
|
|
250
|
-
}];
|
|
251
|
-
}
|
|
252
|
-
return {
|
|
253
|
-
object: 'value',
|
|
254
|
-
document: {
|
|
255
|
-
object: 'document',
|
|
256
|
-
data: {},
|
|
257
|
-
nodes: nodes
|
|
258
|
-
}
|
|
259
|
-
};
|
|
260
|
-
};
|
|
261
|
-
//# sourceMappingURL=serialization.js.map
|
package/lib/serialization.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.js","names":["_toStyle","require","_debug","_interopRequireDefault","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","INLINE","MARK","TEXT_NODE","COMMENT_NODE","ELEMENT_NODE","attr","el","attributes","undefined","out","i","a","name","value","getObject","type","includes","parseStyleString","exports","s","regex","match","result","exec","trim","reactAttributes","toStyleObject","camelize","addUnits","handleStyles","attribute","styleString","getAttribute","handleClass","acc","classNames","attributesToMap","style","className","MARK_TAGS","b","em","u","code","strong","processNode","node","marks","nodeType","text","textContent","leaf","map","m","data","object","leaves","tagName","toLowerCase","markType","childNodes","processNodes","concat","_toConsumableArray2","_flatten","nodes","isMath","normalAttrs","controls","allAttrs","reduce","dataset","nodeList","deserialize","htmlString","document","isVoid","parser","DOMParser","doc","parseFromString","body","hasBlockElements","some"],"sources":["../src/serialization.js"],"sourcesContent":["import { object as toStyleObject } from 'to-style';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:mask-markup:serialization');\n\nconst INLINE = ['span'];\nconst MARK = ['em', 'strong', 'u'];\nconst TEXT_NODE = 3;\nconst COMMENT_NODE = 8;\nconst ELEMENT_NODE = 1;\n\nconst attr = (el) => {\n if (!el.attributes || el.attributes.length <= 0) {\n return undefined;\n }\n\n const out = {};\n let i;\n\n for (i = 0; i < el.attributes.length; i++) {\n const a = el.attributes[i];\n\n out[a.name] = a.value;\n }\n\n return out;\n};\n\nconst getObject = (type) => {\n if (INLINE.includes(type)) {\n return 'inline';\n } else if (MARK.includes(type)) {\n return 'mark';\n }\n return 'block';\n};\n\nexport const parseStyleString = (s) => {\n const regex = /([\\w-]*)\\s*:\\s*([^;]*)/g;\n let match;\n const result = {};\n while ((match = regex.exec(s))) {\n result[match[1]] = match[2].trim();\n }\n return result;\n};\n\nexport const reactAttributes = (o) => toStyleObject(o, { camelize: true, addUnits: false });\n\nconst handleStyles = (el, attribute) => {\n const styleString = el.getAttribute(attribute);\n\n return reactAttributes(parseStyleString(styleString));\n};\n\nconst handleClass = (el, acc, attribute) => {\n const classNames = el.getAttribute(attribute);\n\n delete acc.class;\n\n return classNames;\n};\n\nconst attributesToMap = (el) => (acc, attribute) => {\n if (!el.getAttribute) {\n return acc;\n }\n\n const value = el.getAttribute(attribute);\n\n if (value) {\n switch (attribute) {\n case 'style':\n acc.style = handleStyles(el, attribute);\n break;\n case 'class':\n acc.className = handleClass(el, acc, attribute);\n break;\n default:\n acc[attribute] = el.getAttribute(attribute);\n break;\n }\n }\n\n return acc;\n};\n\nconst attributes = ['border', 'class', 'style'];\n\n/**\n * Tags to marks.\n *\n * @type {Object}\n */\n\nexport const MARK_TAGS = {\n b: 'bold',\n em: 'italic',\n u: 'underline',\n s: 'strikethrough',\n code: 'code',\n strong: 'strong',\n};\n\n/**\n * Recursively process DOM nodes and convert them to Slate JSON format\n */\nconst processNode = (node, marks = []) => {\n // Skip comment nodes\n if (node.nodeType === COMMENT_NODE) {\n return null;\n }\n\n // Handle text nodes\n if (node.nodeType === TEXT_NODE) {\n const text = node.textContent;\n const leaf = { text };\n\n if (marks.length > 0) {\n leaf.marks = marks.map((m) => ({ type: m, data: undefined }));\n }\n\n return {\n object: 'text',\n leaves: [leaf],\n };\n }\n\n // Handle element nodes\n if (node.nodeType === ELEMENT_NODE) {\n const type = node.tagName.toLowerCase();\n\n // Check if this is a mark tag\n const markType = MARK_TAGS[type];\n if (markType) {\n log('[deserialize] mark: ', markType);\n // Process children with this mark added and return them flattened\n const childNodes = processNodes(node.childNodes, [...marks, markType]);\n // Return an array indicator with the nodes (will be flattened by parent)\n return { _flatten: true, nodes: childNodes };\n }\n\n // Handle math elements specially\n if (type === 'math') {\n return {\n isMath: true,\n nodes: [node],\n };\n }\n\n // Process regular elements\n const normalAttrs = attr(node) || {};\n\n if (type === 'audio' && normalAttrs.controls === '') {\n normalAttrs.controls = true;\n }\n\n const allAttrs = attributes.reduce(attributesToMap(node), { ...normalAttrs });\n const object = getObject(type);\n\n const childNodes = processNodes(node.childNodes, marks);\n\n return {\n object,\n type,\n data: { dataset: { ...node.dataset }, attributes: { ...allAttrs } },\n nodes: childNodes,\n };\n }\n\n return null;\n};\n\n/**\n * Process a NodeList and convert to array of Slate nodes\n */\nconst processNodes = (nodeList, marks = []) => {\n const nodes = [];\n for (let i = 0; i < nodeList.length; i++) {\n const result = processNode(nodeList[i], marks);\n if (result !== null) {\n // Handle flattening for mark nodes\n if (result._flatten && result.nodes) {\n nodes.push(...result.nodes);\n } else {\n nodes.push(result);\n }\n }\n }\n return nodes;\n};\n\n/**\n * Deserialize HTML string to Slate JSON format\n */\nexport const deserialize = (htmlString) => {\n // Handle empty or whitespace-only strings\n if (!htmlString || !htmlString.trim()) {\n return {\n object: 'value',\n document: {\n object: 'document',\n data: {},\n nodes: [\n {\n object: 'block',\n type: 'span',\n data: {},\n isVoid: false,\n nodes: [],\n },\n ],\n },\n };\n }\n\n // Use DOMParser to parse the HTML\n const parser = new DOMParser();\n const doc = parser.parseFromString(htmlString, 'text/html');\n\n // Process all nodes in the body\n let nodes = processNodes(doc.body.childNodes);\n\n // If we only have text nodes (no block elements), wrap in default span block\n const hasBlockElements = nodes.some((node) => node.object === 'block' || node.object === 'inline');\n\n if (!hasBlockElements && nodes.length > 0) {\n nodes = [\n {\n object: 'block',\n type: 'span',\n data: {},\n isVoid: false,\n nodes: nodes,\n },\n ];\n }\n\n // If no nodes were produced, add a default span block\n if (nodes.length === 0) {\n nodes = [\n {\n object: 'block',\n type: 'span',\n data: {},\n isVoid: false,\n nodes: [],\n },\n ];\n }\n\n return {\n object: 'value',\n document: {\n object: 'document',\n data: {},\n nodes,\n },\n };\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0B,SAAAG,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAE1B,IAAMoB,GAAG,GAAG,IAAAC,iBAAK,EAAC,oCAAoC,CAAC;AAEvD,IAAMC,MAAM,GAAG,CAAC,MAAM,CAAC;AACvB,IAAMC,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC;AAClC,IAAMC,SAAS,GAAG,CAAC;AACnB,IAAMC,YAAY,GAAG,CAAC;AACtB,IAAMC,YAAY,GAAG,CAAC;AAEtB,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAIC,EAAE,EAAK;EACnB,IAAI,CAACA,EAAE,CAACC,UAAU,IAAID,EAAE,CAACC,UAAU,CAACf,MAAM,IAAI,CAAC,EAAE;IAC/C,OAAOgB,SAAS;EAClB;EAEA,IAAMC,GAAG,GAAG,CAAC,CAAC;EACd,IAAIC,CAAC;EAEL,KAAKA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,EAAE,CAACC,UAAU,CAACf,MAAM,EAAEkB,CAAC,EAAE,EAAE;IACzC,IAAMC,CAAC,GAAGL,EAAE,CAACC,UAAU,CAACG,CAAC,CAAC;IAE1BD,GAAG,CAACE,CAAC,CAACC,IAAI,CAAC,GAAGD,CAAC,CAACE,KAAK;EACvB;EAEA,OAAOJ,GAAG;AACZ,CAAC;AAED,IAAMK,SAAS,GAAG,SAAZA,SAASA,CAAIC,IAAI,EAAK;EAC1B,IAAIf,MAAM,CAACgB,QAAQ,CAACD,IAAI,CAAC,EAAE;IACzB,OAAO,QAAQ;EACjB,CAAC,MAAM,IAAId,IAAI,CAACe,QAAQ,CAACD,IAAI,CAAC,EAAE;IAC9B,OAAO,MAAM;EACf;EACA,OAAO,OAAO;AAChB,CAAC;AAEM,IAAME,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAAnBA,gBAAgBA,CAAIE,CAAC,EAAK;EACrC,IAAMC,KAAK,GAAG,yBAAyB;EACvC,IAAIC,KAAK;EACT,IAAMC,MAAM,GAAG,CAAC,CAAC;EACjB,OAAQD,KAAK,GAAGD,KAAK,CAACG,IAAI,CAACJ,CAAC,CAAC,EAAG;IAC9BG,MAAM,CAACD,KAAK,CAAC,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,CAACG,IAAI,CAAC,CAAC;EACpC;EACA,OAAOF,MAAM;AACf,CAAC;AAEM,IAAMG,eAAe,GAAAP,OAAA,CAAAO,eAAA,GAAG,SAAlBA,eAAeA,CAAIzC,CAAC;EAAA,OAAK,IAAA0C,eAAa,EAAC1C,CAAC,EAAE;IAAE2C,QAAQ,EAAE,IAAI;IAAEC,QAAQ,EAAE;EAAM,CAAC,CAAC;AAAA;AAE3F,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIvB,EAAE,EAAEwB,SAAS,EAAK;EACtC,IAAMC,WAAW,GAAGzB,EAAE,CAAC0B,YAAY,CAACF,SAAS,CAAC;EAE9C,OAAOL,eAAe,CAACR,gBAAgB,CAACc,WAAW,CAAC,CAAC;AACvD,CAAC;AAED,IAAME,WAAW,GAAG,SAAdA,WAAWA,CAAI3B,EAAE,EAAE4B,GAAG,EAAEJ,SAAS,EAAK;EAC1C,IAAMK,UAAU,GAAG7B,EAAE,CAAC0B,YAAY,CAACF,SAAS,CAAC;EAE7C,OAAOI,GAAG,SAAM;EAEhB,OAAOC,UAAU;AACnB,CAAC;AAED,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAI9B,EAAE;EAAA,OAAK,UAAC4B,GAAG,EAAEJ,SAAS,EAAK;IAClD,IAAI,CAACxB,EAAE,CAAC0B,YAAY,EAAE;MACpB,OAAOE,GAAG;IACZ;IAEA,IAAMrB,KAAK,GAAGP,EAAE,CAAC0B,YAAY,CAACF,SAAS,CAAC;IAExC,IAAIjB,KAAK,EAAE;MACT,QAAQiB,SAAS;QACf,KAAK,OAAO;UACVI,GAAG,CAACG,KAAK,GAAGR,YAAY,CAACvB,EAAE,EAAEwB,SAAS,CAAC;UACvC;QACF,KAAK,OAAO;UACVI,GAAG,CAACI,SAAS,GAAGL,WAAW,CAAC3B,EAAE,EAAE4B,GAAG,EAAEJ,SAAS,CAAC;UAC/C;QACF;UACEI,GAAG,CAACJ,SAAS,CAAC,GAAGxB,EAAE,CAAC0B,YAAY,CAACF,SAAS,CAAC;UAC3C;MACJ;IACF;IAEA,OAAOI,GAAG;EACZ,CAAC;AAAA;AAED,IAAM3B,UAAU,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;;AAE/C;AACA;AACA;AACA;AACA;;AAEO,IAAMgC,SAAS,GAAArB,OAAA,CAAAqB,SAAA,GAAG;EACvBC,CAAC,EAAE,MAAM;EACTC,EAAE,EAAE,QAAQ;EACZC,CAAC,EAAE,WAAW;EACdvB,CAAC,EAAE,eAAe;EAClBwB,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE;AACV,CAAC;;AAED;AACA;AACA;AACA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,IAAI,EAAiB;EAAA,IAAfC,KAAK,GAAAxD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAiB,SAAA,GAAAjB,SAAA,MAAG,EAAE;EACnC;EACA,IAAIuD,IAAI,CAACE,QAAQ,KAAK7C,YAAY,EAAE;IAClC,OAAO,IAAI;EACb;;EAEA;EACA,IAAI2C,IAAI,CAACE,QAAQ,KAAK9C,SAAS,EAAE;IAC/B,IAAM+C,IAAI,GAAGH,IAAI,CAACI,WAAW;IAC7B,IAAMC,IAAI,GAAG;MAAEF,IAAI,EAAJA;IAAK,CAAC;IAErB,IAAIF,KAAK,CAACvD,MAAM,GAAG,CAAC,EAAE;MACpB2D,IAAI,CAACJ,KAAK,GAAGA,KAAK,CAACK,GAAG,CAAC,UAACC,CAAC;QAAA,OAAM;UAAEtC,IAAI,EAAEsC,CAAC;UAAEC,IAAI,EAAE9C;QAAU,CAAC;MAAA,CAAC,CAAC;IAC/D;IAEA,OAAO;MACL+C,MAAM,EAAE,MAAM;MACdC,MAAM,EAAE,CAACL,IAAI;IACf,CAAC;EACH;;EAEA;EACA,IAAIL,IAAI,CAACE,QAAQ,KAAK5C,YAAY,EAAE;IAClC,IAAMW,IAAI,GAAG+B,IAAI,CAACW,OAAO,CAACC,WAAW,CAAC,CAAC;;IAEvC;IACA,IAAMC,QAAQ,GAAGpB,SAAS,CAACxB,IAAI,CAAC;IAChC,IAAI4C,QAAQ,EAAE;MACZ7D,GAAG,CAAC,sBAAsB,EAAE6D,QAAQ,CAAC;MACrC;MACA,IAAMC,WAAU,GAAGC,YAAY,CAACf,IAAI,CAACc,UAAU,KAAAE,MAAA,KAAAC,mBAAA,aAAMhB,KAAK,IAAEY,QAAQ,EAAC,CAAC;MACtE;MACA,OAAO;QAAEK,QAAQ,EAAE,IAAI;QAAEC,KAAK,EAAEL;MAAW,CAAC;IAC9C;;IAEA;IACA,IAAI7C,IAAI,KAAK,MAAM,EAAE;MACnB,OAAO;QACLmD,MAAM,EAAE,IAAI;QACZD,KAAK,EAAE,CAACnB,IAAI;MACd,CAAC;IACH;;IAEA;IACA,IAAMqB,WAAW,GAAG9D,IAAI,CAACyC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpC,IAAI/B,IAAI,KAAK,OAAO,IAAIoD,WAAW,CAACC,QAAQ,KAAK,EAAE,EAAE;MACnDD,WAAW,CAACC,QAAQ,GAAG,IAAI;IAC7B;IAEA,IAAMC,QAAQ,GAAG9D,UAAU,CAAC+D,MAAM,CAAClC,eAAe,CAACU,IAAI,CAAC,EAAAxD,aAAA,KAAO6E,WAAW,CAAE,CAAC;IAC7E,IAAMZ,MAAM,GAAGzC,SAAS,CAACC,IAAI,CAAC;IAE9B,IAAM6C,UAAU,GAAGC,YAAY,CAACf,IAAI,CAACc,UAAU,EAAEb,KAAK,CAAC;IAEvD,OAAO;MACLQ,MAAM,EAANA,MAAM;MACNxC,IAAI,EAAJA,IAAI;MACJuC,IAAI,EAAE;QAAEiB,OAAO,EAAAjF,aAAA,KAAOwD,IAAI,CAACyB,OAAO,CAAE;QAAEhE,UAAU,EAAAjB,aAAA,KAAO+E,QAAQ;MAAG,CAAC;MACnEJ,KAAK,EAAEL;IACT,CAAC;EACH;EAEA,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIW,QAAQ,EAAiB;EAAA,IAAfzB,KAAK,GAAAxD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAiB,SAAA,GAAAjB,SAAA,MAAG,EAAE;EACxC,IAAM0E,KAAK,GAAG,EAAE;EAChB,KAAK,IAAIvD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8D,QAAQ,CAAChF,MAAM,EAAEkB,CAAC,EAAE,EAAE;IACxC,IAAMY,MAAM,GAAGuB,WAAW,CAAC2B,QAAQ,CAAC9D,CAAC,CAAC,EAAEqC,KAAK,CAAC;IAC9C,IAAIzB,MAAM,KAAK,IAAI,EAAE;MACnB;MACA,IAAIA,MAAM,CAAC0C,QAAQ,IAAI1C,MAAM,CAAC2C,KAAK,EAAE;QACnCA,KAAK,CAAC7E,IAAI,CAAAC,KAAA,CAAV4E,KAAK,MAAAF,mBAAA,aAASzC,MAAM,CAAC2C,KAAK,EAAC;MAC7B,CAAC,MAAM;QACLA,KAAK,CAAC7E,IAAI,CAACkC,MAAM,CAAC;MACpB;IACF;EACF;EACA,OAAO2C,KAAK;AACd,CAAC;;AAED;AACA;AACA;AACO,IAAMQ,WAAW,GAAAvD,OAAA,CAAAuD,WAAA,GAAG,SAAdA,WAAWA,CAAIC,UAAU,EAAK;EACzC;EACA,IAAI,CAACA,UAAU,IAAI,CAACA,UAAU,CAAClD,IAAI,CAAC,CAAC,EAAE;IACrC,OAAO;MACL+B,MAAM,EAAE,OAAO;MACfoB,QAAQ,EAAE;QACRpB,MAAM,EAAE,UAAU;QAClBD,IAAI,EAAE,CAAC,CAAC;QACRW,KAAK,EAAE,CACL;UACEV,MAAM,EAAE,OAAO;UACfxC,IAAI,EAAE,MAAM;UACZuC,IAAI,EAAE,CAAC,CAAC;UACRsB,MAAM,EAAE,KAAK;UACbX,KAAK,EAAE;QACT,CAAC;MAEL;IACF,CAAC;EACH;;EAEA;EACA,IAAMY,MAAM,GAAG,IAAIC,SAAS,CAAC,CAAC;EAC9B,IAAMC,GAAG,GAAGF,MAAM,CAACG,eAAe,CAACN,UAAU,EAAE,WAAW,CAAC;;EAE3D;EACA,IAAIT,KAAK,GAAGJ,YAAY,CAACkB,GAAG,CAACE,IAAI,CAACrB,UAAU,CAAC;;EAE7C;EACA,IAAMsB,gBAAgB,GAAGjB,KAAK,CAACkB,IAAI,CAAC,UAACrC,IAAI;IAAA,OAAKA,IAAI,CAACS,MAAM,KAAK,OAAO,IAAIT,IAAI,CAACS,MAAM,KAAK,QAAQ;EAAA,EAAC;EAElG,IAAI,CAAC2B,gBAAgB,IAAIjB,KAAK,CAACzE,MAAM,GAAG,CAAC,EAAE;IACzCyE,KAAK,GAAG,CACN;MACEV,MAAM,EAAE,OAAO;MACfxC,IAAI,EAAE,MAAM;MACZuC,IAAI,EAAE,CAAC,CAAC;MACRsB,MAAM,EAAE,KAAK;MACbX,KAAK,EAAEA;IACT,CAAC,CACF;EACH;;EAEA;EACA,IAAIA,KAAK,CAACzE,MAAM,KAAK,CAAC,EAAE;IACtByE,KAAK,GAAG,CACN;MACEV,MAAM,EAAE,OAAO;MACfxC,IAAI,EAAE,MAAM;MACZuC,IAAI,EAAE,CAAC,CAAC;MACRsB,MAAM,EAAE,KAAK;MACbX,KAAK,EAAE;IACT,CAAC,CACF;EACH;EAEA,OAAO;IACLV,MAAM,EAAE,OAAO;IACfoB,QAAQ,EAAE;MACRpB,MAAM,EAAE,UAAU;MAClBD,IAAI,EAAE,CAAC,CAAC;MACRW,KAAK,EAALA;IACF;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|