@pie-element/likert 4.1.2-next.5 → 4.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 (87) hide show
  1. package/CHANGELOG.json +1 -0
  2. package/CHANGELOG.md +1468 -0
  3. package/LICENSE.md +5 -0
  4. package/configure/CHANGELOG.json +1 -0
  5. package/configure/CHANGELOG.md +1385 -0
  6. package/configure/lib/choiceGenerator.js +219 -0
  7. package/configure/lib/choiceGenerator.js.map +1 -0
  8. package/configure/lib/defaults.js +100 -0
  9. package/configure/lib/defaults.js.map +1 -0
  10. package/configure/lib/index.js +106 -0
  11. package/configure/lib/index.js.map +1 -0
  12. package/configure/lib/likertEntities.js +24 -0
  13. package/configure/lib/likertEntities.js.map +1 -0
  14. package/configure/lib/main.js +388 -0
  15. package/configure/lib/main.js.map +1 -0
  16. package/configure/package.json +27 -0
  17. package/controller/CHANGELOG.json +1 -0
  18. package/controller/CHANGELOG.md +90 -0
  19. package/controller/lib/defaults.js +17 -0
  20. package/controller/lib/defaults.js.map +1 -0
  21. package/controller/lib/index.js +81 -0
  22. package/controller/lib/index.js.map +1 -0
  23. package/controller/package.json +17 -0
  24. package/docs/config-schema.json +2011 -0
  25. package/docs/config-schema.json.md +1487 -0
  26. package/docs/demo/config.js +8 -0
  27. package/docs/demo/generate.js +22 -0
  28. package/docs/demo/index.html +1 -0
  29. package/docs/demo/session.js +6 -0
  30. package/docs/pie-schema.json +966 -0
  31. package/docs/pie-schema.json.md +711 -0
  32. package/lib/choice-input.js +90 -0
  33. package/lib/choice-input.js.map +1 -0
  34. package/lib/index.js +64 -0
  35. package/lib/index.js.map +1 -0
  36. package/lib/likert.js +97 -0
  37. package/lib/likert.js.map +1 -0
  38. package/lib/likertEntities.js +11 -0
  39. package/lib/likertEntities.js.map +1 -0
  40. package/lib/main.js +42 -0
  41. package/lib/main.js.map +1 -0
  42. package/lib/session-updater.js +15 -0
  43. package/lib/session-updater.js.map +1 -0
  44. package/package.json +21 -83
  45. package/readme.md +55 -0
  46. package/configure.js +0 -2
  47. package/controller.js +0 -1
  48. package/dist/author/choiceGenerator.d.ts +0 -13
  49. package/dist/author/choiceGenerator.js +0 -255
  50. package/dist/author/defaults.d.ts +0 -102
  51. package/dist/author/defaults.js +0 -60
  52. package/dist/author/index.d.ts +0 -31
  53. package/dist/author/index.js +0 -73
  54. package/dist/author/likertEntities.d.ts +0 -25
  55. package/dist/author/likertEntities.js +0 -18
  56. package/dist/author/main.d.ts +0 -27
  57. package/dist/author/main.js +0 -298
  58. package/dist/browser/Radio-DABxV66W.js +0 -9454
  59. package/dist/browser/Radio-DABxV66W.js.map +0 -1
  60. package/dist/browser/author/index.js +0 -45281
  61. package/dist/browser/author/index.js.map +0 -1
  62. package/dist/browser/controller/index.js +0 -51
  63. package/dist/browser/controller/index.js.map +0 -1
  64. package/dist/browser/delivery/index.js +0 -219
  65. package/dist/browser/delivery/index.js.map +0 -1
  66. package/dist/browser/likert.css +0 -2
  67. package/dist/controller/defaults.d.ts +0 -19
  68. package/dist/controller/defaults.js +0 -13
  69. package/dist/controller/index.d.ts +0 -19
  70. package/dist/controller/index.js +0 -41
  71. package/dist/delivery/choice-input.d.ts +0 -27
  72. package/dist/delivery/choice-input.js +0 -59
  73. package/dist/delivery/index.d.ts +0 -19
  74. package/dist/delivery/index.js +0 -44
  75. package/dist/delivery/likert.d.ts +0 -26
  76. package/dist/delivery/likert.js +0 -70
  77. package/dist/delivery/likertEntities.d.ts +0 -12
  78. package/dist/delivery/likertEntities.js +0 -7
  79. package/dist/delivery/main.d.ts +0 -23
  80. package/dist/delivery/main.js +0 -37
  81. package/dist/delivery/session-updater.d.ts +0 -9
  82. package/dist/index.d.ts +0 -1
  83. package/dist/index.iife.d.ts +0 -8
  84. package/dist/index.iife.js +0 -145
  85. package/dist/index.js +0 -2
  86. package/dist/runtime-support.d.ts +0 -12
  87. package/dist/runtime-support.js +0 -12
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.RadioStyled = exports.ChoiceInput = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _FormControlLabel = _interopRequireDefault(require("@mui/material/FormControlLabel"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _styles = require("@mui/material/styles");
13
+ var _renderUi = require("@pie-lib/render-ui");
14
+ var _Radio = _interopRequireDefault(require("@mui/material/Radio"));
15
+ var _likertEntities = require("./likertEntities");
16
+ const RadioStyled = exports.RadioStyled = (0, _styles.styled)(_Radio.default)({
17
+ color: `var(--choice-input-color, ${_renderUi.color.text()})`,
18
+ '&.Mui-checked': {
19
+ color: `var(--choice-input-selected-color, ${_renderUi.color.primary()})`
20
+ },
21
+ '&.Mui-disabled': {
22
+ color: `var(--choice-input-disabled-color, ${_renderUi.color.defaults.DISABLED})`
23
+ }
24
+ });
25
+ const LabelRoot = (0, _styles.styled)('p')({
26
+ color: _renderUi.color.text(),
27
+ textAlign: 'center',
28
+ cursor: 'pointer'
29
+ });
30
+ const CheckboxHolderRoot = (0, _styles.styled)('div')({
31
+ display: 'flex',
32
+ alignItems: 'center',
33
+ flex: 1,
34
+ padding: '0 5px',
35
+ '& label': {}
36
+ });
37
+ const StyledFormControlLabel = (0, _styles.styled)(_FormControlLabel.default)({
38
+ margin: 0
39
+ });
40
+ class ChoiceInput extends _react.default.Component {
41
+ constructor(...args) {
42
+ super(...args);
43
+ (0, _defineProperty2.default)(this, "onToggleChoice", () => {
44
+ this.props.onChange({
45
+ value: this.props.value,
46
+ selected: !this.props.checked
47
+ });
48
+ });
49
+ }
50
+ render() {
51
+ const {
52
+ disabled,
53
+ label,
54
+ checked,
55
+ likertOrientation
56
+ } = this.props;
57
+ const flexDirection = likertOrientation === _likertEntities.LIKERT_ORIENTATION.vertical ? 'row' : 'column';
58
+ return /*#__PURE__*/_react.default.createElement(CheckboxHolderRoot, {
59
+ style: {
60
+ flexDirection
61
+ }
62
+ }, /*#__PURE__*/_react.default.createElement(StyledFormControlLabel, {
63
+ disabled: disabled,
64
+ control: /*#__PURE__*/_react.default.createElement(RadioStyled, {
65
+ checked: checked,
66
+ onChange: this.onToggleChoice,
67
+ disabled: disabled
68
+ })
69
+ }), /*#__PURE__*/_react.default.createElement(LabelRoot, {
70
+ onClick: this.onToggleChoice,
71
+ dangerouslySetInnerHTML: {
72
+ __html: label
73
+ }
74
+ }));
75
+ }
76
+ }
77
+ exports.ChoiceInput = ChoiceInput;
78
+ (0, _defineProperty2.default)(ChoiceInput, "propTypes", {
79
+ checked: _propTypes.default.bool.isRequired,
80
+ disabled: _propTypes.default.bool.isRequired,
81
+ label: _propTypes.default.string.isRequired,
82
+ likertOrientation: _propTypes.default.string.isRequired,
83
+ onChange: _propTypes.default.func.isRequired,
84
+ value: _propTypes.default.number.isRequired
85
+ });
86
+ (0, _defineProperty2.default)(ChoiceInput, "defaultProps", {
87
+ checked: false
88
+ });
89
+ var _default = exports.default = ChoiceInput;
90
+ //# sourceMappingURL=choice-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"choice-input.js","names":["_react","_interopRequireDefault","require","_FormControlLabel","_propTypes","_styles","_renderUi","_Radio","_likertEntities","RadioStyled","exports","styled","Radio","color","text","primary","defaults","DISABLED","LabelRoot","textAlign","cursor","CheckboxHolderRoot","display","alignItems","flex","padding","StyledFormControlLabel","FormControlLabel","margin","ChoiceInput","React","Component","constructor","args","_defineProperty2","default","props","onChange","value","selected","checked","render","disabled","label","likertOrientation","flexDirection","LIKERT_ORIENTATION","vertical","createElement","style","control","onToggleChoice","onClick","dangerouslySetInnerHTML","__html","PropTypes","bool","isRequired","string","func","number","_default"],"sources":["../src/choice-input.jsx"],"sourcesContent":["import React from 'react';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\n\nimport { color } from '@pie-lib/render-ui';\nimport Radio from '@mui/material/Radio';\nimport { LIKERT_ORIENTATION } from './likertEntities';\n\nexport const RadioStyled = styled(Radio)({\n color: `var(--choice-input-color, ${color.text()})`,\n '&.Mui-checked': {\n color: `var(--choice-input-selected-color, ${color.primary()})`,\n },\n '&.Mui-disabled': {\n color: `var(--choice-input-disabled-color, ${color.defaults.DISABLED})`,\n },\n});\n\nconst LabelRoot = styled('p')({\n color: color.text(),\n textAlign: 'center',\n cursor: 'pointer',\n});\n\nconst CheckboxHolderRoot = styled('div')({\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n padding: '0 5px',\n '& label': {},\n});\n\nconst StyledFormControlLabel = styled(FormControlLabel)({\n margin: 0,\n});\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n checked: PropTypes.bool.isRequired,\n disabled: PropTypes.bool.isRequired,\n label: PropTypes.string.isRequired,\n likertOrientation: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.number.isRequired,\n };\n\n static defaultProps = {\n checked: false,\n };\n\n onToggleChoice = () => {\n this.props.onChange({\n value: this.props.value,\n selected: !this.props.checked,\n });\n };\n\n render() {\n const { disabled, label, checked, likertOrientation } = this.props;\n const flexDirection = likertOrientation === LIKERT_ORIENTATION.vertical ? 'row' : 'column';\n\n return (\n <CheckboxHolderRoot style={{ flexDirection }}>\n <StyledFormControlLabel\n disabled={disabled}\n control={<RadioStyled checked={checked} onChange={this.onToggleChoice} disabled={disabled} />}\n />\n <LabelRoot onClick={this.onToggleChoice} dangerouslySetInnerHTML={{ __html: label }} />\n </CheckboxHolderRoot>\n );\n }\n}\n\nexport default ChoiceInput;\n"],"mappings":"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","ignoreList":[]}
package/lib/index.js ADDED
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isComplete = exports.default = void 0;
8
+ var _main = _interopRequireDefault(require("./main"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _client = require("react-dom/client");
11
+ var _piePlayerEvents = require("@pie-framework/pie-player-events");
12
+ var _mathRendering = require("@pie-lib/math-rendering");
13
+ const isComplete = session => !!(session && session.value && session.value.length);
14
+ exports.isComplete = isComplete;
15
+ class Likert extends HTMLElement {
16
+ constructor() {
17
+ super();
18
+ this._root = null;
19
+ }
20
+ set model(m) {
21
+ this._model = m;
22
+ this._render();
23
+ }
24
+ set session(s) {
25
+ this._session = s;
26
+ this._render();
27
+ }
28
+ get session() {
29
+ return this._session;
30
+ }
31
+ sessionChanged(s) {
32
+ this._session.value = s.value;
33
+ const complete = isComplete(this._session, this._model);
34
+ this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), complete));
35
+ this._render();
36
+ }
37
+ connectedCallback() {
38
+ this._render();
39
+ }
40
+ _render() {
41
+ if (!this._model || !this._session) {
42
+ return;
43
+ }
44
+ const el = /*#__PURE__*/_react.default.createElement(_main.default, {
45
+ model: this._model,
46
+ session: this._session,
47
+ onSessionChange: this.sessionChanged.bind(this)
48
+ });
49
+ if (!this._root) {
50
+ this._root = (0, _client.createRoot)(this);
51
+ }
52
+ this._root.render(el);
53
+ queueMicrotask(() => {
54
+ (0, _mathRendering.renderMath)(this);
55
+ });
56
+ }
57
+ disconnectedCallback() {
58
+ if (this._root) {
59
+ this._root.unmount();
60
+ }
61
+ }
62
+ }
63
+ exports.default = Likert;
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_main","_interopRequireDefault","require","_react","_client","_piePlayerEvents","_mathRendering","isComplete","session","value","length","exports","Likert","HTMLElement","constructor","_root","model","m","_model","_render","s","_session","sessionChanged","complete","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","connectedCallback","el","React","createElement","Main","onSessionChange","bind","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount","default"],"sources":["../src/index.js"],"sourcesContent":["import Main from './main';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nexport const isComplete = (session) => !!(session && session.value && session.value.length);\n\nexport default class Likert extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n }\n\n set model(m) {\n this._model = m;\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n sessionChanged(s) {\n this._session.value = s.value;\n const complete = isComplete(this._session, this._model);\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), complete));\n this._render();\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (!this._model || !this._session) {\n return;\n }\n\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.sessionChanged.bind(this),\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAEO,MAAMK,UAAU,GAAIC,OAAO,IAAK,CAAC,EAAEA,OAAO,IAAIA,OAAO,CAACC,KAAK,IAAID,OAAO,CAACC,KAAK,CAACC,MAAM,CAAC;AAACC,OAAA,CAAAJ,UAAA,GAAAA,UAAA;AAE7E,MAAMK,MAAM,SAASC,WAAW,CAAC;EAC9CC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,KAAK,GAAG,IAAI;EACnB;EAEA,IAAIC,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACC,MAAM,GAAGD,CAAC;IACf,IAAI,CAACE,OAAO,CAAC,CAAC;EAChB;EAEA,IAAIX,OAAOA,CAACY,CAAC,EAAE;IACb,IAAI,CAACC,QAAQ,GAAGD,CAAC;IACjB,IAAI,CAACD,OAAO,CAAC,CAAC;EAChB;EAEA,IAAIX,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACa,QAAQ;EACtB;EAEAC,cAAcA,CAACF,CAAC,EAAE;IAChB,IAAI,CAACC,QAAQ,CAACZ,KAAK,GAAGW,CAAC,CAACX,KAAK;IAC7B,MAAMc,QAAQ,GAAGhB,UAAU,CAAC,IAAI,CAACc,QAAQ,EAAE,IAAI,CAACH,MAAM,CAAC;IACvD,IAAI,CAACM,aAAa,CAAC,IAAIC,oCAAmB,CAAC,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC,EAAEJ,QAAQ,CAAC,CAAC;IACjF,IAAI,CAACJ,OAAO,CAAC,CAAC;EAChB;EAEAS,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACT,OAAO,CAAC,CAAC;EAChB;EAEAA,OAAOA,CAAA,EAAG;IACR,IAAI,CAAC,IAAI,CAACD,MAAM,IAAI,CAAC,IAAI,CAACG,QAAQ,EAAE;MAClC;IACF;IAEA,MAAMQ,EAAE,gBAAGC,cAAK,CAACC,aAAa,CAACC,aAAI,EAAE;MACnChB,KAAK,EAAE,IAAI,CAACE,MAAM;MAClBV,OAAO,EAAE,IAAI,CAACa,QAAQ;MACtBY,eAAe,EAAE,IAAI,CAACX,cAAc,CAACY,IAAI,CAAC,IAAI;IAChD,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAACnB,KAAK,EAAE;MACf,IAAI,CAACA,KAAK,GAAG,IAAAoB,kBAAU,EAAC,IAAI,CAAC;IAC/B;IACA,IAAI,CAACpB,KAAK,CAACqB,MAAM,CAACP,EAAE,CAAC;IACrBQ,cAAc,CAAC,MAAM;MACnB,IAAAC,yBAAU,EAAC,IAAI,CAAC;IAClB,CAAC,CAAC;EACJ;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAACxB,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAACyB,OAAO,CAAC,CAAC;IACtB;EACF;AACF;AAAC7B,OAAA,CAAA8B,OAAA,GAAA7B,MAAA","ignoreList":[]}
package/lib/likert.js ADDED
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.Likert = 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 _choiceInput = _interopRequireDefault(require("./choice-input"));
12
+ var _styles = require("@mui/material/styles");
13
+ var _renderUi = require("@pie-lib/render-ui");
14
+ var _likertEntities = require("./likertEntities");
15
+ const Main = (0, _styles.styled)('div')({
16
+ color: _renderUi.color.text(),
17
+ backgroundColor: _renderUi.color.background(),
18
+ '& *': {
19
+ '-webkit-font-smoothing': 'antialiased'
20
+ }
21
+ });
22
+ const StyledCollapsible = (0, _styles.styled)(_renderUi.Collapsible)(({
23
+ theme
24
+ }) => ({
25
+ marginBottom: theme.spacing(2)
26
+ }));
27
+ const Prompt = (0, _styles.styled)('div')(({
28
+ theme
29
+ }) => ({
30
+ verticalAlign: 'middle',
31
+ color: 'var(--pie-primary-text, var(--pie-text, #000000))',
32
+ paddingBottom: theme.spacing(2)
33
+ }));
34
+ const ChoicesWrapper = (0, _styles.styled)('div')({
35
+ display: 'flex'
36
+ });
37
+ class Likert extends _react.default.Component {
38
+ UNSAFE_componentWillReceiveProps() {}
39
+ isSelected(value) {
40
+ return this.props.session && this.props.session.value === value;
41
+ }
42
+ render() {
43
+ const {
44
+ disabled,
45
+ choices = [],
46
+ prompt,
47
+ onSessionChange,
48
+ teacherInstructions,
49
+ className,
50
+ likertOrientation
51
+ } = this.props;
52
+ const flexDirection = likertOrientation === _likertEntities.LIKERT_ORIENTATION.vertical ? 'column' : 'row';
53
+ return /*#__PURE__*/_react.default.createElement(Main, {
54
+ className: className
55
+ }, teacherInstructions && /*#__PURE__*/_react.default.createElement(StyledCollapsible, {
56
+ labels: {
57
+ hidden: 'Show Teacher Instructions',
58
+ visible: 'Hide Teacher Instructions'
59
+ }
60
+ }, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
61
+ prompt: teacherInstructions
62
+ })), prompt && /*#__PURE__*/_react.default.createElement(Prompt, null, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
63
+ prompt: prompt
64
+ })), /*#__PURE__*/_react.default.createElement(ChoicesWrapper, {
65
+ style: {
66
+ flexDirection
67
+ }
68
+ }, choices.map((choice, index) => /*#__PURE__*/_react.default.createElement(_choiceInput.default, {
69
+ key: `choice-${index}`,
70
+ label: choice.label,
71
+ value: choice.value,
72
+ index: index,
73
+ disabled: disabled,
74
+ onChange: onSessionChange,
75
+ likertOrientation: likertOrientation,
76
+ checked: this.isSelected(choice.value)
77
+ }))));
78
+ }
79
+ }
80
+ exports.Likert = Likert;
81
+ (0, _defineProperty2.default)(Likert, "propTypes", {
82
+ className: _propTypes.default.string,
83
+ choices: _propTypes.default.array,
84
+ prompt: _propTypes.default.string,
85
+ teacherInstructions: _propTypes.default.string,
86
+ session: _propTypes.default.object,
87
+ disabled: _propTypes.default.bool.isRequired,
88
+ onSessionChange: _propTypes.default.func.isRequired,
89
+ likertOrientation: _propTypes.default.string.isRequired
90
+ });
91
+ Likert.defaultProps = {
92
+ session: {
93
+ value: []
94
+ }
95
+ };
96
+ var _default = exports.default = Likert;
97
+ //# sourceMappingURL=likert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"likert.js","names":["_react","_interopRequireDefault","require","_propTypes","_choiceInput","_styles","_renderUi","_likertEntities","Main","styled","color","text","backgroundColor","background","StyledCollapsible","Collapsible","theme","marginBottom","spacing","Prompt","verticalAlign","paddingBottom","ChoicesWrapper","display","Likert","React","Component","UNSAFE_componentWillReceiveProps","isSelected","value","props","session","render","disabled","choices","prompt","onSessionChange","teacherInstructions","className","likertOrientation","flexDirection","LIKERT_ORIENTATION","vertical","default","createElement","labels","hidden","visible","PreviewPrompt","style","map","choice","index","key","label","onChange","checked","exports","_defineProperty2","PropTypes","string","array","object","bool","isRequired","func","defaultProps","_default"],"sources":["../src/likert.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ChoiceInput from './choice-input';\nimport { styled } from '@mui/material/styles';\nimport { color, Collapsible, PreviewPrompt } from '@pie-lib/render-ui';\nimport { LIKERT_ORIENTATION } from './likertEntities';\n\nconst Main = styled('div')({\n color: color.text(),\n backgroundColor: color.background(),\n '& *': {\n '-webkit-font-smoothing': 'antialiased',\n },\n});\n\nconst StyledCollapsible = styled(Collapsible)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst Prompt = styled('div')(({ theme }) => ({\n verticalAlign: 'middle',\n color: 'var(--pie-primary-text, var(--pie-text, #000000))',\n paddingBottom: theme.spacing(2),\n}));\n\nconst ChoicesWrapper = styled('div')({\n display: 'flex',\n});\n\nexport class Likert extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n choices: PropTypes.array,\n prompt: PropTypes.string,\n teacherInstructions: PropTypes.string,\n session: PropTypes.object,\n disabled: PropTypes.bool.isRequired,\n onSessionChange: PropTypes.func.isRequired,\n likertOrientation: PropTypes.string.isRequired,\n };\n\n UNSAFE_componentWillReceiveProps() {}\n\n isSelected(value) {\n return this.props.session && this.props.session.value === value;\n }\n\n render() {\n const {\n disabled,\n choices = [],\n prompt,\n onSessionChange,\n teacherInstructions,\n className,\n likertOrientation,\n } = this.props;\n\n const flexDirection = likertOrientation === LIKERT_ORIENTATION.vertical ? 'column' : 'row';\n\n return (\n <Main className={className}>\n {teacherInstructions && (\n <StyledCollapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </StyledCollapsible>\n )}\n\n {prompt && (\n <Prompt>\n <PreviewPrompt prompt={prompt} />\n </Prompt>\n )}\n\n <ChoicesWrapper style={{ flexDirection }}>\n {choices.map((choice, index) => (\n <ChoiceInput\n key={`choice-${index}`}\n label={choice.label}\n value={choice.value}\n index={index}\n disabled={disabled}\n onChange={onSessionChange}\n likertOrientation={likertOrientation}\n checked={this.isSelected(choice.value)}\n />\n ))}\n </ChoicesWrapper>\n </Main>\n );\n }\n}\n\nLikert.defaultProps = {\n session: {\n value: [],\n },\n};\n\nexport default Likert;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LIKERT_ORIENTATION = void 0;
7
+ const LIKERT_ORIENTATION = exports.LIKERT_ORIENTATION = {
8
+ horizontal: 'horizontal',
9
+ vertical: 'vertical'
10
+ };
11
+ //# sourceMappingURL=likertEntities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"likertEntities.js","names":["LIKERT_ORIENTATION","exports","horizontal","vertical"],"sources":["../src/likertEntities.js"],"sourcesContent":["export const LIKERT_ORIENTATION = {\n horizontal: 'horizontal',\n vertical: 'vertical',\n};\n"],"mappings":";;;;;;AAAO,MAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EAChCE,UAAU,EAAE,YAAY;EACxBC,QAAQ,EAAE;AACZ,CAAC","ignoreList":[]}
package/lib/main.js ADDED
@@ -0,0 +1,42 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _renderUi = require("@pie-lib/render-ui");
13
+ var _likert = _interopRequireDefault(require("./likert"));
14
+ class Main extends _react.default.Component {
15
+ render() {
16
+ const {
17
+ model,
18
+ onSessionChange,
19
+ session
20
+ } = this.props;
21
+ const {
22
+ extraCSSRules
23
+ } = model;
24
+ return /*#__PURE__*/_react.default.createElement(_renderUi.PreviewLayout, {
25
+ extraCSSRules: extraCSSRules
26
+ }, /*#__PURE__*/_react.default.createElement(_likert.default, (0, _extends2.default)({}, model, {
27
+ session: session,
28
+ onSessionChange: onSessionChange
29
+ })));
30
+ }
31
+ }
32
+ (0, _defineProperty2.default)(Main, "propTypes", {
33
+ model: _propTypes.default.object,
34
+ session: _propTypes.default.object,
35
+ onSessionChange: _propTypes.default.func
36
+ });
37
+ (0, _defineProperty2.default)(Main, "defaultProps", {
38
+ model: {},
39
+ session: {}
40
+ });
41
+ var _default = exports.default = Main;
42
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_renderUi","_likert","Main","React","Component","render","model","onSessionChange","session","props","extraCSSRules","default","createElement","PreviewLayout","_extends2","_defineProperty2","PropTypes","object","func","_default","exports"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { PreviewLayout } from '@pie-lib/render-ui';\nimport Likert from './likert';\n\nclass Main extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.object,\n onSessionChange: PropTypes.func,\n };\n\n static defaultProps = {\n model: {},\n session: {},\n };\n\n render() {\n const { model, onSessionChange, session } = this.props;\n const { extraCSSRules } = model;\n\n return (\n <PreviewLayout extraCSSRules={extraCSSRules}>\n <Likert {...model} session={session} onSessionChange={onSessionChange} />\n </PreviewLayout>\n );\n }\n}\n\nexport default Main;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,MAAMI,IAAI,SAASC,cAAK,CAACC,SAAS,CAAC;EAYjCC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,KAAK;MAAEC,eAAe;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAACC,KAAK;IACtD,MAAM;MAAEC;IAAc,CAAC,GAAGJ,KAAK;IAE/B,oBACEV,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACZ,SAAA,CAAAa,aAAa;MAACH,aAAa,EAAEA;IAAc,gBAC1Cd,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACX,OAAA,CAAAU,OAAM,MAAAG,SAAA,CAAAH,OAAA,MAAKL,KAAK;MAAEE,OAAO,EAAEA,OAAQ;MAACD,eAAe,EAAEA;IAAgB,EAAE,CAC3D,CAAC;EAEpB;AACF;AAAC,IAAAQ,gBAAA,CAAAJ,OAAA,EAtBKT,IAAI,eACW;EACjBI,KAAK,EAAEU,kBAAS,CAACC,MAAM;EACvBT,OAAO,EAAEQ,kBAAS,CAACC,MAAM;EACzBV,eAAe,EAAES,kBAAS,CAACE;AAC7B,CAAC;AAAA,IAAAH,gBAAA,CAAAJ,OAAA,EALGT,IAAI,kBAOc;EACpBI,KAAK,EAAE,CAAC,CAAC;EACTE,OAAO,EAAE,CAAC;AACZ,CAAC;AAAA,IAAAW,QAAA,GAAAC,OAAA,CAAAT,OAAA,GAcYT,IAAI","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.updateSessionValue = updateSessionValue;
7
+ function updateSessionValue(session, data) {
8
+ session.value = session.value || [];
9
+ if (data.selected) {
10
+ session.value = [data.value];
11
+ } else {
12
+ session.value = [];
13
+ }
14
+ }
15
+ //# sourceMappingURL=session-updater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-updater.js","names":["updateSessionValue","session","data","value","selected"],"sources":["../src/session-updater.js"],"sourcesContent":["export function updateSessionValue(session, data) {\n session.value = session.value || [];\n if (data.selected) {\n session.value = [data.value];\n } else {\n session.value = [];\n }\n}\n"],"mappings":";;;;;;AAAO,SAASA,kBAAkBA,CAACC,OAAO,EAAEC,IAAI,EAAE;EAChDD,OAAO,CAACE,KAAK,GAAGF,OAAO,CAACE,KAAK,IAAI,EAAE;EACnC,IAAID,IAAI,CAACE,QAAQ,EAAE;IACjBH,OAAO,CAACE,KAAK,GAAG,CAACD,IAAI,CAACC,KAAK,CAAC;EAC9B,CAAC,MAAM;IACLF,OAAO,CAACE,KAAK,GAAG,EAAE;EACpB;AACF","ignoreList":[]}
package/package.json CHANGED
@@ -1,95 +1,33 @@
1
1
  {
2
2
  "name": "@pie-element/likert",
3
- "version": "4.1.2-next.5",
3
+ "repository": "pie-framework/pie-elements",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "version": "4.1.3",
4
8
  "description": "",
9
+ "scripts": {
10
+ "test": "echo \"Error: no test specified\" && exit 1"
11
+ },
5
12
  "dependencies": {
6
13
  "@emotion/react": "^11.14.0",
7
14
  "@emotion/style": "^0.8.0",
8
15
  "@mui/icons-material": "^7.3.4",
9
16
  "@mui/material": "^7.3.4",
10
- "@pie-lib/render-ui": "6.1.1-next.38",
17
+ "@pie-framework/pie-player-events": "^0.1.0",
18
+ "@pie-lib/math-rendering": "5.0.2",
19
+ "@pie-lib/render-ui": "6.1.2",
20
+ "classnames": "^2.2.6",
11
21
  "debug": "^4.1.1",
22
+ "lodash-es": "^4.17.23",
12
23
  "prop-types": "^15.8.1",
13
- "react-test-renderer": "18.2.0",
14
- "@pie-element/shared-configure-events": "0.1.0",
15
- "@pie-element/shared-lodash": "0.1.1-next.1",
16
- "@pie-lib/editable-html-tip-tap": "2.1.2-next.31",
17
- "@pie-lib/config-ui": "13.0.4-next.31",
18
- "@pie-element/shared-player-events": "0.1.0",
19
- "@pie-element/shared-math-rendering-mathjax": "0.1.1-next.0",
20
- "clsx": "^2.1.1"
21
- },
22
- "peerDependencies": {
23
- "react": "^18.0.0",
24
- "react-dom": "^18.0.0"
25
- },
26
- "exports": {
27
- ".": {
28
- "types": "./dist/index.d.ts",
29
- "default": "./dist/index.js"
30
- },
31
- "./delivery": {
32
- "types": "./dist/delivery/index.d.ts",
33
- "default": "./dist/delivery/index.js"
34
- },
35
- "./browser/delivery": {
36
- "default": "./dist/browser/delivery/index.js"
37
- },
38
- "./author": {
39
- "types": "./dist/author/index.d.ts",
40
- "default": "./dist/author/index.js"
41
- },
42
- "./browser/author": {
43
- "default": "./dist/browser/author/index.js"
44
- },
45
- "./configure": {
46
- "types": "./dist/author/index.d.ts",
47
- "default": "./dist/author/index.js"
48
- },
49
- "./controller": {
50
- "types": "./dist/controller/index.d.ts",
51
- "default": "./dist/controller/index.js"
52
- },
53
- "./controller.js": {
54
- "types": "./dist/controller/index.d.ts",
55
- "default": "./dist/controller/index.js"
56
- },
57
- "./browser/controller": {
58
- "default": "./dist/browser/controller/index.js"
59
- },
60
- "./runtime-support": {
61
- "types": "./dist/runtime-support.d.ts",
62
- "default": "./dist/runtime-support.js"
63
- }
64
- },
65
- "type": "module",
66
- "main": "./dist/index.js",
67
- "types": "./dist/index.d.ts",
68
- "files": [
69
- "configure.js",
70
- "controller.js",
71
- "dist"
72
- ],
73
- "sideEffects": false,
74
- "devDependencies": {
75
- "vite": "^8.0.1",
76
- "typescript": "^5.9.3",
77
- "@vitejs/plugin-react": "^6.0.1",
78
- "@types/react": "^18.2.0",
79
- "@types/react-dom": "^18.2.0"
80
- },
81
- "scripts": {
82
- "build": "bun x vite build && bun x vite build --config ../../../tools/vite/element-browser.config.ts && bun x vite build --config vite.config.iife.ts && bun x tsc --emitDeclarationOnly",
83
- "dev": "bun x vite",
84
- "demo": "bun x vite --mode demo",
85
- "test": "bun x vitest run"
24
+ "react": "18.3.1",
25
+ "react-dom": "18.3.1",
26
+ "react-test-renderer": "18.2.0"
86
27
  },
87
- "pie": {
88
- "controller": "@pie-element/likert/controller",
89
- "configure": "@pie-element/likert/configure",
90
- "browserSharedDependencies": {
91
- "react": "18.2.0",
92
- "react-dom": "18.2.0"
93
- }
94
- }
28
+ "author": "",
29
+ "license": "ISC",
30
+ "gitHead": "213c3a293da2591ffaf2ba5c5fb50f0fe7577cfa",
31
+ "main": "lib/index.js",
32
+ "module": "src/index.js"
95
33
  }
