@pie-element/placement-ordering 12.3.4-next.0 → 13.0.0-beta.0
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/configure/lib/choice-editor.js +189 -414
- package/configure/lib/choice-editor.js.map +1 -1
- package/configure/lib/choice-tile.js +172 -263
- package/configure/lib/choice-tile.js.map +1 -1
- package/configure/lib/defaults.js +2 -4
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/design.js +389 -455
- package/configure/lib/design.js.map +1 -1
- package/configure/lib/help.js +5 -13
- package/configure/lib/help.js.map +1 -1
- package/configure/lib/index.js +118 -193
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/utils.js +99 -4
- package/configure/lib/utils.js.map +1 -1
- package/configure/package.json +12 -10
- package/controller/lib/defaults.js +2 -3
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +133 -218
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/scoring.js +35 -78
- package/controller/lib/scoring.js.map +1 -1
- package/controller/package.json +4 -4
- package/lib/index.js +63 -127
- package/lib/index.js.map +1 -1
- package/lib/main.js +20 -57
- package/lib/main.js.map +1 -1
- package/lib/ordering.js +52 -98
- package/lib/ordering.js.map +1 -1
- package/lib/placement-ordering.js +331 -381
- package/lib/placement-ordering.js.map +1 -1
- package/lib/tile.js +193 -267
- package/lib/tile.js.map +1 -1
- package/lib/tiler.js +126 -204
- package/lib/tiler.js.map +1 -1
- package/lib/utils.js +6 -18
- package/lib/utils.js.map +1 -1
- package/package.json +14 -11
package/lib/tile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tile.jsx"],"names":["log","Holder","theme","number","width","fontSize","typography","textAlign","color","palette","common","black","classes","type","index","isOver","disabled","undefined","propTypes","PropTypes","string","bool","TileContent","over","opacity","tileContent","cursor","height","padding","boxSizing","overflow","border","grey","backgroundColor","background","transition","pointerEvents","secondary","dragging","secondaryLight","incorrect","correct","emptyTile","props","isDragging","empty","label","outcome","guideIndex","names","__html","Tile","e","preventDefault","ref","addEventListener","handleTouchStart","passive","removeEventListener","connectDragSource","connectDropTarget","id","name","title","dragSourceOpts","React","Component","func","isRequired","any","object","StyledTile","margin","tileTarget","drop","monitor","draggedItem","getItem","instanceId","onDropChoice","canDrop","DropTile","connect","dropTarget","tileSource","canDrag","draggable","beginDrag","value","endDrag","didDrop","onRemoveChoice","DragDropTile","dragSource"],"mappings":"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","sourcesContent":["import { DragSource, DropTarget } from 'react-dnd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\nimport { PlaceHolder } from '@pie-lib/drag';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('pie-elements:placement-ordering:tile');\n\nconst Holder = withStyles((theme) => ({\n number: {\n width: '100%',\n fontSize: theme.typography.fontSize + 4,\n textAlign: 'center',\n color: `rgba(${theme.palette.common.black}, 0.6)`,\n },\n}))(({ classes, type, index, isOver, disabled }) => (\n <PlaceHolder type={type} isOver={isOver} disabled={disabled}>\n {type === 'target' && index !== undefined && <div className={classes.number}>{index}</div>}\n </PlaceHolder>\n));\n\nHolder.propTypes = {\n type: PropTypes.string,\n index: PropTypes.number,\n isOver: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nconst TileContent = withStyles((theme) => ({\n over: {\n opacity: 0.2,\n },\n tileContent: {\n cursor: 'pointer',\n width: '100%',\n height: '100%',\n padding: '10px',\n boxSizing: 'border-box',\n overflow: 'hidden',\n border: `1px solid ${theme.palette.grey[400]}`,\n backgroundColor: color.background(),\n transition: 'opacity 200ms linear',\n pointerEvents: 'none',\n '&:hover': {\n backgroundColor: color.secondary(),\n },\n },\n dragging: {\n backgroundColor: color.secondaryLight(),\n opacity: 0.5,\n },\n disabled: {\n cursor: 'not-allowed',\n '&:hover': {\n backgroundColor: color.background(),\n },\n },\n incorrect: {\n border: `1px solid ${color.incorrect()}`,\n },\n correct: {\n border: `1px solid ${color.correct()}`,\n },\n emptyTile: {\n border: 'none',\n '&:hover': {\n backgroundColor: 'unset',\n },\n },\n}))((props) => {\n const { type, classes, isDragging, empty, isOver, label, disabled, outcome, guideIndex } = props;\n\n if (empty) {\n return <Holder type={type} index={guideIndex} isOver={isOver} disabled={disabled} />;\n } else {\n const names = classNames(\n classes.tileContent,\n !label ? classes.emptyTile : null,\n isDragging && !disabled && classes.dragging,\n isOver && !disabled && classes.over,\n disabled && classes.disabled,\n outcome && classes[outcome],\n );\n return <div className={names} dangerouslySetInnerHTML={{ __html: label }} />;\n }\n});\n\nexport class Tile extends React.Component {\n static propTypes = {\n connectDragSource: PropTypes.func.isRequired,\n connectDropTarget: PropTypes.func.isRequired,\n isDragging: PropTypes.bool.isRequired,\n id: PropTypes.any,\n label: PropTypes.string,\n isOver: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n type: PropTypes.string,\n empty: PropTypes.bool,\n disabled: PropTypes.bool,\n outcome: PropTypes.string,\n index: PropTypes.number,\n guideIndex: PropTypes.number,\n };\n\n componentDidMount() {\n if (this.ref) {\n this.ref.addEventListener('touchstart', this.handleTouchStart, { passive: false });\n }\n }\n\n componentWillUnmount() {\n if (this.ref) {\n this.ref.removeEventListener('touchstart', this.handleTouchStart);\n }\n }\n\n handleTouchStart = (e) => {\n e.preventDefault(); // Prevent the default touch event behavior\n };\n\n render() {\n const {\n label,\n isDragging,\n connectDragSource,\n connectDropTarget,\n classes,\n isOver,\n type,\n id,\n empty,\n disabled,\n outcome,\n index,\n guideIndex,\n } = this.props;\n\n log('[render], props: ', this.props);\n\n const name = classNames(classes.title);\n\n const dragSourceOpts = {\n //dropEffect: moveOnDrag ? 'move' : 'copy'\n };\n\n return connectDragSource(\n connectDropTarget(\n <div className={name} ref={(ref) => (this.ref = ref)}>\n <TileContent\n label={label}\n id={id}\n empty={empty}\n index={index}\n guideIndex={guideIndex}\n isOver={isOver}\n isDragging={isDragging}\n disabled={disabled}\n outcome={outcome}\n type={type}\n />\n </div>,\n ),\n dragSourceOpts,\n );\n }\n}\n\nconst StyledTile = withStyles({\n title: {\n boxSizing: 'border-box',\n overflow: 'hidden',\n margin: '0px',\n padding: '0px',\n textAlign: 'center',\n },\n})(Tile);\n\nconst tileTarget = {\n drop(props, monitor) {\n const draggedItem = monitor.getItem();\n log('props.instanceId', props.instanceId, 'draggedItem.instanceId:', draggedItem.instanceId);\n if (draggedItem.instanceId === props.instanceId) {\n props.onDropChoice(draggedItem, props.index);\n }\n },\n canDrop(props, monitor) {\n const draggedItem = monitor.getItem();\n const canDrop = draggedItem.instanceId === props.instanceId;\n return canDrop;\n },\n};\n\nconst DropTile = DropTarget('Tile', tileTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n}))(StyledTile);\n\nconst tileSource = {\n canDrag(props) {\n return props.draggable && !props.disabled;\n },\n beginDrag(props) {\n return {\n id: props.id,\n type: props.type,\n instanceId: props.instanceId,\n value: props.label,\n };\n },\n endDrag(props, monitor) {\n if (!monitor.didDrop()) {\n if (props.type === 'target') {\n props.onRemoveChoice(monitor.getItem());\n }\n }\n },\n};\n\nconst DragDropTile = DragSource('Tile', tileSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n}))(DropTile);\n\nexport default DragDropTile;\n"],"file":"tile.js"}
|
|
1
|
+
{"version":3,"file":"tile.js","names":["_react","_interopRequireDefault","require","_propTypes","_debug","_core","_styles","_drag","_renderUi","log","debug","StyledNumberContainer","styled","theme","width","fontSize","typography","textAlign","color","palette","common","black","Holder","type","index","isOver","disabled","default","createElement","PlaceHolder","undefined","propTypes","PropTypes","string","number","bool","StyledTileContent","isDragging","outcome","label","cursor","height","padding","boxSizing","overflow","border","grey","backgroundColor","background","transition","pointerEvents","secondary","opacity","secondaryLight","incorrect","correct","TileContent","props","empty","guideIndex","dangerouslySetInnerHTML","__html","Tile","id","instanceId","draggable","attributes","listeners","setNodeRef","setDragRef","transform","useDraggable","data","value","setDropRef","dropIsOver","useDroppable","ref","React","useRef","useEffect","currentRef","current","handleTouchStart","e","preventDefault","addEventListener","passive","removeEventListener","setRefs","element","style","x","y","margin","_extends2","exports","any","_default"],"sources":["../src/tile.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { styled } from '@mui/material/styles';\n\nimport { PlaceHolder } from '@pie-lib/drag';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('pie-elements:placement-ordering:tile');\n\nconst StyledNumberContainer = styled('div')(({ theme }) => ({\n width: '100%',\n fontSize: theme.typography.fontSize + 4,\n textAlign: 'center',\n color: `rgba(${theme.palette.common.black}, 0.6)`,\n}));\n\nconst Holder = ({ type, index, isOver, disabled }) => (\n <PlaceHolder type={type} isOver={isOver} disabled={disabled}>\n {type === 'target' && index !== undefined && <StyledNumberContainer>{index}</StyledNumberContainer>}\n </PlaceHolder>\n);\n\nHolder.propTypes = {\n type: PropTypes.string,\n index: PropTypes.number,\n isOver: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nconst StyledTileContent = styled('div')(({ theme, isDragging, isOver, disabled, outcome, label }) => ({\n cursor: 'pointer',\n width: '100%',\n height: '100%',\n padding: '10px',\n boxSizing: 'border-box',\n overflow: 'hidden',\n border: `1px solid ${theme.palette.grey[400]}`,\n backgroundColor: color.background(),\n transition: 'opacity 200ms linear',\n pointerEvents: 'none',\n '&:hover': {\n backgroundColor: color.secondary(),\n },\n\n // Apply conditional styles based on props\n ...(isOver && !disabled && {\n opacity: 0.2,\n }),\n\n ...(isDragging && !disabled && {\n opacity: 0.5,\n backgroundColor: color.secondaryLight(),\n }),\n\n ...(disabled && {\n cursor: 'not-allowed',\n '&:hover': {\n backgroundColor: color.background(),\n },\n }),\n\n ...(outcome === 'incorrect' && {\n border: `1px solid ${color.incorrect()}`,\n }),\n\n ...(outcome === 'correct' && {\n border: `1px solid ${color.correct()}`,\n }),\n\n ...(!label && {\n border: 'none',\n '&:hover': {\n backgroundColor: 'unset',\n },\n }),\n}));\n\nconst TileContent = (props) => {\n const { type, isDragging, empty, isOver, label, disabled, outcome, guideIndex } = props;\n\n if (empty) {\n return <Holder type={type} index={guideIndex} isOver={isOver} disabled={disabled} />;\n } else {\n return (\n <StyledTileContent\n isDragging={isDragging}\n isOver={isOver}\n disabled={disabled}\n outcome={outcome}\n label={label}\n dangerouslySetInnerHTML={{ __html: label }}\n />\n );\n }\n};\n\nexport const Tile = (props) => {\n const {\n label,\n type,\n id,\n empty,\n disabled,\n outcome,\n index,\n guideIndex,\n instanceId,\n draggable,\n } = props;\n\n const {\n attributes,\n listeners,\n setNodeRef: setDragRef,\n transform,\n isDragging,\n } = useDraggable({\n id: `tile-${id}-${instanceId}`,\n data: {\n id,\n type,\n instanceId,\n value: label,\n index\n },\n disabled: !draggable || disabled,\n });\n\n const {\n setNodeRef: setDropRef,\n isOver: dropIsOver,\n } = useDroppable({\n id: `drop-tile-${id ? id : index}-${instanceId}`,\n data: {\n id,\n type,\n instanceId,\n value: label,\n index\n },\n });\n\n const ref = React.useRef(null);\n\n React.useEffect(() => {\n const currentRef = ref.current;\n\n const handleTouchStart = (e) => {\n e.preventDefault(); // Prevent the default touch event behavior\n };\n\n if (currentRef) {\n currentRef.addEventListener('touchstart', handleTouchStart, { passive: false });\n }\n\n return () => {\n if (currentRef) {\n currentRef.removeEventListener('touchstart', handleTouchStart);\n }\n };\n }, []);\n\n const setRefs = (element) => {\n ref.current = element;\n setDragRef(element);\n setDropRef(element);\n };\n\n log('[render], props: ', props);\n\n const style = {\n transform: transform ? `translate3d(${transform.x}px, ${transform.y}px, 0)` : undefined,\n boxSizing: 'border-box',\n overflow: 'hidden',\n padding: 0,\n margin: 0,\n textAlign: 'center',\n };\n\n return (\n <div\n ref={setRefs}\n style={style}\n {...(draggable && !disabled ? { ...listeners, ...attributes } : {})}\n >\n <TileContent\n label={label}\n id={id}\n empty={empty}\n index={index}\n guideIndex={guideIndex}\n isOver={dropIsOver}\n isDragging={isDragging}\n disabled={disabled}\n outcome={outcome}\n type={type}\n />\n </div>\n );\n};\n\nTile.propTypes = {\n id: PropTypes.any,\n label: PropTypes.string,\n isOver: PropTypes.bool,\n type: PropTypes.string,\n empty: PropTypes.bool,\n disabled: PropTypes.bool,\n outcome: PropTypes.string,\n index: PropTypes.number,\n guideIndex: PropTypes.number,\n instanceId: PropTypes.any,\n draggable: PropTypes.bool,\n};\n\nexport default Tile;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/tiler.js
CHANGED
|
@@ -1,241 +1,163 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.VerticalTiler = exports.HorizontalTiler = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
|
|
16
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
-
|
|
18
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
-
|
|
20
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
-
|
|
22
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
23
|
-
|
|
24
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
-
|
|
26
11
|
var _react = _interopRequireDefault(require("react"));
|
|
27
|
-
|
|
12
|
+
var _styles = require("@mui/material/styles");
|
|
28
13
|
var _tile = _interopRequireDefault(require("./tile"));
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
37
|
-
|
|
38
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
39
|
-
|
|
40
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
41
|
-
|
|
42
|
-
var common = {
|
|
43
|
-
tiler: {
|
|
44
|
-
display: 'grid'
|
|
45
|
-
},
|
|
46
|
-
withGap: {
|
|
47
|
-
gridGap: '10px'
|
|
48
|
-
}
|
|
14
|
+
const types = {
|
|
15
|
+
choiceLabel: _propTypes.default.string,
|
|
16
|
+
targetLabel: _propTypes.default.string,
|
|
17
|
+
disabled: _propTypes.default.bool,
|
|
18
|
+
tiles: _propTypes.default.array.isRequired,
|
|
19
|
+
tileSize: _propTypes.default.string,
|
|
20
|
+
addGuide: _propTypes.default.bool
|
|
49
21
|
};
|
|
50
|
-
|
|
51
|
-
choiceLabel: _propTypes["default"].string,
|
|
52
|
-
targetLabel: _propTypes["default"].string,
|
|
53
|
-
disabled: _propTypes["default"].bool,
|
|
54
|
-
onDropChoice: _propTypes["default"].func.isRequired,
|
|
55
|
-
tiles: _propTypes["default"].array.isRequired,
|
|
56
|
-
tileSize: _propTypes["default"].string,
|
|
57
|
-
addGuide: _propTypes["default"].bool
|
|
58
|
-
};
|
|
59
|
-
var defaults = {
|
|
22
|
+
const defaults = {
|
|
60
23
|
tileSize: '1fr',
|
|
61
24
|
disabled: false,
|
|
62
25
|
addGuide: false
|
|
63
26
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
var T = function T(tile, index) {
|
|
67
|
-
tile.onDropChoice = function (source, index) {
|
|
68
|
-
return props.onDropChoice(tile, source, index);
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
tile.onRemoveChoice = function () {
|
|
72
|
-
return props.onRemoveChoice(tile);
|
|
73
|
-
};
|
|
74
|
-
|
|
27
|
+
const buildTiles = props => {
|
|
28
|
+
const T = (tile, index) => {
|
|
75
29
|
tile.instanceId = props.instanceId;
|
|
76
30
|
tile.disabled = props.disabled;
|
|
77
31
|
tile.guideIndex = props.addGuide ? tile.index + 1 : undefined;
|
|
78
|
-
|
|
79
32
|
if (props.includeTargets) {
|
|
80
|
-
return /*#__PURE__*/_react
|
|
33
|
+
return /*#__PURE__*/_react.default.createElement(_tile.default, (0, _extends2.default)({}, tile, {
|
|
81
34
|
key: index
|
|
82
35
|
}));
|
|
83
36
|
} else {
|
|
84
|
-
return tile.type === 'choice' ? /*#__PURE__*/_react
|
|
37
|
+
return tile.type === 'choice' ? /*#__PURE__*/_react.default.createElement(_tile.default, (0, _extends2.default)({}, tile, {
|
|
85
38
|
key: index
|
|
86
|
-
})) : /*#__PURE__*/_react
|
|
39
|
+
})) : /*#__PURE__*/_react.default.createElement(_tile.default, (0, _extends2.default)({}, tile, {
|
|
87
40
|
label: "",
|
|
88
41
|
key: index
|
|
89
42
|
}));
|
|
90
43
|
}
|
|
91
44
|
};
|
|
92
|
-
|
|
93
|
-
|
|
45
|
+
T.propTypes = {
|
|
46
|
+
...types
|
|
47
|
+
};
|
|
94
48
|
return T;
|
|
95
49
|
};
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
50
|
+
const StyledHTilerContainer = (0, _styles.styled)('div')(({
|
|
51
|
+
theme,
|
|
52
|
+
includeTargets
|
|
53
|
+
}) => ({
|
|
54
|
+
display: 'grid',
|
|
55
|
+
paddingBottom: theme.spacing(2),
|
|
56
|
+
...(includeTargets && {
|
|
57
|
+
gridGap: '10px'
|
|
58
|
+
})
|
|
59
|
+
}));
|
|
60
|
+
const StyledChoiceLabel = (0, _styles.styled)('div')({
|
|
61
|
+
textAlign: 'center'
|
|
62
|
+
});
|
|
63
|
+
const StyledTargetLabel = (0, _styles.styled)('div')({
|
|
64
|
+
textAlign: 'center',
|
|
65
|
+
gridRow: '3/4'
|
|
66
|
+
});
|
|
67
|
+
const StyledVTilerContainer = (0, _styles.styled)('div')(({
|
|
68
|
+
includeTargets
|
|
69
|
+
}) => ({
|
|
70
|
+
gridAutoFlow: 'column',
|
|
71
|
+
display: 'grid',
|
|
72
|
+
...(includeTargets && {
|
|
73
|
+
gridGap: '10px'
|
|
74
|
+
})
|
|
75
|
+
}));
|
|
76
|
+
const StyledVChoiceLabel = (0, _styles.styled)('div')({
|
|
77
|
+
gridColumn: '1/2',
|
|
78
|
+
textAlign: 'center'
|
|
79
|
+
});
|
|
80
|
+
const StyledVTargetLabel = (0, _styles.styled)('div')({
|
|
81
|
+
gridColumn: '2/3',
|
|
82
|
+
textAlign: 'center'
|
|
83
|
+
});
|
|
84
|
+
class HorizontalTiler extends _react.default.Component {
|
|
85
|
+
render() {
|
|
86
|
+
const {
|
|
87
|
+
includeTargets,
|
|
88
|
+
choiceLabelEnabled,
|
|
89
|
+
choiceLabel,
|
|
90
|
+
targetLabel,
|
|
91
|
+
tiles,
|
|
92
|
+
tileSize
|
|
93
|
+
} = this.props;
|
|
94
|
+
const rows = includeTargets ? `auto ${tileSize} auto ${tileSize}` : `auto ${tileSize} auto`;
|
|
95
|
+
const columns = includeTargets ? tiles.length / 2 : tiles.length;
|
|
96
|
+
const style = {
|
|
97
|
+
gridTemplateColumns: includeTargets ? `repeat(${columns}, ${tileSize})` : `auto repeat(${Math.floor(columns / 2) - 1}, ${tileSize} 10px) ${tileSize} auto`,
|
|
98
|
+
gridTemplateRows: rows
|
|
99
|
+
};
|
|
100
|
+
const labelStyle = {
|
|
101
|
+
gridColumn: `1/${columns + 1}`
|
|
102
|
+
};
|
|
103
|
+
return /*#__PURE__*/_react.default.createElement(StyledHTilerContainer, {
|
|
104
|
+
includeTargets: includeTargets,
|
|
105
|
+
style: style
|
|
106
|
+
}, /*#__PURE__*/_react.default.createElement(StyledChoiceLabel, {
|
|
107
|
+
style: labelStyle,
|
|
108
|
+
dangerouslySetInnerHTML: {
|
|
109
|
+
__html: choiceLabelEnabled ? choiceLabel : ''
|
|
110
|
+
}
|
|
111
|
+
}), includeTargets && /*#__PURE__*/_react.default.createElement(StyledTargetLabel, {
|
|
112
|
+
style: labelStyle,
|
|
113
|
+
dangerouslySetInnerHTML: {
|
|
114
|
+
__html: targetLabel
|
|
115
|
+
}
|
|
116
|
+
}), tiles.map(buildTiles(this.props)));
|
|
105
117
|
}
|
|
106
|
-
|
|
107
|
-
(0, _createClass2["default"])(HTiler, [{
|
|
108
|
-
key: "render",
|
|
109
|
-
value: function render() {
|
|
110
|
-
var _this$props = this.props,
|
|
111
|
-
includeTargets = _this$props.includeTargets,
|
|
112
|
-
choiceLabelEnabled = _this$props.choiceLabelEnabled,
|
|
113
|
-
choiceLabel = _this$props.choiceLabel,
|
|
114
|
-
targetLabel = _this$props.targetLabel,
|
|
115
|
-
tiles = _this$props.tiles,
|
|
116
|
-
classes = _this$props.classes,
|
|
117
|
-
tileSize = _this$props.tileSize;
|
|
118
|
-
var rows = includeTargets ? "auto ".concat(tileSize, " auto ").concat(tileSize) : "auto ".concat(tileSize, " auto");
|
|
119
|
-
var columns = includeTargets ? tiles.length / 2 : tiles.length;
|
|
120
|
-
var style = {
|
|
121
|
-
gridTemplateColumns: includeTargets ? "repeat(".concat(columns, ", ").concat(tileSize, ")") : "auto repeat(".concat(Math.floor(columns / 2) - 1, ", ").concat(tileSize, " 10px) ").concat(tileSize, " auto"),
|
|
122
|
-
gridTemplateRows: rows
|
|
123
|
-
};
|
|
124
|
-
var labelStyle = {
|
|
125
|
-
gridColumn: "1/".concat(columns + 1)
|
|
126
|
-
};
|
|
127
|
-
var names = (0, _classnames["default"])(classes.htiler, includeTargets ? classes.withGap : null);
|
|
128
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
129
|
-
className: names,
|
|
130
|
-
style: style
|
|
131
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
132
|
-
className: classes.choiceLabel,
|
|
133
|
-
style: labelStyle,
|
|
134
|
-
dangerouslySetInnerHTML: {
|
|
135
|
-
__html: choiceLabelEnabled ? choiceLabel : ''
|
|
136
|
-
}
|
|
137
|
-
}), includeTargets && /*#__PURE__*/_react["default"].createElement("div", {
|
|
138
|
-
className: classes.targetLabel,
|
|
139
|
-
style: labelStyle,
|
|
140
|
-
dangerouslySetInnerHTML: {
|
|
141
|
-
__html: targetLabel
|
|
142
|
-
}
|
|
143
|
-
}), tiles.map(buildTiles(this.props)));
|
|
144
|
-
}
|
|
145
|
-
}]);
|
|
146
|
-
return HTiler;
|
|
147
|
-
}(_react["default"].Component);
|
|
148
|
-
|
|
149
|
-
(0, _defineProperty2["default"])(HTiler, "propTypes", _objectSpread({}, types));
|
|
150
|
-
(0, _defineProperty2["default"])(HTiler, "defaultProps", _objectSpread({}, defaults));
|
|
151
|
-
|
|
152
|
-
var horizontalStyles = function horizontalStyles(theme) {
|
|
153
|
-
return {
|
|
154
|
-
htiler: _objectSpread(_objectSpread({}, common.tiler), {}, {
|
|
155
|
-
paddingBottom: theme.spacing.unit * 2
|
|
156
|
-
}),
|
|
157
|
-
paddingBottom: theme.spacing.unit * 4,
|
|
158
|
-
choiceLabel: {
|
|
159
|
-
textAlign: 'center'
|
|
160
|
-
},
|
|
161
|
-
targetLabel: {
|
|
162
|
-
textAlign: 'center',
|
|
163
|
-
gridRow: '3/4'
|
|
164
|
-
},
|
|
165
|
-
withGap: {
|
|
166
|
-
gridGap: '10px'
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
var HorizontalTiler = (0, _styles.withStyles)(horizontalStyles)(HTiler);
|
|
118
|
+
}
|
|
172
119
|
exports.HorizontalTiler = HorizontalTiler;
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
dangerouslySetInnerHTML: {
|
|
208
|
-
__html: choiceLabelEnabled ? choiceLabel : ''
|
|
209
|
-
}
|
|
210
|
-
}), includeTargets && /*#__PURE__*/_react["default"].createElement("div", {
|
|
211
|
-
className: classes.targetLabel,
|
|
212
|
-
dangerouslySetInnerHTML: {
|
|
213
|
-
__html: targetLabel
|
|
214
|
-
}
|
|
215
|
-
}), tiles.map(buildTiles(this.props)));
|
|
216
|
-
}
|
|
217
|
-
}]);
|
|
218
|
-
return VTiler;
|
|
219
|
-
}(_react["default"].Component);
|
|
220
|
-
|
|
221
|
-
(0, _defineProperty2["default"])(VTiler, "propTypes", _objectSpread({}, types));
|
|
222
|
-
(0, _defineProperty2["default"])(VTiler, "defaultProps", _objectSpread({}, defaults));
|
|
223
|
-
var verticalStyles = {
|
|
224
|
-
vtiler: _objectSpread({
|
|
225
|
-
gridAutoFlow: 'column'
|
|
226
|
-
}, common.tiler),
|
|
227
|
-
choiceLabel: {
|
|
228
|
-
gridColumn: '1/2',
|
|
229
|
-
textAlign: 'center'
|
|
230
|
-
},
|
|
231
|
-
targetLabel: {
|
|
232
|
-
gridColumn: '2/3',
|
|
233
|
-
textAlign: 'center'
|
|
234
|
-
},
|
|
235
|
-
withGap: {
|
|
236
|
-
gridGap: '10px'
|
|
120
|
+
(0, _defineProperty2.default)(HorizontalTiler, "propTypes", {
|
|
121
|
+
...types
|
|
122
|
+
});
|
|
123
|
+
(0, _defineProperty2.default)(HorizontalTiler, "defaultProps", {
|
|
124
|
+
...defaults
|
|
125
|
+
});
|
|
126
|
+
class VerticalTiler extends _react.default.Component {
|
|
127
|
+
render() {
|
|
128
|
+
const {
|
|
129
|
+
includeTargets,
|
|
130
|
+
choiceLabelEnabled,
|
|
131
|
+
choiceLabel,
|
|
132
|
+
targetLabel,
|
|
133
|
+
tiles,
|
|
134
|
+
tileSize
|
|
135
|
+
} = this.props;
|
|
136
|
+
const columns = includeTargets ? 2 : 1;
|
|
137
|
+
const rows = includeTargets ? tiles.length / 2 : tiles.length;
|
|
138
|
+
const style = {
|
|
139
|
+
gridTemplateColumns: `repeat(${columns}, ${tileSize})`,
|
|
140
|
+
gridTemplateRows: includeTargets ? `auto repeat(${rows}, ${tileSize})` : `auto auto repeat(${Math.floor(rows / 2) - 1}, ${tileSize} 10px) ${tileSize} auto`
|
|
141
|
+
};
|
|
142
|
+
return /*#__PURE__*/_react.default.createElement(StyledVTilerContainer, {
|
|
143
|
+
includeTargets: includeTargets,
|
|
144
|
+
style: style
|
|
145
|
+
}, /*#__PURE__*/_react.default.createElement(StyledVChoiceLabel, {
|
|
146
|
+
dangerouslySetInnerHTML: {
|
|
147
|
+
__html: choiceLabelEnabled ? choiceLabel : ''
|
|
148
|
+
}
|
|
149
|
+
}), includeTargets && /*#__PURE__*/_react.default.createElement(StyledVTargetLabel, {
|
|
150
|
+
dangerouslySetInnerHTML: {
|
|
151
|
+
__html: targetLabel
|
|
152
|
+
}
|
|
153
|
+
}), tiles.map(buildTiles(this.props)));
|
|
237
154
|
}
|
|
238
|
-
}
|
|
239
|
-
var VerticalTiler = (0, _styles.withStyles)(verticalStyles)(VTiler);
|
|
155
|
+
}
|
|
240
156
|
exports.VerticalTiler = VerticalTiler;
|
|
157
|
+
(0, _defineProperty2.default)(VerticalTiler, "propTypes", {
|
|
158
|
+
...types
|
|
159
|
+
});
|
|
160
|
+
(0, _defineProperty2.default)(VerticalTiler, "defaultProps", {
|
|
161
|
+
...defaults
|
|
162
|
+
});
|
|
241
163
|
//# sourceMappingURL=tiler.js.map
|
package/lib/tiler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tiler.jsx"],"names":["common","tiler","display","withGap","gridGap","types","choiceLabel","PropTypes","string","targetLabel","disabled","bool","onDropChoice","func","isRequired","tiles","array","tileSize","addGuide","defaults","buildTiles","props","T","tile","index","source","onRemoveChoice","instanceId","guideIndex","undefined","includeTargets","type","propTypes","HTiler","choiceLabelEnabled","classes","rows","columns","length","style","gridTemplateColumns","Math","floor","gridTemplateRows","labelStyle","gridColumn","names","htiler","__html","map","React","Component","horizontalStyles","theme","paddingBottom","spacing","unit","textAlign","gridRow","HorizontalTiler","VTiler","vtiler","verticalStyles","gridAutoFlow","VerticalTiler"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport Tile from './tile';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nconst common = {\n tiler: {\n display: 'grid',\n },\n withGap: {\n gridGap: '10px',\n },\n};\n\nconst types = {\n choiceLabel: PropTypes.string,\n targetLabel: PropTypes.string,\n disabled: PropTypes.bool,\n onDropChoice: PropTypes.func.isRequired,\n tiles: PropTypes.array.isRequired,\n tileSize: PropTypes.string,\n addGuide: PropTypes.bool,\n};\n\nconst defaults = {\n tileSize: '1fr',\n disabled: false,\n addGuide: false,\n};\n\nconst buildTiles = (props) => {\n const T = (tile, index) => {\n tile.onDropChoice = (source, index) => props.onDropChoice(tile, source, index);\n tile.onRemoveChoice = () => props.onRemoveChoice(tile);\n tile.instanceId = props.instanceId;\n tile.disabled = props.disabled;\n tile.guideIndex = props.addGuide ? tile.index + 1 : undefined;\n\n if (props.includeTargets) {\n return <Tile {...tile} key={index} />;\n } else {\n return tile.type === 'choice' ? <Tile {...tile} key={index} /> : <Tile {...tile} label=\"\" key={index} />;\n }\n };\n\n T.propTypes = { ...types };\n return T;\n};\n\nclass HTiler extends React.Component {\n static propTypes = { ...types };\n static defaultProps = { ...defaults };\n render() {\n const { includeTargets, choiceLabelEnabled, choiceLabel, targetLabel, tiles, classes, tileSize } = this.props;\n\n const rows = includeTargets ? `auto ${tileSize} auto ${tileSize}` : `auto ${tileSize} auto`;\n const columns = includeTargets ? tiles.length / 2 : tiles.length;\n\n const style = {\n gridTemplateColumns: includeTargets\n ? `repeat(${columns}, ${tileSize})`\n : `auto repeat(${Math.floor(columns / 2) - 1}, ${tileSize} 10px) ${tileSize} auto`,\n gridTemplateRows: rows,\n };\n\n const labelStyle = {\n gridColumn: `1/${columns + 1}`,\n };\n\n const names = classNames(classes.htiler, includeTargets ? classes.withGap : null);\n\n return (\n <div className={names} style={style}>\n <div\n className={classes.choiceLabel}\n style={labelStyle}\n dangerouslySetInnerHTML={{ __html: choiceLabelEnabled ? choiceLabel : '' }}\n />\n\n {includeTargets && (\n <div className={classes.targetLabel} style={labelStyle} dangerouslySetInnerHTML={{ __html: targetLabel }} />\n )}\n {tiles.map(buildTiles(this.props))}\n </div>\n );\n }\n}\n\nconst horizontalStyles = (theme) => ({\n htiler: { ...common.tiler, paddingBottom: theme.spacing.unit * 2 },\n paddingBottom: theme.spacing.unit * 4,\n choiceLabel: {\n textAlign: 'center',\n },\n targetLabel: {\n textAlign: 'center',\n gridRow: '3/4',\n },\n withGap: {\n gridGap: '10px',\n },\n});\n\nexport const HorizontalTiler = withStyles(horizontalStyles)(HTiler);\n\nclass VTiler extends React.Component {\n static propTypes = { ...types };\n static defaultProps = { ...defaults };\n render() {\n const { includeTargets, choiceLabelEnabled, choiceLabel, targetLabel, tiles, classes, tileSize } = this.props;\n\n const columns = includeTargets ? 2 : 1;\n const rows = includeTargets ? tiles.length / 2 : tiles.length;\n\n const style = {\n gridTemplateColumns: `repeat(${columns}, ${tileSize})`,\n gridTemplateRows: includeTargets\n ? `auto repeat(${rows}, ${tileSize})`\n : `auto auto repeat(${Math.floor(rows / 2) - 1}, ${tileSize} 10px) ${tileSize} auto`,\n };\n\n const names = classNames(classes.vtiler, includeTargets ? classes.withGap : null);\n\n return (\n <div className={names} style={style}>\n <div\n className={classes.choiceLabel}\n dangerouslySetInnerHTML={{ __html: choiceLabelEnabled ? choiceLabel : '' }}\n />\n\n {includeTargets && <div className={classes.targetLabel} dangerouslySetInnerHTML={{ __html: targetLabel }} />}\n {tiles.map(buildTiles(this.props))}\n </div>\n );\n }\n}\n\nconst verticalStyles = {\n vtiler: { gridAutoFlow: 'column', ...common.tiler },\n choiceLabel: {\n gridColumn: '1/2',\n textAlign: 'center',\n },\n targetLabel: {\n gridColumn: '2/3',\n textAlign: 'center',\n },\n withGap: {\n gridGap: '10px',\n },\n};\n\nexport const VerticalTiler = withStyles(verticalStyles)(VTiler);\n"],"file":"tiler.js"}
|
|
1
|
+
{"version":3,"file":"tiler.js","names":["_propTypes","_interopRequireDefault","require","_react","_styles","_tile","types","choiceLabel","PropTypes","string","targetLabel","disabled","bool","tiles","array","isRequired","tileSize","addGuide","defaults","buildTiles","props","T","tile","index","instanceId","guideIndex","undefined","includeTargets","default","createElement","_extends2","key","type","label","propTypes","StyledHTilerContainer","styled","theme","display","paddingBottom","spacing","gridGap","StyledChoiceLabel","textAlign","StyledTargetLabel","gridRow","StyledVTilerContainer","gridAutoFlow","StyledVChoiceLabel","gridColumn","StyledVTargetLabel","HorizontalTiler","React","Component","render","choiceLabelEnabled","rows","columns","length","style","gridTemplateColumns","Math","floor","gridTemplateRows","labelStyle","dangerouslySetInnerHTML","__html","map","exports","_defineProperty2","VerticalTiler"],"sources":["../src/tiler.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport { styled } from '@mui/material/styles';\n\nimport Tile from './tile';\n\nconst types = {\n choiceLabel: PropTypes.string,\n targetLabel: PropTypes.string,\n disabled: PropTypes.bool,\n tiles: PropTypes.array.isRequired,\n tileSize: PropTypes.string,\n addGuide: PropTypes.bool,\n};\n\nconst defaults = {\n tileSize: '1fr',\n disabled: false,\n addGuide: false,\n};\n\nconst buildTiles = (props) => {\n const T = (tile, index) => {\n tile.instanceId = props.instanceId;\n tile.disabled = props.disabled;\n tile.guideIndex = props.addGuide ? tile.index + 1 : undefined;\n\n if (props.includeTargets) {\n return <Tile {...tile} key={index} />;\n } else {\n return tile.type === 'choice' ? <Tile {...tile} key={index} /> : <Tile {...tile} label=\"\" key={index} />;\n }\n };\n\n T.propTypes = { ...types };\n return T;\n};\n\nconst StyledHTilerContainer = styled('div')(({ theme, includeTargets }) => ({\n display: 'grid',\n paddingBottom: theme.spacing(2),\n ...(includeTargets && {\n gridGap: '10px',\n }),\n}));\n\nconst StyledChoiceLabel = styled('div')({\n textAlign: 'center',\n});\n\nconst StyledTargetLabel = styled('div')({\n textAlign: 'center',\n gridRow: '3/4',\n});\n\nconst StyledVTilerContainer = styled('div')(({ includeTargets }) => ({\n gridAutoFlow: 'column',\n display: 'grid',\n ...(includeTargets && {\n gridGap: '10px',\n }),\n}));\n\nconst StyledVChoiceLabel = styled('div')({\n gridColumn: '1/2',\n textAlign: 'center',\n});\n\nconst StyledVTargetLabel = styled('div')({\n gridColumn: '2/3',\n textAlign: 'center',\n});\n\nexport class HorizontalTiler extends React.Component {\n static propTypes = { ...types };\n static defaultProps = { ...defaults };\n render() {\n const { includeTargets, choiceLabelEnabled, choiceLabel, targetLabel, tiles, tileSize } = this.props;\n\n const rows = includeTargets ? `auto ${tileSize} auto ${tileSize}` : `auto ${tileSize} auto`;\n const columns = includeTargets ? tiles.length / 2 : tiles.length;\n\n const style = {\n gridTemplateColumns: includeTargets\n ? `repeat(${columns}, ${tileSize})`\n : `auto repeat(${Math.floor(columns / 2) - 1}, ${tileSize} 10px) ${tileSize} auto`,\n gridTemplateRows: rows,\n };\n\n const labelStyle = {\n gridColumn: `1/${columns + 1}`,\n };\n\n return (\n <StyledHTilerContainer includeTargets={includeTargets} style={style}>\n <StyledChoiceLabel\n style={labelStyle}\n dangerouslySetInnerHTML={{ __html: choiceLabelEnabled ? choiceLabel : '' }}\n />\n {includeTargets && (\n <StyledTargetLabel style={labelStyle} dangerouslySetInnerHTML={{ __html: targetLabel }} />\n )}\n {tiles.map(buildTiles(this.props))}\n </StyledHTilerContainer>\n );\n }\n}\n\nexport class VerticalTiler extends React.Component {\n static propTypes = { ...types };\n static defaultProps = { ...defaults };\n render() {\n const { includeTargets, choiceLabelEnabled, choiceLabel, targetLabel, tiles, tileSize } = this.props;\n\n const columns = includeTargets ? 2 : 1;\n const rows = includeTargets ? tiles.length / 2 : tiles.length;\n\n const style = {\n gridTemplateColumns: `repeat(${columns}, ${tileSize})`,\n gridTemplateRows: includeTargets\n ? `auto repeat(${rows}, ${tileSize})`\n : `auto auto repeat(${Math.floor(rows / 2) - 1}, ${tileSize} 10px) ${tileSize} auto`,\n };\n\n return (\n <StyledVTilerContainer includeTargets={includeTargets} style={style}>\n <StyledVChoiceLabel\n dangerouslySetInnerHTML={{ __html: choiceLabelEnabled ? choiceLabel : '' }}\n />\n\n {includeTargets && <StyledVTargetLabel dangerouslySetInnerHTML={{ __html: targetLabel }} />}\n {tiles.map(buildTiles(this.props))}\n </StyledVTilerContainer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/utils.js
CHANGED
|
@@ -4,27 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.haveSameValuesButDifferentOrder = void 0;
|
|
7
|
-
|
|
8
|
-
var haveSameValuesButDifferentOrder = function haveSameValuesButDifferentOrder(arr1, arr2) {
|
|
7
|
+
const haveSameValuesButDifferentOrder = (arr1, arr2) => {
|
|
9
8
|
if (!Array.isArray(arr1) || !Array.isArray(arr2)) return false;
|
|
10
9
|
if (arr1.length !== arr2.length) return false;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
var sortedArr1 = toSortedJson(arr1);
|
|
19
|
-
var sortedArr2 = toSortedJson(arr2);
|
|
20
|
-
var hasSameValues = sortedArr1.every(function (val, i) {
|
|
21
|
-
return val === sortedArr2[i];
|
|
22
|
-
});
|
|
23
|
-
var hasSameOrder = arr1.every(function (item, i) {
|
|
24
|
-
return JSON.stringify(item) === JSON.stringify(arr2[i]);
|
|
25
|
-
});
|
|
10
|
+
const toSortedJson = arr => arr.map(item => JSON.stringify(item)).sort();
|
|
11
|
+
const sortedArr1 = toSortedJson(arr1);
|
|
12
|
+
const sortedArr2 = toSortedJson(arr2);
|
|
13
|
+
const hasSameValues = sortedArr1.every((val, i) => val === sortedArr2[i]);
|
|
14
|
+
const hasSameOrder = arr1.every((item, i) => JSON.stringify(item) === JSON.stringify(arr2[i]));
|
|
26
15
|
return hasSameValues && !hasSameOrder;
|
|
27
16
|
};
|
|
28
|
-
|
|
29
17
|
exports.haveSameValuesButDifferentOrder = haveSameValuesButDifferentOrder;
|
|
30
18
|
//# sourceMappingURL=utils.js.map
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"utils.js","names":["haveSameValuesButDifferentOrder","arr1","arr2","Array","isArray","length","toSortedJson","arr","map","item","JSON","stringify","sort","sortedArr1","sortedArr2","hasSameValues","every","val","i","hasSameOrder","exports"],"sources":["../src/utils.js"],"sourcesContent":["export const haveSameValuesButDifferentOrder = (arr1, arr2) => {\n if (!Array.isArray(arr1) || !Array.isArray(arr2)) return false;\n if (arr1.length !== arr2.length) return false;\n\n const toSortedJson = (arr) =>\n arr\n .map((item) => JSON.stringify(item))\n .sort();\n\n const sortedArr1 = toSortedJson(arr1);\n const sortedArr2 = toSortedJson(arr2);\n\n const hasSameValues = sortedArr1.every((val, i) => val === sortedArr2[i]);\n const hasSameOrder = arr1.every((item, i) =>\n JSON.stringify(item) === JSON.stringify(arr2[i])\n );\n\n return hasSameValues && !hasSameOrder;\n};\n"],"mappings":";;;;;;AAAO,MAAMA,+BAA+B,GAAGA,CAACC,IAAI,EAAEC,IAAI,KAAK;EAC3D,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,IAAI,CAACE,KAAK,CAACC,OAAO,CAACF,IAAI,CAAC,EAAE,OAAO,KAAK;EAC9D,IAAID,IAAI,CAACI,MAAM,KAAKH,IAAI,CAACG,MAAM,EAAE,OAAO,KAAK;EAE7C,MAAMC,YAAY,GAAIC,GAAG,IACrBA,GAAG,CACEC,GAAG,CAAEC,IAAI,IAAKC,IAAI,CAACC,SAAS,CAACF,IAAI,CAAC,CAAC,CACnCG,IAAI,CAAC,CAAC;EAEf,MAAMC,UAAU,GAAGP,YAAY,CAACL,IAAI,CAAC;EACrC,MAAMa,UAAU,GAAGR,YAAY,CAACJ,IAAI,CAAC;EAErC,MAAMa,aAAa,GAAGF,UAAU,CAACG,KAAK,CAAC,CAACC,GAAG,EAAEC,CAAC,KAAKD,GAAG,KAAKH,UAAU,CAACI,CAAC,CAAC,CAAC;EACzE,MAAMC,YAAY,GAAGlB,IAAI,CAACe,KAAK,CAAC,CAACP,IAAI,EAAES,CAAC,KACpCR,IAAI,CAACC,SAAS,CAACF,IAAI,CAAC,KAAKC,IAAI,CAACC,SAAS,CAACT,IAAI,CAACgB,CAAC,CAAC,CACnD,CAAC;EAED,OAAOH,aAAa,IAAI,CAACI,YAAY;AACzC,CAAC;AAACC,OAAA,CAAApB,+BAAA,GAAAA,+BAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,32 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/placement-ordering",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "13.0.0-beta.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": "pie-framework/pie-elements",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@
|
|
10
|
+
"@dnd-kit/core": "^6.1.0",
|
|
11
|
+
"@emotion/react": "^11.14.0",
|
|
12
|
+
"@emotion/style": "^0.8.0",
|
|
13
|
+
"@mui/icons-material": "^7.3.4",
|
|
14
|
+
"@mui/material": "^7.3.4",
|
|
11
15
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
12
|
-
"@pie-lib/correct-answer-toggle": "2.25.
|
|
13
|
-
"@pie-lib/drag": "2.22.
|
|
14
|
-
"@pie-lib/math-rendering": "3.22.
|
|
15
|
-
"@pie-lib/render-ui": "4.35.
|
|
16
|
-
"@pie-lib/translator": "2.23.
|
|
16
|
+
"@pie-lib/correct-answer-toggle": "2.25.4-next.0",
|
|
17
|
+
"@pie-lib/drag": "2.22.4-next.0",
|
|
18
|
+
"@pie-lib/math-rendering": "3.22.3-next.0",
|
|
19
|
+
"@pie-lib/render-ui": "4.35.4-next.0",
|
|
20
|
+
"@pie-lib/translator": "2.23.3-next.0",
|
|
17
21
|
"debug": "^4.1.1",
|
|
18
22
|
"decimal.js": "^10.0.0",
|
|
19
23
|
"lodash": "^4.17.10",
|
|
20
24
|
"prop-types": "^15.6.1",
|
|
21
|
-
"react": "
|
|
22
|
-
"react-
|
|
23
|
-
"react-dom": "^16.8.1",
|
|
25
|
+
"react": "18.2.0",
|
|
26
|
+
"react-dom": "18.2.0",
|
|
24
27
|
"react-jss": "^8.4.0",
|
|
25
28
|
"react-transition-group": "^2.3.1"
|
|
26
29
|
},
|
|
27
30
|
"author": "",
|
|
28
31
|
"license": "ISC",
|
|
29
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "c47957cb243457f62111caf9d07deaad04b39545",
|
|
30
33
|
"scripts": {
|
|
31
34
|
"postpublish": "../../scripts/postpublish"
|
|
32
35
|
},
|