@pie-element/passage 7.4.3 → 8.0.0-next.20261002094057

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/author.js +2 -0
  2. package/configure.js +2 -0
  3. package/controller.js +1 -0
  4. package/dist/author/common.d.ts +36 -0
  5. package/dist/author/common.js +57 -0
  6. package/dist/author/defaults.d.ts +175 -0
  7. package/dist/author/defaults.js +113 -0
  8. package/dist/author/design.d.ts +28 -0
  9. package/dist/author/design.js +120 -0
  10. package/dist/author/index.d.ts +36 -0
  11. package/dist/author/index.js +66 -0
  12. package/dist/author/passage.d.ts +27 -0
  13. package/dist/author/passage.js +127 -0
  14. package/dist/browser/assets/Symbola-4c507403.woff2 +0 -0
  15. package/dist/browser/author/index.js +34161 -0
  16. package/dist/browser/author/index.js.map +1 -0
  17. package/dist/browser/controller/index.js +64 -0
  18. package/dist/browser/controller/index.js.map +1 -0
  19. package/dist/browser/delivery/index.js +117 -0
  20. package/dist/browser/delivery/index.js.map +1 -0
  21. package/dist/browser/dist-BtyOUh0E.js +9737 -0
  22. package/dist/browser/dist-BtyOUh0E.js.map +1 -0
  23. package/dist/browser/dist-CiWlBjsz.js +92 -0
  24. package/dist/browser/dist-CiWlBjsz.js.map +1 -0
  25. package/dist/browser/editor-runtime/assets/Symbola-4c507403.woff2 +0 -0
  26. package/dist/browser/editor-runtime/author/index.js +17752 -0
  27. package/dist/browser/editor-runtime/author/index.js.map +1 -0
  28. package/dist/browser/editor-runtime/controller/index.js +64 -0
  29. package/dist/browser/editor-runtime/controller/index.js.map +1 -0
  30. package/dist/browser/editor-runtime/delivery/index.js +117 -0
  31. package/dist/browser/editor-runtime/delivery/index.js.map +1 -0
  32. package/dist/browser/editor-runtime/dist-Ba_6pEHz.js +9737 -0
  33. package/dist/browser/editor-runtime/dist-Ba_6pEHz.js.map +1 -0
  34. package/dist/browser/editor-runtime/dist-CiWlBjsz.js +92 -0
  35. package/dist/browser/editor-runtime/dist-CiWlBjsz.js.map +1 -0
  36. package/dist/browser/editor-runtime/print/index.js +51 -0
  37. package/dist/browser/editor-runtime/print/index.js.map +1 -0
  38. package/dist/browser/editor-runtime/rolldown-runtime-CHQKHQ89.js +32 -0
  39. package/dist/browser/editor-runtime/stimulus-tabs-41Y6tEn5.js +256 -0
  40. package/dist/browser/editor-runtime/stimulus-tabs-41Y6tEn5.js.map +1 -0
  41. package/dist/browser/print/index.js +51 -0
  42. package/dist/browser/print/index.js.map +1 -0
  43. package/dist/browser/rolldown-runtime-CWhphoD1.js +32 -0
  44. package/dist/browser/stimulus-tabs-DVM_5xjR.js +256 -0
  45. package/dist/browser/stimulus-tabs-DVM_5xjR.js.map +1 -0
  46. package/dist/controller/defaults.d.ts +23 -0
  47. package/dist/controller/defaults.js +17 -0
  48. package/dist/controller/index.d.ts +18 -0
  49. package/dist/controller/index.js +50 -0
  50. package/dist/delivery/index.d.ts +22 -0
  51. package/dist/delivery/index.js +83 -0
  52. package/dist/delivery/stimulus-tabs.d.ts +28 -0
  53. package/dist/delivery/stimulus-tabs.js +257 -0
  54. package/dist/index.d.ts +1 -0
  55. package/dist/index.iife.d.ts +8 -0
  56. package/dist/index.iife.js +145 -0
  57. package/dist/index.js +2 -0
  58. package/dist/print/index.d.ts +15 -0
  59. package/dist/print/index.js +49 -0
  60. package/dist/runtime-support.d.ts +12 -0
  61. package/dist/runtime-support.js +12 -0
  62. package/module/print.js +15919 -1
  63. package/module/print.js.map +1 -0
  64. package/package.json +104 -20
  65. package/print.js +2 -0
  66. package/CHANGELOG.json +0 -227
  67. package/CHANGELOG.md +0 -1548
  68. package/LICENSE.md +0 -5
  69. package/README.md +0 -3
  70. package/configure/CHANGELOG.md +0 -752
  71. package/configure/lib/common.js +0 -74
  72. package/configure/lib/common.js.map +0 -1
  73. package/configure/lib/defaults.js +0 -174
  74. package/configure/lib/defaults.js.map +0 -1
  75. package/configure/lib/design.js +0 -185
  76. package/configure/lib/design.js.map +0 -1
  77. package/configure/lib/index.js +0 -87
  78. package/configure/lib/index.js.map +0 -1
  79. package/configure/lib/passage.js +0 -194
  80. package/configure/lib/passage.js.map +0 -1
  81. package/configure/package.json +0 -23
  82. package/controller/CHANGELOG.json +0 -1
  83. package/controller/CHANGELOG.md +0 -121
  84. package/controller/lib/defaults.js +0 -23
  85. package/controller/lib/defaults.js.map +0 -1
  86. package/controller/lib/index.js +0 -80
  87. package/controller/lib/index.js.map +0 -1
  88. package/controller/package.json +0 -13
  89. package/docs/config-schema.json +0 -1325
  90. package/docs/config-schema.json.md +0 -974
  91. package/docs/demo/config.js +0 -8
  92. package/docs/demo/generate.js +0 -32
  93. package/docs/demo/index.html +0 -1
  94. package/docs/pie-schema.json +0 -775
  95. package/docs/pie-schema.json.md +0 -561
  96. package/lib/index.js +0 -144
  97. package/lib/index.js.map +0 -1
  98. package/lib/print.js +0 -78
  99. package/lib/print.js.map +0 -1
  100. package/lib/stimulus-tabs.js +0 -451
  101. package/lib/stimulus-tabs.js.map +0 -1
  102. package/module/configure.js +0 -1
  103. package/module/controller.js +0 -920
  104. package/module/demo.js +0 -57
  105. package/module/element.js +0 -1
  106. package/module/index.html +0 -21
  107. package/module/manifest.json +0 -14
  108. package/module/print-demo.js +0 -95
  109. package/module/print.html +0 -18
