@pie-element/categorize 7.3.1-next.5 → 7.3.1-next.57

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 (42) hide show
  1. package/configure/lib/defaults.js +6 -1
  2. package/configure/lib/defaults.js.map +1 -1
  3. package/configure/lib/design/builder.js.map +1 -1
  4. package/configure/lib/design/buttons.js.map +1 -1
  5. package/configure/lib/design/categories/alternateResponses.js.map +1 -1
  6. package/configure/lib/design/categories/category.js.map +1 -1
  7. package/configure/lib/design/categories/choice-preview.js.map +1 -1
  8. package/configure/lib/design/categories/droppable-placeholder.js.map +1 -1
  9. package/configure/lib/design/categories/index.js.map +1 -1
  10. package/configure/lib/design/choices/choice.js.map +1 -1
  11. package/configure/lib/design/choices/config.js +1 -78
  12. package/configure/lib/design/choices/config.js.map +1 -1
  13. package/configure/lib/design/choices/index.js +0 -2
  14. package/configure/lib/design/choices/index.js.map +1 -1
  15. package/configure/lib/design/header.js.map +1 -1
  16. package/configure/lib/design/index.js +8 -3
  17. package/configure/lib/design/index.js.map +1 -1
  18. package/configure/lib/design/input-header.js.map +1 -1
  19. package/configure/lib/index.js.map +1 -1
  20. package/configure/lib/main.js.map +1 -1
  21. package/configure/lib/utils.js.map +1 -1
  22. package/configure/package.json +7 -7
  23. package/controller/lib/defaults.js.map +1 -1
  24. package/controller/lib/index.js.map +1 -1
  25. package/controller/package.json +3 -3
  26. package/docs/config-schema.json +21 -0
  27. package/docs/config-schema.json.md +17 -1
  28. package/docs/demo/config.js +2 -2
  29. package/docs/demo/generate.js +2 -3
  30. package/docs/demo/index.html +1 -1
  31. package/docs/pie-schema.json.md +1 -1
  32. package/lib/categorize/categories.js +10 -2
  33. package/lib/categorize/categories.js.map +1 -1
  34. package/lib/categorize/category.js.map +1 -1
  35. package/lib/categorize/choice.js.map +1 -1
  36. package/lib/categorize/choices.js.map +1 -1
  37. package/lib/categorize/droppable-placeholder.js.map +1 -1
  38. package/lib/categorize/grid-content.js.map +1 -1
  39. package/lib/categorize/index.js +12 -3
  40. package/lib/categorize/index.js.map +1 -1
  41. package/lib/index.js.map +1 -1
  42. package/package.json +8 -8
@@ -43,6 +43,10 @@ var _default = {
43
43
  settings: true,
44
44
  label: 'Lock Choice Order'
45
45
  },
46
+ choicesPosition: {
47
+ settings: true,
48
+ label: 'Choices Position'
49
+ },
46
50
  allowMultiplePlacements: {
47
51
  settings: true,
48
52
  label: 'Allow Multiple Placements'
@@ -98,7 +102,8 @@ var _default = {
98
102
  withRubric: {
99
103
  settings: false,
100
104
  label: 'Add Rubric'
101
- }
105
+ },
106
+ minCategoriesPerRow: 1
102
107
  }
103
108
  };
104
109
  exports["default"] = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","choices","choicesPosition","choicesLabel","lockChoiceOrder","removeTilesAfterPlacing","allowMultiplePlacementsEnabled","multiplePlacements","enabled","categoriesPerRow","categories","alternates","correctResponse","rowLabels","partialScoring","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","feedback","allowMultiplePlacements","prompt","rationale","scoringType","studentInstructions","teacherInstructions","maxImageWidth","rowLabel","categoryLabel","maxImageHeight","withRubric"],"mappings":"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","sourcesContent":["import { multiplePlacements } from './utils';\n\nexport default {\n model: {\n choices: [],\n choicesPosition: 'below',\n choicesLabel: '',\n lockChoiceOrder: true,\n removeTilesAfterPlacing: false,\n allowMultiplePlacementsEnabled: multiplePlacements.enabled,\n categoriesPerRow: 2,\n categories: [],\n alternates: [],\n correctResponse: [],\n rowLabels: [''],\n partialScoring: true,\n feedbackEnabled: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n enabled: true\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order',\n },\n allowMultiplePlacements: {\n settings: true,\n label: 'Allow Multiple Placements'\n },\n categoriesPerRow: {\n settings: true,\n label: 'Categories per row'\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n prompt: {\n settings: true,\n label: 'Prompt'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n toolbarEditorPosition:{\n settings: false,\n label: 'Toolbar Editor Position'\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowLabel: 200,\n categoryLabel: 260,\n choices: 240\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowLabel: 100,\n categoryLabel: 100,\n choices: 150\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric'\n }\n }\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","choices","choicesPosition","choicesLabel","lockChoiceOrder","removeTilesAfterPlacing","allowMultiplePlacementsEnabled","multiplePlacements","enabled","categoriesPerRow","categories","alternates","correctResponse","rowLabels","partialScoring","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","feedback","allowMultiplePlacements","prompt","rationale","scoringType","studentInstructions","teacherInstructions","maxImageWidth","rowLabel","categoryLabel","maxImageHeight","withRubric","minCategoriesPerRow"],"mappings":"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","sourcesContent":["import { multiplePlacements } from './utils';\n\nexport default {\n model: {\n choices: [],\n choicesPosition: 'below',\n choicesLabel: '',\n lockChoiceOrder: true,\n removeTilesAfterPlacing: false,\n allowMultiplePlacementsEnabled: multiplePlacements.enabled,\n categoriesPerRow: 2,\n categories: [],\n alternates: [],\n correctResponse: [],\n rowLabels: [''],\n partialScoring: true,\n feedbackEnabled: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n enabled: true\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order',\n },\n choicesPosition: {\n settings: true,\n label: 'Choices Position',\n },\n allowMultiplePlacements: {\n settings: true,\n label: 'Allow Multiple Placements'\n },\n categoriesPerRow: {\n settings: true,\n label: 'Categories per row'\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n prompt: {\n settings: true,\n label: 'Prompt'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n toolbarEditorPosition:{\n settings: false,\n label: 'Toolbar Editor Position'\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowLabel: 200,\n categoryLabel: 260,\n choices: 240\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowLabel: 100,\n categoryLabel: 100,\n choices: 150\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric'\n },\n minCategoriesPerRow: 1,\n }\n};\n"],"file":"defaults.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/design/builder.js"],"names":["buildCategories","categories","choices","correctResponse","clonedCategories","map","category","cr","find","id","choiceId","choice","h","Object","assign","content","getChoices","cat","index","alternateResponses","length","alt","ch","buildAlternateResponses","mostAlternates","reduce","mostAlt","alternatesArray","Array","fill","val","catIndex","currentCategory","label"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,UAAD,EAAaC,OAAb,EAAsBC,eAAtB,EAA0C;AACvE,MAAMC,gBAAgB,GAAG,2BAAUH,UAAV,CAAzB;AAEA,SAAOG,gBAAgB,CAACC,GAAjB,CAAqB,UAAAC,QAAQ,EAAI;AACtC,QAAMC,EAAE,GAAGJ,eAAe,CAACK,IAAhB,CAAqB,UAAAD,EAAE;AAAA,aAAIA,EAAE,CAACD,QAAH,KAAgBA,QAAQ,CAACG,EAA7B;AAAA,KAAvB,CAAX;;AAEA,QAAIF,EAAJ,EAAQ;AACND,MAAAA,QAAQ,CAACJ,OAAT,GAAmB,CAACK,EAAE,CAACL,OAAH,IAAc,EAAf,EAAmBG,GAAnB,CAAuB,UAAAK,QAAQ,EAAI;AACpD,YAAMC,MAAM,GAAGT,OAAO,CAACM,IAAR,CAAa,UAAAI,CAAC;AAAA,iBAAIA,CAAC,CAACH,EAAF,KAASC,QAAb;AAAA,SAAd,CAAf;;AACA,YAAIC,MAAJ,EAAY;AACV,iBAAOE,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkB;AAAEL,YAAAA,EAAE,EAAEE,MAAM,CAACF,EAAb;AAAiBM,YAAAA,OAAO,EAAEJ,MAAM,CAACI;AAAjC,WAAlB,CAAP;AACD;AACF,OALkB,CAAnB;AAMD;;AAED,WAAOT,QAAP;AACD,GAbM,CAAP;AAcD,CAjBM;;;;AAmBP,IAAMU,UAAU,GAAG,SAAbA,UAAa,CAACC,GAAD,EAAMf,OAAN,EAAegB,KAAf,EAAyB;AAC1C,MAAI,CAACD,GAAG,CAACE,kBAAL,IAA2BF,GAAG,CAACE,kBAAJ,CAAuBC,MAAvB,KAAkC,CAAjE,EAAoE;AAClE,WAAO,EAAP;AACD;;AAED,SAAO,CAACH,GAAG,CAACE,kBAAJ,CAAuBD,KAAvB,KAAiC,EAAlC,EAAsCb,GAAtC,CAA0C,UAAAgB,GAAG,EAAI;AACtD,WAAOnB,OAAO,CAACM,IAAR,CAAa,UAAAc,EAAE;AAAA,aAAIA,EAAE,CAACb,EAAH,KAAUY,GAAd;AAAA,KAAf,CAAP;AACD,GAFM,CAAP;AAGD,CARD;;AAUO,IAAME,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACtB,UAAD,EAAaC,OAAb,EAAsBC,eAAtB,EAA0C;AAC/E,MAAMqB,cAAc,GAAGrB,eAAe,CAACsB,MAAhB,CAAuB,UAACC,OAAD,EAAUT,GAAV,EAAkB;AAC9D,QAAIA,GAAG,CAACE,kBAAJ,IAA0BF,GAAG,CAACE,kBAAJ,CAAuBC,MAAvB,IAAiCM,OAA/D,EAAwE;AACtE,aAAOT,GAAG,CAACE,kBAAJ,CAAuBC,MAA9B;AACD;;AAED,WAAOM,OAAP;AACD,GANsB,EAMpB,CANoB,CAAvB;AAOA,MAAMC,eAAe,GAAI,IAAIC,KAAJ,CAAUJ,cAAV,CAAD,CAA4BK,IAA5B,CAAiC,CAAjC,CAAxB;AAEA,SAAOF,eAAe,CAACtB,GAAhB,CAAoB,UAACyB,GAAD,EAAMZ,KAAN,EAAgB;AACzC,WAAOf,eAAe,CAACE,GAAhB,CAAoB,UAACY,GAAD,EAAMc,QAAN,EAAmB;AAC5C,UAAMC,eAAe,GAAG/B,UAAU,CAAC8B,QAAD,CAAlC;AAEA,aAAO;AACLtB,QAAAA,EAAE,EAAEuB,eAAe,CAACvB,EADf;AAELwB,QAAAA,KAAK,EAAED,eAAe,CAACC,KAFlB;AAGL/B,QAAAA,OAAO,EAAEc,UAAU,CAACC,GAAD,EAAMf,OAAN,EAAegB,KAAf;AAHd,OAAP;AAKD,KARM,CAAP;AASD,GAVM,CAAP;AAWD,CArBM","sourcesContent":["import cloneDeep from 'lodash/cloneDeep';\n\nexport const buildCategories = (categories, choices, correctResponse) => {\n const clonedCategories = cloneDeep(categories);\n\n return clonedCategories.map(category => {\n const cr = correctResponse.find(cr => cr.category === category.id);\n\n if (cr) {\n category.choices = (cr.choices || []).map(choiceId => {\n const choice = choices.find(h => h.id === choiceId);\n if (choice) {\n return Object.assign({}, { id: choice.id, content: choice.content });\n }\n });\n }\n\n return category;\n });\n};\n\nconst getChoices = (cat, choices, index) => {\n if (!cat.alternateResponses || cat.alternateResponses.length === 0) {\n return [];\n }\n\n return (cat.alternateResponses[index] || []).map(alt => {\n return choices.find(ch => ch.id === alt);\n });\n};\n\nexport const buildAlternateResponses = (categories, choices, correctResponse) => {\n const mostAlternates = correctResponse.reduce((mostAlt, cat) => {\n if (cat.alternateResponses && cat.alternateResponses.length >= mostAlt) {\n return cat.alternateResponses.length;\n }\n\n return mostAlt;\n }, 0);\n const alternatesArray = (new Array(mostAlternates)).fill(0);\n\n return alternatesArray.map((val, index) => {\n return correctResponse.map((cat, catIndex) => {\n const currentCategory = categories[catIndex];\n\n return {\n id: currentCategory.id,\n label: currentCategory.label,\n choices: getChoices(cat, choices, index)\n };\n });\n });\n};\n"],"file":"builder.js"}
