@pie-element/match 12.1.2-next.5 → 12.1.3

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 (97) hide show
  1. package/CHANGELOG.json +1462 -0
  2. package/CHANGELOG.md +2343 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +1 -0
  5. package/configure/CHANGELOG.json +892 -0
  6. package/configure/CHANGELOG.md +2046 -0
  7. package/configure/lib/add-row.js +40 -0
  8. package/configure/lib/add-row.js.map +1 -0
  9. package/configure/lib/answer-config-block.js +288 -0
  10. package/configure/lib/answer-config-block.js.map +1 -0
  11. package/configure/lib/common.js +31 -0
  12. package/configure/lib/common.js.map +1 -0
  13. package/configure/lib/configure.js +410 -0
  14. package/configure/lib/configure.js.map +1 -0
  15. package/configure/lib/defaults.js +201 -0
  16. package/configure/lib/defaults.js.map +1 -0
  17. package/configure/lib/general-config-block.js +144 -0
  18. package/configure/lib/general-config-block.js.map +1 -0
  19. package/configure/lib/index.js +152 -0
  20. package/configure/lib/index.js.map +1 -0
  21. package/configure/lib/row.js +321 -0
  22. package/configure/lib/row.js.map +1 -0
  23. package/configure/lib/utils.js +12 -0
  24. package/configure/lib/utils.js.map +1 -0
  25. package/configure/package.json +29 -0
  26. package/configure/utils.js +19 -0
  27. package/controller/CHANGELOG.json +502 -0
  28. package/controller/CHANGELOG.md +1363 -0
  29. package/controller/lib/defaults.js +25 -0
  30. package/controller/lib/defaults.js.map +1 -0
  31. package/controller/lib/index.js +424 -0
  32. package/controller/lib/index.js.map +1 -0
  33. package/controller/package.json +24 -0
  34. package/docs/config-schema.json +2929 -0
  35. package/docs/config-schema.json.md +2162 -0
  36. package/docs/demo/config.js +8 -0
  37. package/docs/demo/generate.js +49 -0
  38. package/docs/demo/index.html +1 -0
  39. package/docs/demo/session.js +11 -0
  40. package/docs/pie-schema.json +1530 -0
  41. package/docs/pie-schema.json.md +907 -0
  42. package/lib/answer-grid.js +166 -0
  43. package/lib/answer-grid.js.map +1 -0
  44. package/lib/index.js +85 -0
  45. package/lib/index.js.map +1 -0
  46. package/lib/main.js +163 -0
  47. package/lib/main.js.map +1 -0
  48. package/package.json +21 -87
  49. package/configure.js +0 -2
  50. package/controller.js +0 -1
  51. package/dist/author/add-row.d.ts +0 -17
  52. package/dist/author/add-row.js +0 -24
  53. package/dist/author/answer-config-block.d.ts +0 -36
  54. package/dist/author/answer-config-block.js +0 -176
  55. package/dist/author/common.d.ts +0 -22
  56. package/dist/author/configure.d.ts +0 -48
  57. package/dist/author/configure.js +0 -259
  58. package/dist/author/defaults.d.ts +0 -203
  59. package/dist/author/defaults.js +0 -151
  60. package/dist/author/general-config-block.d.ts +0 -22
  61. package/dist/author/general-config-block.js +0 -93
  62. package/dist/author/index.d.ts +0 -44
  63. package/dist/author/index.js +0 -76
  64. package/dist/author/row.d.ts +0 -51
  65. package/dist/author/row.js +0 -204
  66. package/dist/author/utils.d.ts +0 -10
  67. package/dist/author/utils.js +0 -10
  68. package/dist/browser/Typography-BRnAIZOH.js +0 -9224
  69. package/dist/browser/Typography-BRnAIZOH.js.map +0 -1
  70. package/dist/browser/author/index.js +0 -47499
  71. package/dist/browser/author/index.js.map +0 -1
  72. package/dist/browser/browser-kkT1XVKw.js +0 -219
  73. package/dist/browser/browser-kkT1XVKw.js.map +0 -1
  74. package/dist/browser/controller/index.js +0 -267
  75. package/dist/browser/controller/index.js.map +0 -1
  76. package/dist/browser/delivery/index.js +0 -1984
  77. package/dist/browser/delivery/index.js.map +0 -1
  78. package/dist/browser/dist-Dmwvrh9y.js +0 -104
  79. package/dist/browser/dist-Dmwvrh9y.js.map +0 -1
  80. package/dist/browser/match.css +0 -2
  81. package/dist/controller/defaults.d.ts +0 -27
  82. package/dist/controller/defaults.js +0 -25
  83. package/dist/controller/index.d.ts +0 -29
  84. package/dist/controller/index.js +0 -154
  85. package/dist/delivery/answer-grid.d.ts +0 -28
  86. package/dist/delivery/answer-grid.js +0 -99
  87. package/dist/delivery/index.d.ts +0 -21
  88. package/dist/delivery/index.js +0 -51
  89. package/dist/delivery/main.d.ts +0 -26
  90. package/dist/delivery/main.js +0 -112
  91. package/dist/index.d.ts +0 -1
  92. package/dist/index.iife.d.ts +0 -8
  93. package/dist/index.iife.js +0 -148
  94. package/dist/index.js +0 -2
  95. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +0 -16
  96. package/dist/runtime-support.d.ts +0 -12
  97. package/dist/runtime-support.js +0 -12
