@pie-element/categorize 13.1.0-next.28 → 13.1.1-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/author/defaults.d.ts +223 -0
- package/dist/author/defaults.js +170 -0
- package/dist/author/design/builder.d.ts +10 -0
- package/dist/author/design/builder.js +24 -0
- package/dist/author/design/buttons.d.ts +28 -0
- package/dist/author/design/buttons.js +36 -0
- package/dist/author/design/categories/RowLabel.d.ts +23 -0
- package/dist/author/design/categories/RowLabel.js +47 -0
- package/dist/author/design/categories/alternateResponses.d.ts +31 -0
- package/dist/author/design/categories/alternateResponses.js +62 -0
- package/dist/author/design/categories/category.d.ts +44 -0
- package/dist/author/design/categories/category.js +98 -0
- package/dist/author/design/categories/choice-preview.d.ts +25 -0
- package/dist/author/design/categories/choice-preview.js +60 -0
- package/dist/author/design/categories/droppable-placeholder.d.ts +11 -0
- package/dist/author/design/categories/droppable-placeholder.js +71 -0
- package/dist/author/design/categories/index.d.ts +41 -0
- package/dist/author/design/categories/index.js +146 -0
- package/dist/author/design/choices/choice.d.ts +11 -0
- package/dist/author/design/choices/choice.js +129 -0
- package/dist/author/design/choices/config.d.ts +21 -0
- package/dist/author/design/choices/config.js +33 -0
- package/dist/author/design/choices/index.d.ts +41 -0
- package/dist/author/design/choices/index.js +110 -0
- package/dist/author/design/header.d.ts +24 -0
- package/dist/author/design/header.js +49 -0
- package/dist/author/design/index.d.ts +52 -0
- package/dist/author/design/index.js +417 -0
- package/dist/author/design/input-header.d.ts +39 -0
- package/dist/author/design/input-header.js +69 -0
- package/dist/author/design/utils.d.ts +9 -0
- package/dist/author/design/utils.js +7 -0
- package/dist/author/index.d.ts +51 -0
- package/dist/author/index.js +87 -0
- package/dist/author/main.d.ts +23 -0
- package/dist/author/main.js +30 -0
- package/dist/author/utils.d.ts +16 -0
- package/dist/author/utils.js +17 -0
- package/dist/controller/defaults.d.ts +34 -0
- package/dist/controller/defaults.js +29 -0
- package/dist/controller/index.d.ts +61 -0
- package/dist/controller/index.js +155 -0
- package/dist/controller/utils.d.ts +20 -0
- package/dist/controller/utils.js +35 -0
- package/dist/delivery/categorize/categories.d.ts +34 -0
- package/dist/delivery/categorize/categories.js +66 -0
- package/dist/delivery/categorize/category.d.ts +28 -0
- package/dist/delivery/categorize/category.js +48 -0
- package/dist/delivery/categorize/choice.d.ts +27 -0
- package/dist/delivery/categorize/choice.js +94 -0
- package/dist/delivery/categorize/choices.d.ts +39 -0
- package/dist/delivery/categorize/choices.js +51 -0
- package/dist/delivery/categorize/droppable-placeholder.d.ts +32 -0
- package/dist/delivery/categorize/droppable-placeholder.js +64 -0
- package/dist/delivery/categorize/grid-content.d.ts +25 -0
- package/dist/delivery/categorize/grid-content.js +39 -0
- package/dist/delivery/categorize/index.d.ts +57 -0
- package/dist/delivery/categorize/index.js +260 -0
- package/dist/delivery/index.d.ts +27 -0
- package/dist/delivery/index.js +152 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.iife.d.ts +8 -0
- package/dist/index.iife.js +152 -0
- package/dist/index.js +2 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js +16 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js +16 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Map.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js +16 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Set.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js +15 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js +12 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseClone.js +57 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsSet.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js +12 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js +13 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js +4 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js +23 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js +13 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneArray.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js +33 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js +13 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_root.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js +16 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js +15 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/eq.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArray.js +4 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEmpty.js +21 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isLength.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isMap.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObject.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSet.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keys.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js +6 -0
- package/package.json +52 -16
- package/CHANGELOG.json +0 -1637
- package/CHANGELOG.md +0 -2524
- package/LICENSE.md +0 -5
- package/README.md +0 -5
- package/configure/CHANGELOG.json +0 -1202
- package/configure/CHANGELOG.md +0 -2107
- package/configure/lib/defaults.js +0 -222
- package/configure/lib/defaults.js.map +0 -1
- package/configure/lib/design/builder.js +0 -55
- package/configure/lib/design/builder.js.map +0 -1
- package/configure/lib/design/buttons.js +0 -59
- package/configure/lib/design/buttons.js.map +0 -1
- package/configure/lib/design/categories/RowLabel.js +0 -66
- package/configure/lib/design/categories/RowLabel.js.map +0 -1
- package/configure/lib/design/categories/alternateResponses.js +0 -116
- package/configure/lib/design/categories/alternateResponses.js.map +0 -1
- package/configure/lib/design/categories/category.js +0 -153
- package/configure/lib/design/categories/category.js.map +0 -1
- package/configure/lib/design/categories/choice-preview.js +0 -79
- package/configure/lib/design/categories/choice-preview.js.map +0 -1
- package/configure/lib/design/categories/droppable-placeholder.js +0 -93
- package/configure/lib/design/categories/droppable-placeholder.js.map +0 -1
- package/configure/lib/design/categories/index.js +0 -256
- package/configure/lib/design/categories/index.js.map +0 -1
- package/configure/lib/design/choices/choice.js +0 -187
- package/configure/lib/design/choices/choice.js.map +0 -1
- package/configure/lib/design/choices/config.js +0 -58
- package/configure/lib/design/choices/config.js.map +0 -1
- package/configure/lib/design/choices/index.js +0 -197
- package/configure/lib/design/choices/index.js.map +0 -1
- package/configure/lib/design/header.js +0 -71
- package/configure/lib/design/header.js.map +0 -1
- package/configure/lib/design/index.js +0 -727
- package/configure/lib/design/index.js.map +0 -1
- package/configure/lib/design/input-header.js +0 -105
- package/configure/lib/design/input-header.js.map +0 -1
- package/configure/lib/design/utils.js +0 -12
- package/configure/lib/design/utils.js.map +0 -1
- package/configure/lib/index.js +0 -147
- package/configure/lib/index.js.map +0 -1
- package/configure/lib/main.js +0 -44
- package/configure/lib/main.js.map +0 -1
- package/configure/lib/utils.js +0 -43
- package/configure/lib/utils.js.map +0 -1
- package/configure/package.json +0 -32
- package/controller/CHANGELOG.json +0 -452
- package/controller/CHANGELOG.md +0 -1366
- package/controller/lib/defaults.js +0 -33
- package/controller/lib/defaults.js.map +0 -1
- package/controller/lib/index.js +0 -479
- package/controller/lib/index.js.map +0 -1
- package/controller/lib/utils.js +0 -69
- package/controller/lib/utils.js.map +0 -1
- package/controller/package.json +0 -18
- package/docs/config-schema.json +0 -2897
- package/docs/config-schema.json.md +0 -2138
- package/docs/demo/config.js +0 -8
- package/docs/demo/generate.js +0 -357
- package/docs/demo/index.html +0 -1
- package/docs/demo/session.js +0 -12
- package/docs/pie-schema.json +0 -1784
- package/docs/pie-schema.json.md +0 -1046
- package/lib/categorize/categories.js +0 -135
- package/lib/categorize/categories.js.map +0 -1
- package/lib/categorize/category.js +0 -67
- package/lib/categorize/category.js.map +0 -1
- package/lib/categorize/choice.js +0 -140
- package/lib/categorize/choice.js.map +0 -1
- package/lib/categorize/choices.js +0 -99
- package/lib/categorize/choices.js.map +0 -1
- package/lib/categorize/droppable-placeholder.js +0 -84
- package/lib/categorize/droppable-placeholder.js.map +0 -1
- package/lib/categorize/grid-content.js +0 -55
- package/lib/categorize/grid-content.js.map +0 -1
- package/lib/categorize/index.js +0 -450
- package/lib/categorize/index.js.map +0 -1
- package/lib/index.js +0 -316
- package/lib/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_configUi","_Info","_Tooltip","_categorize","_category","_header","_utils","_RowLabel","CategoriesContainer","styled","theme","marginBottom","spacing","CategoriesHolder","display","gridRowGap","gridColumnGap","StyledTooltip","Tooltip","fontSize","typography","whiteSpace","maxWidth","ErrorText","color","palette","error","main","paddingTop","Categories","React","Component","constructor","args","_defineProperty2","default","focusedEl","model","categories","oldCategories","props","categoriesPerRow","correctResponse","allowAlternateEnabled","id","utils","firstAvailableIndex","map","a","data","label","addRowLabel","length","rowLabels","push","setState","onModelChanged","concat","category","choices","alternateResponses","index","findIndex","splice","removeCategory","c","choice","choiceIndex","removeChoiceFromCategory","val","newRowLabels","render","imageSupport","uploadSoundSupport","toolbarOpts","spellCheck","configuration","defaultImageMaxHeight","defaultImageMaxWidth","mathMlOptions","errors","associationError","categoriesError","categoriesErrors","maxCategories","maxImageWidth","maxImageHeight","holderStyle","gridTemplateColumns","validationMessage","generateValidationMessage","createElement","buttonLabel","onAdd","add","info","disableFocusListener","disableTouchListener","placement","title","style","marginLeft","buttonDisabled","hasRowLabel","rowIndex","Fragment","key","RowLabel","disabled","markup","onChange","changeRowLabel","rowLabel","state","deleteFocusedEl","change","onDelete","delete","onDeleteChoice","deleteChoiceFromCategory","categoryLabel","alternateResponseIndex","undefined","exports","PropTypes","number","shape","func","isRequired","array","object","bool","_default"],"sources":["../../../src/design/categories/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport Info from '@mui/icons-material/Info';\nimport Tooltip from '@mui/material/Tooltip';\nimport {\n removeCategory,\n removeChoiceFromCategory,\n} from '@pie-lib/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage } from '../../utils';\nimport { RowLabel } from './RowLabel';\n\nconst CategoriesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(3),\n}));\n\nconst CategoriesHolder = styled('div')(({ theme }) => ({\n display: 'grid',\n gridRowGap: theme.spacing(1),\n gridColumnGap: theme.spacing(1),\n}));\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(0.5),\n}));\n\nexport class Categories extends React.Component {\n static propTypes = {\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\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 categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n state = {\n focusedEl: null,\n };\n\n add = () => {\n const { model, categories: oldCategories } = this.props;\n const { categoriesPerRow, correctResponse, allowAlternateEnabled } = model;\n\n const id = utils.firstAvailableIndex(\n model.categories.map((a) => a.id),\n 1,\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.setState(\n {\n focusedEl: oldCategories.length,\n },\n () => {\n this.props.onModelChanged({\n rowLabels,\n categories: model.categories.concat([data]),\n correctResponse: allowAlternateEnabled\n ? [...correctResponse, { category: id, choices: [], alternateResponses: [] }]\n : correctResponse,\n });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\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 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 categories,\n imageSupport,\n uploadSoundSupport,\n toolbarOpts,\n spellCheck,\n configuration,\n defaultImageMaxHeight,\n defaultImageMaxWidth,\n mathMlOptions = {},\n } = this.props;\n\n const { categoriesPerRow, rowLabels, errors } = model;\n const { associationError, categoriesError, categoriesErrors } = 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 <CategoriesContainer>\n <Header\n label=\"Categories\"\n buttonLabel=\"ADD A CATEGORY\"\n onAdd={this.add}\n info={\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </StyledTooltip>\n }\n buttonDisabled={maxCategories && categories && maxCategories === categories.length}\n />\n\n <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 disabled={false}\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 mathMlOptions={mathMlOptions}\n configuration={configuration}\n />\n )}\n\n <Category\n imageSupport={imageSupport}\n focusedEl={this.state.focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n index={index}\n category={category}\n error={categoriesErrors && categoriesErrors[category.id]}\n onChange={this.change}\n onDelete={() => this.delete(category)}\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 configuration={configuration}\n alternateResponseIndex={undefined}\n />\n </React.Fragment>\n );\n })}\n </CategoriesHolder>\n\n {associationError && <ErrorText>{associationError}</ErrorText>}\n {categoriesError && <ErrorText>{categoriesError}</ErrorText>}\n </CategoriesContainer>\n );\n }\n}\n\nexport default Categories;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,QAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAKA,IAAAO,SAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,OAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AAEA,MAAMW,mBAAmB,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EACxDC,YAAY,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAMC,gBAAgB,GAAG,IAAAJ,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EACrDI,OAAO,EAAE,MAAM;EACfC,UAAU,EAAEL,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC5BI,aAAa,EAAEN,KAAK,CAACE,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,MAAMK,aAAa,GAAG,IAAAR,cAAM,EAACS,gBAAO,CAAC,CAAC,CAAC;EAAER;AAAM,CAAC,MAAM;EACpD,uBAAuB,EAAE;IACvBS,QAAQ,EAAET,KAAK,CAACU,UAAU,CAACD,QAAQ,GAAG,CAAC;IACvCE,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC,CAAC;AAEH,MAAMC,SAAS,GAAG,IAAAd,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAC9CS,QAAQ,EAAET,KAAK,CAACU,UAAU,CAACD,QAAQ,GAAG,CAAC;EACvCK,KAAK,EAAEd,KAAK,CAACe,OAAO,CAACC,KAAK,CAACC,IAAI;EAC/BC,UAAU,EAAElB,KAAK,CAACE,OAAO,CAAC,GAAG;AAC/B,CAAC,CAAC,CAAC;AAEI,MAAMiB,UAAU,SAASC,cAAK,CAACC,SAAS,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,iBAoBtC;MACNC,SAAS,EAAE;IACb,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,eAEK,MAAM;MACV,MAAM;QAAEE,KAAK;QAAEC,UAAU,EAAEC;MAAc,CAAC,GAAG,IAAI,CAACC,KAAK;MACvD,MAAM;QAAEC,gBAAgB;QAAEC,eAAe;QAAEC;MAAsB,CAAC,GAAGN,KAAK;MAE1E,MAAMO,EAAE,GAAGC,qBAAK,CAACC,mBAAmB,CAClCT,KAAK,CAACC,UAAU,CAACS,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACJ,EAAE,CAAC,EACjC,CACF,CAAC;MACD,MAAMK,IAAI,GAAG;QAAEL,EAAE;QAAEM,KAAK,EAAE,WAAW,GAAGN;MAAG,CAAC;MAC5C,MAAMO,WAAW,GAAGd,KAAK,CAACC,UAAU,CAACc,MAAM,GAAGX,gBAAgB,KAAK,CAAC;MACpE,MAAMY,SAAS,GAAG,CAAC,GAAGhB,KAAK,CAACgB,SAAS,CAAC;MAEtC,IAAIF,WAAW,EAAE;QACfE,SAAS,CAACC,IAAI,CAAC,EAAE,CAAC;MACpB;MAEA,IAAI,CAACC,QAAQ,CACX;QACEnB,SAAS,EAAEG,aAAa,CAACa;MAC3B,CAAC,EACD,MAAM;QACJ,IAAI,CAACZ,KAAK,CAACgB,cAAc,CAAC;UACxBH,SAAS;UACTf,UAAU,EAAED,KAAK,CAACC,UAAU,CAACmB,MAAM,CAAC,CAACR,IAAI,CAAC,CAAC;UAC3CP,eAAe,EAAEC,qBAAqB,GAClC,CAAC,GAAGD,eAAe,EAAE;YAAEgB,QAAQ,EAAEd,EAAE;YAAEe,OAAO,EAAE,EAAE;YAAEC,kBAAkB,EAAE;UAAG,CAAC,CAAC,GAC3ElB;QACN,CAAC,CAAC;MACJ,CACF,CAAC;IACH,CAAC;IAAA,IAAAR,gBAAA,CAAAC,OAAA,2BAEiB,MAAM;MACtB,IAAI,CAACoB,QAAQ,CAAC;QACZnB,SAAS,EAAE;MACb,CAAC,CAAC;IACJ,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,kBAESuB,QAAQ,IAAK;MACrB,MAAM;QAAErB,KAAK;QAAEmB;MAAe,CAAC,GAAG,IAAI,CAAChB,KAAK;MAC5C,MAAMqB,KAAK,GAAGxB,KAAK,CAACC,UAAU,CAACwB,SAAS,CAAEd,CAAC,IAAKA,CAAC,CAACJ,EAAE,KAAKc,QAAQ,CAACd,EAAE,CAAC;MAErE,IAAIiB,KAAK,KAAK,CAAC,CAAC,EAAE;QAChBxB,KAAK,CAACC,UAAU,CAACyB,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;QACjCxB,KAAK,CAACK,eAAe,GAAG,IAAAsB,0BAAc,EAACN,QAAQ,CAACd,EAAE,EAAEP,KAAK,CAACK,eAAe,CAAC;QAC1Ec,cAAc,CAACnB,KAAK,CAAC;MACvB;IACF,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,kBAES8B,CAAC,IAAK;MACd,MAAM;QAAE3B;MAAW,CAAC,GAAG,IAAI,CAACE,KAAK;MACjC,MAAMqB,KAAK,GAAGvB,UAAU,CAACwB,SAAS,CAAEd,CAAC,IAAKA,CAAC,CAACJ,EAAE,KAAKqB,CAAC,CAACrB,EAAE,CAAC;MAExD,IAAIiB,KAAK,KAAK,CAAC,CAAC,EAAE;QAChBvB,UAAU,CAACyB,MAAM,CAACF,KAAK,EAAE,CAAC,EAAEI,CAAC,CAAC;QAC9B,IAAI,CAACzB,KAAK,CAACgB,cAAc,CAAC;UAAElB;QAAW,CAAC,CAAC;MAC3C;IACF,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,oCAE0B,CAACuB,QAAQ,EAAEQ,MAAM,EAAEC,WAAW,KAAK;MAC5D,MAAM;QAAE9B,KAAK;QAAEmB;MAAe,CAAC,GAAG,IAAI,CAAChB,KAAK;MAC5C,MAAME,eAAe,GAAG,IAAA0B,oCAAwB,EAACF,MAAM,CAACtB,EAAE,EAAEc,QAAQ,CAACd,EAAE,EAAEuB,WAAW,EAAE9B,KAAK,CAACK,eAAe,CAAC;MAE5Gc,cAAc,CAAC;QAAEd;MAAgB,CAAC,CAAC;IACrC,CAAC;IAAA,IAAAR,gBAAA,CAAAC,OAAA,0BAEgB,CAACkC,GAAG,EAAER,KAAK,KAAK;MAC/B,MAAM;QAAExB;MAAM,CAAC,GAAG,IAAI,CAACG,KAAK;MAC5B,MAAM;QAAEa;MAAU,CAAC,GAAGhB,KAAK;MAC3B,MAAMiC,YAAY,GAAG,CAAC,GAAGjB,SAAS,CAAC;MAEnC,IAAIiB,YAAY,CAAClB,MAAM,GAAGS,KAAK,EAAE;QAC/BS,YAAY,CAAChB,IAAI,CAACe,GAAG,CAAC;MACxB,CAAC,MAAM;QACLC,YAAY,CAACT,KAAK,CAAC,GAAGQ,GAAG;MAC3B;MAEA,IAAI,CAAC7B,KAAK,CAACgB,cAAc,CAAC;QACxBH,SAAS,EAAEiB;MACb,CAAC,CAAC;IACJ,CAAC;EAAA;EAEDC,MAAMA,CAAA,EAAG;IACP,MAAM;MACJlC,KAAK;MACLC,UAAU;MACVkC,YAAY;MACZC,kBAAkB;MAClBC,WAAW;MACXC,UAAU;MACVC,aAAa;MACbC,qBAAqB;MACrBC,oBAAoB;MACpBC,aAAa,GAAG,CAAC;IACnB,CAAC,GAAG,IAAI,CAACvC,KAAK;IAEd,MAAM;MAAEC,gBAAgB;MAAEY,SAAS;MAAE2B;IAAO,CAAC,GAAG3C,KAAK;IACrD,MAAM;MAAE4C,gBAAgB;MAAEC,eAAe;MAAEC;IAAiB,CAAC,GAAGH,MAAM,IAAI,CAAC,CAAC;IAC5E,MAAM;MAAEI,aAAa;MAAEC,aAAa,GAAG,CAAC,CAAC;MAAEC,cAAc,GAAG,CAAC;IAAE,CAAC,GAAGV,aAAa,IAAI,CAAC,CAAC;IACtF,MAAMW,WAAW,GAAG;MAClBC,mBAAmB,EAAE,UAAU/C,gBAAgB;IACjD,CAAC;IAED,MAAMgD,iBAAiB,GAAG,IAAAC,gCAAyB,EAACd,aAAa,CAAC;IAElE,oBACEjF,MAAA,CAAAwC,OAAA,CAAAwD,aAAA,CAACnF,mBAAmB,qBAClBb,MAAA,CAAAwC,OAAA,CAAAwD,aAAA,CAACtF,OAAA,CAAA8B,OAAM;MACLe,KAAK,EAAC,YAAY;MAClB0C,WAAW,EAAC,gBAAgB;MAC5BC,KAAK,EAAE,IAAI,CAACC,GAAI;MAChBC,IAAI,eACFpG,MAAA,CAAAwC,OAAA,CAAAwD,aAAA,CAAC1E,aAAa;QACZ+E,oBAAoB;QACpBC,oBAAoB;QACpBC,SAAS,EAAE,OAAQ;QACnBC,KAAK,EAAEV;MAAkB,gBAEzB9F,MAAA,CAAAwC,OAAA,CAAAwD,aAAA,CAAC1F,KAAA,CAAAkC,OAAI;QAAChB,QAAQ,EAAE,OAAQ;QAACK,KAAK,EAAE,SAAU;QAAC4E,KAAK,EAAE;UAAEC,UAAU,EAAE;QAAM;MAAE,CAAE,CAC7D,CAChB;MACDC,cAAc,EAAElB,aAAa,IAAI9C,UAAU,IAAI8C,aAAa,KAAK9C,UAAU,CAACc;IAAO,CACpF,CAAC,eAEFzD,MAAA,CAAAwC,OAAA,CAAAwD,aAAA,CAAC9E,gBAAgB;MAACuF,KAAK,EAAEb;IAAY,GAClCjD,UAAU,CAACS,GAAG,CAAC,CAACW,QAAQ,EAAEG,KAAK,KAAK;MACnC,MAAM0C,WAAW,GAAG1C,KAAK,GAAGpB,gBAAgB,KAAK,CAAC;MAClD,MAAM+D,QAAQ,GAAG3C,KAAK,GAAGpB,gBAAgB;MAEzC,oBACE9C,MAAA,CAAAwC,OAAA,CAAAwD,aAAA,CAAChG,MAAA,CAAAwC,OAAK,CAACsE,QAAQ;QAACC,GAAG,EAAE7C;MAAM,GACxB0C,WAAW,iBACV5G,MAAA,CAAAwC,OAAA,CAAAwD,aAAA,CAACpF,SAAA,CAAAoG,QAAQ;QACPlE,gBAAgB,EAAEA,gBAAiB;QACnCmE,QAAQ,EAAE,KAAM;QAChBJ,QAAQ,EAAEA,QAAS;QACnBK,MAAM,EAAExD,SAAS,CAACmD,QAAQ,CAAC,IAAI,EAAG;QAClCM,QAAQ,EAAGzC,GAAG,IAAK,IAAI,CAAC0C,cAAc,CAAC1C,GAAG,EAAEmC,QAAQ,CAAE;QACtDhC,YAAY,EAAEA,YAAa;QAC3BE,WAAW,EAAEA,WAAY;QACzBC,UAAU,EAAEA,UAAW;QACvBU,aAAa,EAAGA,aAAa,IAAIA,aAAa,CAAC2B,QAAQ,IAAKlC,oBAAqB;QACjFQ,cAAc,EAAGA,cAAc,IAAIA,cAAc,CAAC0B,QAAQ,IAAKnC,qBAAsB;QACrFJ,kBAAkB,EAAEA,kBAAmB;QACvCM,aAAa,EAAEA,aAAc;QAC7BH,aAAa,EAAEA;MAAc,CAC9B,CACF,eAEDjF,MAAA,CAAAwC,OAAA,CAAAwD,aAAA,CAACvF,SAAA,CAAA+B,OAAQ;QACPqC,YAAY,EAAEA,YAAa;QAC3BpC,SAAS,EAAE,IAAI,CAAC6E,KAAK,CAAC7E,SAAU;QAChC8E,eAAe,EAAE,IAAI,CAACA,eAAgB;QACtCrD,KAAK,EAAEA,KAAM;QACbH,QAAQ,EAAEA,QAAS;QACnBhC,KAAK,EAAEyD,gBAAgB,IAAIA,gBAAgB,CAACzB,QAAQ,CAACd,EAAE,CAAE;QACzDkE,QAAQ,EAAE,IAAI,CAACK,MAAO;QACtBC,QAAQ,EAAEA,CAAA,KAAM,IAAI,CAACC,MAAM,CAAC3D,QAAQ,CAAE;QACtCgB,WAAW,EAAEA,WAAY;QACzBC,UAAU,EAAEA,UAAW;QACvB2C,cAAc,EAAEA,CAACpD,MAAM,EAAEC,WAAW,KAAK,IAAI,CAACoD,wBAAwB,CAAC7D,QAAQ,EAAEQ,MAAM,EAAEC,WAAW,CAAE;QACtGkB,aAAa,EAAGA,aAAa,IAAIA,aAAa,CAACmC,aAAa,IAAK1C,oBAAqB;QACtFQ,cAAc,EAAGA,cAAc,IAAIA,cAAc,CAACkC,aAAa,IAAK3C,qBAAsB;QAC1FJ,kBAAkB,EAAEA,kBAAmB;QACvCG,aAAa,EAAEA,aAAc;QAC7B6C,sBAAsB,EAAEC;MAAU,CACnC,CACa,CAAC;IAErB,CAAC,CACe,CAAC,EAElBzC,gBAAgB,iBAAItF,MAAA,CAAAwC,OAAA,CAAAwD,aAAA,CAACpE,SAAS,QAAE0D,gBAA4B,CAAC,EAC7DC,eAAe,iBAAIvF,MAAA,CAAAwC,OAAA,CAAAwD,aAAA,CAACpE,SAAS,QAAE2D,eAA2B,CACxC,CAAC;EAE1B;AACF;AAACyC,OAAA,CAAA9F,UAAA,GAAAA,UAAA;AAAA,IAAAK,gBAAA,CAAAC,OAAA,EAzMYN,UAAU,eACF;EACjBgD,qBAAqB,EAAE+C,kBAAS,CAACC,MAAM;EACvC/C,oBAAoB,EAAE8C,kBAAS,CAACC,MAAM;EACtCrD,YAAY,EAAEoD,kBAAS,CAACE,KAAK,CAAC;IAC5BhC,GAAG,EAAE8B,kBAAS,CAACG,IAAI,CAACC,UAAU;IAC9BX,MAAM,EAAEO,kBAAS,CAACG,IAAI,CAACC;EACzB,CAAC,CAAC;EACFvD,kBAAkB,EAAEmD,kBAAS,CAACE,KAAK,CAAC;IAClChC,GAAG,EAAE8B,kBAAS,CAACG,IAAI,CAACC,UAAU;IAC9BX,MAAM,EAAEO,kBAAS,CAACG,IAAI,CAACC;EACzB,CAAC,CAAC;EACF1F,UAAU,EAAEsF,kBAAS,CAACK,KAAK;EAC3BzE,cAAc,EAAEoE,kBAAS,CAACG,IAAI;EAC9B1F,KAAK,EAAEuF,kBAAS,CAACM,MAAM,CAACF,UAAU;EAClCpD,aAAa,EAAEgD,kBAAS,CAACM,MAAM,CAACF,UAAU;EAC1CtD,WAAW,EAAEkD,kBAAS,CAACM,MAAM;EAC7BvD,UAAU,EAAEiD,kBAAS,CAACO;AACxB,CAAC;AAAA,IAAAC,QAAA,GAAAT,OAAA,CAAAxF,OAAA,GAyLYN,UAAU","ignoreList":[]}
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _styles = require("@mui/material/styles");
|
|
12
|
-
var _Card = _interopRequireDefault(require("@mui/material/Card"));
|
|
13
|
-
var _CardActions = _interopRequireDefault(require("@mui/material/CardActions"));
|
|
14
|
-
var _inputHeader = _interopRequireDefault(require("../input-header"));
|
|
15
|
-
var _configUi = require("@pie-lib/config-ui");
|
|
16
|
-
var _buttons = require("../buttons");
|
|
17
|
-
var _DragHandle = _interopRequireDefault(require("@mui/icons-material/DragHandle"));
|
|
18
|
-
var _core = require("@dnd-kit/core");
|
|
19
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
20
|
-
var _drag = require("@pie-lib/drag");
|
|
21
|
-
var _utils = require("../../utils");
|
|
22
|
-
const log = (0, _debug.default)('@pie-element:categorize:configure:choice');
|
|
23
|
-
const canDrag = props => {
|
|
24
|
-
if (props.lockChoiceOrder) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
const count = props.choice.categoryCount || 0;
|
|
28
|
-
if (count === 0) {
|
|
29
|
-
return true;
|
|
30
|
-
} else {
|
|
31
|
-
return props.correctResponseCount < count;
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
const StyledCard = (0, _styles.styled)(_Card.default)(({
|
|
35
|
-
theme
|
|
36
|
-
}) => ({
|
|
37
|
-
minWidth: '196px',
|
|
38
|
-
padding: theme.spacing(1),
|
|
39
|
-
overflow: 'visible'
|
|
40
|
-
}));
|
|
41
|
-
const StyledCardActions = (0, _styles.styled)(_CardActions.default)({
|
|
42
|
-
padding: 0,
|
|
43
|
-
justifyContent: 'space-between'
|
|
44
|
-
});
|
|
45
|
-
const DragHandleContainer = (0, _styles.styled)('span', {
|
|
46
|
-
shouldForwardProp: prop => prop !== 'draggable'
|
|
47
|
-
})(({
|
|
48
|
-
draggable
|
|
49
|
-
}) => ({
|
|
50
|
-
cursor: draggable ? 'move' : 'inherit',
|
|
51
|
-
touchAction: 'none'
|
|
52
|
-
}));
|
|
53
|
-
const ErrorText = (0, _styles.styled)('div')(({
|
|
54
|
-
theme
|
|
55
|
-
}) => ({
|
|
56
|
-
fontSize: theme.typography.fontSize - 2,
|
|
57
|
-
color: theme.palette.error.main,
|
|
58
|
-
paddingBottom: theme.spacing(1)
|
|
59
|
-
}));
|
|
60
|
-
const Choice = ({
|
|
61
|
-
allowMultiplePlacements,
|
|
62
|
-
configuration,
|
|
63
|
-
choice,
|
|
64
|
-
deleteFocusedEl,
|
|
65
|
-
focusedEl,
|
|
66
|
-
index,
|
|
67
|
-
onDelete,
|
|
68
|
-
onChange,
|
|
69
|
-
correctResponseCount,
|
|
70
|
-
lockChoiceOrder,
|
|
71
|
-
imageSupport,
|
|
72
|
-
spellCheck,
|
|
73
|
-
toolbarOpts,
|
|
74
|
-
error,
|
|
75
|
-
maxImageWidth,
|
|
76
|
-
maxImageHeight,
|
|
77
|
-
uploadSoundSupport
|
|
78
|
-
}) => {
|
|
79
|
-
const draggable = canDrag({
|
|
80
|
-
choice,
|
|
81
|
-
correctResponseCount,
|
|
82
|
-
lockChoiceOrder
|
|
83
|
-
});
|
|
84
|
-
const {
|
|
85
|
-
attributes: dragAttributes,
|
|
86
|
-
listeners: dragListeners,
|
|
87
|
-
setNodeRef: setDragNodeRef,
|
|
88
|
-
isDragging
|
|
89
|
-
} = (0, _core.useDraggable)({
|
|
90
|
-
id: `choice-${choice.id}`,
|
|
91
|
-
data: {
|
|
92
|
-
id: choice.id,
|
|
93
|
-
index,
|
|
94
|
-
type: 'choice'
|
|
95
|
-
},
|
|
96
|
-
disabled: !draggable
|
|
97
|
-
});
|
|
98
|
-
const {
|
|
99
|
-
setNodeRef: setDropNodeRef
|
|
100
|
-
} = (0, _core.useDroppable)({
|
|
101
|
-
id: `choice-drop-${choice.id}`,
|
|
102
|
-
data: {
|
|
103
|
-
id: choice.id,
|
|
104
|
-
index,
|
|
105
|
-
type: 'choice'
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
const changeContent = content => {
|
|
109
|
-
choice.content = content;
|
|
110
|
-
onChange(choice);
|
|
111
|
-
};
|
|
112
|
-
const changeCategoryCount = () => {
|
|
113
|
-
if (choice.categoryCount === 1) {
|
|
114
|
-
choice.categoryCount = 0;
|
|
115
|
-
} else {
|
|
116
|
-
choice.categoryCount = 1;
|
|
117
|
-
}
|
|
118
|
-
onChange(choice);
|
|
119
|
-
};
|
|
120
|
-
const isCheckboxShown = allowMultiplePlacements => allowMultiplePlacements === _utils.multiplePlacements.perChoice;
|
|
121
|
-
const showRemoveAfterPlacing = isCheckboxShown(allowMultiplePlacements);
|
|
122
|
-
const setNodeRef = element => {
|
|
123
|
-
setDragNodeRef(element);
|
|
124
|
-
setDropNodeRef(element);
|
|
125
|
-
};
|
|
126
|
-
return /*#__PURE__*/_react.default.createElement(StyledCard, {
|
|
127
|
-
ref: setNodeRef,
|
|
128
|
-
style: {
|
|
129
|
-
opacity: isDragging ? 0.5 : 1
|
|
130
|
-
}
|
|
131
|
-
}, /*#__PURE__*/_react.default.createElement(StyledCardActions, null, /*#__PURE__*/_react.default.createElement(DragHandleContainer, (0, _extends2.default)({
|
|
132
|
-
draggable: draggable
|
|
133
|
-
}, dragAttributes, dragListeners), /*#__PURE__*/_react.default.createElement(_DragHandle.default, {
|
|
134
|
-
color: draggable ? 'primary' : 'disabled'
|
|
135
|
-
}))), /*#__PURE__*/_react.default.createElement(_inputHeader.default, {
|
|
136
|
-
imageSupport: imageSupport,
|
|
137
|
-
focusedEl: focusedEl,
|
|
138
|
-
deleteFocusedEl: deleteFocusedEl,
|
|
139
|
-
index: index,
|
|
140
|
-
label: choice.content,
|
|
141
|
-
onChange: changeContent,
|
|
142
|
-
onDelete: onDelete,
|
|
143
|
-
toolbarOpts: toolbarOpts,
|
|
144
|
-
spellCheck: spellCheck,
|
|
145
|
-
error: error,
|
|
146
|
-
maxImageWidth: maxImageWidth,
|
|
147
|
-
maxImageHeight: maxImageHeight,
|
|
148
|
-
uploadSoundSupport: uploadSoundSupport,
|
|
149
|
-
configuration: configuration
|
|
150
|
-
}), error && /*#__PURE__*/_react.default.createElement(ErrorText, null, error), /*#__PURE__*/_react.default.createElement(StyledCardActions, null, /*#__PURE__*/_react.default.createElement(_buttons.DeleteButton, {
|
|
151
|
-
label: 'delete',
|
|
152
|
-
onClick: onDelete
|
|
153
|
-
}), showRemoveAfterPlacing && /*#__PURE__*/_react.default.createElement(_configUi.Checkbox, {
|
|
154
|
-
mini: true,
|
|
155
|
-
label: 'Remove after placing',
|
|
156
|
-
checked: choice.categoryCount === 1,
|
|
157
|
-
onChange: changeCategoryCount
|
|
158
|
-
})));
|
|
159
|
-
};
|
|
160
|
-
Choice.propTypes = {
|
|
161
|
-
allowMultiplePlacements: _propTypes.default.string,
|
|
162
|
-
configuration: _propTypes.default.object.isRequired,
|
|
163
|
-
choice: _propTypes.default.object.isRequired,
|
|
164
|
-
deleteFocusedEl: _propTypes.default.func,
|
|
165
|
-
focusedEl: _propTypes.default.number,
|
|
166
|
-
index: _propTypes.default.number,
|
|
167
|
-
lockChoiceOrder: _propTypes.default.bool,
|
|
168
|
-
maxImageHeight: _propTypes.default.object,
|
|
169
|
-
maxImageWidth: _propTypes.default.object,
|
|
170
|
-
onChange: _propTypes.default.func.isRequired,
|
|
171
|
-
onDelete: _propTypes.default.func.isRequired,
|
|
172
|
-
correctResponseCount: _propTypes.default.number.isRequired,
|
|
173
|
-
imageSupport: _propTypes.default.shape({
|
|
174
|
-
add: _propTypes.default.func.isRequired,
|
|
175
|
-
delete: _propTypes.default.func.isRequired
|
|
176
|
-
}),
|
|
177
|
-
toolbarOpts: _propTypes.default.object,
|
|
178
|
-
error: _propTypes.default.string,
|
|
179
|
-
uploadSoundSupport: _propTypes.default.shape({
|
|
180
|
-
add: _propTypes.default.func.isRequired,
|
|
181
|
-
delete: _propTypes.default.func.isRequired
|
|
182
|
-
}),
|
|
183
|
-
spellCheck: _propTypes.default.bool,
|
|
184
|
-
rearrangeChoices: _propTypes.default.func
|
|
185
|
-
};
|
|
186
|
-
var _default = exports.default = _drag.uid.withUid(Choice);
|
|
187
|
-
//# sourceMappingURL=choice.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"choice.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Card","_CardActions","_inputHeader","_configUi","_buttons","_DragHandle","_core","_debug","_drag","_utils","log","debug","canDrag","props","lockChoiceOrder","count","choice","categoryCount","correctResponseCount","StyledCard","styled","Card","theme","minWidth","padding","spacing","overflow","StyledCardActions","CardActions","justifyContent","DragHandleContainer","shouldForwardProp","prop","draggable","cursor","touchAction","ErrorText","fontSize","typography","color","palette","error","main","paddingBottom","Choice","allowMultiplePlacements","configuration","deleteFocusedEl","focusedEl","index","onDelete","onChange","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","attributes","dragAttributes","listeners","dragListeners","setNodeRef","setDragNodeRef","isDragging","useDraggable","id","data","type","disabled","setDropNodeRef","useDroppable","changeContent","content","changeCategoryCount","isCheckboxShown","multiplePlacements","perChoice","showRemoveAfterPlacing","element","default","createElement","ref","style","opacity","_extends2","label","DeleteButton","onClick","Checkbox","mini","checked","propTypes","PropTypes","string","object","isRequired","func","number","bool","shape","add","delete","rearrangeChoices","_default","exports","uid","withUid"],"sources":["../../../src/design/choices/choice.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Card from '@mui/material/Card';\nimport CardActions from '@mui/material/CardActions';\nimport InputHeader from '../input-header';\nimport { Checkbox } from '@pie-lib/config-ui';\nimport { DeleteButton } from '../buttons';\nimport DragHandle from '@mui/icons-material/DragHandle';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\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 if (props.lockChoiceOrder) {\n return true;\n }\n const count = props.choice.categoryCount || 0;\n if (count === 0) {\n return true;\n } else {\n return props.correctResponseCount < count;\n }\n};\n\nconst StyledCard = styled(Card)(({ theme }) => ({\n minWidth: '196px',\n padding: theme.spacing(1),\n overflow: 'visible',\n}));\n\nconst StyledCardActions = styled(CardActions)({\n padding: 0,\n justifyContent: 'space-between',\n});\n\nconst DragHandleContainer = styled('span', {\n shouldForwardProp: (prop) => prop !== 'draggable',\n})(({ draggable }) => ({\n cursor: draggable ? 'move' : 'inherit',\n touchAction: 'none',\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing(1),\n}));\n\nconst Choice = ({\n allowMultiplePlacements,\n configuration,\n choice,\n deleteFocusedEl,\n focusedEl,\n index,\n onDelete,\n onChange,\n correctResponseCount,\n lockChoiceOrder,\n imageSupport,\n spellCheck,\n toolbarOpts,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n}) => {\n const draggable = canDrag({ choice, correctResponseCount, lockChoiceOrder });\n\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n isDragging,\n } = useDraggable({\n id: `choice-${choice.id}`,\n data: {\n id: choice.id,\n index,\n type: 'choice',\n },\n disabled: !draggable,\n });\n\n const {\n setNodeRef: setDropNodeRef,\n } = useDroppable({\n id: `choice-drop-${choice.id}`,\n data: {\n id: choice.id,\n index,\n type: 'choice',\n },\n });\n\n const changeContent = (content) => {\n choice.content = content;\n onChange(choice);\n };\n\n const changeCategoryCount = () => {\n if (choice.categoryCount === 1) {\n choice.categoryCount = 0;\n } else {\n choice.categoryCount = 1;\n }\n onChange(choice);\n };\n\n const isCheckboxShown = (allowMultiplePlacements) => allowMultiplePlacements === multiplePlacements.perChoice;\n\n const showRemoveAfterPlacing = isCheckboxShown(allowMultiplePlacements);\n\n const setNodeRef = (element) => {\n setDragNodeRef(element);\n setDropNodeRef(element);\n };\n\n return (\n <StyledCard ref={setNodeRef} style={{ opacity: isDragging ? 0.5 : 1 }}>\n <StyledCardActions>\n <DragHandleContainer draggable={draggable} {...dragAttributes} {...dragListeners}>\n <DragHandle color={draggable ? 'primary' : 'disabled'} />\n </DragHandleContainer>\n </StyledCardActions>\n <InputHeader\n imageSupport={imageSupport}\n focusedEl={focusedEl}\n deleteFocusedEl={deleteFocusedEl}\n index={index}\n label={choice.content}\n onChange={changeContent}\n onDelete={onDelete}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n />\n {error && <ErrorText>{error}</ErrorText>}\n\n <StyledCardActions>\n <DeleteButton label={'delete'} onClick={onDelete} />\n {showRemoveAfterPlacing && (\n <Checkbox\n mini\n label={'Remove after placing'}\n checked={choice.categoryCount === 1}\n onChange={changeCategoryCount}\n />\n )}\n </StyledCardActions>\n </StyledCard>\n );\n};\n\nChoice.propTypes = {\n allowMultiplePlacements: PropTypes.string,\n configuration: PropTypes.object.isRequired,\n choice: PropTypes.object.isRequired,\n deleteFocusedEl: PropTypes.func,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n lockChoiceOrder: PropTypes.bool,\n maxImageHeight: PropTypes.object,\n maxImageWidth: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n onDelete: 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 spellCheck: PropTypes.bool,\n rearrangeChoices: PropTypes.func,\n};\n\nexport default uid.withUid(Choice);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = exports.Config = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _styles = require("@mui/material/styles");
|
|
12
|
-
var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
|
|
13
|
-
const ConfigContainer = (0, _styles.styled)('div')(({
|
|
14
|
-
theme
|
|
15
|
-
}) => ({
|
|
16
|
-
paddingTop: theme.spacing(1),
|
|
17
|
-
marginBottom: theme.spacing(1)
|
|
18
|
-
}));
|
|
19
|
-
const StyledTextField = (0, _styles.styled)(_TextField.default)({
|
|
20
|
-
width: '100%'
|
|
21
|
-
});
|
|
22
|
-
class Config extends _react.default.Component {
|
|
23
|
-
constructor(...args) {
|
|
24
|
-
super(...args);
|
|
25
|
-
(0, _defineProperty2.default)(this, "changeLabel", ({
|
|
26
|
-
target
|
|
27
|
-
}) => {
|
|
28
|
-
this.props.onModelChanged({
|
|
29
|
-
choicesLabel: target.value
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
render() {
|
|
34
|
-
const {
|
|
35
|
-
config,
|
|
36
|
-
spellCheck
|
|
37
|
-
} = this.props;
|
|
38
|
-
return /*#__PURE__*/_react.default.createElement(ConfigContainer, null, /*#__PURE__*/_react.default.createElement(StyledTextField, {
|
|
39
|
-
InputLabelProps: {
|
|
40
|
-
shrink: true
|
|
41
|
-
},
|
|
42
|
-
variant: "outlined",
|
|
43
|
-
label: "Label",
|
|
44
|
-
value: config.choicesLabel,
|
|
45
|
-
onChange: this.changeLabel,
|
|
46
|
-
spellCheck: spellCheck
|
|
47
|
-
}));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.Config = Config;
|
|
51
|
-
(0, _defineProperty2.default)(Config, "propTypes", {
|
|
52
|
-
config: _propTypes.default.object,
|
|
53
|
-
onModelChanged: _propTypes.default.func,
|
|
54
|
-
spellCheck: _propTypes.default.bool
|
|
55
|
-
});
|
|
56
|
-
(0, _defineProperty2.default)(Config, "defaultProps", {});
|
|
57
|
-
var _default = exports.default = Config;
|
|
58
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_TextField","ConfigContainer","styled","theme","paddingTop","spacing","marginBottom","StyledTextField","TextField","width","Config","React","Component","constructor","args","_defineProperty2","default","target","props","onModelChanged","choicesLabel","value","render","config","spellCheck","createElement","InputLabelProps","shrink","variant","label","onChange","changeLabel","exports","PropTypes","object","func","bool","_default"],"sources":["../../../src/design/choices/config.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport TextField from '@mui/material/TextField';\n\nconst ConfigContainer = styled('div')(({ theme }) => ({\n paddingTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n}));\n\nconst StyledTextField = styled(TextField)({\n width: '100%',\n});\n\nexport class Config extends React.Component {\n static propTypes = {\n config: PropTypes.object,\n onModelChanged: PropTypes.func,\n spellCheck: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n changeLabel = ({ target }) => {\n this.props.onModelChanged({ choicesLabel: target.value });\n };\n\n render() {\n const { config, spellCheck } = this.props;\n\n return (\n <ConfigContainer>\n <StyledTextField\n InputLabelProps={{\n shrink: true,\n }}\n variant=\"outlined\"\n label=\"Label\"\n value={config.choicesLabel}\n onChange={this.changeLabel}\n spellCheck={spellCheck}\n />\n </ConfigContainer>\n );\n }\n}\n\nexport default Config;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,MAAMI,eAAe,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EACpDC,UAAU,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC5BC,YAAY,EAAEH,KAAK,CAACE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAME,eAAe,GAAG,IAAAL,cAAM,EAACM,kBAAS,CAAC,CAAC;EACxCC,KAAK,EAAE;AACT,CAAC,CAAC;AAEK,MAAMC,MAAM,SAASC,cAAK,CAACC,SAAS,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,uBAS5B,CAAC;MAAEC;IAAO,CAAC,KAAK;MAC5B,IAAI,CAACC,KAAK,CAACC,cAAc,CAAC;QAAEC,YAAY,EAAEH,MAAM,CAACI;MAAM,CAAC,CAAC;IAC3D,CAAC;EAAA;EAEDC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,MAAM;MAAEC;IAAW,CAAC,GAAG,IAAI,CAACN,KAAK;IAEzC,oBACEvB,MAAA,CAAAqB,OAAA,CAAAS,aAAA,CAACxB,eAAe,qBACdN,MAAA,CAAAqB,OAAA,CAAAS,aAAA,CAAClB,eAAe;MACdmB,eAAe,EAAE;QACfC,MAAM,EAAE;MACV,CAAE;MACFC,OAAO,EAAC,UAAU;MAClBC,KAAK,EAAC,OAAO;MACbR,KAAK,EAAEE,MAAM,CAACH,YAAa;MAC3BU,QAAQ,EAAE,IAAI,CAACC,WAAY;MAC3BP,UAAU,EAAEA;IAAW,CACxB,CACc,CAAC;EAEtB;AACF;AAACQ,OAAA,CAAAtB,MAAA,GAAAA,MAAA;AAAA,IAAAK,gBAAA,CAAAC,OAAA,EA/BYN,MAAM,eACE;EACjBa,MAAM,EAAEU,kBAAS,CAACC,MAAM;EACxBf,cAAc,EAAEc,kBAAS,CAACE,IAAI;EAC9BX,UAAU,EAAES,kBAAS,CAACG;AACxB,CAAC;AAAA,IAAArB,gBAAA,CAAAC,OAAA,EALUN,MAAM,kBAOK,CAAC,CAAC;AAAA,IAAA2B,QAAA,GAAAL,OAAA,CAAAhB,OAAA,GA0BXN,MAAM","ignoreList":[]}
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = exports.Choices = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _styles = require("@mui/material/styles");
|
|
12
|
-
var _choice = _interopRequireDefault(require("./choice"));
|
|
13
|
-
var _header = _interopRequireDefault(require("../header"));
|
|
14
|
-
var _config = _interopRequireDefault(require("./config"));
|
|
15
|
-
var _configUi = require("@pie-lib/config-ui");
|
|
16
|
-
var _categorize = require("@pie-lib/categorize");
|
|
17
|
-
const ChoicesContainer = (0, _styles.styled)('div')(({
|
|
18
|
-
theme
|
|
19
|
-
}) => ({
|
|
20
|
-
marginBottom: theme.spacing(2.5)
|
|
21
|
-
}));
|
|
22
|
-
const ChoiceHolder = (0, _styles.styled)('div')(({
|
|
23
|
-
theme
|
|
24
|
-
}) => ({
|
|
25
|
-
paddingTop: theme.spacing(1),
|
|
26
|
-
paddingBottom: theme.spacing(1),
|
|
27
|
-
display: 'grid',
|
|
28
|
-
gridRowGap: theme.spacing(1),
|
|
29
|
-
gridColumnGap: theme.spacing(1)
|
|
30
|
-
}));
|
|
31
|
-
const ErrorText = (0, _styles.styled)('div')(({
|
|
32
|
-
theme
|
|
33
|
-
}) => ({
|
|
34
|
-
fontSize: theme.typography.fontSize - 2,
|
|
35
|
-
color: theme.palette.error.main,
|
|
36
|
-
paddingTop: theme.spacing(0.5)
|
|
37
|
-
}));
|
|
38
|
-
class Choices extends _react.default.Component {
|
|
39
|
-
constructor(...args) {
|
|
40
|
-
super(...args);
|
|
41
|
-
(0, _defineProperty2.default)(this, "state", {
|
|
42
|
-
focusedEl: null
|
|
43
|
-
});
|
|
44
|
-
(0, _defineProperty2.default)(this, "changeChoice", choice => {
|
|
45
|
-
const {
|
|
46
|
-
choices,
|
|
47
|
-
onModelChanged
|
|
48
|
-
} = this.props;
|
|
49
|
-
const index = choices.findIndex(h => h.id === choice.id);
|
|
50
|
-
if (index !== -1) {
|
|
51
|
-
choices.splice(index, 1, choice);
|
|
52
|
-
onModelChanged({
|
|
53
|
-
choices
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
(0, _defineProperty2.default)(this, "allChoicesHaveCount", count => {
|
|
58
|
-
const {
|
|
59
|
-
choices
|
|
60
|
-
} = this.props;
|
|
61
|
-
return Array.isArray(choices) && choices.every(c => c.categoryCount === count);
|
|
62
|
-
});
|
|
63
|
-
(0, _defineProperty2.default)(this, "addChoice", () => {
|
|
64
|
-
const {
|
|
65
|
-
onModelChanged,
|
|
66
|
-
model,
|
|
67
|
-
choices: oldChoices
|
|
68
|
-
} = this.props;
|
|
69
|
-
let {
|
|
70
|
-
maxAnswerChoices
|
|
71
|
-
} = model || {};
|
|
72
|
-
if (maxAnswerChoices && model.choices?.length >= maxAnswerChoices) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
const id = _configUi.choiceUtils.firstAvailableIndex(model.choices.map(a => a.id), 1);
|
|
76
|
-
const data = {
|
|
77
|
-
id,
|
|
78
|
-
content: 'Choice ' + id
|
|
79
|
-
};
|
|
80
|
-
this.setState({
|
|
81
|
-
focusedEl: oldChoices.length
|
|
82
|
-
}, () => {
|
|
83
|
-
onModelChanged({
|
|
84
|
-
choices: model.choices.concat([data])
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
(0, _defineProperty2.default)(this, "deleteFocusedEl", () => {
|
|
89
|
-
this.setState({
|
|
90
|
-
focusedEl: null
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
(0, _defineProperty2.default)(this, "deleteChoice", choice => {
|
|
94
|
-
const {
|
|
95
|
-
model,
|
|
96
|
-
onModelChanged
|
|
97
|
-
} = this.props;
|
|
98
|
-
const index = model.choices.findIndex(a => a.id === choice.id);
|
|
99
|
-
if (index !== -1) {
|
|
100
|
-
model.choices.splice(index, 1);
|
|
101
|
-
model.correctResponse = (0, _categorize.removeAllChoices)(choice.id, model.correctResponse);
|
|
102
|
-
onModelChanged(model);
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
render() {
|
|
107
|
-
const {
|
|
108
|
-
focusedEl
|
|
109
|
-
} = this.state;
|
|
110
|
-
const {
|
|
111
|
-
choices,
|
|
112
|
-
model,
|
|
113
|
-
imageSupport,
|
|
114
|
-
uploadSoundSupport,
|
|
115
|
-
onModelChanged,
|
|
116
|
-
spellCheck,
|
|
117
|
-
toolbarOpts,
|
|
118
|
-
configuration,
|
|
119
|
-
defaultImageMaxWidth,
|
|
120
|
-
defaultImageMaxHeight
|
|
121
|
-
} = this.props;
|
|
122
|
-
const {
|
|
123
|
-
errors,
|
|
124
|
-
allowMultiplePlacementsEnabled,
|
|
125
|
-
lockChoiceOrder,
|
|
126
|
-
maxAnswerChoices
|
|
127
|
-
} = model;
|
|
128
|
-
const {
|
|
129
|
-
choicesError,
|
|
130
|
-
choicesErrors
|
|
131
|
-
} = errors || {};
|
|
132
|
-
const {
|
|
133
|
-
maxImageWidth = {},
|
|
134
|
-
maxImageHeight = {}
|
|
135
|
-
} = configuration || {};
|
|
136
|
-
const choiceHolderStyle = {
|
|
137
|
-
gridTemplateColumns: `repeat(${model.categoriesPerRow}, 1fr)`
|
|
138
|
-
};
|
|
139
|
-
const addChoiceButtonTooltip = maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';
|
|
140
|
-
return /*#__PURE__*/_react.default.createElement(ChoicesContainer, null, /*#__PURE__*/_react.default.createElement(_header.default, {
|
|
141
|
-
label: "Choices",
|
|
142
|
-
buttonLabel: "ADD A CHOICE",
|
|
143
|
-
onAdd: this.addChoice,
|
|
144
|
-
buttonDisabled: maxAnswerChoices && choices && choices?.length >= maxAnswerChoices,
|
|
145
|
-
tooltip: addChoiceButtonTooltip
|
|
146
|
-
}), /*#__PURE__*/_react.default.createElement(_config.default, {
|
|
147
|
-
config: model,
|
|
148
|
-
onModelChanged: onModelChanged,
|
|
149
|
-
spellCheck: spellCheck
|
|
150
|
-
}), /*#__PURE__*/_react.default.createElement(ChoiceHolder, {
|
|
151
|
-
style: choiceHolderStyle
|
|
152
|
-
}, choices.map((h, index) => {
|
|
153
|
-
return /*#__PURE__*/_react.default.createElement(_choice.default, {
|
|
154
|
-
key: h.id,
|
|
155
|
-
choice: h,
|
|
156
|
-
focusedEl: focusedEl,
|
|
157
|
-
deleteFocusedEl: this.deleteFocusedEl,
|
|
158
|
-
correctResponseCount: h.correctResponseCount,
|
|
159
|
-
allowMultiplePlacements: allowMultiplePlacementsEnabled,
|
|
160
|
-
lockChoiceOrder: lockChoiceOrder,
|
|
161
|
-
index: index,
|
|
162
|
-
imageSupport: imageSupport,
|
|
163
|
-
onChange: this.changeChoice,
|
|
164
|
-
onDelete: () => this.deleteChoice(h),
|
|
165
|
-
toolbarOpts: toolbarOpts,
|
|
166
|
-
spellCheck: spellCheck,
|
|
167
|
-
error: choicesErrors && choicesErrors[h.id],
|
|
168
|
-
maxImageWidth: maxImageWidth && maxImageWidth.choice || defaultImageMaxWidth,
|
|
169
|
-
maxImageHeight: maxImageHeight && maxImageHeight.choice || defaultImageMaxHeight,
|
|
170
|
-
uploadSoundSupport: uploadSoundSupport,
|
|
171
|
-
configuration: configuration
|
|
172
|
-
});
|
|
173
|
-
})), choicesError && /*#__PURE__*/_react.default.createElement(ErrorText, null, choicesError));
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
exports.Choices = Choices;
|
|
177
|
-
(0, _defineProperty2.default)(Choices, "propTypes", {
|
|
178
|
-
model: _propTypes.default.object.isRequired,
|
|
179
|
-
configuration: _propTypes.default.object.isRequired,
|
|
180
|
-
choices: _propTypes.default.array.isRequired,
|
|
181
|
-
defaultImageMaxWidth: _propTypes.default.number,
|
|
182
|
-
defaultImageMaxHeight: _propTypes.default.number,
|
|
183
|
-
onModelChanged: _propTypes.default.func.isRequired,
|
|
184
|
-
imageSupport: _propTypes.default.shape({
|
|
185
|
-
add: _propTypes.default.func.isRequired,
|
|
186
|
-
delete: _propTypes.default.func.isRequired
|
|
187
|
-
}),
|
|
188
|
-
uploadSoundSupport: _propTypes.default.shape({
|
|
189
|
-
add: _propTypes.default.func.isRequired,
|
|
190
|
-
delete: _propTypes.default.func.isRequired
|
|
191
|
-
}),
|
|
192
|
-
toolbarOpts: _propTypes.default.object,
|
|
193
|
-
spellCheck: _propTypes.default.bool
|
|
194
|
-
});
|
|
195
|
-
(0, _defineProperty2.default)(Choices, "defaultProps", {});
|
|
196
|
-
var _default = exports.default = Choices;
|
|
197
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_choice","_header","_config","_configUi","_categorize","ChoicesContainer","styled","theme","marginBottom","spacing","ChoiceHolder","paddingTop","paddingBottom","display","gridRowGap","gridColumnGap","ErrorText","fontSize","typography","color","palette","error","main","Choices","React","Component","constructor","args","_defineProperty2","default","focusedEl","choice","choices","onModelChanged","props","index","findIndex","h","id","splice","count","Array","isArray","every","c","categoryCount","model","oldChoices","maxAnswerChoices","length","utils","firstAvailableIndex","map","a","data","content","setState","concat","correctResponse","removeAllChoices","render","state","imageSupport","uploadSoundSupport","spellCheck","toolbarOpts","configuration","defaultImageMaxWidth","defaultImageMaxHeight","errors","allowMultiplePlacementsEnabled","lockChoiceOrder","choicesError","choicesErrors","maxImageWidth","maxImageHeight","choiceHolderStyle","gridTemplateColumns","categoriesPerRow","addChoiceButtonTooltip","createElement","label","buttonLabel","onAdd","addChoice","buttonDisabled","tooltip","config","style","key","deleteFocusedEl","correctResponseCount","allowMultiplePlacements","onChange","changeChoice","onDelete","deleteChoice","exports","PropTypes","object","isRequired","array","number","func","shape","add","delete","bool","_default"],"sources":["../../../src/design/choices/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Choice from './choice';\nimport Header from '../header';\nimport Config from './config';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport { removeAllChoices } from '@pie-lib/categorize';\n\nconst ChoicesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst ChoiceHolder = styled('div')(({ theme }) => ({\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n display: 'grid',\n gridRowGap: theme.spacing(1),\n gridColumnGap: theme.spacing(1),\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(0.5),\n}));\n\nexport class Choices extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n choices: PropTypes.array.isRequired,\n defaultImageMaxWidth: PropTypes.number,\n defaultImageMaxHeight: PropTypes.number,\n onModelChanged: PropTypes.func.isRequired,\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 toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n state = {\n focusedEl: null,\n };\n\n changeChoice = (choice) => {\n const { choices, onModelChanged } = this.props;\n const index = choices.findIndex((h) => h.id === choice.id);\n if (index !== -1) {\n choices.splice(index, 1, choice);\n onModelChanged({ choices });\n }\n };\n\n allChoicesHaveCount = (count) => {\n const { choices } = this.props;\n return Array.isArray(choices) && choices.every((c) => c.categoryCount === count);\n };\n\n addChoice = () => {\n const { onModelChanged, model, choices: oldChoices } = this.props;\n let { maxAnswerChoices } = model || {};\n\n if (maxAnswerChoices && model.choices?.length >= maxAnswerChoices) {\n return;\n }\n\n const id = utils.firstAvailableIndex(\n model.choices.map((a) => a.id),\n 1,\n );\n const data = { id, content: 'Choice ' + id };\n\n this.setState(\n {\n focusedEl: oldChoices.length,\n },\n () => {\n onModelChanged({ choices: model.choices.concat([data]) });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n deleteChoice = (choice) => {\n const { model, onModelChanged } = this.props;\n const index = model.choices.findIndex((a) => a.id === choice.id);\n if (index !== -1) {\n model.choices.splice(index, 1);\n model.correctResponse = removeAllChoices(choice.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n render() {\n const { focusedEl } = this.state;\n const {\n choices,\n model,\n imageSupport,\n uploadSoundSupport,\n onModelChanged,\n spellCheck,\n toolbarOpts,\n configuration,\n defaultImageMaxWidth,\n defaultImageMaxHeight,\n } = this.props;\n const { errors, allowMultiplePlacementsEnabled, lockChoiceOrder, maxAnswerChoices } = model;\n const { choicesError, choicesErrors } = errors || {};\n const { maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const choiceHolderStyle = {\n gridTemplateColumns: `repeat(${model.categoriesPerRow}, 1fr)`,\n };\n const addChoiceButtonTooltip =\n maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';\n\n return (\n <ChoicesContainer>\n <Header\n label=\"Choices\"\n buttonLabel=\"ADD A CHOICE\"\n onAdd={this.addChoice}\n buttonDisabled={maxAnswerChoices && choices && choices?.length >= maxAnswerChoices}\n tooltip={addChoiceButtonTooltip}\n />\n\n <Config config={model} onModelChanged={onModelChanged} spellCheck={spellCheck} />\n\n <ChoiceHolder style={choiceHolderStyle}>\n {choices.map((h, index) => {\n return (\n <Choice\n key={h.id}\n choice={h}\n focusedEl={focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n correctResponseCount={h.correctResponseCount}\n allowMultiplePlacements={allowMultiplePlacementsEnabled}\n lockChoiceOrder={lockChoiceOrder}\n index={index}\n imageSupport={imageSupport}\n onChange={this.changeChoice}\n onDelete={() => this.deleteChoice(h)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={choicesErrors && choicesErrors[h.id]}\n maxImageWidth={(maxImageWidth && maxImageWidth.choice) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choice) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n />\n );\n })}\n </ChoiceHolder>\n {choicesError && <ErrorText>{choicesError}</ErrorText>}\n </ChoicesContainer>\n );\n }\n}\n\nexport default Choices;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = exports.Header = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
|
|
12
|
-
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
13
|
-
var _styles = require("@mui/material/styles");
|
|
14
|
-
var _buttons = require("./buttons");
|
|
15
|
-
const HeaderContainer = (0, _styles.styled)('div')(({
|
|
16
|
-
theme
|
|
17
|
-
}) => ({
|
|
18
|
-
display: 'flex',
|
|
19
|
-
justifyContent: 'space-between',
|
|
20
|
-
marginBottom: theme.spacing(1)
|
|
21
|
-
}));
|
|
22
|
-
const TitleContainer = (0, _styles.styled)('div')({
|
|
23
|
-
display: 'flex',
|
|
24
|
-
alignItems: 'center'
|
|
25
|
-
});
|
|
26
|
-
const StyledTooltip = (0, _styles.styled)(_Tooltip.default)(({
|
|
27
|
-
theme
|
|
28
|
-
}) => ({
|
|
29
|
-
'& .MuiTooltip-tooltip': {
|
|
30
|
-
fontSize: theme.typography.fontSize - 2,
|
|
31
|
-
whiteSpace: 'pre',
|
|
32
|
-
maxWidth: '500px'
|
|
33
|
-
}
|
|
34
|
-
}));
|
|
35
|
-
class Header extends _react.default.Component {
|
|
36
|
-
render() {
|
|
37
|
-
const {
|
|
38
|
-
onAdd,
|
|
39
|
-
label,
|
|
40
|
-
buttonLabel,
|
|
41
|
-
info,
|
|
42
|
-
buttonDisabled,
|
|
43
|
-
variant,
|
|
44
|
-
tooltip
|
|
45
|
-
} = this.props;
|
|
46
|
-
return /*#__PURE__*/_react.default.createElement(HeaderContainer, null, /*#__PURE__*/_react.default.createElement(TitleContainer, null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
47
|
-
variant: variant || 'title'
|
|
48
|
-
}, label), info), /*#__PURE__*/_react.default.createElement(StyledTooltip, {
|
|
49
|
-
title: tooltip || '',
|
|
50
|
-
enterTouchDelay: 50,
|
|
51
|
-
leaveTouchDelay: 3000
|
|
52
|
-
}, /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_buttons.AddButton, {
|
|
53
|
-
onClick: onAdd,
|
|
54
|
-
label: buttonLabel,
|
|
55
|
-
disabled: buttonDisabled
|
|
56
|
-
}))));
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
exports.Header = Header;
|
|
60
|
-
(0, _defineProperty2.default)(Header, "propTypes", {
|
|
61
|
-
buttonLabel: _propTypes.default.string,
|
|
62
|
-
onAdd: _propTypes.default.func.isRequired,
|
|
63
|
-
label: _propTypes.default.string.isRequired,
|
|
64
|
-
info: _propTypes.default.any,
|
|
65
|
-
buttonDisabled: _propTypes.default.bool,
|
|
66
|
-
variant: _propTypes.default.string,
|
|
67
|
-
tooltip: _propTypes.default.string
|
|
68
|
-
});
|
|
69
|
-
(0, _defineProperty2.default)(Header, "defaultProps", {});
|
|
70
|
-
var _default = exports.default = Header;
|
|
71
|
-
//# sourceMappingURL=header.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"header.js","names":["_react","_interopRequireDefault","require","_propTypes","_Tooltip","_Typography","_styles","_buttons","HeaderContainer","styled","theme","display","justifyContent","marginBottom","spacing","TitleContainer","alignItems","StyledTooltip","Tooltip","fontSize","typography","whiteSpace","maxWidth","Header","React","Component","render","onAdd","label","buttonLabel","info","buttonDisabled","variant","tooltip","props","default","createElement","title","enterTouchDelay","leaveTouchDelay","AddButton","onClick","disabled","exports","_defineProperty2","PropTypes","string","func","isRequired","any","bool","_default"],"sources":["../../src/design/header.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { AddButton } from './buttons';\n\nconst HeaderContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(1),\n}));\n\nconst TitleContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n});\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nexport class Header extends React.Component {\n static propTypes = {\n buttonLabel: PropTypes.string,\n onAdd: PropTypes.func.isRequired,\n label: PropTypes.string.isRequired,\n info: PropTypes.any,\n buttonDisabled: PropTypes.bool,\n variant: PropTypes.string,\n tooltip: PropTypes.string,\n };\n\n static defaultProps = {};\n\n render() {\n const { onAdd, label, buttonLabel, info, buttonDisabled, variant, tooltip } = this.props;\n return (\n <HeaderContainer>\n <TitleContainer>\n <Typography variant={variant || 'title'}>\n {label}\n </Typography>\n {info}\n </TitleContainer>\n <StyledTooltip\n title={tooltip || ''}\n enterTouchDelay={50}\n leaveTouchDelay={3000}\n >\n <span>\n <AddButton onClick={onAdd} label={buttonLabel} disabled={buttonDisabled} />\n </span>\n </StyledTooltip>\n </HeaderContainer>\n );\n }\n}\n\nexport default Header;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAEA,MAAMM,eAAe,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EACpDC,OAAO,EAAE,MAAM;EACfC,cAAc,EAAE,eAAe;EAC/BC,YAAY,EAAEH,KAAK,CAACI,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAMC,cAAc,GAAG,IAAAN,cAAM,EAAC,KAAK,CAAC,CAAC;EACnCE,OAAO,EAAE,MAAM;EACfK,UAAU,EAAE;AACd,CAAC,CAAC;AAEF,MAAMC,aAAa,GAAG,IAAAR,cAAM,EAACS,gBAAO,CAAC,CAAC,CAAC;EAAER;AAAM,CAAC,MAAM;EACpD,uBAAuB,EAAE;IACvBS,QAAQ,EAAET,KAAK,CAACU,UAAU,CAACD,QAAQ,GAAG,CAAC;IACvCE,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC,CAAC;AAEI,MAAMC,MAAM,SAASC,cAAK,CAACC,SAAS,CAAC;EAa1CC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,KAAK;MAAEC,KAAK;MAAEC,WAAW;MAAEC,IAAI;MAAEC,cAAc;MAAEC,OAAO;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAACC,KAAK;IACxF,oBACElC,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAAC5B,eAAe,qBACdR,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAACrB,cAAc,qBACbf,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAAC/B,WAAA,CAAA8B,OAAU;MAACH,OAAO,EAAEA,OAAO,IAAI;IAAQ,GACrCJ,KACS,CAAC,EACZE,IACa,CAAC,eACjB9B,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAACnB,aAAa;MACVoB,KAAK,EAAEJ,OAAO,IAAI,EAAG;MACrBK,eAAe,EAAE,EAAG;MACpBC,eAAe,EAAE;IAAK,gBAExBvC,MAAA,CAAAmC,OAAA,CAAAC,aAAA,4BACEpC,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAAC7B,QAAA,CAAAiC,SAAS;MAACC,OAAO,EAAEd,KAAM;MAACC,KAAK,EAAEC,WAAY;MAACa,QAAQ,EAAEX;IAAe,CAAE,CACtE,CACO,CACA,CAAC;EAEtB;AACF;AAACY,OAAA,CAAApB,MAAA,GAAAA,MAAA;AAAA,IAAAqB,gBAAA,CAAAT,OAAA,EAnCYZ,MAAM,eACE;EACjBM,WAAW,EAAEgB,kBAAS,CAACC,MAAM;EAC7BnB,KAAK,EAAEkB,kBAAS,CAACE,IAAI,CAACC,UAAU;EAChCpB,KAAK,EAAEiB,kBAAS,CAACC,MAAM,CAACE,UAAU;EAClClB,IAAI,EAAEe,kBAAS,CAACI,GAAG;EACnBlB,cAAc,EAAEc,kBAAS,CAACK,IAAI;EAC9BlB,OAAO,EAAEa,kBAAS,CAACC,MAAM;EACzBb,OAAO,EAAEY,kBAAS,CAACC;AACrB,CAAC;AAAA,IAAAF,gBAAA,CAAAT,OAAA,EATUZ,MAAM,kBAWK,CAAC,CAAC;AAAA,IAAA4B,QAAA,GAAAR,OAAA,CAAAR,OAAA,GA0BXZ,MAAM","ignoreList":[]}
|