1
+ {"version":3,"sources":["../../src/design/builder.js"],"names":["buildCategories","categories","choices","correctResponse","clonedCategories","map","category","cr","find","id","choiceId","choice","h","Object","assign","content","getChoices","cat","index","alternateResponses","length","alt","ch","buildAlternateResponses","mostAlternates","reduce","mostAlt","alternatesArray","Array","fill","val","catIndex","currentCategory","label"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,UAAD,EAAaC,OAAb,EAAsBC,eAAtB,EAA0C;AACvE,MAAMC,gBAAgB,GAAG,2BAAUH,UAAV,CAAzB;AAEA,SAAOG,gBAAgB,CAACC,GAAjB,CAAqB,UAACC,QAAD,EAAc;AACxC,QAAMC,EAAE,GAAGJ,eAAe,CAACK,IAAhB,CAAqB,UAACD,EAAD;AAAA,aAAQA,EAAE,CAACD,QAAH,KAAgBA,QAAQ,CAACG,EAAjC;AAAA,KAArB,CAAX;;AAEA,QAAIF,EAAJ,EAAQ;AACND,MAAAA,QAAQ,CAACJ,OAAT,GAAmB,CAACK,EAAE,CAACL,OAAH,IAAc,EAAf,EAAmBG,GAAnB,CAAuB,UAACK,QAAD,EAAc;AACtD,YAAMC,MAAM,GAAGT,OAAO,CAACM,IAAR,CAAa,UAACI,CAAD;AAAA,iBAAOA,CAAC,CAACH,EAAF,KAASC,QAAhB;AAAA,SAAb,CAAf;;AACA,YAAIC,MAAJ,EAAY;AACV,iBAAOE,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkB;AAAEL,YAAAA,EAAE,EAAEE,MAAM,CAACF,EAAb;AAAiBM,YAAAA,OAAO,EAAEJ,MAAM,CAACI;AAAjC,WAAlB,CAAP;AACD;AACF,OALkB,CAAnB;AAMD;;AAED,WAAOT,QAAP;AACD,GAbM,CAAP;AAcD,CAjBM;;;;AAmBP,IAAMU,UAAU,GAAG,SAAbA,UAAa,CAACC,GAAD,EAAMf,OAAN,EAAegB,KAAf,EAAyB;AAC1C,MAAI,CAACD,GAAG,CAACE,kBAAL,IAA2BF,GAAG,CAACE,kBAAJ,CAAuBC,MAAvB,KAAkC,CAAjE,EAAoE;AAClE,WAAO,EAAP;AACD;;AAED,SAAO,CAACH,GAAG,CAACE,kBAAJ,CAAuBD,KAAvB,KAAiC,EAAlC,EAAsCb,GAAtC,CAA0C,UAACgB,GAAD,EAAS;AACxD,WAAOnB,OAAO,CAACM,IAAR,CAAa,UAACc,EAAD;AAAA,aAAQA,EAAE,CAACb,EAAH,KAAUY,GAAlB;AAAA,KAAb,CAAP;AACD,GAFM,CAAP;AAGD,CARD;;AAUO,IAAME,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACtB,UAAD,EAAaC,OAAb,EAAsBC,eAAtB,EAA0C;AAC/E,MAAMqB,cAAc,GAAGrB,eAAe,CAACsB,MAAhB,CAAuB,UAACC,OAAD,EAAUT,GAAV,EAAkB;AAC9D,QAAIA,GAAG,CAACE,kBAAJ,IAA0BF,GAAG,CAACE,kBAAJ,CAAuBC,MAAvB,IAAiCM,OAA/D,EAAwE;AACtE,aAAOT,GAAG,CAACE,kBAAJ,CAAuBC,MAA9B;AACD;;AAED,WAAOM,OAAP;AACD,GANsB,EAMpB,CANoB,CAAvB;AAOA,MAAMC,eAAe,GAAG,IAAIC,KAAJ,CAAUJ,cAAV,EAA0BK,IAA1B,CAA+B,CAA/B,CAAxB;AAEA,SAAOF,eAAe,CAACtB,GAAhB,CAAoB,UAACyB,GAAD,EAAMZ,KAAN,EAAgB;AACzC,WAAOf,eAAe,CAACE,GAAhB,CAAoB,UAACY,GAAD,EAAMc,QAAN,EAAmB;AAC5C,UAAMC,eAAe,GAAG/B,UAAU,CAAC8B,QAAD,CAAlC;AAEA,aAAO;AACLtB,QAAAA,EAAE,EAAEuB,eAAe,CAACvB,EADf;AAELwB,QAAAA,KAAK,EAAED,eAAe,CAACC,KAFlB;AAGL/B,QAAAA,OAAO,EAAEc,UAAU,CAACC,GAAD,EAAMf,OAAN,EAAegB,KAAf;AAHd,OAAP;AAKD,KARM,CAAP;AASD,GAVM,CAAP;AAWD,CArBM","sourcesContent":["import cloneDeep from 'lodash/cloneDeep';\n\nexport const buildCategories = (categories, choices, correctResponse) => {\n const clonedCategories = cloneDeep(categories);\n\n return clonedCategories.map((category) => {\n const cr = correctResponse.find((cr) => cr.category === category.id);\n\n if (cr) {\n category.choices = (cr.choices || []).map((choiceId) => {\n const choice = choices.find((h) => h.id === choiceId);\n if (choice) {\n return Object.assign({}, { id: choice.id, content: choice.content });\n }\n });\n }\n\n return category;\n });\n};\n\nconst getChoices = (cat, choices, index) => {\n if (!cat.alternateResponses || cat.alternateResponses.length === 0) {\n return [];\n }\n\n return (cat.alternateResponses[index] || []).map((alt) => {\n return choices.find((ch) => ch.id === alt);\n });\n};\n\nexport const buildAlternateResponses = (categories, choices, correctResponse) => {\n const mostAlternates = correctResponse.reduce((mostAlt, cat) => {\n if (cat.alternateResponses && cat.alternateResponses.length >= mostAlt) {\n return cat.alternateResponses.length;\n }\n\n return mostAlt;\n }, 0);\n const alternatesArray = new Array(mostAlternates).fill(0);\n\n return alternatesArray.map((val, index) => {\n return correctResponse.map((cat, catIndex) => {\n const currentCategory = categories[catIndex];\n\n return {\n id: currentCategory.id,\n label: currentCategory.label,\n choices: getChoices(cat, choices, index),\n };\n });\n });\n};\n"],"file":"builder.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/design/buttons.jsx"],"names":["RawAddButton","props","classes","className","label","onClick","disabled","addButton","React","Component","PropTypes","object","isRequired","string","func","bool","styles","theme","height","spacing","unit","AddButton","DeleteButton","deleteButton","margin","padding","Divider","divider","marginTop","marginBottom"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,Y;;;;;;;;;;;;WAaX,kBAAS;AACP,wBAAyD,KAAKC,KAA9D;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BC,KAA5B,eAA4BA,KAA5B;AAAA,UAAmCC,OAAnC,eAAmCA,OAAnC;AAAA,UAA4CC,QAA5C,eAA4CA,QAA5C;AACA,0BACE,gCAAC,kBAAD;AACE,QAAA,OAAO,EAAED,OADX;AAEE,QAAA,QAAQ,EAAEC,QAFZ;AAGE,QAAA,SAAS,EAAE,4BAAWJ,OAAO,CAACK,SAAnB,EAA8BJ,SAA9B,CAHb;AAIE,QAAA,IAAI,EAAC,OAJP;AAKE,QAAA,OAAO,EAAC,WALV;AAME,QAAA,KAAK,EAAC;AANR,SAQGC,KARH,CADF;AAYD;;;EA3B+BI,kBAAMC,S;;;iCAA3BT,Y,eACQ;AACjBE,EAAAA,OAAO,EAAEQ,sBAAUC,MAAV,CAAiBC,UADT;AAEjBT,EAAAA,SAAS,EAAEO,sBAAUG,MAFJ;AAGjBT,EAAAA,KAAK,EAAEM,sBAAUG,MAHA;AAIjBR,EAAAA,OAAO,EAAEK,sBAAUI,IAJF;AAKjBR,EAAAA,QAAQ,EAAEI,sBAAUK;AALH,C;iCADRf,Y,kBASW;AACpBI,EAAAA,KAAK,EAAE;AADa,C;;AAoBxB,IAAMY,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBV,IAAAA,SAAS,EAAE;AACTW,MAAAA,MAAM,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AADpB;AADY,GAAL;AAAA,CAApB;;AAMA,IAAMC,SAAS,GAAG,wBAAWL,MAAX,EAAmBhB,YAAnB,CAAlB;;AAEA,IAAMsB,YAAY,GAAG,wBAAW;AAAA,SAAO;AACrCC,IAAAA,YAAY,EAAE;AACZC,MAAAA,MAAM,EAAE,CADI;AAEZC,MAAAA,OAAO,EAAE;AAFG;AADuB,GAAP;AAAA,CAAX,EAKjB;AAAA,MAAGvB,OAAH,QAAGA,OAAH;AAAA,MAAYE,KAAZ,QAAYA,KAAZ;AAAA,MAAmBC,OAAnB,QAAmBA,OAAnB;AAAA,MAA4BC,QAA5B,QAA4BA,QAA5B;AAAA,sBACF,gCAAC,kBAAD;AACE,IAAA,SAAS,EAAEJ,OAAO,CAACqB,YADrB;AAEE,IAAA,OAAO,EAAElB,OAFX;AAGE,IAAA,IAAI,EAAC,OAHP;AAIE,IAAA,KAAK,EAAC,SAJR;AAKE,IAAA,QAAQ,EAAEC;AALZ,KAOGF,KAPH,CADE;AAAA,CALiB,CAArB;;AAiBA,IAAMsB,OAAO,GAAG,wBAAW,UAAAT,KAAK;AAAA,SAAK;AACnCU,IAAAA,OAAO,EAAE;AACPC,MAAAA,SAAS,EAAE,IAAIX,KAAK,CAACE,OAAN,CAAcC,IADtB;AAEPS,MAAAA,YAAY,EAAE,IAAIZ,KAAK,CAACE,OAAN,CAAcC;AAFzB;AAD0B,GAAL;AAAA,CAAhB,EAKZ;AAAA,MAAGlB,OAAH,SAAGA,OAAH;AAAA,sBAAiB,gCAAC,mBAAD;AAAY,IAAA,SAAS,EAAEA,OAAO,CAACyB;AAA/B,IAAjB;AAAA,CALY,CAAhB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport MuiDivider from '@material-ui/core/Divider';\n\nexport class RawAddButton extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n label: PropTypes.string,\n onClick: PropTypes.func,\n disabled: PropTypes.bool\n };\n\n static defaultProps = {\n label: 'Add'\n };\n\n render() {\n const { classes, className, label, onClick, disabled } = this.props;\n return (\n <Button\n onClick={onClick}\n disabled={disabled}\n className={classNames(classes.addButton, className)}\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n >\n {label}\n </Button>\n );\n }\n}\nconst styles = theme => ({\n addButton: {\n height: theme.spacing.unit * 4\n }\n});\n\nconst AddButton = withStyles(styles)(RawAddButton);\n\nconst DeleteButton = withStyles(() => ({\n deleteButton: {\n margin: 0,\n padding: 0\n }\n}))(({ classes, label, onClick, disabled }) => (\n <Button\n className={classes.deleteButton}\n onClick={onClick}\n size=\"small\"\n color=\"primary\"\n disabled={disabled}\n >\n {label}\n </Button>\n));\n\nconst Divider = withStyles(theme => ({\n divider: {\n marginTop: 2 * theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit\n }\n}))(({ classes }) => <MuiDivider className={classes.divider} />);\n\nexport { AddButton, DeleteButton, Divider };\n"],"file":"buttons.js"}
1
+ {"version":3,"sources":["../../src/design/buttons.jsx"],"names":["RawAddButton","props","classes","className","label","onClick","disabled","addButton","React","Component","PropTypes","object","isRequired","string","func","bool","styles","theme","height","spacing","unit","AddButton","DeleteButton","deleteButton","margin","padding","Divider","divider","marginTop","marginBottom"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,Y;;;;;;;;;;;;WAaX,kBAAS;AACP,wBAAyD,KAAKC,KAA9D;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BC,KAA5B,eAA4BA,KAA5B;AAAA,UAAmCC,OAAnC,eAAmCA,OAAnC;AAAA,UAA4CC,QAA5C,eAA4CA,QAA5C;AACA,0BACE,gCAAC,kBAAD;AACE,QAAA,OAAO,EAAED,OADX;AAEE,QAAA,QAAQ,EAAEC,QAFZ;AAGE,QAAA,SAAS,EAAE,4BAAWJ,OAAO,CAACK,SAAnB,EAA8BJ,SAA9B,CAHb;AAIE,QAAA,IAAI,EAAC,OAJP;AAKE,QAAA,OAAO,EAAC,WALV;AAME,QAAA,KAAK,EAAC;AANR,SAQGC,KARH,CADF;AAYD;;;EA3B+BI,kBAAMC,S;;;iCAA3BT,Y,eACQ;AACjBE,EAAAA,OAAO,EAAEQ,sBAAUC,MAAV,CAAiBC,UADT;AAEjBT,EAAAA,SAAS,EAAEO,sBAAUG,MAFJ;AAGjBT,EAAAA,KAAK,EAAEM,sBAAUG,MAHA;AAIjBR,EAAAA,OAAO,EAAEK,sBAAUI,IAJF;AAKjBR,EAAAA,QAAQ,EAAEI,sBAAUK;AALH,C;iCADRf,Y,kBASW;AACpBI,EAAAA,KAAK,EAAE;AADa,C;;AAoBxB,IAAMY,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBV,IAAAA,SAAS,EAAE;AACTW,MAAAA,MAAM,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AADpB;AADc,GAAZ;AAAA,CAAf;;AAMA,IAAMC,SAAS,GAAG,wBAAWL,MAAX,EAAmBhB,YAAnB,CAAlB;;AAEA,IAAMsB,YAAY,GAAG,wBAAW;AAAA,SAAO;AACrCC,IAAAA,YAAY,EAAE;AACZC,MAAAA,MAAM,EAAE,CADI;AAEZC,MAAAA,OAAO,EAAE;AAFG;AADuB,GAAP;AAAA,CAAX,EAKjB;AAAA,MAAGvB,OAAH,QAAGA,OAAH;AAAA,MAAYE,KAAZ,QAAYA,KAAZ;AAAA,MAAmBC,OAAnB,QAAmBA,OAAnB;AAAA,MAA4BC,QAA5B,QAA4BA,QAA5B;AAAA,sBACF,gCAAC,kBAAD;AAAQ,IAAA,SAAS,EAAEJ,OAAO,CAACqB,YAA3B;AAAyC,IAAA,OAAO,EAAElB,OAAlD;AAA2D,IAAA,IAAI,EAAC,OAAhE;AAAwE,IAAA,KAAK,EAAC,SAA9E;AAAwF,IAAA,QAAQ,EAAEC;AAAlG,KACGF,KADH,CADE;AAAA,CALiB,CAArB;;AAWA,IAAMsB,OAAO,GAAG,wBAAW,UAACT,KAAD;AAAA,SAAY;AACrCU,IAAAA,OAAO,EAAE;AACPC,MAAAA,SAAS,EAAE,IAAIX,KAAK,CAACE,OAAN,CAAcC,IADtB;AAEPS,MAAAA,YAAY,EAAE,IAAIZ,KAAK,CAACE,OAAN,CAAcC;AAFzB;AAD4B,GAAZ;AAAA,CAAX,EAKZ;AAAA,MAAGlB,OAAH,SAAGA,OAAH;AAAA,sBAAiB,gCAAC,mBAAD;AAAY,IAAA,SAAS,EAAEA,OAAO,CAACyB;AAA/B,IAAjB;AAAA,CALY,CAAhB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport MuiDivider from '@material-ui/core/Divider';\n\nexport class RawAddButton extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n label: PropTypes.string,\n onClick: PropTypes.func,\n disabled: PropTypes.bool,\n };\n\n static defaultProps = {\n label: 'Add',\n };\n\n render() {\n const { classes, className, label, onClick, disabled } = this.props;\n return (\n <Button\n onClick={onClick}\n disabled={disabled}\n className={classNames(classes.addButton, className)}\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n >\n {label}\n </Button>\n );\n }\n}\nconst styles = (theme) => ({\n addButton: {\n height: theme.spacing.unit * 4,\n },\n});\n\nconst AddButton = withStyles(styles)(RawAddButton);\n\nconst DeleteButton = withStyles(() => ({\n deleteButton: {\n margin: 0,\n padding: 0,\n },\n}))(({ classes, label, onClick, disabled }) => (\n <Button className={classes.deleteButton} onClick={onClick} size=\"small\" color=\"primary\" disabled={disabled}>\n {label}\n </Button>\n));\n\nconst Divider = withStyles((theme) => ({\n divider: {\n marginTop: 2 * theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit,\n },\n}))(({ classes }) => <MuiDivider className={classes.divider} />);\n\nexport { AddButton, DeleteButton, Divider };\n"],"file":"buttons.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/design/categories/alternateResponses.jsx"],"names":["styles","theme","categories","marginBottom","spacing","unit","categoriesHolder","display","gridRowGap","gridColumnGap","row","gridTemplateColumns","alignItems","width","marginTop","rowLabel","gridColumn","rowLabelHolder","AlternateResponses","choice","categoryId","props","altIndex","correctResponse","model","onModelChanged","forEach","a","category","alternateResponses","push","id","filter","altId","classes","className","imageSupport","spellCheck","uploadSoundSupport","categoriesPerRow","holderStyle","map","index","addChoiceToCategory","choiceIndex","deleteChoiceFromCategory","React","Component","PropTypes","number","isRequired","shape","add","func","object","string","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Category from './category';\n\nconst styles = theme => ({\n categories: {\n marginBottom: theme.spacing.unit\n },\n categoriesHolder: {\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`\n },\n row: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gridColumnGap: `${theme.spacing.unit}px`,\n alignItems: 'baseline',\n width: '100%',\n marginTop: theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit\n },\n rowLabel: {\n gridColumn: '1/3'\n },\n rowLabelHolder: {\n width: '100%'\n }\n});\n\nexport class AlternateResponses extends React.Component {\n static propTypes = {\n altIndex: PropTypes.number.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n };\n\n addChoiceToCategory = (choice, categoryId) => {\n const { altIndex, model: { correctResponse }, onModelChanged } = this.props;\n\n correctResponse.forEach(a => {\n if (a.category === categoryId) {\n a.alternateResponses = a.alternateResponses || [];\n\n if (!a.alternateResponses[altIndex]) {\n a.alternateResponses[altIndex] = [];\n }\n\n a.alternateResponses[altIndex].push(choice.id);\n\n return a;\n }\n\n return a;\n });\n\n onModelChanged({ correctResponse });\n };\n\n deleteChoiceFromCategory = (category, choice) => {\n const { altIndex, model: { correctResponse }, onModelChanged } = this.props;\n\n correctResponse.forEach(a => {\n if (a.category === category.id) {\n if (a.alternateResponses[altIndex]) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].filter(altId => altId !== choice.id);\n }\n }\n\n return a;\n });\n\n onModelChanged({ correctResponse });\n };\n\n render() {\n const {\n model,\n classes,\n className,\n categories,\n imageSupport,\n spellCheck,\n uploadSoundSupport\n } = this.props;\n const { categoriesPerRow } = model;\n\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`\n };\n\n return (\n <div className={classNames(classes.categories, className)}>\n <div className={classes.categoriesHolder} style={holderStyle}>\n {categories.map((category, index) => (\n <Category\n key={index}\n imageSupport={imageSupport}\n category={category}\n spellCheck={spellCheck}\n onAddChoice={this.addChoiceToCategory}\n onDeleteChoice={(choice, choiceIndex) =>\n this.deleteChoiceFromCategory(category, choice, choiceIndex)\n }\n uploadSoundSupport={uploadSoundSupport}\n />\n ))}\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AlternateResponses);\n"],"file":"alternateResponses.js"}
1
+ {"version":3,"sources":["../../../src/design/categories/alternateResponses.jsx"],"names":["styles","theme","categories","marginBottom","spacing","unit","categoriesHolder","display","gridRowGap","gridColumnGap","row","gridTemplateColumns","alignItems","width","marginTop","rowLabel","gridColumn","rowLabelHolder","AlternateResponses","choice","categoryId","props","altIndex","correctResponse","model","onModelChanged","forEach","a","category","alternateResponses","push","id","filter","altId","classes","className","imageSupport","spellCheck","uploadSoundSupport","categoriesPerRow","holderStyle","map","index","addChoiceToCategory","choiceIndex","deleteChoiceFromCategory","React","Component","PropTypes","number","isRequired","shape","add","func","object","string","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Category from './category';\n\nconst styles = (theme) => ({\n categories: {\n marginBottom: theme.spacing.unit,\n },\n categoriesHolder: {\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`,\n },\n row: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gridColumnGap: `${theme.spacing.unit}px`,\n alignItems: 'baseline',\n width: '100%',\n marginTop: theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit,\n },\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n width: '100%',\n },\n});\n\nexport class AlternateResponses extends React.Component {\n static propTypes = {\n altIndex: PropTypes.number.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n addChoiceToCategory = (choice, categoryId) => {\n const {\n altIndex,\n model: { correctResponse },\n onModelChanged,\n } = this.props;\n\n correctResponse.forEach((a) => {\n if (a.category === categoryId) {\n a.alternateResponses = a.alternateResponses || [];\n\n if (!a.alternateResponses[altIndex]) {\n a.alternateResponses[altIndex] = [];\n }\n\n a.alternateResponses[altIndex].push(choice.id);\n\n return a;\n }\n\n return a;\n });\n\n onModelChanged({ correctResponse });\n };\n\n deleteChoiceFromCategory = (category, choice) => {\n const {\n altIndex,\n model: { correctResponse },\n onModelChanged,\n } = this.props;\n\n correctResponse.forEach((a) => {\n if (a.category === category.id) {\n if (a.alternateResponses[altIndex]) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].filter((altId) => altId !== choice.id);\n }\n }\n\n return a;\n });\n\n onModelChanged({ correctResponse });\n };\n\n render() {\n const { model, classes, className, categories, imageSupport, spellCheck, uploadSoundSupport } = this.props;\n const { categoriesPerRow } = model;\n\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n\n return (\n <div className={classNames(classes.categories, className)}>\n <div className={classes.categoriesHolder} style={holderStyle}>\n {categories.map((category, index) => (\n <Category\n key={index}\n imageSupport={imageSupport}\n category={category}\n spellCheck={spellCheck}\n onAddChoice={this.addChoiceToCategory}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n uploadSoundSupport={uploadSoundSupport}\n />\n ))}\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AlternateResponses);\n"],"file":"alternateResponses.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/design/categories/category.jsx"],"names":["Category","l","props","category","onChange","label","classes","className","onDelete","onDeleteChoice","onAddChoice","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","changeLabel","placeHolder","choices","id","actions","React","Component","PropTypes","object","isRequired","string","func","shape","add","styles","theme","minHeight","deleteButton","margin","padding","paddingBottom","paddingTop","spacing","unit","iconButtonRoot","width","height","header","display","justifyContent","overflow","editor","flex"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Card from '@material-ui/core/Card';\nimport InputHeader from '../input-header';\nimport CardActions from '@material-ui/core/CardActions';\nimport { DeleteButton } from '../buttons';\n\nimport PlaceHolder from './droppable-placeholder';\n\nexport class Category extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n category: PropTypes.object.isRequired,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n onDeleteChoice: PropTypes.func,\n onAddChoice: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n static defaultProps = {};\n\n changeLabel = l => {\n const { category, onChange } = this.props;\n category.label = l;\n onChange(category);\n };\n\n render() {\n const {\n category,\n classes,\n className,\n onChange,\n onDelete,\n onDeleteChoice,\n onAddChoice,\n imageSupport,\n spellCheck,\n toolbarOpts,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport\n } = this.props;\n return (\n <Card className={classNames(classes.category, className)}>\n {\n onChange && (\n <InputHeader\n label={category.label}\n onChange={this.changeLabel}\n onDelete={onDelete}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n )\n }\n <PlaceHolder\n className={classes.placeHolder}\n choices={category.choices}\n onDeleteChoice={onDeleteChoice}\n onDropChoice={onAddChoice}\n categoryId={category.id}\n />\n {\n onDelete && (\n <CardActions className={classes.actions}>\n <DeleteButton label={'delete'} onClick={onDelete} />\n </CardActions>\n )\n }\n </Card>\n );\n }\n}\nconst styles = theme => ({\n placeHolder: {\n minHeight: '100px'\n },\n deleteButton: {\n margin: 0\n },\n actions: {\n padding: 0,\n paddingBottom: 0,\n paddingTop: theme.spacing.unit\n },\n iconButtonRoot: {\n width: 'auto',\n height: 'auto'\n },\n header: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n category: {\n padding: theme.spacing.unit,\n overflow: 'visible'\n },\n editor: {\n flex: '1',\n paddingBottom: theme.spacing.unit * 2\n }\n});\nexport default withStyles(styles)(Category);\n"],"file":"category.js"}
1
+ {"version":3,"sources":["../../../src/design/categories/category.jsx"],"names":["Category","l","props","category","onChange","label","classes","className","onDelete","onDeleteChoice","onAddChoice","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","changeLabel","placeHolder","choices","id","actions","React","Component","PropTypes","object","isRequired","string","func","shape","add","styles","theme","minHeight","deleteButton","margin","padding","paddingBottom","paddingTop","spacing","unit","iconButtonRoot","width","height","header","display","justifyContent","overflow","editor","flex"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Card from '@material-ui/core/Card';\nimport InputHeader from '../input-header';\nimport CardActions from '@material-ui/core/CardActions';\nimport { DeleteButton } from '../buttons';\n\nimport PlaceHolder from './droppable-placeholder';\n\nexport class Category extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n category: PropTypes.object.isRequired,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n onDeleteChoice: PropTypes.func,\n onAddChoice: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n static defaultProps = {};\n\n changeLabel = (l) => {\n const { category, onChange } = this.props;\n category.label = l;\n onChange(category);\n };\n\n render() {\n const {\n category,\n classes,\n className,\n onChange,\n onDelete,\n onDeleteChoice,\n onAddChoice,\n imageSupport,\n spellCheck,\n toolbarOpts,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n } = this.props;\n return (\n <Card className={classNames(classes.category, className)}>\n {onChange && (\n <InputHeader\n label={category.label}\n onChange={this.changeLabel}\n onDelete={onDelete}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n )}\n <PlaceHolder\n className={classes.placeHolder}\n choices={category.choices}\n onDeleteChoice={onDeleteChoice}\n onDropChoice={onAddChoice}\n categoryId={category.id}\n />\n {onDelete && (\n <CardActions className={classes.actions}>\n <DeleteButton label={'delete'} onClick={onDelete} />\n </CardActions>\n )}\n </Card>\n );\n }\n}\nconst styles = (theme) => ({\n placeHolder: {\n minHeight: '100px',\n },\n deleteButton: {\n margin: 0,\n },\n actions: {\n padding: 0,\n paddingBottom: 0,\n paddingTop: theme.spacing.unit,\n },\n iconButtonRoot: {\n width: 'auto',\n height: 'auto',\n },\n header: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n category: {\n padding: theme.spacing.unit,\n overflow: 'visible',\n },\n editor: {\n flex: '1',\n paddingBottom: theme.spacing.unit * 2,\n },\n});\nexport default withStyles(styles)(Category);\n"],"file":"category.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/design/categories/choice-preview.jsx"],"names":["ChoicePreview","props","onDelete","choice","classes","className","choicePreview","content","React","Component","PropTypes","object","isRequired","string","func","styles","position","right","top"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,a;;;;;;;;;;;;;;;+FASF,YAAM;AACb,wBAA6B,MAAKC,KAAlC;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,MAAlB,eAAkBA,MAAlB;AACAD,MAAAA,QAAQ,CAACC,MAAD,CAAR;AACD,K;;;;;;WAED,kBAAS;AACP,yBAAuC,KAAKF,KAA5C;AAAA,UAAQG,OAAR,gBAAQA,OAAR;AAAA,UAAiBC,SAAjB,gBAAiBA,SAAjB;AAAA,UAA4BF,MAA5B,gBAA4BA,MAA5B;AACA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWC,OAAO,CAACE,aAAnB,EAAkCD,SAAlC;AAAhB,SAEIF,MAAM,gBAAG,gCAAC,YAAD,qBACP,gCAAC,qBAAD;AAAa,QAAA,IAAI,EAAEA,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEI;AAA3B,QADO,eAEP,gCAAC,sBAAD;AACE,QAAA,KAAK,EAAC,WADR;AAEE,sBAAW,QAFb;AAGE,QAAA,SAAS,EAAEH,OAAO,UAHpB;AAIE,QAAA,OAAO,EAAE;AAJX,sBAME,gCAAC,kBAAD,OANF,CAFO,CAAH,GAWF,IAbR,CADF;AAkBD;;;EAlCgCI,kBAAMC,S;;;iCAA5BT,a,eACQ;AACjBI,EAAAA,OAAO,EAAEM,sBAAUC,MAAV,CAAiBC,UADT;AAEjBP,EAAAA,SAAS,EAAEK,sBAAUG,MAFJ;AAGjBV,EAAAA,MAAM,EAAEO,sBAAUC,MAAV,CAAiBC,UAHR;AAIjBV,EAAAA,QAAQ,EAAEQ,sBAAUI,IAAV,CAAeF;AAJR,C;iCADRZ,a,kBAOW,E;;AA6BxB,IAAMe,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO;AACpBT,IAAAA,aAAa,EAAE;AACbU,MAAAA,QAAQ,EAAE;AADG,KADK;AAIpB,cAAQ;AACNA,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,KAAK,EAAE,CAFD;AAGNC,MAAAA,GAAG,EAAE;AAHC;AAJY,GAAP;AAAA,CAAf;;eAUe,wBAAWH,MAAX,EAAmBf,aAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { Choice } from '@pie-lib/drag';\nimport IconButton from '@material-ui/core/IconButton';\nimport Delete from '@material-ui/icons/Delete';\nimport { HtmlAndMath } from '@pie-lib/render-ui';\n\nexport class ChoicePreview extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choice: PropTypes.object.isRequired,\n onDelete: PropTypes.func.isRequired\n };\n static defaultProps = {};\n\n delete = () => {\n const { onDelete, choice } = this.props;\n onDelete(choice);\n };\n\n render() {\n const { classes, className, choice } = this.props;\n return (\n <div className={classNames(classes.choicePreview, className)}>\n {\n choice ? <Choice>\n <HtmlAndMath html={choice?.content} />\n <IconButton\n color=\"secondary\"\n aria-label=\"delete\"\n className={classes.delete}\n onClick={this.delete}\n >\n <Delete />\n </IconButton>\n </Choice>\n : null\n }\n </div>\n );\n }\n}\nconst styles = () => ({\n choicePreview: {\n position: 'relative'\n },\n delete: {\n position: 'absolute',\n right: 0,\n top: 0\n }\n});\nexport default withStyles(styles)(ChoicePreview);\n"],"file":"choice-preview.js"}
1
+ {"version":3,"sources":["../../../src/design/categories/choice-preview.jsx"],"names":["ChoicePreview","props","onDelete","choice","classes","className","choicePreview","content","React","Component","PropTypes","object","isRequired","string","func","styles","position","right","top"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,a;;;;;;;;;;;;;;;+FASF,YAAM;AACb,wBAA6B,MAAKC,KAAlC;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,MAAlB,eAAkBA,MAAlB;AACAD,MAAAA,QAAQ,CAACC,MAAD,CAAR;AACD,K;;;;;;WAED,kBAAS;AACP,yBAAuC,KAAKF,KAA5C;AAAA,UAAQG,OAAR,gBAAQA,OAAR;AAAA,UAAiBC,SAAjB,gBAAiBA,SAAjB;AAAA,UAA4BF,MAA5B,gBAA4BA,MAA5B;AACA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWC,OAAO,CAACE,aAAnB,EAAkCD,SAAlC;AAAhB,SACGF,MAAM,gBACL,gCAAC,YAAD,qBACE,gCAAC,qBAAD;AAAa,QAAA,IAAI,EAAEA,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEI;AAA3B,QADF,eAEE,gCAAC,sBAAD;AAAY,QAAA,KAAK,EAAC,WAAlB;AAA8B,sBAAW,QAAzC;AAAkD,QAAA,SAAS,EAAEH,OAAO,UAApE;AAA6E,QAAA,OAAO,EAAE;AAAtF,sBACE,gCAAC,kBAAD,OADF,CAFF,CADK,GAOH,IARN,CADF;AAYD;;;EA5BgCI,kBAAMC,S;;;iCAA5BT,a,eACQ;AACjBI,EAAAA,OAAO,EAAEM,sBAAUC,MAAV,CAAiBC,UADT;AAEjBP,EAAAA,SAAS,EAAEK,sBAAUG,MAFJ;AAGjBV,EAAAA,MAAM,EAAEO,sBAAUC,MAAV,CAAiBC,UAHR;AAIjBV,EAAAA,QAAQ,EAAEQ,sBAAUI,IAAV,CAAeF;AAJR,C;iCADRZ,a,kBAOW,E;;AAuBxB,IAAMe,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO;AACpBT,IAAAA,aAAa,EAAE;AACbU,MAAAA,QAAQ,EAAE;AADG,KADK;AAIpB,cAAQ;AACNA,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,KAAK,EAAE,CAFD;AAGNC,MAAAA,GAAG,EAAE;AAHC;AAJY,GAAP;AAAA,CAAf;;eAUe,wBAAWH,MAAX,EAAmBf,aAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { Choice } from '@pie-lib/drag';\nimport IconButton from '@material-ui/core/IconButton';\nimport Delete from '@material-ui/icons/Delete';\nimport { HtmlAndMath } from '@pie-lib/render-ui';\n\nexport class ChoicePreview extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choice: PropTypes.object.isRequired,\n onDelete: PropTypes.func.isRequired,\n };\n static defaultProps = {};\n\n delete = () => {\n const { onDelete, choice } = this.props;\n onDelete(choice);\n };\n\n render() {\n const { classes, className, choice } = this.props;\n return (\n <div className={classNames(classes.choicePreview, className)}>\n {choice ? (\n <Choice>\n <HtmlAndMath html={choice?.content} />\n <IconButton color=\"secondary\" aria-label=\"delete\" className={classes.delete} onClick={this.delete}>\n <Delete />\n </IconButton>\n </Choice>\n ) : null}\n </div>\n );\n }\n}\nconst styles = () => ({\n choicePreview: {\n position: 'relative',\n },\n delete: {\n position: 'absolute',\n right: 0,\n top: 0,\n },\n});\nexport default withStyles(styles)(ChoicePreview);\n"],"file":"choice-preview.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/design/categories/droppable-placeholder.jsx"],"names":["log","Helper","helper","display","alignItems","fontSize","color","width","height","classes","Previews","choices","onDeleteChoice","map","c","index","choice","propTypes","PropTypes","array","func","DroppablePlaceHolder","props","isOver","className","connectDropTarget","droppablePlaceholder","placeHolder","length","React","Component","object","isRequired","string","onDropChoice","bool","categoryId","styles","minHeight","Styled","spec","drop","monitor","item","getItem","canDrop","disabled","WithTarget","uid","connect","dropTarget","withUid"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport ChoicePreview from './choice-preview';\nimport { DropTarget } from 'react-dnd';\nimport { uid, PlaceHolder } from '@pie-lib/drag';\nimport debug from 'debug';\n\nconst log = debug('@pie-element:categorize:configure');\n\nconst Helper = withStyles(() => ({\n helper: {\n display: 'flex',\n alignItems: 'center',\n fontSize: '12px',\n color: 'rgba(0,0,0,0.4)',\n width: '100%',\n height: '100%'\n }\n}))(({ classes }) => (\n <div className={classes.helper}>Drag your correct answers here</div>\n));\n\nconst Previews = ({ choices, onDeleteChoice }) => (\n <React.Fragment>\n {choices.map((c, index) =>\n c && <ChoicePreview\n choice={c}\n key={index}\n onDelete={choice => onDeleteChoice(choice, index)}\n />\n )}\n </React.Fragment>\n);\n\nPreviews.propTypes = {\n choices: PropTypes.array,\n onDeleteChoice: PropTypes.func\n};\n\nexport class DroppablePlaceHolder extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n connectDropTarget: PropTypes.func.isRequired,\n choices: PropTypes.array,\n onDropChoice: PropTypes.func.isRequired,\n isOver: PropTypes.bool,\n onDeleteChoice: PropTypes.func,\n categoryId: PropTypes.string.isRequired\n };\n\n static defaultProps = {};\n render() {\n const {\n isOver,\n choices,\n classes,\n className,\n connectDropTarget,\n onDeleteChoice\n } = this.props;\n\n return connectDropTarget(\n <div className={classNames(classes.droppablePlaceholder, className)}>\n <PlaceHolder isOver={isOver} className={classes.placeHolder}>\n {(choices || []).length === 0 ? (\n <Helper />\n ) : (\n <Previews choices={choices} onDeleteChoice={onDeleteChoice} />\n )}\n </PlaceHolder>\n </div>\n );\n }\n}\nconst styles = () => ({\n droppablePlaceholder: {\n minHeight: '100px'\n },\n placeHolder: {\n width: '100%',\n minHeight: '100px',\n height: 'auto'\n }\n});\n\nconst Styled = withStyles(styles)(DroppablePlaceHolder);\n\nexport const spec = {\n drop: (props, monitor) => {\n log('[drop] props: ', props);\n const item = monitor.getItem();\n props.onDropChoice(item, props.categoryId);\n },\n canDrop: (props /*, monitor*/) => {\n return !props.disabled;\n }\n};\n\nconst WithTarget = DropTarget(({ uid }) => uid, spec, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver()\n}))(Styled);\n\nexport default uid.withUid(WithTarget);\n"],"file":"droppable-placeholder.js"}
1
+ {"version":3,"sources":["../../../src/design/categories/droppable-placeholder.jsx"],"names":["log","Helper","helper","display","alignItems","fontSize","color","width","height","classes","Previews","choices","onDeleteChoice","map","c","index","choice","propTypes","PropTypes","array","func","DroppablePlaceHolder","props","isOver","className","connectDropTarget","droppablePlaceholder","placeHolder","length","React","Component","object","isRequired","string","onDropChoice","bool","categoryId","styles","minHeight","Styled","spec","drop","monitor","item","getItem","canDrop","disabled","WithTarget","uid","connect","dropTarget","withUid"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport ChoicePreview from './choice-preview';\nimport { DropTarget } from 'react-dnd';\nimport { uid, PlaceHolder } from '@pie-lib/drag';\nimport debug from 'debug';\n\nconst log = debug('@pie-element:categorize:configure');\n\nconst Helper = withStyles(() => ({\n helper: {\n display: 'flex',\n alignItems: 'center',\n fontSize: '12px',\n color: 'rgba(0,0,0,0.4)',\n width: '100%',\n height: '100%',\n },\n}))(({ classes }) => <div className={classes.helper}>Drag your correct answers here</div>);\n\nconst Previews = ({ choices, onDeleteChoice }) => (\n <React.Fragment>\n {choices.map(\n (c, index) => c && <ChoicePreview choice={c} key={index} onDelete={(choice) => onDeleteChoice(choice, index)} />,\n )}\n </React.Fragment>\n);\n\nPreviews.propTypes = {\n choices: PropTypes.array,\n onDeleteChoice: PropTypes.func,\n};\n\nexport class DroppablePlaceHolder extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n connectDropTarget: PropTypes.func.isRequired,\n choices: PropTypes.array,\n onDropChoice: PropTypes.func.isRequired,\n isOver: PropTypes.bool,\n onDeleteChoice: PropTypes.func,\n categoryId: PropTypes.string.isRequired,\n };\n\n static defaultProps = {};\n render() {\n const { isOver, choices, classes, className, connectDropTarget, onDeleteChoice } = this.props;\n\n return connectDropTarget(\n <div className={classNames(classes.droppablePlaceholder, className)}>\n <PlaceHolder isOver={isOver} className={classes.placeHolder}>\n {(choices || []).length === 0 ? <Helper /> : <Previews choices={choices} onDeleteChoice={onDeleteChoice} />}\n </PlaceHolder>\n </div>,\n );\n }\n}\nconst styles = () => ({\n droppablePlaceholder: {\n minHeight: '100px',\n },\n placeHolder: {\n width: '100%',\n minHeight: '100px',\n height: 'auto',\n },\n});\n\nconst Styled = withStyles(styles)(DroppablePlaceHolder);\n\nexport const spec = {\n drop: (props, monitor) => {\n log('[drop] props: ', props);\n const item = monitor.getItem();\n props.onDropChoice(item, props.categoryId);\n },\n canDrop: (props /*, monitor*/) => {\n return !props.disabled;\n },\n};\n\nconst WithTarget = DropTarget(\n ({ uid }) => uid,\n spec,\n (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n }),\n)(Styled);\n\nexport default uid.withUid(WithTarget);\n"],"file":"droppable-placeholder.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/design/categories/index.jsx"],"names":["styles","theme","categories","marginBottom","spacing","unit","categoriesHolder","display","gridRowGap","gridColumnGap","row","gridTemplateColumns","alignItems","width","marginTop","rowLabel","gridColumn","rowLabelHolder","tooltip","fontSize","whiteSpace","maxWidth","errorText","color","padding","RowLabel","categoriesPerRow","classes","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","uploadSoundSupport","text","language","Categories","model","props","id","utils","firstAvailableIndex","map","a","data","label","addRowLabel","length","rowLabels","push","onModelChanged","concat","category","index","findIndex","splice","correctResponse","c","choice","categoryId","undefined","choiceIndex","val","newRowLabels","className","configuration","defaultImageMaxHeight","defaultImageMaxWidth","errors","associationError","categoriesError","maxCategories","holderStyle","validationMessage","add","marginLeft","hasRowLabel","rowIndex","changeRowLabel","change","addChoiceToCategory","deleteChoiceFromCategory","categoryLabel","React","Component","PropTypes","shape","func","isRequired","object","string","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport classNames from 'classnames';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { moveChoiceToCategory, removeCategory, removeChoiceFromCategory } from '@pie-lib/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage } from '../../utils';\n\nconst styles = theme => ({\n categories: {\n marginBottom: theme.spacing.unit\n },\n categoriesHolder: {\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`\n },\n row: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gridColumnGap: `${theme.spacing.unit}px`,\n alignItems: 'baseline',\n width: '100%',\n marginTop: theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit\n },\n rowLabel: {\n gridColumn: '1/3'\n },\n rowLabelHolder: {\n width: '100%'\n },\n tooltip: {\n fontSize: '12px',\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n padding: '5px 0'\n },\n});\n\nconst RowLabel = withStyles(styles)(({ categoriesPerRow, classes, markup, imageSupport, onChange, toolbarOpts, spellCheck, maxImageWidth, maxImageHeight, uploadSoundSupport}) => {\n return (\n <div\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%'\n }}\n >\n <Typography className={classes.text}>\n Row Label\n </Typography>\n <EditableHtml\n className={classes.rowLabelHolder}\n markup={markup}\n onChange={onChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </div>\n );\n});\n\nexport class Categories extends React.Component {\n static propTypes = {\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n toolbarOpts: PropTypes.object\n };\n\n add = () => {\n const { model } = this.props;\n const { categoriesPerRow } = model;\n const id = utils.firstAvailableIndex(model.categories.map(a => a.id), 0);\n const data = { id, label: 'Category ' + id };\n const addRowLabel = (model.categories.length) % categoriesPerRow === 0;\n const rowLabels = [...model.rowLabels];\n\n if (addRowLabel) {\n rowLabels.push('');\n }\n\n this.props.onModelChanged({\n rowLabels,\n categories: model.categories.concat([data])\n });\n };\n\n delete = category => {\n const { model, onModelChanged } = this.props;\n const index = model.categories.findIndex(a => a.id === category.id);\n\n if (index !== -1) {\n model.categories.splice(index, 1);\n model.correctResponse = removeCategory(\n category.id,\n model.correctResponse\n );\n onModelChanged(model);\n }\n };\n\n change = c => {\n const { categories } = this.props;\n const index = categories.findIndex(a => a.id === c.id);\n\n if (index !== -1) {\n categories.splice(index, 1, c);\n this.props.onModelChanged({ categories });\n }\n };\n\n addChoiceToCategory = (choice, categoryId) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = moveChoiceToCategory(\n choice.id,\n undefined,\n categoryId,\n 0,\n model.correctResponse\n );\n\n onModelChanged({ correctResponse });\n };\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = removeChoiceFromCategory(\n choice.id,\n category.id,\n choiceIndex,\n model.correctResponse\n );\n\n onModelChanged({ correctResponse });\n };\n\n changeRowLabel = (val, index) => {\n const { model } = this.props;\n const { rowLabels } = model;\n const newRowLabels = [...rowLabels];\n\n if (newRowLabels.length < index) {\n newRowLabels.push(val);\n } else {\n newRowLabels[index] = val;\n }\n\n this.props.onModelChanged({\n rowLabels: newRowLabels\n });\n };\n\n render() {\n const {\n model,\n classes,\n className,\n categories,\n imageSupport,\n uploadSoundSupport,\n toolbarOpts,\n spellCheck,\n configuration,\n defaultImageMaxHeight,\n defaultImageMaxWidth\n } = this.props;\n\n const { categoriesPerRow, rowLabels, errors } = model;\n const { associationError, categoriesError } = errors || {};\n const {\n maxCategories,\n maxImageWidth = {},\n maxImageHeight = {},\n } = configuration || {};\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`\n };\n\n const validationMessage = generateValidationMessage(configuration);\n\n return (\n <div className={classNames(classes.categories, className)}>\n <Header\n label=\"Categories\"\n buttonLabel=\"ADD A CATEGORY\"\n onAdd={this.add}\n info={<Tooltip\n classes={{tooltip: classes.tooltip}}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }}/>\n </Tooltip>}\n buttonDisabled={maxCategories && categories && maxCategories === categories.length}\n />\n {associationError && <div className={classes.errorText}>{associationError}</div>}\n {categoriesError && <div className={classes.errorText}>{categoriesError}</div>}\n <div className={classes.categoriesHolder} style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment\n key={index}\n >\n {hasRowLabel && (\n <RowLabel\n categoriesPerRow={categoriesPerRow}\n rowIndex={rowIndex}\n markup={rowLabels[rowIndex] || ''}\n onChange={(val) => this.changeRowLabel(val, rowIndex)}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth && maxImageWidth.rowLabel || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.rowLabel || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n )}\n <Category\n imageSupport={imageSupport}\n category={category}\n onChange={this.change}\n onDelete={() => this.delete(category)}\n onAddChoice={this.addChoiceToCategory}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) =>\n this.deleteChoiceFromCategory(category, choice, choiceIndex)\n }\n maxImageWidth={maxImageWidth && maxImageWidth.categoryLabel || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.categoryLabel || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n </React.Fragment>\n );\n })}\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(Categories);\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/design/categories/index.jsx"],"names":["styles","theme","categories","marginBottom","spacing","unit","categoriesHolder","display","gridRowGap","gridColumnGap","row","gridTemplateColumns","alignItems","width","marginTop","rowLabel","gridColumn","rowLabelHolder","tooltip","fontSize","whiteSpace","maxWidth","errorText","color","padding","RowLabel","categoriesPerRow","classes","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","uploadSoundSupport","text","language","Categories","model","props","id","utils","firstAvailableIndex","map","a","data","label","addRowLabel","length","rowLabels","push","onModelChanged","concat","category","index","findIndex","splice","correctResponse","c","choice","categoryId","undefined","choiceIndex","val","newRowLabels","className","configuration","defaultImageMaxHeight","defaultImageMaxWidth","errors","associationError","categoriesError","maxCategories","holderStyle","validationMessage","add","marginLeft","hasRowLabel","rowIndex","changeRowLabel","change","addChoiceToCategory","deleteChoiceFromCategory","categoryLabel","React","Component","PropTypes","shape","func","isRequired","object","string","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport classNames from 'classnames';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { moveChoiceToCategory, removeCategory, removeChoiceFromCategory } from '@pie-lib/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage } from '../../utils';\n\nconst styles = (theme) => ({\n categories: {\n marginBottom: theme.spacing.unit,\n },\n categoriesHolder: {\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`,\n },\n row: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gridColumnGap: `${theme.spacing.unit}px`,\n alignItems: 'baseline',\n width: '100%',\n marginTop: theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit,\n },\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n width: '100%',\n },\n tooltip: {\n fontSize: '12px',\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n padding: '5px 0',\n },\n});\n\nconst RowLabel = withStyles(styles)(\n ({\n categoriesPerRow,\n classes,\n markup,\n imageSupport,\n onChange,\n toolbarOpts,\n spellCheck,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n }) => {\n return (\n <div\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%',\n }}\n >\n <Typography className={classes.text}>Row Label</Typography>\n <EditableHtml\n className={classes.rowLabelHolder}\n markup={markup}\n onChange={onChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </div>\n );\n },\n);\n\nexport class Categories extends React.Component {\n static propTypes = {\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n toolbarOpts: PropTypes.object,\n };\n\n add = () => {\n const { model } = this.props;\n const { categoriesPerRow } = model;\n const id = utils.firstAvailableIndex(\n model.categories.map((a) => a.id),\n 0,\n );\n const data = { id, label: 'Category ' + id };\n const addRowLabel = model.categories.length % categoriesPerRow === 0;\n const rowLabels = [...model.rowLabels];\n\n if (addRowLabel) {\n rowLabels.push('');\n }\n\n this.props.onModelChanged({\n rowLabels,\n categories: model.categories.concat([data]),\n });\n };\n\n delete = (category) => {\n const { model, onModelChanged } = this.props;\n const index = model.categories.findIndex((a) => a.id === category.id);\n\n if (index !== -1) {\n model.categories.splice(index, 1);\n model.correctResponse = removeCategory(category.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n change = (c) => {\n const { categories } = this.props;\n const index = categories.findIndex((a) => a.id === c.id);\n\n if (index !== -1) {\n categories.splice(index, 1, c);\n this.props.onModelChanged({ categories });\n }\n };\n\n addChoiceToCategory = (choice, categoryId) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = moveChoiceToCategory(choice.id, undefined, categoryId, 0, model.correctResponse);\n\n onModelChanged({ correctResponse });\n };\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = removeChoiceFromCategory(choice.id, category.id, choiceIndex, model.correctResponse);\n\n onModelChanged({ correctResponse });\n };\n\n changeRowLabel = (val, index) => {\n const { model } = this.props;\n const { rowLabels } = model;\n const newRowLabels = [...rowLabels];\n\n if (newRowLabels.length < index) {\n newRowLabels.push(val);\n } else {\n newRowLabels[index] = val;\n }\n\n this.props.onModelChanged({\n rowLabels: newRowLabels,\n });\n };\n\n render() {\n const {\n model,\n classes,\n className,\n categories,\n imageSupport,\n uploadSoundSupport,\n toolbarOpts,\n spellCheck,\n configuration,\n defaultImageMaxHeight,\n defaultImageMaxWidth,\n } = this.props;\n\n const { categoriesPerRow, rowLabels, errors } = model;\n const { associationError, categoriesError } = errors || {};\n const { maxCategories, maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n\n const validationMessage = generateValidationMessage(configuration);\n\n return (\n <div className={classNames(classes.categories, className)}>\n <Header\n label=\"Categories\"\n buttonLabel=\"ADD A CATEGORY\"\n onAdd={this.add}\n info={\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </Tooltip>\n }\n buttonDisabled={maxCategories && categories && maxCategories === categories.length}\n />\n {associationError && <div className={classes.errorText}>{associationError}</div>}\n {categoriesError && <div className={classes.errorText}>{categoriesError}</div>}\n <div className={classes.categoriesHolder} style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment key={index}>\n {hasRowLabel && (\n <RowLabel\n categoriesPerRow={categoriesPerRow}\n rowIndex={rowIndex}\n markup={rowLabels[rowIndex] || ''}\n onChange={(val) => this.changeRowLabel(val, rowIndex)}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n )}\n <Category\n imageSupport={imageSupport}\n category={category}\n onChange={this.change}\n onDelete={() => this.delete(category)}\n onAddChoice={this.addChoiceToCategory}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n maxImageWidth={(maxImageWidth && maxImageWidth.categoryLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.categoryLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n </React.Fragment>\n );\n })}\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(Categories);\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/design/choices/choice.jsx"],"names":["log","canDrag","props","count","choice","categoryCount","correctResponseCount","Choice","content","onChange","allowMultiplePlacements","multiplePlacements","perChoice","classes","className","onDelete","connectDragSource","connectDragPreview","imageSupport","spellCheck","toolbarOpts","error","maxImageWidth","maxImageHeight","uploadSoundSupport","draggable","showRemoveAfterPlacing","isCheckboxShown","actions","dragHandle","dragDisabled","changeContent","errorText","changeCategoryCount","React","Component","PropTypes","string","object","isRequired","func","number","shape","add","styles","theme","padding","justifyContent","spacing","unit","overflow","cursor","fontSize","color","paddingBottom","StyledChoice","spec","beginDrag","out","id","endDrag","monitor","didDrop","item","getItem","categoryId","onRemoveChoice","DraggableChoice","uid","connect","dragSource","dragPreview","isDragging","withUid"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport InputHeader from '../input-header';\nimport { Checkbox } from '@pie-lib/config-ui';\nimport { DeleteButton } from '../buttons';\nimport DragHandle from '@material-ui/icons/DragHandle';\nimport { DragSource } from 'react-dnd';\nimport debug from 'debug';\nimport { uid } from '@pie-lib/drag';\nimport { multiplePlacements } from '../../utils';\n\nconst log = debug('@pie-element:categorize:configure:choice');\n\nconst canDrag = props => {\n const count = props.choice.categoryCount || 0;\n if (count === 0) {\n return true;\n } else {\n return props.correctResponseCount < count;\n }\n};\n\nexport class Choice extends React.Component {\n static propTypes = {\n allowMultiplePlacements: PropTypes.string,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choice: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n correctResponseCount: PropTypes.number.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object,\n error: PropTypes.string,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n static defaultProps = {};\n\n changeContent = content => {\n const { onChange, choice } = this.props;\n choice.content = content;\n onChange(choice);\n };\n\n changeCategoryCount = () => {\n const { onChange, choice } = this.props;\n if (choice.categoryCount === 1) {\n choice.categoryCount = 0;\n } else {\n choice.categoryCount = 1;\n }\n onChange(choice);\n };\n\n isCheckboxShown = allowMultiplePlacements => allowMultiplePlacements === multiplePlacements.perChoice;\n\n render() {\n const {\n allowMultiplePlacements,\n classes,\n className,\n choice,\n onDelete,\n connectDragSource,\n connectDragPreview,\n imageSupport,\n spellCheck,\n toolbarOpts,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport\n } = this.props;\n\n const draggable = canDrag(this.props);\n\n const showRemoveAfterPlacing = this.isCheckboxShown(allowMultiplePlacements);\n\n return (\n <Card className={classNames(classes.choice, className)}>\n <CardActions className={classes.actions}>\n {connectDragSource(\n <span\n className={classNames(\n classes.dragHandle,\n draggable === false && classes.dragDisabled\n )}\n >\n <DragHandle color={draggable ? 'primary' : 'disabled'} />\n </span>\n )}\n </CardActions>\n {connectDragPreview(\n <span>\n <InputHeader\n imageSupport={imageSupport}\n label={choice.content}\n onChange={this.changeContent}\n onDelete={onDelete}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n {error && <div className={classes.errorText}>{error}</div>}\n </span>\n )}\n\n <CardActions className={classes.actions}>\n <DeleteButton label={'delete'} onClick={onDelete} />\n {showRemoveAfterPlacing &&\n <Checkbox\n mini\n label={'Remove after placing'}\n checked={choice.categoryCount === 1}\n onChange={this.changeCategoryCount} />\n }\n </CardActions>\n </Card>\n );\n }\n}\nconst styles = theme => ({\n actions: {\n padding: 0,\n justifyContent: 'space-between'\n },\n choice: {\n padding: theme.spacing.unit,\n overflow: 'visible'\n },\n dragHandle: {\n cursor: 'move'\n },\n dragDisabled: {\n cursor: 'inherit'\n },\n errorText: {\n fontSize: '11px',\n color: 'red',\n paddingBottom: '5px'\n },\n});\n\nconst StyledChoice = withStyles(styles)(Choice);\n\nexport const spec = {\n canDrag,\n beginDrag: props => {\n const out = {\n id: props.choice.id\n };\n log('[beginDrag] out:', out);\n return out;\n },\n endDrag: (props, monitor) => {\n if (!monitor.didDrop()) {\n const item = monitor.getItem();\n if (item.categoryId) {\n log('wasnt droppped - what to do?');\n props.onRemoveChoice(item);\n }\n }\n }\n};\n\nconst DraggableChoice = DragSource(\n ({ uid }) => uid,\n spec,\n (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging()\n })\n)(StyledChoice);\n\nexport default uid.withUid(DraggableChoice);\n"],"file":"choice.js"}
1
+ {"version":3,"sources":["../../../src/design/choices/choice.jsx"],"names":["log","canDrag","props","count","choice","categoryCount","correctResponseCount","Choice","content","onChange","allowMultiplePlacements","multiplePlacements","perChoice","classes","className","onDelete","connectDragSource","connectDragPreview","imageSupport","spellCheck","toolbarOpts","error","maxImageWidth","maxImageHeight","uploadSoundSupport","draggable","showRemoveAfterPlacing","isCheckboxShown","actions","dragHandle","dragDisabled","changeContent","errorText","changeCategoryCount","React","Component","PropTypes","string","object","isRequired","func","number","shape","add","styles","theme","padding","justifyContent","spacing","unit","overflow","cursor","fontSize","color","paddingBottom","StyledChoice","spec","beginDrag","out","id","endDrag","monitor","didDrop","item","getItem","categoryId","onRemoveChoice","DraggableChoice","uid","connect","dragSource","dragPreview","isDragging","withUid"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport InputHeader from '../input-header';\nimport { Checkbox } from '@pie-lib/config-ui';\nimport { DeleteButton } from '../buttons';\nimport DragHandle from '@material-ui/icons/DragHandle';\nimport { DragSource } from 'react-dnd';\nimport debug from 'debug';\nimport { uid } from '@pie-lib/drag';\nimport { multiplePlacements } from '../../utils';\n\nconst log = debug('@pie-element:categorize:configure:choice');\n\nconst canDrag = (props) => {\n const count = props.choice.categoryCount || 0;\n if (count === 0) {\n return true;\n } else {\n return props.correctResponseCount < count;\n }\n};\n\nexport class Choice extends React.Component {\n static propTypes = {\n allowMultiplePlacements: PropTypes.string,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choice: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n correctResponseCount: PropTypes.number.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n error: PropTypes.string,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n static defaultProps = {};\n\n changeContent = (content) => {\n const { onChange, choice } = this.props;\n choice.content = content;\n onChange(choice);\n };\n\n changeCategoryCount = () => {\n const { onChange, choice } = this.props;\n if (choice.categoryCount === 1) {\n choice.categoryCount = 0;\n } else {\n choice.categoryCount = 1;\n }\n onChange(choice);\n };\n\n isCheckboxShown = (allowMultiplePlacements) => allowMultiplePlacements === multiplePlacements.perChoice;\n\n render() {\n const {\n allowMultiplePlacements,\n classes,\n className,\n choice,\n onDelete,\n connectDragSource,\n connectDragPreview,\n imageSupport,\n spellCheck,\n toolbarOpts,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n } = this.props;\n\n const draggable = canDrag(this.props);\n\n const showRemoveAfterPlacing = this.isCheckboxShown(allowMultiplePlacements);\n\n return (\n <Card className={classNames(classes.choice, className)}>\n <CardActions className={classes.actions}>\n {connectDragSource(\n <span className={classNames(classes.dragHandle, draggable === false && classes.dragDisabled)}>\n <DragHandle color={draggable ? 'primary' : 'disabled'} />\n </span>,\n )}\n </CardActions>\n {connectDragPreview(\n <span>\n <InputHeader\n imageSupport={imageSupport}\n label={choice.content}\n onChange={this.changeContent}\n onDelete={onDelete}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n {error && <div className={classes.errorText}>{error}</div>}\n </span>,\n )}\n\n <CardActions className={classes.actions}>\n <DeleteButton label={'delete'} onClick={onDelete} />\n {showRemoveAfterPlacing && (\n <Checkbox\n mini\n label={'Remove after placing'}\n checked={choice.categoryCount === 1}\n onChange={this.changeCategoryCount}\n />\n )}\n </CardActions>\n </Card>\n );\n }\n}\nconst styles = (theme) => ({\n actions: {\n padding: 0,\n justifyContent: 'space-between',\n },\n choice: {\n padding: theme.spacing.unit,\n overflow: 'visible',\n },\n dragHandle: {\n cursor: 'move',\n },\n dragDisabled: {\n cursor: 'inherit',\n },\n errorText: {\n fontSize: '11px',\n color: 'red',\n paddingBottom: '5px',\n },\n});\n\nconst StyledChoice = withStyles(styles)(Choice);\n\nexport const spec = {\n canDrag,\n beginDrag: (props) => {\n const out = {\n id: props.choice.id,\n };\n log('[beginDrag] out:', out);\n return out;\n },\n endDrag: (props, monitor) => {\n if (!monitor.didDrop()) {\n const item = monitor.getItem();\n if (item.categoryId) {\n log('wasnt droppped - what to do?');\n props.onRemoveChoice(item);\n }\n }\n },\n};\n\nconst DraggableChoice = DragSource(\n ({ uid }) => uid,\n spec,\n (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging(),\n }),\n)(StyledChoice);\n\nexport default uid.withUid(DraggableChoice);\n"],"file":"choice.js"}
@@ -47,24 +47,6 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
47
47
 
48
48
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
49
49
 
50
- var positionOptions = [{
51
- label: 'Above',
52
- value: 'above',
53
- secondaryText: 'Choices will be shown above categories'
54
- }, {
55
- label: 'Below',
56
- value: 'below',
57
- secondaryText: 'Choices will be shown below categories'
58
- }, {
59
- label: 'Left',
60
- value: 'left',
61
- secondaryText: 'Choices will be shown to the left of the categories'
62
- }, {
63
- label: 'Right',
64
- value: 'right',
65
- secondaryText: 'Choices will be shown to the right of the categories'
66
- }];
67
-
68
50
  var Config = /*#__PURE__*/function (_React$Component) {
69
51
  (0, _inherits2["default"])(Config, _React$Component);
70
52
 
@@ -80,9 +62,6 @@ var Config = /*#__PURE__*/function (_React$Component) {
80
62
  }
81
63
 
82
64
  _this = _super.call.apply(_super, [this].concat(args));
83
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
84
- anchorEl: null
85
- });
86
65
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeLabel", function (_ref) {
87
66
  var target = _ref.target;
88
67
 
@@ -90,49 +69,17 @@ var Config = /*#__PURE__*/function (_React$Component) {
90
69
  choicesLabel: target.value
91
70
  });
92
71
  });
93
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changePosition", function (position) {
94
- _this.props.onModelChanged({
95
- choicesPosition: position.value
96
- });
97
-
98
- _this.setState({
99
- anchorEl: null
100
- });
101
- });
102
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClickPosition", function (event) {
103
- _this.setState({
104
- anchorEl: event.currentTarget
105
- });
106
- });
107
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleMenuItemClick", function (event, index) {
108
- _this.setState({
109
- selectedIndex: index,
110
- anchorEl: null
111
- });
112
- });
113
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClose", function () {
114
- _this.setState({
115
- anchorEl: null
116
- });
117
- });
118
72
  return _this;
