@pie-element/inline-dropdown 11.0.4-next.20261011174919 → 11.0.4

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.
@@ -1,155 +1,156 @@
1
+ import type { ConfigureLanguageOptionsProp } from '@pie-element/shared-types';
1
2
  declare const _default: {
2
3
  model: {
3
4
  alternateResponse: {};
4
- choiceRationaleEnabled: boolean;
5
+ choiceRationaleEnabled: true;
5
6
  choices: {};
6
- disabled: boolean;
7
+ disabled: false;
7
8
  displayType: string;
8
9
  markup: string;
9
- mode: string;
10
+ mode: "gather";
10
11
  prompt: string;
11
- promptEnabled: boolean;
12
+ promptEnabled: true;
12
13
  rationale: string;
13
- rationaleEnabled: boolean;
14
- shuffle: boolean;
15
- studentInstructionsEnabled: boolean;
14
+ rationaleEnabled: true;
15
+ shuffle: true;
16
+ studentInstructionsEnabled: true;
16
17
  teacherInstructions: string;
17
- teacherInstructionsEnabled: boolean;
18
- toolbarEditorPosition: string;
18
+ teacherInstructionsEnabled: true;
19
+ toolbarEditorPosition: "bottom";
19
20
  };
20
21
  configuration: {
21
22
  baseInputConfiguration: {
22
23
  audio: {
23
- disabled: boolean;
24
+ disabled: false;
24
25
  };
25
26
  video: {
26
- disabled: boolean;
27
+ disabled: false;
27
28
  };
28
29
  image: {
29
- disabled: boolean;
30
+ disabled: false;
30
31
  };
31
32
  h3: {
32
- disabled: boolean;
33
+ disabled: true;
33
34
  };
34
35
  blockquote: {
35
- disabled: boolean;
36
+ disabled: true;
36
37
  };
37
38
  textAlign: {
38
- disabled: boolean;
39
+ disabled: true;
39
40
  };
40
41
  showParagraphs: {
41
- disabled: boolean;
42
+ disabled: false;
42
43
  };
43
44
  separateParagraphs: {
44
- disabled: boolean;
45
+ disabled: true;
45
46
  };
46
47
  };
47
48
  prompt: {
48
- settings: boolean;
49
+ settings: true;
49
50
  label: string;
50
- required: boolean;
51
+ required: false;
51
52
  inputConfiguration: {
52
53
  audio: {
53
- disabled: boolean;
54
+ disabled: false;
54
55
  };
55
56
  video: {
56
- disabled: boolean;
57
+ disabled: false;
57
58
  };
58
59
  image: {
59
- disabled: boolean;
60
+ disabled: false;
60
61
  };
61
62
  };
62
63
  };
63
64
  responseAreaInputConfiguration: {
64
65
  inputConfiguration: {
65
66
  audio: {
66
- disabled: boolean;
67
+ disabled: true;
67
68
  };
68
69
  video: {
69
- disabled: boolean;
70
+ disabled: true;
70
71
  };
71
72
  image: {
72
- disabled: boolean;
73
+ disabled: true;
73
74
  };
74
75
  table: {
75
- disabled: boolean;
76
+ disabled: true;
76
77
  };
77
78
  ul_list: {
78
- disabled: boolean;
79
+ disabled: true;
79
80
  };
80
81
  ol_list: {
81
- disabled: boolean;
82
+ disabled: true;
82
83
  };
83
84
  };
84
85
  };
85
- settingsPanelDisabled: boolean;
86
+ settingsPanelDisabled: false;
86
87
  spellCheck: {
87
88
  label: string;
88
- settings: boolean;
89
- enabled: boolean;
89
+ settings: false;
90
+ enabled: true;
90
91
  };
91
92
  lockChoiceOrder: {
92
- settings: boolean;
93
+ settings: true;
93
94
  label: string;
94
95
  };
95
96
  partialScoring: {
96
- settings: boolean;
97
+ settings: false;
97
98
  label: string;
98
99
  };
99
100
  rationale: {
100
- settings: boolean;
101
+ settings: true;
101
102
  label: string;
102
- required: boolean;
103
+ required: false;
103
104
  inputConfiguration: {
104
105
  audio: {
105
- disabled: boolean;
106
+ disabled: false;
106
107
  };
107
108
  video: {
108
- disabled: boolean;
109
+ disabled: false;
109
110
  };
110
111
  image: {
111
- disabled: boolean;
112
+ disabled: false;
112
113
  };
113
114
  textAlign: {
114
- disabled: boolean;
115
+ disabled: true;
115
116
  };
116
117
  };
117
118
  };
118
119
  teacherInstructions: {
119
- settings: boolean;
120
+ settings: true;
120
121
  label: string;
121
- required: boolean;
122
+ required: false;
122
123
  inputConfiguration: {
123
124
  audio: {
124
- disabled: boolean;
125
+ disabled: false;
125
126
  };
126
127
  video: {
127
- disabled: boolean;
128
+ disabled: false;
128
129
  };
129
130
  image: {
130
- disabled: boolean;
131
+ disabled: false;
131
132
  };
132
133
  };
133
134
  };
134
135
  template: {
135
136
  inputConfiguration: {
136
137
  audio: {
137
- disabled: boolean;
138
+ disabled: false;
138
139
  };
139
140
  video: {
140
- disabled: boolean;
141
+ disabled: false;
141
142
  };
142
143
  image: {
143
- disabled: boolean;
144
+ disabled: false;
144
145
  };
145
146
  };
146
147
  };
147
148
  choiceRationale: {
148
- settings: boolean;
149
+ settings: true;
149
150
  label: string;
150
151
  };
151
152
  toolbarEditorPosition: {
152
- settings: boolean;
153
+ settings: false;
153
154
  label: string;
154
155
  };
155
156
  maxResponseAreas: number;
@@ -165,21 +166,21 @@ declare const _default: {
165
166
  rationale: number;
166
167
  };
167
168
  withRubric: {
168
- settings: boolean;
169
+ settings: false;
169
170
  label: string;
170
171
  };
171
172
  mathMlOptions: {
172
- mmlOutput: boolean;
173
- mmlEditing: boolean;
173
+ mmlOutput: false;
174
+ mmlEditing: false;
174
175
  };
175
176
  language: {
176
- settings: boolean;
177
+ settings: false;
177
178
  label: string;
178
- enabled: boolean;
179
+ enabled: false;
179
180
  };
180
181
  languageChoices: {
181
182
  label: string;
182
- options: never[];
183
+ options: ConfigureLanguageOptionsProp[];
183
184
  };
184
185
  };
185
186
  };