package/author.js ADDED
@@ -0,0 +1,2 @@
1
+ export { default } from './dist/author/index.js';
2
+ export * from './dist/author/index.js';
package/configure.js ADDED
@@ -0,0 +1,2 @@
1
+ export { default } from './dist/author/index.js';
2
+ export * from './dist/author/index.js';
package/controller.js ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/controller/index.js';
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/passage/configure/src/common.jsx
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
+ import React from 'react';
10
+ import PropTypes from 'prop-types';
11
+ export declare const RemoveAddButton: ({ label, type, onClick }: {
12
+ label: any;
13
+ type?: string | undefined;
14
+ onClick: any;
15
+ }) => React.JSX.Element;
16
+ export declare const PassageButton: any;
17
+ export declare const ConfirmationDialog: {
18
+ ({ content, cancel, title, ok, open, onOk, onCancel }: {
19
+ content: any;
20
+ cancel: any;
21
+ title: any;
22
+ ok: any;
23
+ open: any;
24
+ onOk: any;
25
+ onCancel: any;
26
+ }): React.JSX.Element;
27
+ propTypes: {
28
+ content: PropTypes.Validator<string>;
29
+ title: PropTypes.Validator<string>;
30
+ cancel: PropTypes.Validator<string>;
31
+ ok: PropTypes.Validator<string>;
32
+ open: PropTypes.Validator<boolean>;
33
+ onCancel: PropTypes.Validator<(...args: any[]) => any>;
34
+ onOk: PropTypes.Validator<(...args: any[]) => any>;
35
+ };
36
+ };
@@ -0,0 +1,57 @@
1
+ import "react";
2
+ import e from "prop-types";
3
+ import { styled as t } from "@mui/material/styles";
4
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
+ import { Button as i } from "@mui/material";
6
+ import a from "@mui/icons-material/RemoveCircle";
7
+ import o from "@mui/icons-material/AddCircle";
8
+ import s from "@mui/material/Dialog";
9
+ import c from "@mui/material/DialogTitle";
10
+ import l from "@mui/material/DialogContent";
11
+ import u from "@mui/material/DialogContentText";
12
+ import d from "@mui/material/DialogActions";
13
+ //#region src/author/common.tsx
14
+ var f = ({ label: e, type: t = "add", onClick: s }) => /* @__PURE__ */ r(i, {
15
+ color: "primary",
16
+ size: "small",
17
+ onClick: s,
18
+ children: [/* @__PURE__ */ n(t === "add" ? o : a, {
19
+ fontSize: "small",
20
+ color: "primary",
21
+ style: { marginRight: 4 }
22
+ }), e]
23
+ }), p = t(f)({
24
+ textDecoration: "underline",
25
+ "&:hover": {
26
+ textDecoration: "underline",
27
+ backgroundColor: "transparent"
28
+ },
29
+ display: "flex",
30
+ alignItems: "center"
31
+ }), m = ({ content: e, cancel: t, title: a, ok: o, open: f, onOk: p, onCancel: m }) => /* @__PURE__ */ r(s, {
32
+ open: f,
33
+ children: [
34
+ /* @__PURE__ */ n(c, { children: a }),
35
+ /* @__PURE__ */ n(l, { children: /* @__PURE__ */ n(u, { children: e }) }),
36
+ /* @__PURE__ */ r(d, { children: [p && /* @__PURE__ */ n(i, {
37
+ onClick: p,
38
+ color: "primary",
39
+ children: o
40
+ }), m && /* @__PURE__ */ n(i, {
41
+ onClick: m,
42
+ color: "primary",
43
+ children: t
44
+ })] })
45
+ ]
46
+ });
47
+ m.propTypes = {
48
+ content: e.string.isRequired,
49
+ title: e.string.isRequired,
50
+ cancel: e.string.isRequired,
51
+ ok: e.string.isRequired,
52
+ open: e.bool.isRequired,
53
+ onCancel: e.func.isRequired,
54
+ onOk: e.func.isRequired
55
+ };
56
+ //#endregion
57
+ export { m as ConfirmationDialog, p as PassageButton, f as RemoveAddButton };
@@ -0,0 +1,175 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/passage/configure/src/defaults.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
+ declare const _default: {
10
+ model: {
11
+ authorEnabled: boolean;
12
+ passages: {
13
+ teacherInstructions: string;
14
+ title: string;
15
+ subtitle: string;
16
+ author: string;
17
+ text: string;
18
+ }[];
19
+ subtitleEnabled: boolean;
20
+ teacherInstructionsEnabled: boolean;
21
+ textEnabled: boolean;
22
+ titleEnabled: boolean;
23
+ };
24
+ configuration: {
25
+ baseInputConfiguration: {
26
+ audio: {
27
+ disabled: boolean;
28
+ };
29
+ video: {
30
+ disabled: boolean;
31
+ };
32
+ image: {
33
+ disabled: boolean;
34
+ };
35
+ h3: {
36
+ disabled: boolean;
37
+ };
38
+ blockquote: {
39
+ disabled: boolean;
40
+ };
41
+ textAlign: {
42
+ disabled: boolean;
43
+ };
44
+ showParagraphs: {
45
+ disabled: boolean;
46
+ };
47
+ separateParagraphs: {
48
+ disabled: boolean;
49
+ };
50
+ };
51
+ settingsPanelDisabled: boolean;
52
+ title: {
53
+ settings: boolean;
54
+ label: string;
55
+ inputConfiguration: {
56
+ audio: {
57
+ disabled: boolean;
58
+ };
59
+ video: {
60
+ disabled: boolean;
61
+ };
62
+ image: {
63
+ disabled: boolean;
64
+ };
65
+ textAlign: {
66
+ disabled: boolean;
67
+ };
68
+ };
69
+ required: boolean;
70
+ };
71
+ subtitle: {
72
+ settings: boolean;
73
+ label: string;
74
+ inputConfiguration: {
75
+ audio: {
76
+ disabled: boolean;
77
+ };
78
+ video: {
79
+ disabled: boolean;
80
+ };
81
+ image: {
82
+ disabled: boolean;
83
+ };
84
+ textAlign: {
85
+ disabled: boolean;
86
+ };
87
+ };
88
+ required: boolean;
89
+ };
90
+ author: {
91
+ settings: boolean;
92
+ label: string;
93
+ inputConfiguration: {
94
+ audio: {
95
+ disabled: boolean;
96
+ };
97
+ video: {
98
+ disabled: boolean;
99
+ };
100
+ image: {
101
+ disabled: boolean;
102
+ };
103
+ };
104
+ required: boolean;
105
+ };
106
+ text: {
107
+ settings: boolean;
108
+ label: string;
109
+ inputConfiguration: {
110
+ audio: {
111
+ disabled: boolean;
112
+ };
113
+ video: {
114
+ disabled: boolean;
115
+ };
116
+ image: {
117
+ disabled: boolean;
118
+ };
119
+ h3: {
120
+ disabled: boolean;
121
+ };
122
+ blockquote: {
123
+ disabled: boolean;
124
+ };
125
+ textAlign: {
126
+ disabled: boolean;
127
+ };
128
+ };
129
+ required: boolean;
130
+ };
131
+ teacherInstructions: {
132
+ settings: boolean;
133
+ label: string;
134
+ inputConfiguration: {
135
+ audio: {
136
+ disabled: boolean;
137
+ };
138
+ video: {
139
+ disabled: boolean;
140
+ };
141
+ image: {
142
+ disabled: boolean;
143
+ };
144
+ };
145
+ required: boolean;
146
+ };
147
+ maxImageWidth: {
148
+ teacherInstructions: number;
149
+ text: number;
150
+ };
151
+ maxImageHeight: {
152
+ teacherInstructions: number;
153
+ text: number;
154
+ };
155
+ mathMlOptions: {
156
+ mmlOutput: boolean;
157
+ mmlEditing: boolean;
158
+ };
159
+ language: {
160
+ settings: boolean;
161
+ label: string;
162
+ enabled: boolean;
163
+ };
164
+ languageChoices: {
165
+ label: string;
166
+ options: never[];
167
+ };
168
+ additionalPassage: {
169
+ settings: boolean;
170
+ label: string;
171
+ enabled: boolean;
172
+ };
173
+ };
174
+ };
175
+ export default _default;
@@ -0,0 +1,113 @@
1
+ //#region src/author/defaults.ts
2
+ var e = {
3
+ model: {
4
+ authorEnabled: !0,
5
+ passages: [{
6
+ teacherInstructions: "",
7
+ title: "",
8
+ subtitle: "",
9
+ author: "",
10
+ text: ""
11
+ }],
12
+ subtitleEnabled: !0,
13
+ teacherInstructionsEnabled: !0,
14
+ textEnabled: !0,
15
+ titleEnabled: !0
16
+ },
17
+ configuration: {
18
+ baseInputConfiguration: {
19
+ audio: { disabled: !1 },
20
+ video: { disabled: !1 },
21
+ image: { disabled: !1 },
22
+ h3: { disabled: !0 },
23
+ blockquote: { disabled: !0 },
24
+ textAlign: { disabled: !0 },
25
+ showParagraphs: { disabled: !1 },
26
+ separateParagraphs: { disabled: !0 }
27
+ },
28
+ settingsPanelDisabled: !1,
29
+ title: {
30
+ settings: !0,
31
+ label: "Title",
32
+ inputConfiguration: {
33
+ audio: { disabled: !0 },
34
+ video: { disabled: !0 },
35
+ image: { disabled: !0 },
36
+ textAlign: { disabled: !1 }
37
+ },
38
+ required: !0
39
+ },
40
+ subtitle: {
41
+ settings: !0,
42
+ label: "Subtitle",
43
+ inputConfiguration: {
44
+ audio: { disabled: !0 },
45
+ video: { disabled: !0 },
46
+ image: { disabled: !0 },
47
+ textAlign: { disabled: !1 }
48
+ },
49
+ required: !1
50
+ },
51
+ author: {
52
+ settings: !0,
53
+ label: "Author",
54
+ inputConfiguration: {
55
+ audio: { disabled: !0 },
56
+ video: { disabled: !0 },
57
+ image: { disabled: !0 }
58
+ },
59
+ required: !1
60
+ },
61
+ text: {
62
+ settings: !0,
63
+ label: "Text",
64
+ inputConfiguration: {
65
+ audio: { disabled: !1 },
66
+ video: { disabled: !1 },
67
+ image: { disabled: !1 },
68
+ h3: { disabled: !1 },
69
+ blockquote: { disabled: !1 },
70
+ textAlign: { disabled: !1 }
71
+ },
72
+ required: !0
73
+ },
74
+ teacherInstructions: {
75
+ settings: !0,
76
+ label: "Teacher Instructions",
77
+ inputConfiguration: {
78
+ audio: { disabled: !1 },
79
+ video: { disabled: !1 },
80
+ image: { disabled: !1 }
81
+ },
82
+ required: !1
83
+ },
84
+ maxImageWidth: {
85
+ teacherInstructions: 300,
86
+ text: 300
87
+ },
88
+ maxImageHeight: {
89
+ teacherInstructions: 300,
90
+ text: 300
91
+ },
92
+ mathMlOptions: {
93
+ mmlOutput: !1,
94
+ mmlEditing: !1
95
+ },
96
+ language: {
97
+ settings: !1,
98
+ label: "Specify Language",
99
+ enabled: !1
100
+ },
101
+ languageChoices: {
102
+ label: "Language Choices",
103
+ options: []
104
+ },
105
+ additionalPassage: {
106
+ settings: !0,
107
+ label: "Additional Passage",
108
+ enabled: !1
109
+ }
110
+ }
111
+ };
112
+ //#endregion
113
+ export { e as default };
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/passage/configure/src/design.jsx
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
+ import React from 'react';
10
+ import PropTypes from 'prop-types';
11
+ export declare class Main extends React.Component {
12
+ static propTypes: {
13
+ onModelChanged: PropTypes.Validator<(...args: any[]) => any>;
14
+ onConfigurationChanged: PropTypes.Requireable<(...args: any[]) => any>;
15
+ model: PropTypes.Validator<object>;
16
+ configuration: PropTypes.Validator<object>;
17
+ imageSupport: PropTypes.Validator<object>;
18
+ uploadSoundSupport: PropTypes.Validator<object>;
19
+ classes: PropTypes.Validator<object>;
20
+ };
21
+ constructor(props: any);
22
+ getInnerText: (html: any) => any;
23
+ onDelete: any;
24
+ removeAdditionalPassage: any;
25
+ addAdditionalPassage: any;
26
+ render(): React.JSX.Element;
27
+ }
28
+ export default Main;
@@ -0,0 +1,120 @@
1
+ import { ConfirmationDialog as e, PassageButton as t } from "./common.js";
2
+ import { PassageComponent as n } from "./passage.js";
3
+ import r from "react";
4
+ import i from "prop-types";
5
+ import { styled as a } from "@mui/material/styles";
6
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
7
+ import { layout as c, settings as l } from "@pie-lib/config-ui";
8
+ import u from "@mui/material/Typography";
9
+ //#region src/author/design.tsx
10
+ var { Panel: d, toggle: f, dropdown: p } = l, m = a(u)(({ theme: e }) => ({
11
+ paddingTop: e.spacing(2),
12
+ marginBottom: e.spacing(2)
13
+ })), h = class extends r.Component {
14
+ static propTypes = {
15
+ onModelChanged: i.func.isRequired,
16
+ onConfigurationChanged: i.func,
17
+ model: i.object.isRequired,
18
+ configuration: i.object.isRequired,
19
+ imageSupport: i.object.isRequired,
20
+ uploadSoundSupport: i.object.isRequired,
21
+ classes: i.object.isRequired
22
+ };
23
+ constructor(e) {
24
+ super(e), this.state = {
25
+ showConfirmationDialog: !1,
26
+ indexToRemove: -1
27
+ };
28
+ }
29
+ getInnerText = (e) => (e || "").replaceAll(/<[^>]*>/g, "");
30
+ onDelete = (e, t, n) => {
31
+ let r = e.passages;
32
+ r.splice(t, 1), n({
33
+ ...e,
34
+ passages: r
35
+ }), this.setState({
36
+ showConfirmationDialog: !1,
37
+ indexToRemove: -1
38
+ });
39
+ };
40
+ removeAdditionalPassage = (e) => {
41
+ let { model: t = {}, onModelChanged: n } = this.props, { passages: r = [] } = t, { teacherInstructions: i = "", title: a = "", subtitle: o = "", author: s = "", text: c = "" } = r[e];
42
+ this.getInnerText(i).trim() || this.getInnerText(a).trim() || this.getInnerText(o).trim() || this.getInnerText(s).trim() || this.getInnerText(c).trim() ? this.setState({
43
+ showConfirmationDialog: !0,
44
+ indexToRemove: e
45
+ }) : this.onDelete(t, e, n);
46
+ };
47
+ addAdditionalPassage = () => {
48
+ let { model: e, onModelChanged: t } = this.props, n = [...e.passages, {
49
+ teacherInstructions: "",
50
+ title: "",
51
+ subtitle: "",
52
+ author: "",
53
+ text: ""
54
+ }];
55
+ t({
56
+ ...e,
57
+ passages: n
58
+ });
59
+ };
60
+ render() {
61
+ let { model: i, configuration: a, imageSupport: l, onConfigurationChanged: u, onModelChanged: h, uploadSoundSupport: g } = this.props, { settingsPanelDisabled: _, language: v = {}, languageChoices: y = {}, teacherInstructions: b = {}, title: x = {}, subtitle: S = {}, text: C = {}, author: w = {}, additionalPassage: T = {} } = a || {}, { extraCSSRules: E, passages: D } = i || {}, O = {
62
+ titleEnabled: x && x.settings && f(x.label),
63
+ subtitleEnabled: S && S.settings && f(S.label),
64
+ authorEnabled: w && w.settings && f(w.label),
65
+ textEnabled: C && C.settings && f(C.label),
66
+ "additionalPassage.enabled": T && T.settings && f(T.label, !0)
67
+ }, k = {
68
+ teacherInstructionsEnabled: b && b.settings && f(b.label),
69
+ "language.enabled": v && v.settings && f(v.label, !0),
70
+ language: v && v.settings && v.enabled && p(y.label, y.options)
71
+ }, A = `${T.label} will be deleted`, { indexToRemove: j, showConfirmationDialog: M } = this.state;
72
+ return /* @__PURE__ */ s(c.ConfigLayout, {
73
+ extraCSSRules: E,
74
+ hideSettings: _,
75
+ settings: /* @__PURE__ */ o(d, {
76
+ model: i,
77
+ configuration: a,
78
+ onChangeModel: (e) => h(e),
79
+ onChangeConfiguration: (e) => u(e),
80
+ groups: {
81
+ Settings: O,
82
+ Properties: k
83
+ }
84
+ }),
85
+ children: [D.map((e, c) => /* @__PURE__ */ s(r.Fragment, { children: [
86
+ c > 0 && /* @__PURE__ */ o(m, {
87
+ variant: "h5",
88
+ children: T.label
89
+ }),
90
+ /* @__PURE__ */ o(n, {
91
+ imageSupport: l,
92
+ uploadSoundSupport: g,
93
+ model: i,
94
+ configuration: a,
95
+ passageIndex: c,
96
+ onModelChanged: h
97
+ }),
98
+ c > 0 && T.enabled && /* @__PURE__ */ o(t, {
99
+ type: "remove",
100
+ label: `Remove ${T.label}`,
101
+ onClick: () => this.removeAdditionalPassage(c)
102
+ }),
103
+ c === 0 && T.enabled && D.length < 2 && /* @__PURE__ */ o(t, {
104
+ label: `Add ${T.label}`,
105
+ onClick: this.addAdditionalPassage
106
+ })
107
+ ] }, c)), /* @__PURE__ */ o(e, {
108
+ open: M,
109
+ title: "Warning",
110
+ content: A,
111
+ cancel: "Cancel",
112
+ ok: "Ok",
113
+ onCancel: () => this.setState({ showConfirmationDialog: !1 }),
114
+ onOk: () => this.onDelete(i, j, h)
115
+ })]
116
+ });
117
+ }
118
+ };
119
+ //#endregion
120
+ export { h as Main, h as default };
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/passage/configure/src/index.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 default class PassageConfigure extends HTMLElement {
10
+ static createDefaultModel: (model?: {}) => {
11
+ authorEnabled: boolean;
12
+ passages: {
13
+ teacherInstructions: string;
14
+ title: string;
15
+ subtitle: string;
16
+ author: string;
17
+ text: string;
18
+ }[];
19
+ subtitleEnabled: boolean;
20
+ teacherInstructionsEnabled: boolean;
21
+ textEnabled: boolean;
22
+ titleEnabled: boolean;
23
+ };
24
+ constructor();
25
+ set model(m: any);
26
+ set configuration(c: any);
27
+ connectedCallback(): void;
28
+ modelChanged(m: any): void;
29
+ onConfigurationChanged(c: any): void;
30
+ insertImage(handler: any): void;
31
+ onDeleteImage(src: any, done: any): void;
32
+ insertSound(handler: any): void;
33
+ onDeleteSound(src: any, done: any): void;
34
+ render(): void;
35
+ disconnectedCallback(): void;
36
+ }
@@ -0,0 +1,66 @@
1
+ import { Main as e } from "./design.js";
2
+ import t from "./defaults.js";
3
+ import n from "react";
4
+ import { createRoot as r } from "react-dom/client";
5
+ import { DeleteImageEvent as i, DeleteSoundEvent as a, InsertImageEvent as o, InsertSoundEvent as s, ModelUpdatedEvent as c } from "@pie-element/shared-configure-events";
6
+ //#region src/author/index.ts
7
+ var l = class l extends HTMLElement {
8
+ static createDefaultModel = (e = {}) => ({
9
+ ...t.model,
10
+ ...e
11
+ });
12
+ constructor() {
13
+ super(), this._root = null, this._model = l.createDefaultModel(), this._configuration = t.configuration;
14
+ }
15
+ set model(e) {
16
+ this._model = l.createDefaultModel(e), this.render();
17
+ }
18
+ set configuration(e) {
19
+ this._configuration = e, this.render();
20
+ }
21
+ connectedCallback() {
22
+ this.render();
23
+ }
24
+ modelChanged(e) {
25
+ this._model = e, this.dispatchEvent(new c(this._model), !0), this.render();
26
+ }
27
+ onConfigurationChanged(e) {
28
+ this._configuration = e, this.render();
29
+ }
30
+ insertImage(e) {
31
+ this.dispatchEvent(new o(e));
32
+ }
33
+ onDeleteImage(e, t) {
34
+ this.dispatchEvent(new i(e, t));
35
+ }
36
+ insertSound(e) {
37
+ this.dispatchEvent(new s(e));
38
+ }
39
+ onDeleteSound(e, t) {
40
+ this.dispatchEvent(new a(e, t));
41
+ }
42
+ render() {
43
+ if (this._model) {
44
+ let t = n.createElement(e, {
45
+ model: this._model,
46
+ configuration: this._configuration,
47
+ onModelChanged: this.modelChanged.bind(this),
48
+ onConfigurationChanged: this.onConfigurationChanged.bind(this),
49
+ imageSupport: {
50
+ add: this.insertImage.bind(this),
51
+ delete: this.onDeleteImage.bind(this)
52
+ },
53
+ uploadSoundSupport: {
54
+ add: this.insertSound.bind(this),
55
+ delete: this.onDeleteSound.bind(this)
56
+ }
57
+ });
58
+ this._root ||= r(this), this._root.render(t);
59
+ }
60
+ }
61
+ disconnectedCallback() {
62
+ this._root &&= (this._root.unmount(), null);
63
+ }
64
+ };
65
+ //#endregion
66
+ export { l as default };
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/passage/configure/src/passage.jsx
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
+ import React from 'react';
10
+ import PropTypes from 'prop-types';
11
+ export declare class PassageComponent extends React.Component {
12
+ static propTypes: {
13
+ onModelChanged: PropTypes.Validator<(...args: any[]) => any>;
14
+ model: PropTypes.Validator<object>;
15
+ configuration: PropTypes.Validator<object>;
16
+ imageSupport: PropTypes.Validator<object>;
17
+ passageIndex: PropTypes.Validator<number>;
18
+ uploadSoundSupport: PropTypes.Validator<object>;
19
+ };
20
+ static defaultProps: {
21
+ passageIndex: number;
22
+ };
23
+ constructor(props: any);
24
+ handleChange: any;
25
+ render(): React.JSX.Element;
26
+ }
27
+ export default PassageComponent;