119
73
  }
120
74
 
121
75
  (0, _createClass2["default"])(Config, [{
122
76
  key: "render",
123
77
  value: function render() {
124
- var _this2 = this;
125
-
126
- var anchorEl = this.state.anchorEl;
127
78
  var _this$props = this.props,
128
79
  classes = _this$props.classes,
129
80
  className = _this$props.className,
130
- categoryCountIsOne = _this$props.categoryCountIsOne,
131
81
  config = _this$props.config,
132
82
  spellCheck = _this$props.spellCheck;
133
- var positionOption = positionOptions.find(function (option) {
134
- return option.value === config.choicesPosition;
135
- }) || positionOption[1];
136
83
  return /*#__PURE__*/_react["default"].createElement("div", {
137
84
  className: (0, _classnames["default"])(classes.config, className)
138
85
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -146,29 +93,7 @@ var Config = /*#__PURE__*/function (_React$Component) {
146
93
  value: config.choicesLabel,
147
94
  onChange: this.changeLabel,
148
95
  spellCheck: spellCheck
149
- }), /*#__PURE__*/_react["default"].createElement(_List["default"], {
150
- component: "nav"
151
- }, /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
152
- button: true,
153
- "aria-haspopup": "true",
154
- onClick: this.handleClickPosition
155
- }, /*#__PURE__*/_react["default"].createElement(_ListItemText["default"], {
156
- primary: "Choices Position",
157
- secondary: positionOption.secondaryText
158
- }))), /*#__PURE__*/_react["default"].createElement(_Menu["default"], {
159
- id: "lock-menu",
160
- anchorEl: anchorEl,
161
- open: Boolean(anchorEl),
162
- onClose: this.handleClose
163
- }, positionOptions.map(function (option) {
164
- return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
165
- key: option.value,
166
- selected: option.value === config.choicesPosition,
167
- onClick: function onClick() {
168
- return _this2.changePosition(option);
169
- }
170
- }, option.label);
171
- }))));
96
+ })));
172
97
  }