package/readme.md ADDED
@@ -0,0 +1,55 @@
1
+ # @pie-element/likert
2
+
3
+
4
+ A [pie][pie]likert component.
5
+
6
+
7
+ ## Usage
8
+
9
+ To use this pie, you need to configure it within an Assessment Item. This means that you'll need to add it to the `index.html` and `config.json` files.
10
+
11
+ ```html
12
+ <likert-element pie-id="1"></likert-element>
13
+ ```
14
+
15
+ ```javascript
16
+ {
17
+ elements: {
18
+ 'likert': '@pie-element/likert-element@^0.0.1'
19
+ },
20
+ models: [
21
+ {
22
+ id : "1",
23
+ element: 'likert',
24
+ prompt : "How likely are you to report a problem?",
25
+ // more configuration...
26
+ }
27
+ ]
28
+ ```
29
+
30
+ ### Pie Demo
31
+ There is a demo in `docs/demo` that you can run to see an example of it's usage.
32
+
33
+ To preview it in that context you'll need the [pie][pie] tool.
34
+
35
+ ```shell
36
+ npm install -g pie
37
+ cd likert/docs/demo
38
+ pie serve #will build and serve the pie... then go to http://localhost:4000
39
+ ```
40
+
41
+ ## Test
42
+
43
+ ```shell
44
+ npm test # run client and controller tests
45
+ npm run client-test # run client tests
46
+ npm run controller-test # run controller tests
47
+ ```
48
+ ## Release
49
+
50
+ ```shell
51
+ gulp release
52
+ git checkout master
53
+ npm publish
54
+ ```
55
+ [pie]: http://npmjs.org/package/pie
package/configure.js DELETED
@@ -1,2 +0,0 @@
1
- export { default } from './dist/author/index.js';
2
- export * from './dist/author/index.js';
package/controller.js DELETED
@@ -1 +0,0 @@
1
- export * from './dist/controller/index.js';
@@ -1,13 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/likert/configure/src/choiceGenerator.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 generateChoices: (likertScale: any, likertType: any) => {
10
- label: string;
11
- value: number;
12
- }[];
13
- export default generateChoices;