@pie-element/likert 3.0.0-next.42 → 3.0.0-next.43

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.
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "3.0.0-next.42+bb1f3eb4e",
7
+ "version": "3.0.0-next.43+4249fa78f",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -21,14 +21,14 @@
21
21
  "debug": "^4.1.1",
22
22
  "lodash": "^4.17.23",
23
23
  "prop-types": "^15.8.1",
24
- "react": "18.2.0",
25
- "react-dom": "18.2.0",
24
+ "react": "18.3.1",
25
+ "react-dom": "18.3.1",
26
26
  "react-test-renderer": "18.2.0",
27
27
  "react-transition-group": "^2.3.1"
28
28
  },
29
29
  "author": "",
30
30
  "license": "ISC",
31
- "gitHead": "bb1f3eb4e3b5b1cb15024d459ffd6e94bf419712",
31
+ "gitHead": "4249fa78fc423ef0a8c89002b8f937c42b3478ea",
32
32
  "main": "lib/index.js",
33
33
  "module": "src/index.js"
34
34
  }
@@ -1 +0,0 @@
1
- import{_dll_react_dom as e,_dll_react as l,_dll_prop_types as t,_dll_mui__material as a,_dll_mui__material_styles as n,_dll_lodash as o,_dll_pie_lib__render_ui as i,_dll_debug as r}from"../../../@pie-lib/shared-module@^3.0.5/module/index.js";import{_dll_pie_lib__editable_html_tip_tap as s}from"../../../@pie-lib/editable-html-module@^6.0.5/module/index.js";import{_dll_pie_lib__config_ui as u}from"../../../@pie-lib/config-module@^3.0.0/module/index.js";var d,c=e;d=c.createRoot,c.hydrateRoot;var p={};Object.defineProperty(p,"__esModule",{value:!0});class h extends CustomEvent{constructor(e,l=!1){super(h.TYPE,{bubbles:!0,detail:{update:e,reset:l}}),this.update=e,this.reset=l}}h.TYPE="model.updated";var m=p.ModelUpdatedEvent=h;class g extends CustomEvent{constructor(e,l){super(g.TYPE,{bubbles:!0,detail:{src:e,done:l}}),this.src=e,this.done=l}}g.TYPE="delete.image",p.DeleteImageEvent=g;class b extends CustomEvent{constructor(e){super(b.TYPE,{bubbles:!0,detail:e}),this.handler=e}}b.TYPE="insert.image",p.InsertImageEvent=b;class v extends CustomEvent{constructor(e,l){super(v.TYPE,{bubbles:!0,detail:{src:e,done:l}}),this.src=e,this.done=l}}v.TYPE="delete.sound";var C=p.DeleteSoundEvent=v;class E extends CustomEvent{constructor(e){super(E.TYPE,{bubbles:!0,detail:e}),this.handler=e}}E.TYPE="insert.sound";var _=p.InsertSoundEvent=E;const y="likert3",f="likert5",k="likert7",S="agreement",$="frequency",x="yesNo",T="importance",I="likelihood",P="like",M=[{label:"Disagree",value:-1},{label:"Unsure",value:0},{label:"Agree",value:1}],L=[{label:"Strongly Disagree",value:-2},...M,{label:"Strongly Agree",value:2}],D=[{label:"Extremely Disagree",value:-3},...L,{label:"Extremely Agree",value:3}],w=[{label:"Infrequently",value:-1},{label:"Unsure",value:0},{label:"Frequently",value:1}],R=[{label:"Very Infrequently",value:-2},...w,{label:"Very Frequently",value:2}],q=[{label:"Never",value:-3},...R,{label:"Always",value:3}],U=[{label:"No",value:-1},{label:"Unsure",value:0},{label:"Yes",value:1}],N=[{label:"No",value:-2},{label:"Not really",value:-1},{label:"Unsure",value:0},{label:"Sometimes",value:1},{label:"Yes",value:2}],Y=[{label:"No",value:-3},{label:"Rarely",value:-2},{label:"Not really",value:-1},{label:"Unsure",value:0},{label:"Sometimes",value:1},{label:"Very Often",value:2},{label:"Always",value:3}],A=[{label:"Not Likely",value:-1},{label:"Unsure",value:0},{label:"Likely",value:1}],V=[{label:"Very Unlikely",value:-2},...A,{label:"Very Likely",value:2}],z=[{label:"Extremely Unlikely",value:-3},...V,{label:"Extremely Likely",value:3}],O=[{label:"Not Important",value:-1},{label:"Unsure",value:0},{label:"Important",value:1}],j=[{label:"Very Not Important",value:-2},...O,{label:"Very Important",value:2}],F=[{label:"Extremely Not Important",value:-3},...j,{label:"Extremely Important",value:3}],B=[{label:"Dislike",value:-1},{label:"Unsure",value:0},{label:"Like",value:1}],H=[{label:"Really Dislike",value:-2},...B,{label:"Really Like",value:2}],G=[{label:"Extremely Dislike",value:-3},...H,{label:"Extremely Like",value:3}],J=(e,l)=>{switch(`${e}-${l}`){case`${y}-${S}`:return[...M];case`${f}-${S}`:return[...L];case`${k}-${S}`:return[...D];case`${y}-${$}`:return[...w];case`${f}-${$}`:return[...R];case`${k}-${$}`:return[...q];case`${y}-${x}`:return[...U];case`${f}-${x}`:return[...N];case`${k}-${x}`:return[...Y];case`${y}-${I}`:return[...A];case`${f}-${I}`:return[...V];case`${k}-${I}`:return[...z];case`${y}-${T}`:return[...O];case`${f}-${T}`:return[...j];case`${k}-${T}`:return[...F];case`${y}-${P}`:return[...B];case`${f}-${P}`:return[...H];case`${k}-${P}`:return[...G];default:return[]}},K=l,Q=t,{Radio:W}=a,{RadioGroup:X}=a,{FormControlLabel:Z}=a,{styled:ee}=n,{merge:le}=o,{color:te}=i,ae=s,{InputContainer:ne}=u,{settings:oe}=u,{layout:ie}=u,{NumberTextField:re}=u;function se(e){let l,t=e[0],a=1;for(;a<e.length;){const n=e[a],o=e[a+1];if(a+=2,("optionalAccess"===n||"optionalCall"===n)&&null==t)return;"access"===n||"optionalAccess"===n?(l=t,t=o(t)):"call"!==n&&"optionalCall"!==n||(t=o((...e)=>t.call(l,...e)),l=void 0)}return t}const{Panel:ue,toggle:de,radio:ce}=oe,pe=ee(ne)(({theme:e})=>({width:"100%",paddingTop:e.spacing(2),marginBottom:e.spacing(2)})),he=ee("div")({display:"flex",flexDirection:"column"}),me=ee("p")(({theme:e})=>({color:e.palette.grey[400],fontSize:e.typography.fontSize-2})),ge=ee("div")(({theme:e})=>({display:"flex",width:"100%",alignItems:"flex-start",marginBottom:e.spacing(2)})),be=ee("div")(({theme:e})=>({display:"flex",width:"100%",justifyContent:"space-around",marginBottom:e.spacing(2.5)})),ve=ee(ne)({width:"calc(100% - 200px)",marginRight:0}),Ce=ee("p")(({theme:e})=>({color:e.palette.error.main,fontSize:e.typography.fontSize-2})),Ee=ee(re)({width:"100%"}),_e=ee("div")({display:"flex",flexDirection:"row"}),ye=ee("div")(({theme:e})=>({paddingLeft:e.spacing(2.5),width:"150px"})),fe=ee(ae)(({theme:e})=>({paddingTop:e.spacing(2)})),ke=ee("span")(({theme:e})=>({width:"30px",paddingTop:e.spacing(4)})),Se=ee("div")(({theme:e})=>({fontSize:e.typography.fontSize-2,color:e.palette.error.main,paddingTop:e.spacing(1)})),$e=ee(W)({color:`${te.tertiary()} !important`}),xe=e=>{const{model:l,onChangeModel:t}=e;return K.createElement(he,null,K.createElement(me,null,"Likert Orientation"),K.createElement(X,{"aria-label":"likertOrientation",name:"likertOrientation",value:l.likertOrientation,onChange:e=>{const a=e.target.value;t({...l,likertOrientation:a})}},K.createElement(Z,{value:"horizontal",control:K.createElement($e,null),label:"Horizontal"}),K.createElement(Z,{value:"vertical",control:K.createElement($e,null),label:"Vertical"})))},Te=e=>{const{model:l,onChangeModel:t}=e;return K.createElement(he,null,K.createElement(me,null,"Likert Scale"),K.createElement(X,{"aria-label":"likertScale",name:"likertScale",value:l.likertScale,onChange:e=>{const a=e.target.value;t({...l,likertScale:a,choices:J(a,l.likertType)})}},K.createElement(Z,{value:y,control:K.createElement($e,null),label:"Likert 3"}),K.createElement(Z,{value:f,control:K.createElement($e,null),label:"Likert 5"}),K.createElement(Z,{value:k,control:K.createElement($e,null),label:"Likert 7"})))},Ie=e=>{const{model:l,onChangeModel:t}=e,a=e=>{const a=e.target.value;t({...l,likertType:a,choices:J(l.likertScale,a)})};return K.createElement(he,null,K.createElement(me,null,"Label Type"),K.createElement(_e,null,K.createElement(X,{"aria-label":"likertLabelType",name:"likertLabelType",value:l.likertType,onChange:a},K.createElement(Z,{value:S,control:K.createElement($e,null),label:"Agreement"}),K.createElement(Z,{value:$,control:K.createElement($e,null),label:"Frequency"}),K.createElement(Z,{value:x,control:K.createElement($e,null),label:"Yes/No"})),K.createElement(X,{"aria-label":"likertLabelType",name:"likertLabelType",value:l.likertType,onChange:a},K.createElement(Z,{value:T,control:K.createElement($e,null),label:"Importance"}),K.createElement(Z,{value:I,control:K.createElement($e,null),label:"Likelihood"}),K.createElement(Z,{value:P,control:K.createElement($e,null),label:"Like"}))))},Pe=e=>{const{configuration:l,imageSupport:t,model:a,onChangeModel:n,onChoiceChanged:o,onConfigurationChanged:i,onPromptChanged:r,onTeacherInstructionsChanged:s,uploadSoundSupport:u}=e,{contentDimensions:d={},prompt:c={},scoringType:p={},settingsPanelDisabled:h,spellCheck:m={},teacherInstructions:g={},baseInputConfiguration:b={},likertChoice:v={}}=l||{},{errors:C={},extraCSSRules:E,spellCheckEnabled:_,teacherInstructionsEnabled:y}=a||{},{prompt:f,teacherInstructions:k}=C,S=(e=>e.choices.reduce((e,l)=>{const t={...e},a=parseInt(l.value);return t[a]||(t[a]=0),{...t,[a]:t[a]+1}},{}))(a),$={teacherInstructionsEnabled:g.settings&&de(g.label),spellCheckEnabled:m.settings&&de(m.label),scoringType:p.settings&&ce(p.label,["auto","rubric"])},x=(e={})=>Object.assign({...b},e||{});return K.createElement(ie.ConfigLayout,{extraCSSRules:E,dimensions:d,hideSettings:h,settings:K.createElement(ue,{model:a,onChangeModel:n,configuration:l,onChangeConfiguration:i,groups:{Properties:$}})},y&&K.createElement(pe,{label:g.label},K.createElement(ae,{markup:a.teacherInstructions||"",onChange:s,imageSupport:t,nonEmpty:!1,error:k,spellCheck:_,uploadSoundSupport:u,pluginProps:x(se([g,"optionalAccess",e=>e.inputConfiguration]))}),k&&K.createElement(Se,null,k)),K.createElement(pe,{label:c.label},K.createElement(ae,{markup:a.prompt,onChange:r,imageSupport:t,nonEmpty:!1,error:f,spellCheck:_,disableUnderline:!0,uploadSoundSupport:u,pluginProps:x(se([c,"optionalAccess",e=>e.inputConfiguration]))}),f&&K.createElement(Se,null,f)),K.createElement(be,null,K.createElement(Te,{model:a,onChangeModel:n}),K.createElement(Ie,{model:a,onChangeModel:n}),K.createElement(xe,{model:a,onChangeModel:n})),a.choices.map((e,l)=>K.createElement(ge,{key:`choice-${l}`},K.createElement(ke,null,l+1,"."),K.createElement(ve,{key:`likert-label-${l}`,label:"Likert Label"},K.createElement(fe,{markup:e.label||"",onChange:t=>o(l,{...e,label:t}),imageSupport:t,spellCheck:_,uploadSoundSupport:u,pluginProps:x(se([v,"optionalAccess",e=>e.inputConfiguration]))})),K.createElement(ye,null,K.createElement(Ee,{label:"Likert Value",value:e.value,max:100,min:-100,onChange:(t,a)=>{o(l,{...e,value:a})},imageSupport:t}),S[e.value]&&S[e.value]>1&&K.createElement(Ce,null,"Value should be unique")))))};class Me extends K.Component{constructor(...e){super(...e),Me.prototype.__init.call(this),Me.prototype.__init2.call(this),Me.prototype.__init3.call(this)}static __initStatic(){this.propTypes={model:Q.object.isRequired,disableSidePanel:Q.bool,onModelChanged:Q.func.isRequired,onConfigurationChanged:Q.func.isRequired,imageSupport:Q.shape({add:Q.func.isRequired,delete:Q.func.isRequired})}}__init(){this.onChoiceChanged=(e,l)=>{const{model:t,onModelChanged:a}=this.props;t.choices=t.choices.map(e=>le({},e)),t.choices.splice(e,1,l),a(t)}}__init2(){this.onPromptChanged=e=>{this.props.onModelChanged({...this.props.model,prompt:e})}}__init3(){this.onTeacherInstructionsChanged=e=>{this.props.onModelChanged({...this.props.model,teacherInstructions:e})}}render(){return K.createElement(Pe,{...this.props,onChangeModel:this.props.onModelChanged,onChoiceChanged:this.onChoiceChanged,onPromptChanged:this.onPromptChanged,onTeacherInstructionsChanged:this.onTeacherInstructionsChanged})}}Me.__initStatic();var Le={choices:[],likertOrientation:"horizontal",likertScale:"likert3",likertType:"agreement",prompt:"",promptEnabled:!0,teacherInstructions:"",teacherInstructionsEnabled:!0},De={baseInputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1},textAlign:{disabled:!0},showParagraphs:{disabled:!1},separateParagraphs:{disabled:!0}},prompt:{settings:!0,label:"Prompt",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},settingsPanelDisabled:!1,spellCheck:{label:"Spellcheck",settings:!1,enabled:!0},teacherInstructions:{settings:!0,label:"Teacher Instructions",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},likertChoice:{label:"Choice",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}}}};const we=l,Re=r,{defaults:qe}=o,Ue=Re("likert:configure"),Ne=(e,l)=>({configuration:qe(e,De),model:l});class Ye extends HTMLElement{static __initStatic(){this.createDefaultModel=(e={})=>({...Le,...e,choices:e&&e.choices||[]})}constructor(){super(),this._root=null,this._model=Ye.createDefaultModel(),this._configuration=De,this.onModelChanged=this.onModelChanged.bind(this),this.onConfigurationChanged=this.onConfigurationChanged.bind(this)}set model(e){this._model=Ye.createDefaultModel(e),this._model={...this._model,choices:this._model.choices.map(e=>({...e,value:parseInt(e.value)}))},this._render()}set configuration(e){const l=Ne(e,this._model);this.onModelChanged(l.model),this._configuration=l.configuration,this._render()}set disableSidePanel(e){this._disableSidePanel=e,this._render()}dispatchModelUpdated(e){const l=!!e;this.dispatchEvent(new m(this._model,l))}onModelChanged(e,l){this._model=e,this._render(),this.dispatchModelUpdated(l)}onConfigurationChanged(e){this._configuration=Ne(e,this._model).configuration,this._model&&this.onModelChanged(this._model),this._render()}insertSound(e){this.dispatchEvent(new _(e))}onDeleteSound(e,l){this.dispatchEvent(new C(e,l))}_render(){Ue("_render");let e=we.createElement(Me,{model:this._model,configuration:this._configuration,onModelChanged:this.onModelChanged,onConfigurationChanged:this.onConfigurationChanged,disableSidePanel:this._disableSidePanel,uploadSoundSupport:{add:this.insertSound.bind(this),delete:this.onDeleteSound.bind(this)}});this._root||(this._root=d(this)),this._root.render(e)}disconnectedCallback(){this._root&&this._root.unmount()}}Ye.__initStatic();export{Ye as default};
@@ -1,77 +0,0 @@
1
- var defaults = {
2
- choices: [],
3
- likertOrientation: 'horizontal',
4
- likertScale: 'likert3',
5
- likertType: 'agreement',
6
- prompt: '',
7
- promptEnabled: true,
8
- teacherInstructions: '',
9
- teacherInstructionsEnabled: true,
10
- };
11
-
12
- const prepareChoice = (choice) => {
13
- return {
14
- label: choice.label,
15
- value: choice.value,
16
- };
17
- };
18
-
19
- function createDefaultModel(model = {}) {
20
- return new Promise((resolve) => resolve({ ...defaults, ...model }));
21
- }
22
-
23
- const normalize = (question) => ({ ...defaults, ...question });
24
-
25
- /**
26
- *
27
- * @param {*} question
28
- * @param {*} session
29
- * @param {*} env
30
- */
31
- async function model(question, session, env) {
32
- const normalizedQuestion = normalize(question);
33
-
34
- let choices = normalizedQuestion.choices.map(prepareChoice);
35
-
36
- const out = {
37
- ...normalizedQuestion,
38
- choices,
39
- disabled: env.mode !== 'gather',
40
- mode: env.mode,
41
- };
42
-
43
- const { role, mode } = env || {};
44
-
45
- if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {
46
- out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled
47
- ? normalizedQuestion.teacherInstructions
48
- : null;
49
- } else {
50
- out.teacherInstructions = null;
51
- }
52
-
53
- return out;
54
- }
55
-
56
- function outcome() {
57
- return new Promise((resolve) => {
58
- resolve({ score: 0, empty: false });
59
- });
60
- }
61
-
62
- // remove all html tags except img, iframe and source tag for audio
63
- const getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');
64
-
65
- const validate = (model = {}, config = {}) => {
66
- const errors = {};
67
-
68
- ['teacherInstructions', 'prompt'].forEach((field) => {
69
- if (config[field]?.required && !getContent(model[field])) {
70
- errors[field] = 'This field is required.';
71
- }
72
- });
73
-
74
- return errors;
75
- };
76
-
77
- export { createDefaultModel, model, normalize, outcome, validate };
package/module/demo.js DELETED
@@ -1,47 +0,0 @@
1
- import Configure from './configure.js';
2
- import Element from './element.js';
3
- import * as controller from './controller.js';
4
-
5
- var generate = {};
6
-
7
- generate.model = (id, element) => ({
8
- id,
9
- element,
10
- likertScale: 'likert3',
11
- likertType: 'agreement',
12
- likertOrientation: 'horizontal',
13
- choices: [
14
- {
15
- label: 'Disagree',
16
- value: -1,
17
- },
18
- {
19
- label: 'Unsure',
20
- value: 0,
21
- },
22
- {
23
- label: 'Agree',
24
- value: 1,
25
- },
26
- ],
27
- prompt: 'How likely are you to report a problem?',
28
- });
29
-
30
- const { model } = generate;
31
-
32
- var config = {
33
- elements: {
34
- 'likert-element': '../..',
35
- },
36
- models: [model('1', 'likert-element')],
37
- };
38
-
39
- //Note: demo-el is a custom element loaded in the markup.
40
- customElements.whenDefined("demo-el").then(() => {
41
- config.models.forEach((m) => {
42
- const de = document.createElement("demo-el");
43
- document.body.appendChild(de);
44
- de.def = { tagName: m.element, Element, Configure, controller };
45
- de.model = m;
46
- });
47
- });
package/module/element.js DELETED
@@ -1 +0,0 @@
1
- import{_dll_pie_lib__math_rendering as e}from"../../../@pie-lib/math-rendering-module@^4.0.5/module/index.js";import{_dll_mui__material as t,_dll_prop_types as r,_dll_mui__material_styles as n,_dll_pie_lib__render_ui as o,_dll_react_dom as s}from"../../../@pie-lib/shared-module@^3.0.5/module/index.js";var i={exports:{}},a={},c=Symbol.for("react.element"),u=Symbol.for("react.portal"),l=Symbol.for("react.fragment"),p=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),d=Symbol.for("react.provider"),h=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),_=Symbol.for("react.memo"),b=Symbol.for("react.lazy"),v=Symbol.iterator;var S={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,E={};function C(e,t,r){this.props=e,this.context=t,this.refs=E,this.updater=r||S}function k(){}function x(e,t,r){this.props=e,this.context=t,this.refs=E,this.updater=r||S}C.prototype.isReactComponent={},C.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},C.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},k.prototype=C.prototype;var R=x.prototype=new k;R.constructor=x,g(R,C.prototype),R.isPureReactComponent=!0;var w=Array.isArray,$=Object.prototype.hasOwnProperty,P={current:null},j={key:!0,ref:!0,__self:!0,__source:!0};function T(e,t,r){var n,o={},s=null,i=null;if(null!=t)for(n in void 0!==t.ref&&(i=t.ref),void 0!==t.key&&(s=""+t.key),t)$.call(t,n)&&!j.hasOwnProperty(n)&&(o[n]=t[n]);var a=arguments.length-2;if(1===a)o.children=r;else if(1<a){for(var u=Array(a),l=0;l<a;l++)u[l]=arguments[l+2];o.children=u}if(e&&e.defaultProps)for(n in a=e.defaultProps)void 0===o[n]&&(o[n]=a[n]);return{$$typeof:c,type:e,key:s,ref:i,props:o,_owner:P.current}}function O(e){return"object"==typeof e&&null!==e&&e.$$typeof===c}var I=/\/+/g;function q(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(e){return t[e]})}(""+e.key):t.toString(36)}function M(e,t,r,n,o){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var i=!1;if(null===e)i=!0;else switch(s){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case c:case u:i=!0}}if(i)return o=o(i=e),e=""===n?"."+q(i,0):n,w(o)?(r="",null!=e&&(r=e.replace(I,"$&/")+"/"),M(o,t,r,"",function(e){return e})):null!=o&&(O(o)&&(o=function(e,t){return{$$typeof:c,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(o,r+(!o.key||i&&i.key===o.key?"":(""+o.key).replace(I,"$&/")+"/")+e)),t.push(o)),1;if(i=0,n=""===n?".":n+":",w(e))for(var a=0;a<e.length;a++){var l=n+q(s=e[a],a);i+=M(s,t,r,l,o)}else if(l=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=v&&e[v]||e["@@iterator"])?e:null}(e),"function"==typeof l)for(e=l.call(e),a=0;!(s=e.next()).done;)i+=M(s=s.value,t,r,l=n+q(s,a++),o);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return i}function L(e,t,r){if(null==e)return e;var n=[],o=0;return M(e,n,"","",function(e){return t.call(r,e,o++)}),n}function A(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)},function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var D={current:null},N={transition:null},F={ReactCurrentDispatcher:D,ReactCurrentBatchConfig:N,ReactCurrentOwner:P};function U(){throw Error("act(...) is not supported in production builds of React.")}a.Children={map:L,forEach:function(e,t,r){L(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return L(e,function(){t++}),t},toArray:function(e){return L(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},a.Component=C,a.Fragment=l,a.Profiler=f,a.PureComponent=x,a.StrictMode=p,a.Suspense=y,a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=F,a.act=U,a.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n=g({},e.props),o=e.key,s=e.ref,i=e._owner;if(null!=t){if(void 0!==t.ref&&(s=t.ref,i=P.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var a=e.type.defaultProps;for(u in t)$.call(t,u)&&!j.hasOwnProperty(u)&&(n[u]=void 0===t[u]&&void 0!==a?a[u]:t[u])}var u=arguments.length-2;if(1===u)n.children=r;else if(1<u){a=Array(u);for(var l=0;l<u;l++)a[l]=arguments[l+2];n.children=a}return{$$typeof:c,type:e.type,key:o,ref:s,props:n,_owner:i}},a.createContext=function(e){return(e={$$typeof:h,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:d,_context:e},e.Consumer=e},a.createElement=T,a.createFactory=function(e){var t=T.bind(null,e);return t.type=e,t},a.createRef=function(){return{current:null}},a.forwardRef=function(e){return{$$typeof:m,render:e}},a.isValidElement=O,a.lazy=function(e){return{$$typeof:b,_payload:{_status:-1,_result:e},_init:A}},a.memo=function(e,t){return{$$typeof:_,type:e,compare:void 0===t?null:t}},a.startTransition=function(e){var t=N.transition;N.transition={};try{e()}finally{N.transition=t}},a.unstable_act=U,a.useCallback=function(e,t){return D.current.useCallback(e,t)},a.useContext=function(e){return D.current.useContext(e)},a.useDebugValue=function(){},a.useDeferredValue=function(e){return D.current.useDeferredValue(e)},a.useEffect=function(e,t){return D.current.useEffect(e,t)},a.useId=function(){return D.current.useId()},a.useImperativeHandle=function(e,t,r){return D.current.useImperativeHandle(e,t,r)},a.useInsertionEffect=function(e,t){return D.current.useInsertionEffect(e,t)},a.useLayoutEffect=function(e,t){return D.current.useLayoutEffect(e,t)},a.useMemo=function(e,t){return D.current.useMemo(e,t)},a.useReducer=function(e,t,r){return D.current.useReducer(e,t,r)},a.useRef=function(e){return D.current.useRef(e)},a.useState=function(e){return D.current.useState(e)},a.useSyncExternalStore=function(e,t,r){return D.current.useSyncExternalStore(e,t,r)},a.useTransition=function(){return D.current.useTransition()},a.version="18.3.1",i.exports=a;var V=i.exports;const B="vertical",{FormControlLabel:H}=t,{Radio:Y}=t,z=r,{styled:W}=n,{color:G}=o,J=W(Y)({color:`var(--choice-input-color, ${G.text()})`,"&.Mui-checked":{color:`var(--choice-input-selected-color, ${G.primary()})`},"&.Mui-disabled":{color:`var(--choice-input-disabled-color, ${G.defaults.DISABLED})`}}),K=W("p")({color:G.text(),textAlign:"center",cursor:"pointer"}),Q=W("div")({display:"flex",alignItems:"center",flex:1,padding:"0 5px","& label":{}}),X=W(H)({margin:0});class Z extends V.Component{constructor(...e){super(...e),Z.prototype.__init.call(this)}static __initStatic(){this.propTypes={checked:z.bool.isRequired,disabled:z.bool.isRequired,label:z.string.isRequired,likertOrientation:z.string.isRequired,onChange:z.func.isRequired,value:z.number.isRequired}}static __initStatic2(){this.defaultProps={checked:!1}}__init(){this.onToggleChoice=()=>{this.props.onChange({value:this.props.value,selected:!this.props.checked})}}render(){const{disabled:e,label:t,checked:r,likertOrientation:n}=this.props,o=n===B?"row":"column";return V.createElement(Q,{style:{flexDirection:o}},V.createElement(X,{disabled:e,control:V.createElement(J,{checked:r,onChange:this.onToggleChoice,disabled:e})}),V.createElement(K,{onClick:this.onToggleChoice,dangerouslySetInnerHTML:{__html:t}}))}}Z.__initStatic(),Z.__initStatic2();const ee=r,{styled:te}=n,{color:re}=o,{Collapsible:ne}=o,{PreviewPrompt:oe}=o,se=te("div")({color:re.text(),backgroundColor:re.background(),"& *":{"-webkit-font-smoothing":"antialiased"}}),ie=te(ne)(({theme:e})=>({marginBottom:e.spacing(2)})),ae=te("div")(({theme:e})=>({verticalAlign:"middle",color:"var(--pie-primary-text, var(--pie-text, #000000))",paddingBottom:e.spacing(2)})),ce=te("div")({display:"flex"});class ue extends V.Component{static __initStatic(){this.propTypes={className:ee.string,choices:ee.array,prompt:ee.string,teacherInstructions:ee.string,session:ee.object,disabled:ee.bool.isRequired,onSessionChange:ee.func.isRequired,likertOrientation:ee.string.isRequired}}UNSAFE_componentWillReceiveProps(){}isSelected(e){return this.props.session&&this.props.session.value===e}render(){const{disabled:e,choices:t=[],prompt:r,onSessionChange:n,teacherInstructions:o,className:s,likertOrientation:i}=this.props,a=i===B?"column":"row";return V.createElement(se,{className:s},o&&V.createElement(ie,{labels:{hidden:"Show Teacher Instructions",visible:"Hide Teacher Instructions"}},V.createElement(oe,{prompt:o})),r&&V.createElement(ae,null,V.createElement(oe,{prompt:r})),V.createElement(ce,{style:{flexDirection:a}},t.map((t,r)=>V.createElement(Z,{key:`choice-${r}`,label:t.label,value:t.value,index:r,disabled:e,onChange:n,likertOrientation:i,checked:this.isSelected(t.value)}))))}}ue.__initStatic(),ue.defaultProps={session:{value:[]}};const le=r,{PreviewLayout:pe}=o;class fe extends V.Component{static __initStatic(){this.propTypes={model:le.object,session:le.object,onSessionChange:le.func}}static __initStatic2(){this.defaultProps={model:{},session:{}}}render(){const{model:e,onSessionChange:t,session:r}=this.props,{extraCSSRules:n}=e;return V.createElement(pe,{extraCSSRules:n},V.createElement(ue,{...e,session:r,onSessionChange:t}))}}fe.__initStatic(),fe.__initStatic2();var de,he=s;de=he.createRoot,he.hydrateRoot;var me={};Object.defineProperty(me,"__esModule",{value:!0});class ye extends CustomEvent{constructor(e,t,r){super(ye.TYPE,{bubbles:!0,composed:!0,detail:{complete:t,component:e,hasModel:r}}),this.component=e,this.complete=t}}ye.TYPE="model-set",me.ModelSetEvent=ye;class _e extends CustomEvent{constructor(e,t){super(_e.TYPE,{bubbles:!0,composed:!0,detail:{complete:t,component:e}}),this.component=e,this.complete=t}}_e.TYPE="session-changed";var be=me.SessionChangedEvent=_e;const{renderMath:ve}=e,Se=e=>!!(e&&e.value&&e.value.length);class ge extends HTMLElement{constructor(){super(),this._root=null}set model(e){this._model=e,this._render()}set session(e){this._session=e,this._render()}get session(){return this._session}sessionChanged(e){this._session.value=e.value;const t=Se(this._session,this._model);this.dispatchEvent(new be(this.tagName.toLowerCase(),t)),this._render()}connectedCallback(){this._render()}_render(){if(!this._model||!this._session)return;const e=V.createElement(fe,{model:this._model,session:this._session,onSessionChange:this.sessionChanged.bind(this)});this._root||(this._root=de(this)),this._root.render(e),queueMicrotask(()=>{ve(this)})}disconnectedCallback(){this._root&&this._root.unmount()}}export{ge as default,Se as isComplete};
package/module/index.html DELETED
@@ -1,21 +0,0 @@
1
-
2
- <!doctype html>
3
- <html>
4
- <head>
5
- <title>@pie-element/likert@3.0.0-beta.1</title>
6
- <script
7
- type="module"
8
- src="https://cdn.jsdelivr.net/npm/@pslb/demo-el@^1.0.0/dist/demo-el/demo-el.esm.js"></script>
9
-
10
- <link
11
- href="https://fonts.googleapis.com/css?family=Roboto&display=swap"
12
- rel="stylesheet"
13
- />
14
- <style>
15
- html, body {
16
- font-family: 'Roboto', sans-serif;
17
- }
18
- </style>
19
- <script type="module" src="./demo.js"></script>
20
- </head>
21
- </html>
@@ -1,14 +0,0 @@
1
- {
2
- "name": "@pie-element/likert",
3
- "version": "3.0.0-beta.1",
4
- "modules": [
5
- {
6
- "name": "@pie-lib/math-rendering-module",
7
- "version": "^4.0.5"
8
- },
9
- {
10
- "name": "@pie-lib/shared-module",
11
- "version": "^3.0.5"
12
- }
13
- ]
14
- }
@@ -1,85 +0,0 @@
1
- import PrintElement from './print.js';
2
-
3
- var generate = {};
4
-
5
- generate.model = (id, element) => ({
6
- id,
7
- element,
8
- likertScale: 'likert3',
9
- likertType: 'agreement',
10
- likertOrientation: 'horizontal',
11
- choices: [
12
- {
13
- label: 'Disagree',
14
- value: -1,
15
- },
16
- {
17
- label: 'Unsure',
18
- value: 0,
19
- },
20
- {
21
- label: 'Agree',
22
- value: 1,
23
- },
24
- ],
25
- prompt: 'How likely are you to report a problem?',
26
- });
27
-
28
- const { model } = generate;
29
-
30
- var config = {
31
- elements: {
32
- 'likert-element': '../..',
33
- },
34
- models: [model('1', 'likert-element')],
35
- };
36
-
37
- // new init - just shows off print!
38
-
39
- const init = async () => {
40
- console.log('define the element...');
41
- await Promise.all(
42
- config.models.map(async (m) => {
43
- try {
44
- const printTag = `${m.element}-print`;
45
- if (customElements.get(printTag)) {
46
- return true;
47
- } else {
48
- customElements.define(printTag, PrintElement);
49
- await customElements.whenDefined(printTag);
50
- return true;
51
- }
52
- } catch (e) {
53
- return false;
54
- }
55
- })
56
- );
57
-
58
- console.log('now apply the model...');
59
- config.models.forEach((m) => {
60
- const printTag = `${m.element}-print`;
61
- const h3s = document.createElement('h3');
62
- h3s.textContent = 'student mode';
63
- document.body.appendChild(h3s);
64
- const de = document.createElement(printTag);
65
- document.body.appendChild(de);
66
- de.options = {};
67
- de.model = m;
68
-
69
- const h3 = document.createElement('h3');
70
- h3.textContent = 'instructor mode';
71
- document.body.appendChild(h3);
72
- const instr = document.createElement(printTag);
73
- document.body.appendChild(instr);
74
- instr.options = { mode: 'instructor' };
75
- instr.model = JSON.parse(JSON.stringify(m));
76
- });
77
- };
78
-
79
- init()
80
- .then(() => {
81
- console.log('ready');
82
- })
83
- .catch((e) => {
84
- console.error(e);
85
- });
package/module/print.html DELETED
@@ -1,18 +0,0 @@
1
-
2
- <!doctype html>
3
- <html>
4
- <head>
5
- <title>@pie-element/likert@3.0.0-beta.1</title>
6
- <link
7
- href="https://fonts.googleapis.com/css?family=Roboto&display=swap"
8
- rel="stylesheet"
9
- />
10
- <style>
11
- html, body {
12
- font-family: 'Roboto', sans-serif;
13
- }
14
- </style>
15
- <script type="module" src="./print-demo.js"></script>
16
- </head>
17
- <body></body>
18
- </html>