@@ -1,35 +1,24 @@
1
+ import { type DeleteDone, type ImageHandler, type SoundHandler } from '@pie-element/shared-configure-events';
2
+ import { type AuthorModel } from './main.js';
3
+ import type { InlineDropdownConfiguration, InlineDropdownModel } from '../types.js';
1
4
  export default class InlineDropdown extends HTMLElement {
2
- static prepareModel: (model?: {}) => {
3
- slateMarkup: any;
4
- markup: string;
5
- alternateResponse: {};
6
- choiceRationaleEnabled: boolean;
7
- choices: {};
8
- disabled: boolean;
9
- displayType: string;
10
- mode: string;
11
- prompt: string;
12
- promptEnabled: boolean;
13
- rationale: string;
14
- rationaleEnabled: boolean;
15
- shuffle: boolean;
16
- studentInstructionsEnabled: boolean;
17
- teacherInstructions: string;
18
- teacherInstructionsEnabled: boolean;
19
- toolbarEditorPosition: string;
20
- };
5
+ private _root;
6
+ private _model;
7
+ private _configuration;
8
+ private _disableSidePanel?;
9
+ static prepareModel: (model?: Partial<InlineDropdownModel>) => AuthorModel;
21
10
  constructor();
22
- set model(s: any);
23
- set configuration(c: any);
24
- set disableSidePanel(s: any);
25
- dispatchModelUpdated(reset: any): void;
26
- onModelChanged(m: any, reset: any): void;
27
- onConfigurationChanged(c: any): void;
11
+ set model(s: Partial<InlineDropdownModel>);
12
+ set configuration(c: InlineDropdownConfiguration);
13
+ set disableSidePanel(s: boolean);
14
+ dispatchModelUpdated(reset?: boolean): void;
15
+ onModelChanged(m: Partial<InlineDropdownModel>, reset?: boolean): void;
16
+ onConfigurationChanged(c: InlineDropdownConfiguration): void;
28
17
  /** @param {done, progress, file} handler */
29
- insertImage(handler: any): void;
30
- onDeleteImage(src: any, done: any): void;
31
- insertSound(handler: any): void;
32
- onDeleteSound(src: any, done: any): void;
18
+ insertImage(handler: ImageHandler): void;
19
+ onDeleteImage(src: string, done: DeleteDone): void;
20
+ insertSound(handler: SoundHandler): void;
21
+ onDeleteSound(src: string, done: DeleteDone): void;
33
22
  _render(): void;
34
23
  connectedCallback(): void;
35
24
  disconnectedCallback(): void;
@@ -8,6 +8,10 @@ import { DeleteImageEvent as s, DeleteSoundEvent as c, InsertImageEvent as l, In
8
8
  import f from "debug";
9
9
  //#region src/author/index.ts
10
10
  var p = f("multiple-choice:configure"), m = class f extends HTMLElement {
11
+ _root;
12
+ _model;
13
+ _configuration;
14
+ _disableSidePanel;
11
15
  static prepareModel = (e = {}) => {
12
16
  let i = {
13
17
  ...t.model,
@@ -26,7 +30,8 @@ var p = f("multiple-choice:configure"), m = class f extends HTMLElement {
26
30
  this._model = f.prepareModel(e), this._render();
27
31
  }
28
32
  set configuration(e) {
29
- this._configuration = o(e, t.configuration), e.language?.enabled ? e.languageChoices?.options?.length && (this._model.language = e.languageChoices.options[0].value) : e.language.settings && this._model.language ? (this._configuration.language.enabled = !0, (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) && (this._configuration.languageChoices.options = []), this._configuration.languageChoices.options.find((e) => e.value === this._model.language) || this._configuration.languageChoices.options.push({
33
+ let n = o(e, t.configuration);
34
+ this._configuration = n, e.language?.enabled ? e.languageChoices?.options?.length && (this._model.language = e.languageChoices.options[0].value) : e.language.settings && this._model.language ? (n.language.enabled = !0, (!n.languageChoices.options || !n.languageChoices.options.length) && (n.languageChoices.options = []), n.languageChoices.options.find((e) => e.value === this._model.language) || n.languageChoices.options.push({
30
35
  value: this._model.language,
31
36
  label: this._model.language
32
37
  })) : delete this._model.language, this._render();
@@ -14,6 +14,9 @@ declare class RespAreaToolbar extends React.Component {
14
14
  onToolbarDone: PropTypes.Validator<(...args: any[]) => any>;
15
15
  editor: PropTypes.Requireable<object>;
16
16
  spellCheck: PropTypes.Requireable<boolean>;
17
+ mathMlOptions: PropTypes.Requireable<object>;
18
+ baseInputConfiguration: PropTypes.Requireable<object>;
19
+ responseAreaInputConfiguration: PropTypes.Requireable<object>;
17
20
  };
18
21
  clickedInside: boolean;
19
22
  preventDone: boolean;
@@ -127,7 +127,10 @@ var _ = u("div")(() => ({
127
127
  onSelectChoice: i.func.isRequired,
128
128
  onToolbarDone: i.func.isRequired,
129
129
  editor: i.object,
130
- spellCheck: i.bool
130
+ spellCheck: i.bool,
131
+ mathMlOptions: i.object,
132
+ baseInputConfiguration: i.object,
133
+ responseAreaInputConfiguration: i.object
131
134
  };
132
135
  clickedInside = !1;
133
136
  preventDone = !1;
@@ -1,41 +1,65 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
- export declare class Main extends React.Component {
4
- static propTypes: {
5
- configuration: PropTypes.Validator<object>;
6
- model: PropTypes.Validator<object>;
7
- disableSidePanel: PropTypes.Requireable<boolean>;
8
- onModelChanged: PropTypes.Validator<(...args: any[]) => any>;
9
- onConfigurationChanged: PropTypes.Validator<(...args: any[]) => any>;
10
- imageSupport: PropTypes.Requireable<PropTypes.InferProps<{
11
- add: PropTypes.Validator<(...args: any[]) => any>;
12
- delete: PropTypes.Validator<(...args: any[]) => any>;
13
- }>>;
14
- uploadSoundSupport: PropTypes.Requireable<PropTypes.InferProps<{
15
- add: PropTypes.Validator<(...args: any[]) => any>;
16
- delete: PropTypes.Validator<(...args: any[]) => any>;
17
- }>>;
18
- };
19
- state: {
20
- warning: {
21
- open: boolean;
22
- };
2
+ import type { DeleteDone, ImageHandler, SoundHandler } from '@pie-element/shared-configure-events';
3
+ import type { InlineDropdownValidationErrors } from '../controller/index.js';
4
+ import type { Choice, Choices, InlineDropdownConfiguration, InlineDropdownModel } from '../types.js';
5
+ /** The model the author edits; the host sets `errors` from the controller's `validate()`. */
6
+ export type AuthorModel = Partial<InlineDropdownModel> & {
7
+ choices: Choices;
8
+ markup: string;
9
+ slateMarkup: string;
10
+ errors?: InlineDropdownValidationErrors;
11
+ };
12
+ type MediaSupport<Handler> = {
13
+ add: (handler: Handler) => void;
14
+ delete: (src: string, done: DeleteDone) => void;
15
+ };
16
+ export type MainProps = {
17
+ model: AuthorModel;
18
+ configuration: InlineDropdownConfiguration;
19
+ disableSidePanel?: boolean;
20
+ onModelChanged: (model: Partial<AuthorModel>, reset?: boolean) => void;
21
+ onConfigurationChanged: (configuration: InlineDropdownConfiguration, reset?: boolean) => void;
22
+ imageSupport?: MediaSupport<ImageHandler>;
23
+ uploadSoundSupport?: MediaSupport<SoundHandler>;
24
+ };
25
+ type Warning = {
26
+ open: boolean;
27
+ text?: string;
28
+ onClose?: () => void;
29
+ onConfirm?: () => void;
30
+ };
31
+ type State = {
32
+ warning: Warning;
33
+ /** The choices of each response area as the toolbar edits them; set on mount */
34
+ respAreaChoices?: Choices;
35
+ };
36
+ /** A response area node in the template editor */
37
+ type ResponseAreaNode = {
38
+ attrs: {
39
+ index: string;
23
40
  };
41
+ };
42
+ /** The template editor; it keeps a response area's toolbar open while this holds the area's index */
43
+ type TemplateEditor = {
44
+ _holdInlineDropdownToolbarIndex?: string;
45
+ };
46
+ export declare class Main extends React.Component<MainProps, State> {
47
+ state: State;
24
48
  componentDidMount(): void;
25
- UNSAFE_componentWillReceiveProps(nProps: any): void;
49
+ UNSAFE_componentWillReceiveProps(nProps: MainProps): void;
26
50
  componentDidUpdate(): void;
27
- onModelChange: any;
28
- onPromptChanged: any;
29
- onRationaleChanged: any;
30
- onChoiceRationaleChanged: any;
31
- onTeacherInstructionsChanged: any;
32
- onMarkupChanged: any;
33
- onCheck: any;
34
- validateResponseAreaClose: any;
35
- onChange: any;
36
- onAddChoice: any;
37
- onRemoveChoice: any;
38
- onSelectChoice: any;
51
+ onModelChange: (newVal: Partial<AuthorModel>) => void;
52
+ onPromptChanged: (prompt: string) => void;
53
+ onRationaleChanged: (rationale: string) => void;
54
+ onChoiceRationaleChanged: (index: string, choice: Choice) => void;
55
+ onTeacherInstructionsChanged: (teacherInstructions: string) => void;
56
+ onMarkupChanged: (slateMarkup: string) => void;
57
+ onCheck: (confirmCallback: () => void, cancelCallback: () => void) => void;
58
+ validateResponseAreaClose: (node: ResponseAreaNode, pos: number, editor: TemplateEditor, closeToolbar: () => void, onCancel: () => void) => void;
59
+ onChange: (markup: string) => void;
60
+ onAddChoice: (index: string, label: string, choiceIndex: number) => void;
61
+ onRemoveChoice: (respIndex: string, index: number) => void;
62
+ onSelectChoice: (respIndex: string, selectedIndex: number) => void;
39
63
  render(): React.JSX.Element;
40
64
  }
41
65
  export default Main;