@@ -1,204 +0,0 @@
1
- import e from "react";
2
- import t from "prop-types";
3
- import { color as n } from "@pie-lib/render-ui";
4
- import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
- import a from "@mui/material/Radio";
6
- import { styled as o } from "@mui/material/styles";
7
- import s from "debug";
8
- import { AlertDialog as c, Checkbox as l } from "@pie-lib/config-ui";
9
- import u, { DEFAULT_PLUGINS as d } from "@pie-lib/editable-html-tip-tap";
10
- import f from "@mui/icons-material/DragHandle";
11
- import p from "@mui/material/IconButton";
12
- import m from "@mui/icons-material/Delete";
13
- import { useDraggable as h, useDroppable as g } from "@dnd-kit/core";
14
- //#region src/author/row.tsx
15
- s("@pie-element:categorize:configure:choice");
16
- var _ = o("span")({ cursor: "move" }), v = o("div")(({ theme: e }) => ({
17
- marginTop: e.spacing(2),
18
- display: "flex",
19
- alignItems: "center",
20
- flex: 1
21
- })), y = o("div")(({ theme: e }) => ({
22
- flex: 1,
23
- display: "flex",
24
- justifyContent: "center",
25
- alignItems: "center",
26
- minWidth: "120px",
27
- padding: `0 ${e.spacing(1)}`
28
- })), b = o(a)(({ theme: e, error: t }) => ({
29
- "& input": { width: "100% !important" },
30
- "&.MuiRadio-root": { color: `${t ? e.palette.error.main : n.tertiary()} !important` }
31
- })), x = o("div")(({ theme: e }) => ({
32
- flex: .5,
33
- display: "flex",
34
- justifyContent: "center",
35
- minWidth: "45px",
36
- padding: `0 ${e.spacing(1)}`
37
- })), S = o(y)(({ theme: e }) => ({
38
- flex: 2,
39
- display: "flex",
40
- justifyContent: "flex-start",
41
- padding: 0,
42
- maxWidth: "unset",
43
- textAlign: "left",
44
- minWidth: "200px",
45
- marginRight: e.spacing(1),
46
- "&> div": { width: "100%" }
47
- })), C = o("hr")(({ theme: e }) => ({
48
- marginTop: e.spacing(2),
49
- border: 0,
50
- borderTop: `2px solid ${e.palette.grey.A100}`,
51
- width: "100%"
52
- })), w = o("div")(({ theme: e }) => ({
53
- fontSize: e.typography.fontSize - 2,
54
- color: e.palette.error.main,
55
- paddingTop: e.spacing(1)
56
- })), T = class extends e.Component {
57
- static propTypes = {
58
- model: t.object.isRequired,
59
- row: t.object.isRequired,
60
- idx: t.number.isRequired,
61
- maxImageWidth: t.object,
62
- maxImageHeight: t.object,
63
- onDeleteRow: t.func.isRequired,
64
- onChange: t.func.isRequired,
65
- imageSupport: t.shape({
66
- add: t.func.isRequired,
67
- delete: t.func.isRequired
68
- }),
69
- uploadSoundSupport: t.shape({
70
- add: t.func.isRequired,
71
- delete: t.func.isRequired
72
- }),
73
- inputConfiguration: t.object,
74
- toolbarOpts: t.object,
75
- error: t.string,
76
- spellCheck: t.bool,
77
- minQuestions: t.number
78
- };
79
- static defaultProps = {};
80
- state = { dialog: {
81
- open: !1,
82
- text: ""
83
- } };
84
- componentDidMount() {
85
- document.addEventListener("mouseup", this.onMouseUpOnHandle);
86
- }
87
- onRowTitleChange = (e) => (t) => {
88
- let { model: n, onChange: r } = this.props, i = { ...n };
89
- i.rows[e].title = t, r(i);
90
- };
91
- onRowValueChange = (e, t) => (n) => {
92
- let { model: r, onChange: i } = this.props, a = { ...r };
93
- if (r.choiceMode === "radio") for (let t = 0; t < a.rows[e].values.length; t++) a.rows[e].values[t] = !1;
94
- a.rows[e].values[t] = n.target.checked, i(a);
95
- };
96
- onDeleteRow = (e) => () => {
97
- let { model: t, onDeleteRow: n, minQuestions: r } = this.props;
98
- t.rows && t.rows.length === r ? this.setState({ dialog: {
99
- open: !0,
100
- text: `There should be at least ${r} question row` + (r > 1 ? "s" : "") + "."
101
- } }) : n(e);
102
- };
103
- onMouseDownOnHandle = () => {};
104
- onMouseUpOnHandle = () => {};
105
- render() {
106
- let { imageSupport: e, model: t, row: n, idx: a, inputConfiguration: o = {}, toolbarOpts: s, spellCheck: h, error: g, maxImageWidth: T, maxImageHeight: E, uploadSoundSupport: D, mathMlOptions: O = {} } = this.props, { dialog: k } = this.state, A = (d || []).filter((e) => e !== "bulleted-list" && e !== "numbered-list");
107
- return /* @__PURE__ */ i("div", {
108
- style: { width: "100%" },
109
- children: [
110
- /* @__PURE__ */ r(_, {
111
- itemID: "handle",
112
- onMouseDown: this.onMouseDownOnHandle,
113
- children: /* @__PURE__ */ r(f, { color: "primary" })
114
- }),
115
- /* @__PURE__ */ i(v, { children: [
116
- /* @__PURE__ */ r(S, { children: /* @__PURE__ */ r(u, {
117
- imageSupport: e,
118
- autoWidthToolbar: !0,
119
- disableUnderline: !0,
120
- label: "label",
121
- markup: n.title,
122
- onChange: this.onRowTitleChange(a),
123
- pluginProps: o,
124
- toolbarOpts: s,
125
- activePlugins: A,
126
- spellCheck: h,
127
- maxImageWidth: T,
128
- maxImageHeight: E,
129
- uploadSoundSupport: D,
130
- languageCharactersProps: [{ language: "spanish" }, { language: "special" }],
131
- error: g && g !== "No correct response defined.",
132
- mathMlOptions: O
133
- }) }),
134
- n.values.map((e, n) => /* @__PURE__ */ r(y, { children: t.choiceMode === "radio" ? /* @__PURE__ */ r(b, {
135
- error: g?.includes("No correct response defined."),
136
- onChange: this.onRowValueChange(a, n),
137
- checked: e === !0
138
- }) : /* @__PURE__ */ r(l, {
139
- onChange: this.onRowValueChange(a, n),
140
- checked: e === !0,
141
- label: "",
142
- error: g?.includes("No correct response defined.")
143
- }) }, n)),
144
- /* @__PURE__ */ r(x, { children: /* @__PURE__ */ r(p, {
145
- onClick: this.onDeleteRow(a),
146
- "aria-label": "Delete",
147
- size: "large",
148
- children: /* @__PURE__ */ r(m, {})
149
- }) })
150
- ] }),
151
- g && /* @__PURE__ */ r(w, { children: g }),
152
- /* @__PURE__ */ r(C, {}),
153
- /* @__PURE__ */ r(c, {
154
- open: k.open,
155
- title: "Warning",
156
- text: k.text,
157
- onConfirm: () => this.setState({ dialog: { open: !1 } })
158
- })
159
- ]
160
- });
161
- }
162
- };
163
- function E(e) {
164
- let { attributes: t, listeners: n, setNodeRef: i, transform: a, transition: o, isDragging: s } = h({
165
- id: `row-${e.row.id}`,
166
- data: {
167
- type: "row",
168
- index: e.idx,
169
- id: e.row.id
170
- }
171
- }), { setNodeRef: c, isOver: l } = g({
172
- id: `row-drop-${e.row.id}`,
173
- data: {
174
- type: "row",
175
- index: e.idx,
176
- id: e.row.id
177
- }
178
- });
179
- return /* @__PURE__ */ r("div", {
180
- ref: c,
181
- style: {
182
- transform: a ? `translate3d(${a.x}px, ${a.y}px, 0)` : void 0,
183
- transition: o,
184
- opacity: s ? .5 : 1,
185
- backgroundColor: l ? "rgba(0, 0, 0, 0.1)" : "transparent"
186
- },
187
- children: /* @__PURE__ */ r("div", {
188
- ref: i,
189
- ...n,
190
- onKeyDown: (e) => {
191
- let t = e.target;
192
- t.closest("[contenteditable]") || t.closest("input") || t.closest("textarea") || t.isContentEditable || n?.onKeyDown?.(e);
193
- },
194
- onPointerDown: (e) => {
195
- let t = e.target;
196
- t.closest("[contenteditable]") || t.closest("input") || t.closest("textarea") || t.isContentEditable || n?.onPointerDown?.(e);
197
- },
198
- ...t,
199
- children: /* @__PURE__ */ r(T, { ...e })
200
- })
201
- });
202
- }
203
- //#endregion
204
- export { E as default };
@@ -1,10 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/match/configure/src/utils.js
3
- * @auto-generated
4
- *
5
- * This file is automatically synced from pie-elements and converted to TypeScript.
6
- * Manual edits will be overwritten on next sync.
7
- * To make changes, edit the upstream JavaScript file and run sync again.
8
- */
9
- export declare const getPluginProps: (props?: {}, baseInputConfiguration?: {}) => {};
10
- export declare const generateValidationMessage: (model: any, configuration: any) => string;
@@ -1,10 +0,0 @@
1
- //#region src/author/utils.ts
2
- var e = (e = {}, t = {}) => ({
3
- ...t,
4
- ...e
5
- }), t = (e, t) => {
6
- let { choiceMode: n } = e, { minQuestions: r, maxQuestions: i, maxAnswers: a } = t, o = `\nThere should be at least ${r}` + (i ? ` and at most ${i}` : "") + " question row" + (r > 1 || i ? "s." : ".") + "\nRow and column headings should be non-blank and unique. \nFirst column heading is excluded from validation." + (a ? `\nThere should be at most ${a} answer choices.` : ""), s = n === "radio" ? "\nThere should be a correct response defined for every row." : "\nThere should be at least one correct response defined for every row.";
7
- return "Validation requirements:" + o + s;
8
- };
9
- //#endregion
10
- export { t as generateValidationMessage, e as getPluginProps };