@pie-element/categorize 8.6.1-next.42 → 8.6.1-next.45

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 (61) hide show
  1. package/configure/lib/defaults.js +134 -0
  2. package/configure/lib/defaults.js.map +1 -0
  3. package/configure/lib/design/builder.js +74 -0
  4. package/configure/lib/design/builder.js.map +1 -0
  5. package/configure/lib/design/buttons.js +127 -0
  6. package/configure/lib/design/buttons.js.map +1 -0
  7. package/configure/lib/design/categories/RowLabel.js +72 -0
  8. package/configure/lib/design/categories/RowLabel.js.map +1 -0
  9. package/configure/lib/design/categories/alternateResponses.js +291 -0
  10. package/configure/lib/design/categories/alternateResponses.js.map +1 -0
  11. package/configure/lib/design/categories/category.js +213 -0
  12. package/configure/lib/design/categories/category.js.map +1 -0
  13. package/configure/lib/design/categories/choice-preview.js +136 -0
  14. package/configure/lib/design/categories/choice-preview.js.map +1 -0
  15. package/configure/lib/design/categories/droppable-placeholder.js +187 -0
  16. package/configure/lib/design/categories/droppable-placeholder.js.map +1 -0
  17. package/configure/lib/design/categories/index.js +406 -0
  18. package/configure/lib/design/categories/index.js.map +1 -0
  19. package/configure/lib/design/choices/choice.js +294 -0
  20. package/configure/lib/design/choices/choice.js.map +1 -0
  21. package/configure/lib/design/choices/config.js +114 -0
  22. package/configure/lib/design/choices/config.js.map +1 -0
  23. package/configure/lib/design/choices/index.js +275 -0
  24. package/configure/lib/design/choices/index.js.map +1 -0
  25. package/configure/lib/design/header.js +107 -0
  26. package/configure/lib/design/header.js.map +1 -0
  27. package/configure/lib/design/index.js +513 -0
  28. package/configure/lib/design/index.js.map +1 -0
  29. package/configure/lib/design/input-header.js +168 -0
  30. package/configure/lib/design/input-header.js.map +1 -0
  31. package/configure/lib/index.js +196 -0
  32. package/configure/lib/index.js.map +1 -0
  33. package/configure/lib/main.js +88 -0
  34. package/configure/lib/main.js.map +1 -0
  35. package/configure/lib/utils.js +40 -0
  36. package/configure/lib/utils.js.map +1 -0
  37. package/configure/package.json +1 -1
  38. package/controller/lib/defaults.js +31 -0
  39. package/controller/lib/defaults.js.map +1 -0
  40. package/controller/lib/index.js +469 -0
  41. package/controller/lib/index.js.map +1 -0
  42. package/controller/lib/utils.js +60 -0
  43. package/controller/lib/utils.js.map +1 -0
  44. package/controller/package.json +1 -1
  45. package/lib/categorize/categories.js +193 -0
  46. package/lib/categorize/categories.js.map +1 -0
  47. package/lib/categorize/category.js +135 -0
  48. package/lib/categorize/category.js.map +1 -0
  49. package/lib/categorize/choice.js +228 -0
  50. package/lib/categorize/choice.js.map +1 -0
  51. package/lib/categorize/choices.js +162 -0
  52. package/lib/categorize/choices.js.map +1 -0
  53. package/lib/categorize/droppable-placeholder.js +111 -0
  54. package/lib/categorize/droppable-placeholder.js.map +1 -0
  55. package/lib/categorize/grid-content.js +103 -0
  56. package/lib/categorize/grid-content.js.map +1 -0
  57. package/lib/categorize/index.js +368 -0
  58. package/lib/categorize/index.js.map +1 -0
  59. package/lib/index.js +137 -0
  60. package/lib/index.js.map +1 -0
  61. package/package.json +3 -3
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _utils = require("./utils");
9
+
10
+ var _default = {
11
+ model: {
12
+ choices: [],
13
+ choicesPosition: 'below',
14
+ choicesLabel: '',
15
+ lockChoiceOrder: true,
16
+ allowMultiplePlacementsEnabled: _utils.multiplePlacements.enabled,
17
+ allowAlternateEnabled: false,
18
+ allowMaxChoicesPerCategory: false,
19
+ maxChoicesPerCategory: 0,
20
+ categoriesPerRow: 2,
21
+ categories: [],
22
+ alternates: [],
23
+ correctResponse: [],
24
+ rowLabels: [''],
25
+ partialScoring: true,
26
+ feedbackEnabled: false,
27
+ rationaleEnabled: true,
28
+ promptEnabled: true,
29
+ teacherInstructionsEnabled: true,
30
+ studentInstructionsEnabled: true,
31
+ toolbarEditorPosition: 'bottom'
32
+ },
33
+ configuration: {
34
+ spellCheck: {
35
+ label: 'Spellcheck',
36
+ settings: false,
37
+ enabled: true
38
+ },
39
+ feedback: {
40
+ settings: true,
41
+ label: 'Feedback',
42
+ enabled: true
43
+ },
44
+ lockChoiceOrder: {
45
+ settings: true,
46
+ label: 'Lock Choice Order'
47
+ },
48
+ choicesPosition: {
49
+ settings: true,
50
+ label: 'Choices Position'
51
+ },
52
+ allowMultiplePlacements: {
53
+ settings: true,
54
+ label: 'Allow Multiple Placements'
55
+ },
56
+ maxPlacements: {
57
+ settings: true,
58
+ label: 'Max choices per category'
59
+ },
60
+ allowAlternate: {
61
+ settings: true,
62
+ label: 'Allow Alternate Correct Answers'
63
+ },
64
+ categoriesPerRow: {
65
+ settings: true,
66
+ label: 'Categories per row'
67
+ },
68
+ partialScoring: {
69
+ settings: false,
70
+ label: 'Allow Partial Scoring'
71
+ },
72
+ prompt: {
73
+ settings: true,
74
+ label: 'Prompt'
75
+ },
76
+ rationale: {
77
+ settings: true,
78
+ label: 'Rationale'
79
+ },
80
+ scoringType: {
81
+ settings: false,
82
+ label: 'Scoring Type'
83
+ },
84
+ settingsPanelDisabled: false,
85
+ studentInstructions: {
86
+ settings: false,
87
+ label: 'Student Instructions'
88
+ },
89
+ teacherInstructions: {
90
+ settings: true,
91
+ label: 'Teacher Instructions'
92
+ },
93
+ toolbarEditorPosition: {
94
+ settings: false,
95
+ label: 'Toolbar Editor Position'
96
+ },
97
+ maxImageWidth: {
98
+ teacherInstructions: 300,
99
+ prompt: 300,
100
+ rationale: 300,
101
+ rowLabel: 200,
102
+ categoryLabel: 260,
103
+ choices: 240
104
+ },
105
+ maxImageHeight: {
106
+ teacherInstructions: 300,
107
+ prompt: 300,
108
+ rationale: 300,
109
+ rowLabel: 100,
110
+ categoryLabel: 100,
111
+ choices: 150
112
+ },
113
+ withRubric: {
114
+ settings: false,
115
+ label: 'Add Rubric'
116
+ },
117
+ minCategoriesPerRow: 1,
118
+ mathMlOptions: {
119
+ mmlOutput: false,
120
+ mmlEditing: false
121
+ },
122
+ language: {
123
+ settings: false,
124
+ label: 'Specify Language',
125
+ enabled: false
126
+ },
127
+ languageChoices: {
128
+ label: 'Language Choices',
129
+ options: []
130
+ }
131
+ }
132
+ };
133
+ exports["default"] = _default;
134
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","choices","choicesPosition","choicesLabel","lockChoiceOrder","allowMultiplePlacementsEnabled","multiplePlacements","enabled","allowAlternateEnabled","allowMaxChoicesPerCategory","maxChoicesPerCategory","categoriesPerRow","categories","alternates","correctResponse","rowLabels","partialScoring","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","feedback","allowMultiplePlacements","maxPlacements","allowAlternate","prompt","rationale","scoringType","settingsPanelDisabled","studentInstructions","teacherInstructions","maxImageWidth","rowLabel","categoryLabel","maxImageHeight","withRubric","minCategoriesPerRow","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"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 allowMultiplePlacementsEnabled: multiplePlacements.enabled,\n allowAlternateEnabled: false,\n allowMaxChoicesPerCategory: false,\n maxChoicesPerCategory: 0,\n categoriesPerRow: 2,\n categories: [],\n alternates: [],\n correctResponse: [],\n rowLabels: [''],\n partialScoring: true,\n feedbackEnabled: false,\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 maxPlacements: {\n settings: true,\n label: 'Max choices per category',\n },\n allowAlternate: {\n settings: true,\n label: 'Allow Alternate Correct Answers',\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 settingsPanelDisabled: false,\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 mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n"],"file":"defaults.js"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.buildCategories = exports.buildAlternateResponses = void 0;
9
+
10
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
11
+
12
+ var buildCategories = function buildCategories(categories, choices, correctResponse) {
13
+ var clonedCategories = (0, _cloneDeep["default"])(categories);
14
+ return clonedCategories.map(function (category) {
15
+ var cr = correctResponse.find(function (cr) {
16
+ return cr.category === category.id;
17
+ });
18
+
19
+ if (cr) {
20
+ category.choices = (cr.choices || []).map(function (choiceId) {
21
+ var choice = choices.find(function (h) {
22
+ return h.id === choiceId;
23
+ });
24
+
25
+ if (choice) {
26
+ return Object.assign({}, {
27
+ id: choice.id,
28
+ content: choice.content
29
+ });
30
+ }
31
+ });
32
+ }
33
+
34
+ return category;
35
+ });
36
+ };
37
+
38
+ exports.buildCategories = buildCategories;
39
+
40
+ var getChoices = function getChoices(cat, choices, index) {
41
+ if (!cat.alternateResponses || cat.alternateResponses.length === 0) {
42
+ return [];
43
+ }
44
+
45
+ return (cat.alternateResponses[index] || []).map(function (alt) {
46
+ return choices.find(function (ch) {
47
+ return ch.id === alt;
48
+ });
49
+ });
50
+ };
51
+
52
+ var buildAlternateResponses = function buildAlternateResponses(categories, choices, correctResponse) {
53
+ var mostAlternates = correctResponse.reduce(function (mostAlt, cat) {
54
+ if (cat.alternateResponses && cat.alternateResponses.length >= mostAlt) {
55
+ return cat.alternateResponses.length;
56
+ }
57
+
58
+ return mostAlt;
59
+ }, 0);
60
+ var alternatesArray = new Array(mostAlternates).fill(0);
61
+ return alternatesArray.map(function (val, index) {
62
+ return correctResponse.map(function (cat, catIndex) {
63
+ var currentCategory = categories[catIndex];
64
+ return {
65
+ id: currentCategory.id,
66
+ label: currentCategory.label,
67
+ choices: getChoices(cat, choices, index)
68
+ };
69
+ });
70
+ });
71
+ };
72
+
73
+ exports.buildAlternateResponses = buildAlternateResponses;
74
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +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,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"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.RawAddButton = exports.Divider = exports.DeleteButton = exports.AddButton = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
+
22
+ var _react = _interopRequireDefault(require("react"));
23
+
24
+ var _propTypes = _interopRequireDefault(require("prop-types"));
25
+
26
+ var _styles = require("@material-ui/core/styles");
27
+
28
+ var _classnames = _interopRequireDefault(require("classnames"));
29
+
30
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
31
+
32
+ var _Divider = _interopRequireDefault(require("@material-ui/core/Divider"));
33
+
34
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
35
+
36
+ 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; } }
37
+
38
+ var RawAddButton = /*#__PURE__*/function (_React$Component) {
39
+ (0, _inherits2["default"])(RawAddButton, _React$Component);
40
+
41
+ var _super = _createSuper(RawAddButton);
42
+
43
+ function RawAddButton() {
44
+ (0, _classCallCheck2["default"])(this, RawAddButton);
45
+ return _super.apply(this, arguments);
46
+ }
47
+
48
+ (0, _createClass2["default"])(RawAddButton, [{
49
+ key: "render",
50
+ value: function render() {
51
+ var _this$props = this.props,
52
+ classes = _this$props.classes,
53
+ className = _this$props.className,
54
+ label = _this$props.label,
55
+ onClick = _this$props.onClick,
56
+ disabled = _this$props.disabled;
57
+ return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
58
+ onClick: onClick,
59
+ disabled: disabled,
60
+ className: (0, _classnames["default"])(classes.addButton, className),
61
+ size: "small",
62
+ variant: "contained",
63
+ color: "primary"
64
+ }, label);
65
+ }
66
+ }]);
67
+ return RawAddButton;
68
+ }(_react["default"].Component);
69
+
70
+ exports.RawAddButton = RawAddButton;
71
+ (0, _defineProperty2["default"])(RawAddButton, "propTypes", {
72
+ classes: _propTypes["default"].object.isRequired,
73
+ className: _propTypes["default"].string,
74
+ label: _propTypes["default"].string,
75
+ onClick: _propTypes["default"].func,
76
+ disabled: _propTypes["default"].bool
77
+ });
78
+ (0, _defineProperty2["default"])(RawAddButton, "defaultProps", {
79
+ label: 'Add'
80
+ });
81
+
82
+ var styles = function styles(theme) {
83
+ return {
84
+ addButton: {
85
+ height: theme.spacing.unit * 4
86
+ }
87
+ };
88
+ };
89
+
90
+ var AddButton = (0, _styles.withStyles)(styles)(RawAddButton);
91
+ exports.AddButton = AddButton;
92
+ var DeleteButton = (0, _styles.withStyles)(function () {
93
+ return {
94
+ deleteButton: {
95
+ margin: 0,
96
+ padding: 0
97
+ }
98
+ };
99
+ })(function (_ref) {
100
+ var classes = _ref.classes,
101
+ label = _ref.label,
102
+ onClick = _ref.onClick,
103
+ disabled = _ref.disabled;
104
+ return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
105
+ className: classes.deleteButton,
106
+ onClick: onClick,
107
+ size: "small",
108
+ color: "primary",
109
+ disabled: disabled
110
+ }, label);
111
+ });
112
+ exports.DeleteButton = DeleteButton;
113
+ var Divider = (0, _styles.withStyles)(function (theme) {
114
+ return {
115
+ divider: {
116
+ marginTop: 2 * theme.spacing.unit,
117
+ marginBottom: 2 * theme.spacing.unit
118
+ }
119
+ };
120
+ })(function (_ref2) {
121
+ var classes = _ref2.classes;
122
+ return /*#__PURE__*/_react["default"].createElement(_Divider["default"], {
123
+ className: classes.divider
124
+ });
125
+ });
126
+ exports.Divider = Divider;
127
+ //# sourceMappingURL=buttons.js.map
@@ -0,0 +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,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"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.RowLabel = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _styles = require("@material-ui/core/styles");
13
+
14
+ var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
15
+
16
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
17
+
18
+ var styles = function styles(theme) {
19
+ return {
20
+ rowLabel: {
21
+ gridColumn: '1/3'
22
+ },
23
+ rowLabelHolder: {
24
+ paddingTop: theme.spacing.unit * 2,
25
+ width: '100%'
26
+ }
27
+ };
28
+ };
29
+
30
+ var RowLabel = (0, _styles.withStyles)(styles)(function (_ref) {
31
+ var categoriesPerRow = _ref.categoriesPerRow,
32
+ classes = _ref.classes,
33
+ disabled = _ref.disabled,
34
+ markup = _ref.markup,
35
+ imageSupport = _ref.imageSupport,
36
+ onChange = _ref.onChange,
37
+ toolbarOpts = _ref.toolbarOpts,
38
+ spellCheck = _ref.spellCheck,
39
+ maxImageWidth = _ref.maxImageWidth,
40
+ maxImageHeight = _ref.maxImageHeight,
41
+ uploadSoundSupport = _ref.uploadSoundSupport,
42
+ _ref$mathMlOptions = _ref.mathMlOptions,
43
+ mathMlOptions = _ref$mathMlOptions === void 0 ? {} : _ref$mathMlOptions;
44
+ return /*#__PURE__*/_react["default"].createElement("div", {
45
+ style: {
46
+ gridColumn: "1/".concat(categoriesPerRow + 1),
47
+ width: '100%'
48
+ }
49
+ }, /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
50
+ label: "Row Label",
51
+ className: classes.rowLabelHolder
52
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
53
+ disabled: disabled,
54
+ markup: markup,
55
+ onChange: onChange,
56
+ imageSupport: imageSupport,
57
+ nonEmpty: false,
58
+ toolbarOpts: toolbarOpts,
59
+ spellCheck: spellCheck,
60
+ maxImageWidth: maxImageWidth,
61
+ maxImageHeight: maxImageHeight,
62
+ uploadSoundSupport: uploadSoundSupport,
63
+ languageCharactersProps: [{
64
+ language: 'spanish'
65
+ }, {
66
+ language: 'special'
67
+ }],
68
+ mathMlOptions: mathMlOptions
69
+ })));
70
+ });
71
+ exports.RowLabel = RowLabel;
72
+ //# sourceMappingURL=RowLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/design/categories/RowLabel.jsx"],"names":["styles","theme","rowLabel","gridColumn","rowLabelHolder","paddingTop","spacing","unit","width","RowLabel","categoriesPerRow","classes","disabled","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","language"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,UAAU,EAAE;AADJ,KADe;AAIzBC,IAAAA,cAAc,EAAE;AACdC,MAAAA,UAAU,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CADnB;AAEdC,MAAAA,KAAK,EAAE;AAFO;AAJS,GAAZ;AAAA,CAAf;;AAUO,IAAMC,QAAQ,GAAG,wBAAWT,MAAX,EACtB,gBAaM;AAAA,MAZJU,gBAYI,QAZJA,gBAYI;AAAA,MAXJC,OAWI,QAXJA,OAWI;AAAA,MAVJC,QAUI,QAVJA,QAUI;AAAA,MATJC,MASI,QATJA,MASI;AAAA,MARJC,YAQI,QARJA,YAQI;AAAA,MAPJC,QAOI,QAPJA,QAOI;AAAA,MANJC,WAMI,QANJA,WAMI;AAAA,MALJC,UAKI,QALJA,UAKI;AAAA,MAJJC,aAII,QAJJA,aAII;AAAA,MAHJC,cAGI,QAHJA,cAGI;AAAA,MAFJC,kBAEI,QAFJA,kBAEI;AAAA,gCADHC,aACG;AAAA,MADHA,aACG,mCADa,EACb;AACJ,sBACE;AACE,IAAA,KAAK,EAAE;AACLlB,MAAAA,UAAU,cAAOO,gBAAgB,GAAG,CAA1B,CADL;AAELF,MAAAA,KAAK,EAAE;AAFF;AADT,kBAME,gCAAC,wBAAD;AAAgB,IAAA,KAAK,EAAC,WAAtB;AAAkC,IAAA,SAAS,EAAEG,OAAO,CAACP;AAArD,kBACE,gCAAC,0BAAD;AACE,IAAA,QAAQ,EAAEQ,QADZ;AAEE,IAAA,MAAM,EAAEC,MAFV;AAGE,IAAA,QAAQ,EAAEE,QAHZ;AAIE,IAAA,YAAY,EAAED,YAJhB;AAKE,IAAA,QAAQ,EAAE,KALZ;AAME,IAAA,WAAW,EAAEE,WANf;AAOE,IAAA,UAAU,EAAEC,UAPd;AAQE,IAAA,aAAa,EAAEC,aARjB;AASE,IAAA,cAAc,EAAEC,cATlB;AAUE,IAAA,kBAAkB,EAAEC,kBAVtB;AAWE,IAAA,uBAAuB,EAAE,CAAC;AAAEE,MAAAA,QAAQ,EAAE;AAAZ,KAAD,EAA0B;AAAEA,MAAAA,QAAQ,EAAE;AAAZ,KAA1B,CAX3B;AAYE,IAAA,aAAa,EAAED;AAZjB,IADF,CANF,CADF;AAyBD,CAxCqB,CAAjB","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport {EditableHtml} from '@pie-lib/pie-toolbox/editable-html';\nimport { InputContainer } from '@pie-lib/pie-toolbox/render-ui';\n\nconst styles = (theme) => ({\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n});\n\nexport const RowLabel = withStyles(styles)(\n ({\n categoriesPerRow,\n classes,\n disabled,\n markup,\n imageSupport,\n onChange,\n toolbarOpts,\n spellCheck,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {}\n }) => {\n return (\n <div\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%',\n }}\n >\n <InputContainer label=\"Row Label\" className={classes.rowLabelHolder}>\n <EditableHtml\n disabled={disabled}\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 mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n </div>\n );\n },\n);\n"],"file":"RowLabel.js"}