@pie-element/placement-ordering 14.1.1 → 14.1.2-next.1

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.
Files changed (108) hide show
  1. package/configure.js +2 -0
  2. package/controller.js +1 -0
  3. package/dist/author/choice-editor.d.ts +39 -0
  4. package/dist/author/choice-editor.js +156 -0
  5. package/dist/author/choice-tile.d.ts +40 -0
  6. package/dist/author/choice-tile.js +132 -0
  7. package/dist/author/defaults.d.ts +213 -0
  8. package/dist/author/defaults.js +159 -0
  9. package/dist/author/design.d.ts +21 -0
  10. package/dist/author/design.js +273 -0
  11. package/dist/author/help.d.ts +11 -0
  12. package/dist/author/index.d.ts +45 -0
  13. package/dist/author/index.js +85 -0
  14. package/dist/author/utils.d.ts +15 -0
  15. package/dist/author/utils.js +62 -0
  16. package/dist/browser/author/index.js +40697 -0
  17. package/dist/browser/author/index.js.map +1 -0
  18. package/dist/browser/browser-Dbw2uHQ7.js +372 -0
  19. package/dist/browser/browser-Dbw2uHQ7.js.map +1 -0
  20. package/dist/browser/controller/index.js +242 -0
  21. package/dist/browser/controller/index.js.map +1 -0
  22. package/dist/browser/delivery/index.js +1035 -0
  23. package/dist/browser/delivery/index.js.map +1 -0
  24. package/dist/browser/dist-D9ARZhQk.js +1426 -0
  25. package/dist/browser/dist-D9ARZhQk.js.map +1 -0
  26. package/dist/browser/drag-provider-DSf9QLEN.js +10548 -0
  27. package/dist/browser/drag-provider-DSf9QLEN.js.map +1 -0
  28. package/dist/browser/placement-ordering.css +2 -0
  29. package/dist/controller/defaults.d.ts +31 -0
  30. package/dist/controller/defaults.js +25 -0
  31. package/dist/controller/index.d.ts +29 -0
  32. package/dist/controller/index.js +123 -0
  33. package/dist/controller/scoring.d.ts +27 -0
  34. package/dist/controller/scoring.js +30 -0
  35. package/dist/delivery/index.d.ts +26 -0
  36. package/dist/delivery/index.js +70 -0
  37. package/dist/delivery/main.d.ts +19 -0
  38. package/dist/delivery/main.js +22 -0
  39. package/dist/delivery/ordering.d.ts +18 -0
  40. package/dist/delivery/ordering.js +93 -0
  41. package/dist/delivery/placement-ordering.d.ts +28 -0
  42. package/dist/delivery/placement-ordering.js +213 -0
  43. package/dist/delivery/tile.d.ts +28 -0
  44. package/dist/delivery/tile.js +165 -0
  45. package/dist/delivery/tiler.d.ts +42 -0
  46. package/dist/delivery/tiler.js +89 -0
  47. package/dist/delivery/utils.d.ts +9 -0
  48. package/dist/delivery/utils.js +8 -0
  49. package/dist/index.d.ts +1 -0
  50. package/dist/index.iife.d.ts +8 -0
  51. package/dist/index.iife.js +152 -0
  52. package/dist/index.js +2 -0
  53. package/dist/runtime-support.d.ts +12 -0
  54. package/dist/runtime-support.js +12 -0
  55. package/package.json +90 -22
  56. package/CHANGELOG.json +0 -1312
  57. package/CHANGELOG.md +0 -2432
  58. package/LICENSE.md +0 -5
  59. package/README.md +0 -57
  60. package/configure/CHANGELOG.json +0 -952
  61. package/configure/CHANGELOG.md +0 -2127
  62. package/configure/lib/choice-editor.js +0 -252
  63. package/configure/lib/choice-editor.js.map +0 -1
  64. package/configure/lib/choice-tile.js +0 -205
  65. package/configure/lib/choice-tile.js.map +0 -1
  66. package/configure/lib/defaults.js +0 -211
  67. package/configure/lib/defaults.js.map +0 -1
  68. package/configure/lib/design.js +0 -427
  69. package/configure/lib/design.js.map +0 -1
  70. package/configure/lib/help.js +0 -14
  71. package/configure/lib/help.js.map +0 -1
  72. package/configure/lib/index.js +0 -155
  73. package/configure/lib/index.js.map +0 -1
  74. package/configure/lib/utils.js +0 -108
  75. package/configure/lib/utils.js.map +0 -1
  76. package/configure/package.json +0 -26
  77. package/controller/CHANGELOG.json +0 -517
  78. package/controller/CHANGELOG.md +0 -1518
  79. package/controller/lib/defaults.js +0 -29
  80. package/controller/lib/defaults.js.map +0 -1
  81. package/controller/lib/index.js +0 -285
  82. package/controller/lib/index.js.map +0 -1
  83. package/controller/lib/scoring.js +0 -109
  84. package/controller/lib/scoring.js.map +0 -1
  85. package/controller/package.json +0 -15
  86. package/docs/config-schema.json +0 -2964
  87. package/docs/config-schema.json.md +0 -2190
  88. package/docs/demo/config.js +0 -8
  89. package/docs/demo/generate.js +0 -50
  90. package/docs/demo/index.html +0 -1
  91. package/docs/demo/session.js +0 -7
  92. package/docs/pie-schema.json +0 -1613
  93. package/docs/pie-schema.json.md +0 -973
  94. package/icon.png +0 -0
  95. package/lib/index.js +0 -122
  96. package/lib/index.js.map +0 -1
  97. package/lib/main.js +0 -32
  98. package/lib/main.js.map +0 -1
  99. package/lib/ordering.js +0 -165
  100. package/lib/ordering.js.map +0 -1
  101. package/lib/placement-ordering.js +0 -419
  102. package/lib/placement-ordering.js.map +0 -1
  103. package/lib/tile.js +0 -259
  104. package/lib/tile.js.map +0 -1
  105. package/lib/tiler.js +0 -165
  106. package/lib/tiler.js.map +0 -1
  107. package/lib/utils.js +0 -18
  108. package/lib/utils.js.map +0 -1