173
98
  }]);
174
99
  return Config;
@@ -179,8 +104,6 @@ exports.Config = Config;
179
104
  classes: _propTypes["default"].object.isRequired,
180
105
  className: _propTypes["default"].string,
181
106
  config: _propTypes["default"].object,
182
- categoryCountIsOne: _propTypes["default"].bool,
183
- allChoicesHaveCount: _propTypes["default"].func,
184
107
  onModelChanged: _propTypes["default"].func
185
108
  });
186
109
  (0, _defineProperty2["default"])(Config, "defaultProps", {});
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/design/choices/config.jsx"],"names":["positionOptions","label","value","secondaryText","Config","anchorEl","target","props","onModelChanged","choicesLabel","position","choicesPosition","setState","event","currentTarget","index","selectedIndex","state","classes","className","categoryCountIsOne","config","spellCheck","positionOption","find","option","configuration","shrink","changeLabel","handleClickPosition","Boolean","handleClose","map","changePosition","React","Component","PropTypes","object","isRequired","string","bool","allChoicesHaveCount","func","styles","theme","display","alignItems","gridColumnGap","spacing","unit","gridRowGap","gridTemplateColumns","justifyContent","marginBottom","choiceConfig","width","maxWidth","backgroundColor","palette","background","paper","row","marginTop","shuffleCheckbox","gridColumnStart","gridColumnEnd"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,eAAe,GAAG,CACtB;AACEC,EAAAA,KAAK,EAAE,OADT;AAEEC,EAAAA,KAAK,EAAE,OAFT;AAGEC,EAAAA,aAAa,EAAE;AAHjB,CADsB,EAMtB;AACEF,EAAAA,KAAK,EAAE,OADT;AAEEC,EAAAA,KAAK,EAAE,OAFT;AAGEC,EAAAA,aAAa,EAAE;AAHjB,CANsB,EAWtB;AACEF,EAAAA,KAAK,EAAE,MADT;AAEEC,EAAAA,KAAK,EAAE,MAFT;AAGEC,EAAAA,aAAa,EAAE;AAHjB,CAXsB,EAgBtB;AACEF,EAAAA,KAAK,EAAE,OADT;AAEEC,EAAAA,KAAK,EAAE,OAFT;AAGEC,EAAAA,aAAa,EAAE;AAHjB,CAhBsB,CAAxB;;IAuBaC,M;;;;;;;;;;;;;;;8FAYH;AACNC,MAAAA,QAAQ,EAAE;AADJ,K;oGAIM,gBAAgB;AAAA,UAAbC,MAAa,QAAbA,MAAa;;AAC5B,YAAKC,KAAL,CAAWC,cAAX,CAA0B;AAAEC,QAAAA,YAAY,EAAEH,MAAM,CAACJ;AAAvB,OAA1B;AACD,K;uGAEgB,UAAAQ,QAAQ,EAAI;AAC3B,YAAKH,KAAL,CAAWC,cAAX,CAA0B;AAAEG,QAAAA,eAAe,EAAED,QAAQ,CAACR;AAA5B,OAA1B;;AAEA,YAAKU,QAAL,CAAc;AAAEP,QAAAA,QAAQ,EAAE;AAAZ,OAAd;AACD,K;4GAEqB,UAAAQ,KAAK,EAAI;AAC7B,YAAKD,QAAL,CAAc;AAAEP,QAAAA,QAAQ,EAAEQ,KAAK,CAACC;AAAlB,OAAd;AACD,K;4GAEqB,UAACD,KAAD,EAAQE,KAAR,EAAkB;AACtC,YAAKH,QAAL,CAAc;AAAEI,QAAAA,aAAa,EAAED,KAAjB;AAAwBV,QAAAA,QAAQ,EAAE;AAAlC,OAAd;AACD,K;oGAEa,YAAM;AAClB,YAAKO,QAAL,CAAc;AAAEP,QAAAA,QAAQ,EAAE;AAAZ,OAAd;AACD,K;;;;;;WAED,kBAAS;AAAA;;AACP,UAAQA,QAAR,GAAqB,KAAKY,KAA1B,CAAQZ,QAAR;AACA,wBAAsE,KAAKE,KAA3E;AAAA,UAAQW,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BC,kBAA5B,eAA4BA,kBAA5B;AAAA,UAAgDC,MAAhD,eAAgDA,MAAhD;AAAA,UAAwDC,UAAxD,eAAwDA,UAAxD;AAEA,UAAMC,cAAc,GAClBvB,eAAe,CAACwB,IAAhB,CAAqB,UAAAC,MAAM;AAAA,eAAIA,MAAM,CAACvB,KAAP,KAAiBmB,MAAM,CAACV,eAA5B;AAAA,OAA3B,KACAY,cAAc,CAAC,CAAD,CAFhB;AAIA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWL,OAAO,CAACG,MAAnB,EAA2BF,SAA3B;AAAhB,sBACE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACQ;AAAxB,sBACE,gCAAC,qBAAD;AACE,QAAA,SAAS,EAAER,OAAO,CAACjB,KADrB;AAEE,QAAA,eAAe,EAAE;AACf0B,UAAAA,MAAM,EAAE;AADO,SAFnB;AAKE,QAAA,KAAK,EAAC,OALR;AAME,QAAA,KAAK,EAAEN,MAAM,CAACZ,YANhB;AAOE,QAAA,QAAQ,EAAE,KAAKmB,WAPjB;AAQE,QAAA,UAAU,EAAEN;AARd,QADF,eAWE,gCAAC,gBAAD;AAAM,QAAA,SAAS,EAAC;AAAhB,sBACE,gCAAC,oBAAD;AACE,QAAA,MAAM,MADR;AAEE,yBAAc,MAFhB;AAGE,QAAA,OAAO,EAAE,KAAKO;AAHhB,sBAKE,gCAAC,wBAAD;AACE,QAAA,OAAO,EAAC,kBADV;AAEE,QAAA,SAAS,EAAEN,cAAc,CAACpB;AAF5B,QALF,CADF,CAXF,eAuBE,gCAAC,gBAAD;AACE,QAAA,EAAE,EAAC,WADL;AAEE,QAAA,QAAQ,EAAEE,QAFZ;AAGE,QAAA,IAAI,EAAEyB,OAAO,CAACzB,QAAD,CAHf;AAIE,QAAA,OAAO,EAAE,KAAK0B;AAJhB,SAMG/B,eAAe,CAACgC,GAAhB,CAAoB,UAAAP,MAAM;AAAA,4BACzB,gCAAC,oBAAD;AACE,UAAA,GAAG,EAAEA,MAAM,CAACvB,KADd;AAEE,UAAA,QAAQ,EAAEuB,MAAM,CAACvB,KAAP,KAAiBmB,MAAM,CAACV,eAFpC;AAGE,UAAA,OAAO,EAAE;AAAA,mBAAM,MAAI,CAACsB,cAAL,CAAoBR,MAApB,CAAN;AAAA;AAHX,WAKGA,MAAM,CAACxB,KALV,CADyB;AAAA,OAA1B,CANH,CAvBF,CADF,CADF;AA4CD;;;EA1FyBiC,kBAAMC,S;;;iCAArB/B,M,eACQ;AACjBc,EAAAA,OAAO,EAAEkB,sBAAUC,MAAV,CAAiBC,UADT;AAEjBnB,EAAAA,SAAS,EAAEiB,sBAAUG,MAFJ;AAGjBlB,EAAAA,MAAM,EAAEe,sBAAUC,MAHD;AAIjBjB,EAAAA,kBAAkB,EAAEgB,sBAAUI,IAJb;AAKjBC,EAAAA,mBAAmB,EAAEL,sBAAUM,IALd;AAMjBlC,EAAAA,cAAc,EAAE4B,sBAAUM;AANT,C;iCADRtC,M,kBAUW,E;;AAkFxB,IAAMuC,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBlB,IAAAA,aAAa,EAAE;AACbmB,MAAAA,OAAO,EAAE,MADI;AAEbC,MAAAA,UAAU,EAAE,QAFC;AAGbC,MAAAA,aAAa,YAAKH,KAAK,CAACI,OAAN,CAAcC,IAAnB,OAHA;AAIbC,MAAAA,UAAU,YAAKN,KAAK,CAACI,OAAN,CAAcC,IAAnB,OAJG;AAKbE,MAAAA,mBAAmB,EAAE,gBALR;AAMbC,MAAAA,cAAc,EAAE,eANH;AAObC,MAAAA,YAAY,EAAET,KAAK,CAACI,OAAN,CAAcC;AAPf,KADQ;AAUvBK,IAAAA,YAAY,EAAE;AACZC,MAAAA,KAAK,EAAE,MADK;AAEZC,MAAAA,QAAQ,EAAE,GAFE;AAGZC,MAAAA,eAAe,EAAEb,KAAK,CAACc,OAAN,CAAcC,UAAd,CAAyBC;AAH9B,KAVS;AAevBC,IAAAA,GAAG,EAAE;AACHhB,MAAAA,OAAO,EAAE,MADN;AAEHE,MAAAA,aAAa,YAAKH,KAAK,CAACI,OAAN,CAAcC,IAAnB,OAFV;AAGHC,MAAAA,UAAU,YAAKN,KAAK,CAACI,OAAN,CAAcC,IAAnB,OAHP;AAIHE,MAAAA,mBAAmB,EAAE,gBAJlB;AAKHC,MAAAA,cAAc,EAAE,eALb;AAMHU,MAAAA,SAAS,EAAElB,KAAK,CAACI,OAAN,CAAcC,IANtB;AAOHI,MAAAA,YAAY,EAAET,KAAK,CAACI,OAAN,CAAcC;AAPzB,KAfkB;AAwBvBc,IAAAA,eAAe,EAAE;AACfC,MAAAA,eAAe,EAAE,CADF;AAEfC,MAAAA,aAAa,EAAE;AAFA;AAxBM,GAAL;AAAA,CAApB;;eA6Be,wBAAWtB,MAAX,EAAmBvC,MAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nimport TextField from '@material-ui/core/TextField';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Menu from '@material-ui/core/Menu';\nimport { Checkbox } from '@pie-lib/config-ui';\n\nconst positionOptions = [\n {\n label: 'Above',\n value: 'above',\n secondaryText: 'Choices will be shown above categories'\n },\n {\n label: 'Below',\n value: 'below',\n secondaryText: 'Choices will be shown below categories'\n },\n {\n label: 'Left',\n value: 'left',\n secondaryText: 'Choices will be shown to the left of the categories'\n },\n {\n label: 'Right',\n value: 'right',\n secondaryText: 'Choices will be shown to the right of the categories'\n }\n];\n\nexport class Config extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n config: PropTypes.object,\n categoryCountIsOne: PropTypes.bool,\n allChoicesHaveCount: PropTypes.func,\n onModelChanged: PropTypes.func\n };\n\n static defaultProps = {};\n\n state = {\n anchorEl: null\n };\n\n changeLabel = ({ target }) => {\n this.props.onModelChanged({ choicesLabel: target.value });\n };\n\n changePosition = position => {\n this.props.onModelChanged({ choicesPosition: position.value });\n\n this.setState({ anchorEl: null });\n };\n\n handleClickPosition = event => {\n this.setState({ anchorEl: event.currentTarget });\n };\n\n handleMenuItemClick = (event, index) => {\n this.setState({ selectedIndex: index, anchorEl: null });\n };\n\n handleClose = () => {\n this.setState({ anchorEl: null });\n };\n\n render() {\n const { anchorEl } = this.state;\n const { classes, className, categoryCountIsOne, config, spellCheck} = this.props;\n\n const positionOption =\n positionOptions.find(option => option.value === config.choicesPosition) ||\n positionOption[1];\n\n return (\n <div className={classNames(classes.config, className)}>\n <div className={classes.configuration}>\n <TextField\n className={classes.label}\n InputLabelProps={{\n shrink: true\n }}\n label=\"Label\"\n value={config.choicesLabel}\n onChange={this.changeLabel}\n spellCheck={spellCheck}\n />\n <List component=\"nav\">\n <ListItem\n button\n aria-haspopup=\"true\"\n onClick={this.handleClickPosition}\n >\n <ListItemText\n primary=\"Choices Position\"\n secondary={positionOption.secondaryText}\n />\n </ListItem>\n </List>\n <Menu\n id=\"lock-menu\"\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={this.handleClose}\n >\n {positionOptions.map(option => (\n <MenuItem\n key={option.value}\n selected={option.value === config.choicesPosition}\n onClick={() => this.changePosition(option)}\n >\n {option.label}\n </MenuItem>\n ))}\n </Menu>\n </div>\n </div>\n );\n }\n}\nconst styles = theme => ({\n configuration: {\n display: 'grid',\n alignItems: 'center',\n gridColumnGap: `${theme.spacing.unit}px`,\n gridRowGap: `${theme.spacing.unit}px`,\n gridTemplateColumns: 'repeat(2, 1fr)',\n justifyContent: 'space-between',\n marginBottom: theme.spacing.unit\n },\n choiceConfig: {\n width: '100%',\n maxWidth: 360,\n backgroundColor: theme.palette.background.paper\n },\n row: {\n display: 'grid',\n gridColumnGap: `${theme.spacing.unit}px`,\n gridRowGap: `${theme.spacing.unit}px`,\n gridTemplateColumns: 'repeat(2, 1fr)',\n justifyContent: 'space-between',\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit\n },\n shuffleCheckbox: {\n gridColumnStart: 2,\n gridColumnEnd: 2\n }\n});\nexport default withStyles(styles)(Config);\n"],"file":"config.js"}
1
+ {"version":3,"sources":["../../../src/design/choices/config.jsx"],"names":["Config","target","props","onModelChanged","choicesLabel","value","classes","className","config","spellCheck","configuration","label","shrink","changeLabel","React","Component","PropTypes","object","isRequired","string","func","styles","theme","display","alignItems","gridColumnGap","spacing","unit","gridRowGap","gridTemplateColumns","justifyContent","marginBottom","choiceConfig","width","maxWidth","backgroundColor","palette","background","paper","row","marginTop","shuffleCheckbox","gridColumnStart","gridColumnEnd"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAGaA,M;;;;;;;;;;;;;;;oGAWG,gBAAgB;AAAA,UAAbC,MAAa,QAAbA,MAAa;;AAC5B,YAAKC,KAAL,CAAWC,cAAX,CAA0B;AAAEC,QAAAA,YAAY,EAAEH,MAAM,CAACI;AAAvB,OAA1B;AACD,K;;;;;;WAGD,kBAAS;AACP,wBAAkD,KAAKH,KAAvD;AAAA,UAAQI,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BC,MAA5B,eAA4BA,MAA5B;AAAA,UAAoCC,UAApC,eAAoCA,UAApC;AAGA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWH,OAAO,CAACE,MAAnB,EAA2BD,SAA3B;AAAhB,sBACE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACI;AAAxB,sBACE,gCAAC,qBAAD;AACE,QAAA,SAAS,EAAEJ,OAAO,CAACK,KADrB;AAEE,QAAA,eAAe,EAAE;AACfC,UAAAA,MAAM,EAAE;AADO,SAFnB;AAKE,QAAA,KAAK,EAAC,OALR;AAME,QAAA,KAAK,EAAEJ,MAAM,CAACJ,YANhB;AAOE,QAAA,QAAQ,EAAE,KAAKS,WAPjB;AAQE,QAAA,UAAU,EAAEJ;AARd,QADF,CADF,CADF;AAgBD;;;EApCyBK,kBAAMC,S;;;iCAArBf,M,eACQ;AACjBM,EAAAA,OAAO,EAAEU,sBAAUC,MAAV,CAAiBC,UADT;AAEjBX,EAAAA,SAAS,EAAES,sBAAUG,MAFJ;AAGjBX,EAAAA,MAAM,EAAEQ,sBAAUC,MAHD;AAIjBd,EAAAA,cAAc,EAAEa,sBAAUI;AAJT,C;iCADRpB,M,kBAQW,E;;AA8BxB,IAAMqB,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBZ,IAAAA,aAAa,EAAE;AACba,MAAAA,OAAO,EAAE,MADI;AAEbC,MAAAA,UAAU,EAAE,QAFC;AAGbC,MAAAA,aAAa,YAAKH,KAAK,CAACI,OAAN,CAAcC,IAAnB,OAHA;AAIbC,MAAAA,UAAU,YAAKN,KAAK,CAACI,OAAN,CAAcC,IAAnB,OAJG;AAKbE,MAAAA,mBAAmB,EAAE,gBALR;AAMbC,MAAAA,cAAc,EAAE,eANH;AAObC,MAAAA,YAAY,EAAET,KAAK,CAACI,OAAN,CAAcC;AAPf,KADQ;AAUvBK,IAAAA,YAAY,EAAE;AACZC,MAAAA,KAAK,EAAE,MADK;AAEZC,MAAAA,QAAQ,EAAE,GAFE;AAGZC,MAAAA,eAAe,EAAEb,KAAK,CAACc,OAAN,CAAcC,UAAd,CAAyBC;AAH9B,KAVS;AAevBC,IAAAA,GAAG,EAAE;AACHhB,MAAAA,OAAO,EAAE,MADN;AAEHE,MAAAA,aAAa,YAAKH,KAAK,CAACI,OAAN,CAAcC,IAAnB,OAFV;AAGHC,MAAAA,UAAU,YAAKN,KAAK,CAACI,OAAN,CAAcC,IAAnB,OAHP;AAIHE,MAAAA,mBAAmB,EAAE,gBAJlB;AAKHC,MAAAA,cAAc,EAAE,eALb;AAMHU,MAAAA,SAAS,EAAElB,KAAK,CAACI,OAAN,CAAcC,IANtB;AAOHI,MAAAA,YAAY,EAAET,KAAK,CAACI,OAAN,CAAcC;AAPzB,KAfkB;AAwBvBc,IAAAA,eAAe,EAAE;AACfC,MAAAA,eAAe,EAAE,CADF;AAEfC,MAAAA,aAAa,EAAE;AAFA;AAxBM,GAAL;AAAA,CAApB;;eA6Be,wBAAWtB,MAAX,EAAmBrB,MAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nimport TextField from '@material-ui/core/TextField';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Menu from '@material-ui/core/Menu';\nimport { Checkbox } from '@pie-lib/config-ui';\n\n\nexport class Config extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n config: PropTypes.object,\n onModelChanged: PropTypes.func\n };\n\n static defaultProps = {};\n\n\n changeLabel = ({ target }) => {\n this.props.onModelChanged({ choicesLabel: target.value });\n };\n\n\n render() {\n const { classes, className, config, spellCheck} = this.props;\n\n\n return (\n <div className={classNames(classes.config, className)}>\n <div className={classes.configuration}>\n <TextField\n className={classes.label}\n InputLabelProps={{\n shrink: true\n }}\n label=\"Label\"\n value={config.choicesLabel}\n onChange={this.changeLabel}\n spellCheck={spellCheck}\n />\n </div>\n </div>\n );\n }\n}\nconst styles = theme => ({\n configuration: {\n display: 'grid',\n alignItems: 'center',\n gridColumnGap: `${theme.spacing.unit}px`,\n gridRowGap: `${theme.spacing.unit}px`,\n gridTemplateColumns: 'repeat(2, 1fr)',\n justifyContent: 'space-between',\n marginBottom: theme.spacing.unit\n },\n choiceConfig: {\n width: '100%',\n maxWidth: 360,\n backgroundColor: theme.palette.background.paper\n },\n row: {\n display: 'grid',\n gridColumnGap: `${theme.spacing.unit}px`,\n gridRowGap: `${theme.spacing.unit}px`,\n gridTemplateColumns: 'repeat(2, 1fr)',\n justifyContent: 'space-between',\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit\n },\n shuffleCheckbox: {\n gridColumnStart: 2,\n gridColumnEnd: 2\n }\n});\nexport default withStyles(styles)(Config);\n"],"file":"config.js"}
@@ -164,9 +164,7 @@ var Choices = /*#__PURE__*/function (_React$Component) {
164
164
  className: classes.errorText
165
165
  }, choicesError), /*#__PURE__*/_react["default"].createElement(_config["default"], {
166
166
  config: model,
167
- categoryCountIsOne: categoryCountIsOne,
168
167
  onModelChanged: onModelChanged,
169
- allChoicesHaveCount: this.allChoicesHaveCount,
170
168
  spellCheck: spellCheck
171
169
  }), /*#__PURE__*/_react["default"].createElement("div", {
172
170
  className: classes.choiceHolder,