package/icon.png DELETED
Binary file
package/lib/index.js DELETED
@@ -1,122 +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.isValidSession = exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _react = _interopRequireDefault(require("react"));
10
- var _client = require("react-dom/client");
11
- var _lodashEs = require("lodash-es");
12
- var _debug = _interopRequireDefault(require("debug"));
13
- var _mathRendering = require("@pie-lib/math-rendering");
14
- var _piePlayerEvents = require("@pie-framework/pie-player-events");
15
- var _main = _interopRequireDefault(require("./main"));
16
- const log = (0, _debug.default)('pie-elements:placement-ordering');
17
- const isValidSession = ({
18
- model,
19
- session
20
- }) => {
21
- const {
22
- config
23
- } = model;
24
- const compactSessionValues = session && (0, _lodashEs.compact)(session.value) || [];
25
- const completeSession = compactSessionValues.length === model.choices.length;
26
-
27
- // if it includes targets, it doesn't have to contain all the choices selected (eg: only 2 targets were filled)
28
- // but if it does not include targets, it's a must to have all choices selected
29
- return config.includeTargets || completeSession;
30
- };
31
- exports.isValidSession = isValidSession;
32
- class Ordering extends HTMLElement {
33
- constructor() {
34
- super();
35
- (0, _defineProperty2.default)(this, "_scheduleMathRender", () => {
36
- if (this._mathRenderPending) return;
37
- this._mathRenderPending = true;
38
- requestAnimationFrame(() => {
39
- if (this._mathObserver) {
40
- this._mathObserver.disconnect();
41
- }
42
- (0, _mathRendering.renderMath)(this);
43
- this._mathRenderPending = false;
44
- setTimeout(() => {
45
- if (this._mathObserver) {
46
- this._mathObserver.observe(this, {
47
- childList: true,
48
- subtree: true
49
- });
50
- }
51
- }, 50);
52
- });
53
- });
54
- (0, _defineProperty2.default)(this, "isComplete", value => value && (0, _lodashEs.compact)(value).length === this._model.completeLength);
55
- (0, _defineProperty2.default)(this, "sessionChange", session => {
56
- this._session.value = session.value;
57
- this.render();
58
- this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), this._session && this.isComplete(this._session.value)));
59
- });
60
- this._root = null;
61
- this._mathObserver = null;
62
- this._mathRenderPending = false;
63
- }
64
- _initMathObserver() {
65
- if (this._mathObserver) return;
66
- this._mathObserver = new MutationObserver(this._scheduleMathRender);
67
- this._mathObserver.observe(this, {
68
- childList: true,
69
- subtree: true
70
- });
71
- }
72
- _disconnectMathObserver() {
73
- if (this._mathObserver) {
74
- this._mathObserver.disconnect();
75
- this._mathObserver = null;
76
- }
77
- }
78
- set model(newModel) {
79
- this._model = newModel;
80
- this.render();
81
- this.dispatchEvent(new CustomEvent('model-set', {
82
- bubbles: true,
83
- detail: {
84
- complete: false
85
- }
86
- }));
87
- }
88
- set session(newSession) {
89
- this._session = newSession;
90
- this.render();
91
- }
92
- get session() {
93
- return this._session;
94
- }
95
- render() {
96
- if (this._model && this._session) {
97
- log('[render] session: ', this._session.value);
98
- log('[render] model: ', this._model);
99
- this._initMathObserver();
100
- const element = /*#__PURE__*/_react.default.createElement(_main.default, {
101
- model: this._model,
102
- session: this._session,
103
- onSessionChange: this.sessionChange
104
- });
105
- if (!this._root) {
106
- this._root = (0, _client.createRoot)(this);
107
- }
108
- this._root.render(element);
109
- }
110
- }
111
- connectedCallback() {
112
- this._initMathObserver();
113
- }
114
- disconnectedCallback() {
115
- this._disconnectMathObserver();
116
- if (this._root) {
117
- this._root.unmount();
118
- }
119
- }
120
- }
121
- exports.default = Ordering;
122
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_lodashEs","_debug","_mathRendering","_piePlayerEvents","_main","log","debug","isValidSession","model","session","config","compactSessionValues","compact","value","completeSession","length","choices","includeTargets","exports","Ordering","HTMLElement","constructor","_defineProperty2","default","_mathRenderPending","requestAnimationFrame","_mathObserver","disconnect","renderMath","setTimeout","observe","childList","subtree","_model","completeLength","_session","render","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_root","_initMathObserver","MutationObserver","_scheduleMathRender","_disconnectMathObserver","newModel","CustomEvent","bubbles","detail","complete","newSession","element","React","createElement","Main","onSessionChange","sessionChange","createRoot","connectedCallback","disconnectedCallback","unmount"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { compact } from 'lodash-es';\nimport debug from 'debug';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport Main from './main';\n\nconst log = debug('pie-elements:placement-ordering');\n\nexport const isValidSession = ({ model, session }) => {\n const { config } = model;\n\n const compactSessionValues = (session && compact(session.value)) || [];\n const completeSession = compactSessionValues.length === model.choices.length;\n\n // if it includes targets, it doesn't have to contain all the choices selected (eg: only 2 targets were filled)\n // but if it does not include targets, it's a must to have all choices selected\n return config.includeTargets || completeSession;\n};\n\nexport default class Ordering extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n this._mathObserver = null;\n this._mathRenderPending = false;\n }\n\n _scheduleMathRender = () => {\n if (this._mathRenderPending) return;\n this._mathRenderPending = true;\n\n requestAnimationFrame(() => {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n }\n renderMath(this);\n this._mathRenderPending = false;\n setTimeout(() => {\n if (this._mathObserver) {\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n }, 50);\n });\n };\n\n _initMathObserver() {\n if (this._mathObserver) return;\n this._mathObserver = new MutationObserver(this._scheduleMathRender);\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n\n _disconnectMathObserver() {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n this._mathObserver = null;\n }\n }\n\n isComplete = (value) => value && compact(value).length === this._model.completeLength;\n\n sessionChange = (session) => {\n this._session.value = session.value;\n this.render();\n this.dispatchEvent(\n new SessionChangedEvent(this.tagName.toLowerCase(), this._session && this.isComplete(this._session.value)),\n );\n };\n\n set model(newModel) {\n this._model = newModel;\n\n this.render();\n this.dispatchEvent(\n new CustomEvent('model-set', {\n bubbles: true,\n detail: {\n complete: false,\n },\n }),\n );\n }\n\n set session(newSession) {\n this._session = newSession;\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n render() {\n if (this._model && this._session) {\n log('[render] session: ', this._session.value);\n log('[render] model: ', this._model);\n\n this._initMathObserver();\n\n const element = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.sessionChange,\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n }\n\n connectedCallback() {\n this._initMathObserver();\n }\n\n disconnectedCallback() {\n this._disconnectMathObserver();\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/main.js DELETED
@@ -1,32 +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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _react = _interopRequireDefault(require("react"));
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _placementOrdering = _interopRequireDefault(require("./placement-ordering"));
12
- class Main extends _react.default.Component {
13
- render() {
14
- const {
15
- model,
16
- session,
17
- onSessionChange
18
- } = this.props;
19
- return /*#__PURE__*/_react.default.createElement(_placementOrdering.default, {
20
- model: model,
21
- session: session,
22
- onSessionChange: onSessionChange
23
- });
24
- }
25
- }
26
- (0, _defineProperty2.default)(Main, "propTypes", {
27
- model: _propTypes.default.object.isRequired,
28
- session: _propTypes.default.oneOfType([_propTypes.default.array.isRequired, _propTypes.default.object.isRequired]),
29
- onSessionChange: _propTypes.default.func.isRequired
30
- });
31
- var _default = exports.default = Main;
32
- //# sourceMappingURL=main.js.map
package/lib/main.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_placementOrdering","Main","React","Component","render","model","session","onSessionChange","props","default","createElement","_defineProperty2","PropTypes","object","isRequired","oneOfType","array","func","_default","exports"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport PlacementOrdering from './placement-ordering';\n\nclass Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n session: PropTypes.oneOfType([PropTypes.array.isRequired, PropTypes.object.isRequired]),\n onSessionChange: PropTypes.func.isRequired,\n };\n\n render() {\n const { model, session, onSessionChange } = this.props;\n\n return (\n <PlacementOrdering model={model} session={session} onSessionChange={onSessionChange} />\n );\n }\n}\n\nexport default Main;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,kBAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,MAAMG,IAAI,SAASC,cAAK,CAACC,SAAS,CAAC;EAOjCC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,KAAK;MAAEC,OAAO;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAACC,KAAK;IAEtD,oBACEZ,MAAA,CAAAa,OAAA,CAAAC,aAAA,CAACV,kBAAA,CAAAS,OAAiB;MAACJ,KAAK,EAAEA,KAAM;MAACC,OAAO,EAAEA,OAAQ;MAACC,eAAe,EAAEA;IAAgB,CAAE,CAAC;EAE3F;AACF;AAAC,IAAAI,gBAAA,CAAAF,OAAA,EAdKR,IAAI,eACW;EACjBI,KAAK,EAAEO,kBAAS,CAACC,MAAM,CAACC,UAAU;EAClCR,OAAO,EAAEM,kBAAS,CAACG,SAAS,CAAC,CAACH,kBAAS,CAACI,KAAK,CAACF,UAAU,EAAEF,kBAAS,CAACC,MAAM,CAACC,UAAU,CAAC,CAAC;EACvFP,eAAe,EAAEK,kBAAS,CAACK,IAAI,CAACH;AAClC,CAAC;AAAA,IAAAI,QAAA,GAAAC,OAAA,CAAAV,OAAA,GAWYR,IAAI","ignoreList":[]}
package/lib/ordering.js DELETED
@@ -1,165 +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.buildState = buildState;
8
- exports.push = void 0;
9
- exports.reducer = reducer;
10
- exports.swap = void 0;
11
- var _lodashEs = require("lodash-es");
12
- var _debug = _interopRequireDefault(require("debug"));
13
- const log = (0, _debug.default)('pie-elements:placement-ordering:ordering');
14
- const push = (arr, fromIndex, toIndex) => {
15
- const movedItem = arr.find((item, index) => index === fromIndex);
16
- const remainingItems = arr.filter((item, index) => index !== fromIndex);
17
- return [...remainingItems.slice(0, toIndex), movedItem, ...remainingItems.slice(toIndex)];
18
- };
19
- exports.push = push;
20
- const swap = (arr, fromIndex, toIndex) => {
21
- log('[swap]', arr, fromIndex, toIndex);
22
- if (!arr || arr.length <= 1 || fromIndex === undefined || toIndex === undefined) {
23
- throw new Error(`swap requires a non-empty array, fromIndex, toIndex: ${arr}, ${fromIndex} ${toIndex}`);
24
- }
25
- const update = (0, _lodashEs.cloneDeep)(arr);
26
- const tmp = arr[toIndex];
27
- update[toIndex] = update[fromIndex];
28
- update[fromIndex] = tmp;
29
- return update;
30
- };
31
- exports.swap = swap;
32
- function removeResponse(state, targetTile) {
33
- const update = (0, _lodashEs.cloneDeep)(state.response);
34
- if (update[targetTile.index] === targetTile.id) {
35
- update[targetTile.index] = undefined;
36
- } else {
37
- throw new Error(`Tried to remove from index: ${targetTile.index}, but the id doesn't match: array: ${update}, target: ${targetTile.id}`);
38
- }
39
- return update;
40
- }
41
- function updateResponse(state, from, to) {
42
- const {
43
- response,
44
- opts
45
- } = state;
46
- const update = (0, _lodashEs.cloneDeep)(response);
47
- if (opts.includeTargets) {
48
- if (from.type === 'choice' && to.type === 'target') {
49
- update[to.index] = from.id;
50
- return update;
51
- } else if (from.type === 'target' && to.type === 'choice') {
52
- update[from.index] = undefined;
53
- return update;
54
- } else if (from.type === 'target' && to.type === 'target') {
55
- return swap(response, from.index, to.index);
56
- } else {
57
- log('do nothing to the response');
58
- return response;
59
- }
60
- } else {
61
- const fromIndex = state.response.findIndex(r => r !== undefined && r === from.id);
62
- const toIndex = state.response.findIndex(r => r !== undefined && r === to.id);
63
- log('fromIndex: ', fromIndex, 'toIndex:', toIndex);
64
- return push(state.response, fromIndex, toIndex);
65
- }
66
- }
67
- function buildTiles(choices, response, outcomes, opts) {
68
- if (opts.includeTargets) {
69
- const targets = [];
70
- for (let i = 0; i < response.length; i++) {
71
- const r = response[i];
72
- const choice = choices.find(c => r !== undefined && r !== null && c.id === r);
73
- //TODO: index needs to match too!!
74
- const outcome = outcomes[i];
75
- const out = Object.assign({
76
- type: 'target',
77
- index: i,
78
- empty: choice === undefined
79
- }, choice, outcome, {
80
- draggable: choice !== undefined
81
- });
82
- targets.push(out);
83
- }
84
- const processedChoices = choices.map(m => {
85
- if (response.indexOf(m.id) !== -1 && !opts.allowSameChoiceInTargets) {
86
- return {
87
- type: 'choice',
88
- empty: true,
89
- droppable: true,
90
- draggable: false
91
- };
92
- } else {
93
- return Object.assign({}, m, {
94
- type: 'choice',
95
- droppable: false,
96
- draggable: true
97
- });
98
- }
99
- });
100
- return processedChoices.concat(targets);
101
- } else {
102
- return response.reduce((acc, id, index) => {
103
- const emptyTile = Object.assign({
104
- type: 'empty',
105
- draggable: false,
106
- droppable: true
107
- }, choices.find(m => m.id === id), outcomes[index]);
108
- const choiceTile = Object.assign({
109
- type: 'choice',
110
- draggable: true,
111
- droppable: true
112
- }, choices.find(m => m.id === id), outcomes[index]);
113
- if (index === 0) {
114
- acc.push(emptyTile);
115
- }
116
- acc.push(choiceTile, emptyTile);
117
- return acc;
118
- }, []);
119
- }
120
- }
121
- function buildState(choices, response, outcomes, opts) {
122
- opts = (0, _lodashEs.assign)({
123
- includeTargets: true
124
- }, opts);
125
- outcomes = outcomes || [];
126
- response = !response || (0, _lodashEs.isEmpty)(response) ? opts.includeTargets ? new Array(choices.length) : (0, _lodashEs.map)(choices, c => c.id) : response;
127
- return {
128
- choices,
129
- response,
130
- opts,
131
- outcomes,
132
- tiles: buildTiles(choices, response, outcomes, opts)
133
- };
134
- }
135
- function reducer(action, state) {
136
- switch (action.type) {
137
- case 'move':
138
- {
139
- const {
140
- from,
141
- to
142
- } = action;
143
- const response = updateResponse(state, from, to);
144
- const tiles = buildTiles(state.choices, response, state.outcomes, state.opts);
145
- return Object.assign({}, state, {
146
- response,
147
- tiles
148
- });
149
- }
150
- case 'remove':
151
- {
152
- const {
153
- target
154
- } = action;
155
- const response = removeResponse(state, target);
156
- const tiles = buildTiles(state.choices, response, state.outcomes, state.opts);
157
- return Object.assign({}, state, {
158
- response,
159
- tiles
160
- });
161
- }
162
- }
163
- return state;
164
- }
165
- //# sourceMappingURL=ordering.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ordering.js","names":["_lodashEs","require","_debug","_interopRequireDefault","log","debug","push","arr","fromIndex","toIndex","movedItem","find","item","index","remainingItems","filter","slice","exports","swap","length","undefined","Error","update","cloneDeep","tmp","removeResponse","state","targetTile","response","id","updateResponse","from","to","opts","includeTargets","type","findIndex","r","buildTiles","choices","outcomes","targets","i","choice","c","outcome","out","Object","assign","empty","draggable","processedChoices","map","m","indexOf","allowSameChoiceInTargets","droppable","concat","reduce","acc","emptyTile","choiceTile","buildState","isEmpty","Array","tiles","reducer","action","target"],"sources":["../src/ordering.js"],"sourcesContent":["import { assign, cloneDeep, isEmpty, map } from 'lodash-es';\nimport debug from 'debug';\n\nconst log = debug('pie-elements:placement-ordering:ordering');\n\nexport const push = (arr, fromIndex, toIndex) => {\n const movedItem = arr.find((item, index) => index === fromIndex);\n const remainingItems = arr.filter((item, index) => index !== fromIndex);\n\n return [...remainingItems.slice(0, toIndex), movedItem, ...remainingItems.slice(toIndex)];\n};\n\nexport const swap = (arr, fromIndex, toIndex) => {\n log('[swap]', arr, fromIndex, toIndex);\n if (!arr || arr.length <= 1 || fromIndex === undefined || toIndex === undefined) {\n throw new Error(`swap requires a non-empty array, fromIndex, toIndex: ${arr}, ${fromIndex} ${toIndex}`);\n }\n const update = cloneDeep(arr);\n const tmp = arr[toIndex];\n update[toIndex] = update[fromIndex];\n update[fromIndex] = tmp;\n return update;\n};\n\nfunction removeResponse(state, targetTile) {\n const update = cloneDeep(state.response);\n\n if (update[targetTile.index] === targetTile.id) {\n update[targetTile.index] = undefined;\n } else {\n throw new Error(\n `Tried to remove from index: ${targetTile.index}, but the id doesn't match: array: ${update}, target: ${targetTile.id}`,\n );\n }\n return update;\n}\n\nfunction updateResponse(state, from, to) {\n const { response, opts } = state;\n const update = cloneDeep(response);\n if (opts.includeTargets) {\n if (from.type === 'choice' && to.type === 'target') {\n update[to.index] = from.id;\n return update;\n } else if (from.type === 'target' && to.type === 'choice') {\n update[from.index] = undefined;\n return update;\n } else if (from.type === 'target' && to.type === 'target') {\n return swap(response, from.index, to.index);\n } else {\n log('do nothing to the response');\n return response;\n }\n } else {\n const fromIndex = state.response.findIndex((r) => r !== undefined && r === from.id);\n const toIndex = state.response.findIndex((r) => r !== undefined && r === to.id);\n log('fromIndex: ', fromIndex, 'toIndex:', toIndex);\n return push(state.response, fromIndex, toIndex);\n }\n}\n\nfunction buildTiles(choices, response, outcomes, opts) {\n if (opts.includeTargets) {\n const targets = [];\n for (let i = 0; i < response.length; i++) {\n const r = response[i];\n\n const choice = choices.find((c) => r !== undefined && r !== null && c.id === r);\n //TODO: index needs to match too!!\n const outcome = outcomes[i];\n\n const out = Object.assign({ type: 'target', index: i, empty: choice === undefined }, choice, outcome, {\n draggable: choice !== undefined,\n });\n\n targets.push(out);\n }\n\n const processedChoices = choices.map((m) => {\n if (response.indexOf(m.id) !== -1 && !opts.allowSameChoiceInTargets) {\n return {\n type: 'choice',\n empty: true,\n droppable: true,\n draggable: false,\n };\n } else {\n return Object.assign({}, m, {\n type: 'choice',\n droppable: false,\n draggable: true,\n });\n }\n });\n\n return processedChoices.concat(targets);\n } else {\n return response.reduce((acc, id, index) => {\n const emptyTile = Object.assign(\n { type: 'empty', draggable: false, droppable: true },\n choices.find((m) => m.id === id),\n outcomes[index],\n );\n const choiceTile = Object.assign(\n { type: 'choice', draggable: true, droppable: true },\n choices.find((m) => m.id === id),\n outcomes[index],\n );\n\n if (index === 0) {\n acc.push(emptyTile);\n }\n\n acc.push(choiceTile, emptyTile);\n\n return acc;\n }, []);\n }\n}\n\nexport function buildState(choices, response, outcomes, opts) {\n opts = assign({ includeTargets: true }, opts);\n\n outcomes = outcomes || [];\n response =\n !response || isEmpty(response)\n ? opts.includeTargets\n ? new Array(choices.length)\n : map(choices, (c) => c.id)\n : response;\n return {\n choices,\n response,\n opts,\n outcomes,\n tiles: buildTiles(choices, response, outcomes, opts),\n };\n}\n\nexport function reducer(action, state) {\n switch (action.type) {\n case 'move': {\n const { from, to } = action;\n const response = updateResponse(state, from, to);\n const tiles = buildTiles(state.choices, response, state.outcomes, state.opts);\n return Object.assign({}, state, { response, tiles });\n }\n case 'remove': {\n const { target } = action;\n const response = removeResponse(state, target);\n const tiles = buildTiles(state.choices, response, state.outcomes, state.opts);\n return Object.assign({}, state, { response, tiles });\n }\n }\n return state;\n}\n"],"mappings":"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","ignoreList":[]}