@pie-element/extended-text-entry 6.8.4-annotations.0 → 6.8.4-annotations.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.
@@ -86,7 +86,6 @@ var style = {
86
86
  annotation: {
87
87
  position: 'relative',
88
88
  cursor: 'pointer',
89
- lineHeight: '19px',
90
89
  '&.positive': {
91
90
  backgroundColor: 'rgb(51, 255, 51, 0.5)'
92
91
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/annotation/annotation-editor.jsx"],"names":["style","textContainer","padding","backgroundColor","border","borderRadius","overflowY","lineHeight","whiteSpace","overflowWrap","margin","userSelect","labelsContainer","width","wrapper","position","overflowX","display","commentContainer","paddingTop","marginBottom","marginTop","annotation","cursor","annotationLabel","top","left","fontSize","fontStyle","fontWeight","color","labelHover","zIndex","highlight","hover","sideAnnotationHover","borderRightColor","sideAnnotation","marginLeft","wordBreak","right","content","height","pointerEvents","borderWidth","AnnotationEditor","props","textRef","labelsRef","offsetLeft","offsetWidth","Array","from","children","forEach","label","spans","dataset","annId","spanOffset","offsetTop","offsetParent","scrollTop","event","annotations","classes","selectionDetails","state","target","id","annotationId","selectedElems","labelElem","annotationIndex","findIndex","isSideLabel","hasAttribute","classList","add","setState","anchorEl","openedMenu","openedEditor","elem","remove","length","selection","window","getSelection","detail","rangeCount","selectedRange","getRangeAt","selectedText","toString","isSelectionInside","contains","commonAncestorContainer","isCollapsed","onChange","parentRef","removeChild","splice","handleClose","elems","disabled","type","className","onclick","handleClick","onmouseover","handleHover","onmouseout","handleCancelHover","firstSpan","document","createElement","innerHTML","freeform","appendChild","start","end","Date","getTime","join","createDOMAnnotation","newAnnotation","text","updatedAnnotation","oldType","oldLabel","updateLabel","createNewAnnotation","push","newLabel","span","domStart","domEnd","range","createRange","setStart","node","offset","setEnd","adjustAnnotationsPosition","addEventListener","removeEventListener","comment","customKeys","disabledMath","keypadMode","maxHeight","onCommentChange","predefinedAnnotations","anchorOffset","topOffset","minHeight","r","clearSelection","handleSelection","__html","prompt","math","controlledKeypadMode","video","audio","deleteAnnotation","editAnnotation","addAnnotation","handleMenuClick","updateAnnotation","changeAnnotationType","React","Component","PropTypes","string","array","func","isRequired","number","bool","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport {\n clearSelection,\n isSideLabel,\n getAnnotationElements,\n getDOMNodes,\n getLabelElement,\n getRangeDetails,\n removeElemsWrapping,\n wrapRange\n} from './annotation-utils';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport FreeformEditor from './freeform-editor';\nimport AnnotationMenu from './annotation-menu';\n\nconst style = {\n textContainer: {\n padding: '10px 120px 10px 16px',\n backgroundColor: 'rgba(0, 0, 0, 0.06)',\n border: '1px solid #ccc',\n borderRadius: '4px',\n overflowY: 'scroll',\n lineHeight: '36px',\n whiteSpace: 'pre-wrap',\n overflowWrap: 'break-word',\n '& p': {\n margin: 0\n },\n '& span[data-latex]': {\n userSelect: 'none',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none'\n }\n },\n labelsContainer: {\n width: '230px'\n },\n wrapper: {\n position: 'relative',\n overflowX: 'hidden',\n display: 'flex'\n },\n commentContainer: {\n paddingTop: 16,\n marginBottom: 16,\n marginTop: 16,\n width: '100%'\n },\n annotation: {\n position: 'relative',\n cursor: 'pointer',\n lineHeight: '19px',\n\n '&.positive': {\n backgroundColor: 'rgb(51, 255, 51, 0.5)',\n },\n\n '&.negative': {\n backgroundColor: 'rgba(255, 102, 204, 0.4)',\n }\n },\n annotationLabel: {\n backgroundColor: 'rgb(242, 242, 242)',\n padding: '2px',\n position: 'absolute',\n userSelect: 'none',\n whiteSpace: 'nowrap',\n top: '-10px',\n left: '-2px',\n fontSize: '12px',\n fontStyle: 'normal',\n fontWeight: 'normal',\n lineHeight: '6px',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n\n '&.positive': {\n color: 'rgb(0, 128, 0)',\n },\n\n '&.negative': {\n color: 'rgb(204, 0, 136)',\n }\n },\n labelHover: {\n zIndex: 20,\n\n '&.positive': {\n color: 'rgb(0, 77, 0)',\n },\n\n '&.negative': {\n color: 'rgb(153, 0, 102)',\n }\n },\n highlight: {\n zIndex: 10\n },\n hover: {\n zIndex: 20,\n\n '&.positive': {\n backgroundColor: 'rgb(51, 255, 51, 0.7)',\n },\n\n '&.negative': {\n backgroundColor: 'rgba(255, 102, 204, 0.55)',\n }\n },\n sideAnnotationHover: {\n zIndex: 20,\n\n '&.negative': {\n backgroundColor: 'rgb(255, 179, 230) !important',\n '&:before': {\n borderRightColor: 'rgb(255, 179, 230) !important'\n }\n },\n\n '&.positive': {\n backgroundColor: 'rgb(128, 255, 128) !important',\n '&:before': {\n borderRightColor: 'rgb(153, 255, 153) !important'\n }\n }\n },\n sideAnnotation: {\n position: 'absolute',\n padding: '4px',\n borderRadius: '4px',\n marginLeft: '8px',\n width: '180px',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n border: '2px solid #ffffff',\n fontSize: '14px',\n fontStyle: 'normal',\n fontWeight: 'normal',\n\n '&:before': {\n position: 'absolute',\n right: '100%',\n top: '5px',\n border: 'solid transparent',\n content: '\"\"',\n height: 0,\n width: 0,\n pointerEvents: 'none',\n borderWidth: '7px',\n },\n\n '&.negative': {\n backgroundColor: 'rgb(255, 204, 238)',\n '&:before': {\n borderRightColor: 'rgb(255, 204, 238)'\n }\n },\n\n '&.positive': {\n backgroundColor: 'rgb(153, 255, 153)',\n '&:before': {\n borderRightColor: 'rgb(153, 255, 153)'\n }\n }\n },\n};\n\nclass AnnotationEditor extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n comment: PropTypes.string,\n annotations: PropTypes.array,\n predefinedAnnotations: PropTypes.array,\n onChange: PropTypes.func.isRequired,\n onCommentChange: PropTypes.func.isRequired,\n width: PropTypes.number,\n height: PropTypes.number,\n maxHeight: PropTypes.string,\n disabled: PropTypes.bool,\n disabledMath: PropTypes.bool,\n customKeys: PropTypes.array,\n keypadMode: PropTypes.string,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotation: null,\n annotationIndex: null\n };\n };\n\n componentDidMount() {\n const { annotations, text } = this.props;\n\n if (text) {\n annotations.forEach(annotation => {\n const [ domStart, domEnd ] = getDOMNodes(annotation.start, annotation.end, this.textRef);\n\n if (domStart && domEnd) {\n const range = document.createRange();\n\n range.setStart(domStart.node, domStart.offset);\n range.setEnd(domEnd.node, domEnd.offset);\n\n const spans = wrapRange(range);\n\n this.createDOMAnnotation(spans, annotation);\n }\n });\n }\n\n if (this.textRef) {\n this.adjustAnnotationsPosition();\n this.textRef.addEventListener('scroll', this.adjustAnnotationsPosition);\n }\n };\n\n adjustAnnotationsPosition = () => {\n if (this.textRef && this.labelsRef) {\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n Array.from(this.labelsRef.children).forEach(label => {\n const spans = getAnnotationElements(label.dataset.annId);\n const spanOffset = spans[0].offsetTop ? spans[0].offsetTop : spans[0].offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop - 6;\n\n label.style.top = `${top}px`;\n label.style.left = `${left}px`;\n });\n }\n };\n\n handleClick = event => {\n const { annotations, classes } = this.props;\n const { selectionDetails } = this.state;\n\n if (selectionDetails) {\n // new selection was made inside another annotation and should not update that annotation\n return;\n }\n\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const annotationIndex = annotations.findIndex(annotation => annotation.id === annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n if (isSideLabel) {\n labelElem.classList.add(classes.highlight);\n }\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: !!id || !!annId && !isSideLabel, // true if the annotation or the label was clicked\n openedEditor: !!annId && isSideLabel, // true if the side label was clicked\n selectedElems,\n labelElem,\n annotationIndex,\n annotation: annotations[annotationIndex],\n selectionDetails: null\n });\n };\n\n handleHover = event => {\n const { classes } = this.props;\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach(elem => elem.classList.add(classes.hover));\n labelElem.classList.add(isSideLabel ? classes.sideAnnotationHover : classes.labelHover);\n };\n\n handleCancelHover = event => {\n const { classes } = this.props;\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach(elem => elem.classList.remove(classes.hover));\n labelElem.classList.remove(isSideLabel ? classes.sideAnnotationHover : classes.labelHover);\n };\n\n handleClose = event => {\n const { classes } = this.props;\n const { selectedElems, labelElem } = this.state;\n\n if (selectedElems.length && !selectedElems[0].hasAttribute('data-id')) {\n removeElemsWrapping(selectedElems, this.textRef);\n }\n\n if (labelElem) {\n labelElem.classList.remove(classes.highlight);\n }\n\n this.setState({\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotationIndex: null,\n annotation: null\n });\n\n clearSelection();\n };\n\n handleSelection = event => {\n const selection = window.getSelection();\n\n // prevent unwanted selections\n if (event.detail > 2) {\n clearSelection();\n return;\n }\n\n if (selection && selection.rangeCount > 0) {\n const selectedRange = selection.getRangeAt(0);\n const selectedText = selectedRange.toString();\n const isSelectionInside = this.textRef.contains(selectedRange.commonAncestorContainer);\n\n if (!selection.isCollapsed && selectedText !== '' && isSelectionInside) {\n const selectionDetails = getRangeDetails(selectedRange, this.textRef);\n const selectedElems = wrapRange(selectedRange);\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: true,\n selectedElems,\n selectionDetails\n });\n }\n }\n };\n\n deleteAnnotation = () => {\n const { annotations, onChange } = this.props;\n const { selectedElems, labelElem, annotationIndex, annotation } = this.state;\n const parentRef = isSideLabel(annotation.label) ? this.labelsRef : selectedElems[0];\n\n parentRef.removeChild(labelElem);\n removeElemsWrapping(selectedElems, this.textRef);\n annotations.splice(annotationIndex, 1);\n\n onChange(annotations);\n this.handleClose();\n };\n\n createDOMAnnotation = (elems, annotation) => {\n const { classes, disabled } = this.props;\n const { id, label, type } = annotation;\n\n (elems || []).forEach(elem => {\n elem.dataset.id = id;\n elem.className = classNames(classes.annotation, type);\n elem.onclick = !disabled && this.handleClick;\n elem.onmouseover = this.handleHover;\n elem.onmouseout = this.handleCancelHover;\n });\n\n const firstSpan = elems && elems[0] || {};\n const labelElem = document.createElement('SPAN');\n\n labelElem.dataset.annId = id;\n labelElem.innerHTML = label;\n labelElem.onclick = !disabled && this.handleClick;\n labelElem.onmouseover = this.handleHover;\n labelElem.onmouseout = this.handleCancelHover;\n\n if (isSideLabel(label)) {\n const spanOffset = firstSpan.offsetTop ? firstSpan.offsetTop : firstSpan.offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop;\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n labelElem.dataset.freeform = true;\n labelElem.className = classNames(classes.sideAnnotation, type);\n labelElem.style.top = `${top}px`;\n labelElem.style.left = `${left}px`;\n\n this.labelsRef.appendChild(labelElem);\n } else {\n labelElem.className = classNames(classes.annotationLabel, type);\n firstSpan.appendChild(labelElem);\n }\n };\n\n createNewAnnotation = (label, type) => {\n const { selectedElems, selectionDetails } = this.state;\n const annotation = {\n id: [selectionDetails.start, selectionDetails.end, new Date().getTime()].join('-'),\n label,\n type,\n ...selectionDetails\n };\n\n this.createDOMAnnotation(selectedElems, annotation);\n\n return annotation;\n };\n\n handleMenuClick = newAnnotation => {\n const { annotations, onChange } = this.props;\n const { annotation, annotationIndex } = this.state;\n const { type, text: label } = newAnnotation;\n\n if (annotation) {\n const updatedAnnotation = { ...annotation, label, type };\n const { type: oldType, label: oldLabel } = annotation;\n\n this.updateLabel(oldLabel, updatedAnnotation, type !== oldType && oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n } else {\n const newAnnotation = this.createNewAnnotation(label, type);\n\n annotations.push(newAnnotation);\n }\n\n onChange(annotations);\n this.handleClose();\n };\n\n editAnnotation = () => {\n this.setState({\n openedMenu: false,\n openedEditor: true\n });\n };\n\n addAnnotation = type => {\n const { annotations, onChange } = this.props;\n const annotation = this.createNewAnnotation('', type);\n const labelElem = getLabelElement(annotation.id);\n\n annotations.push(annotation);\n\n this.setState({\n openedMenu: false,\n openedEditor: true,\n annotationIndex: annotations.length - 1,\n annotation,\n labelElem\n });\n\n onChange(annotations);\n };\n\n updateLabel = (oldLabel, annotation, oldType) => {\n const { selectedElems, labelElem } = this.state;\n const { label, type } = annotation;\n\n if (isSideLabel(label) && isSideLabel(oldLabel) || !isSideLabel(label) && !isSideLabel(oldLabel)) {\n labelElem.innerHTML = label;\n\n if (oldType) {\n labelElem.classList.remove(oldType);\n labelElem.classList.add(type);\n\n selectedElems.forEach(elem => {\n elem.classList.remove(oldType);\n elem.classList.add(type);\n });\n }\n } else if (isSideLabel(label) && !isSideLabel(oldLabel)) {\n selectedElems[0].removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n } else if (!isSideLabel(label) && isSideLabel(oldLabel)) {\n this.labelsRef.removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n }\n };\n\n changeAnnotationType = (newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex, selectedElems } = this.state;\n const { type: oldType, label: oldLabel } = annotations[annotationIndex];\n const type = oldType === 'positive' ? 'negative' : 'positive';\n const updatedAnnotation = { ...annotations[annotationIndex], type, label: newLabel };\n\n selectedElems.forEach(span => {\n span.classList.remove(oldType);\n span.classList.add(type);\n });\n\n this.updateLabel(oldLabel, updatedAnnotation, oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n this.handleClose();\n };\n\n updateAnnotation = (oldLabel, newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex } = this.state;\n const updatedAnnotation = { ...annotations[annotationIndex], label: newLabel };\n\n this.updateLabel(oldLabel, updatedAnnotation);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n };\n\n componentWillUnmount() {\n this.textRef.removeEventListener('scroll', this.adjustAnnotationsPosition);\n };\n\n render() {\n const {\n classes,\n comment,\n customKeys,\n disabled,\n disabledMath,\n keypadMode,\n height,\n width,\n maxHeight,\n onCommentChange,\n predefinedAnnotations,\n text\n } = this.props;\n const { anchorEl, annotation, openedMenu, openedEditor, selectionDetails } = this.state;\n const anchorOffset = anchorEl && (anchorEl.offsetTop ? anchorEl.offsetTop : anchorEl.offsetParent.offsetTop);\n const topOffset = this.textRef && anchorOffset ? (anchorOffset - this.textRef.scrollTop - 8) : 0;\n\n return (\n <div>\n <div className={classes.wrapper}>\n <div\n className={classes.textContainer}\n style={{ width: width - 34, minHeight: height, maxHeight: maxHeight }}\n ref={r => (this.textRef = r)}\n onMouseDown={!disabled ? clearSelection : () => {}}\n onMouseUp={!disabled ? this.handleSelection : () => {}}\n dangerouslySetInnerHTML={{ __html: text }}\n />\n <div\n className={classes.labelsContainer}\n ref={r => (this.labelsRef = r)}\n />\n </div>\n\n <InputContainer label={'Comment'} className={classes.commentContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={comment|| ''}\n onChange={onCommentChange}\n width={width && (width + 104).toString()}\n disabled={disabled}\n pluginProps={{\n math: {\n disabled: disabledMath,\n customKeys: customKeys,\n keypadMode: keypadMode,\n controlledKeypadMode: false\n },\n video: {\n disabled: true\n },\n audio: {\n disabled: true\n }\n }}\n />\n </InputContainer>\n\n <AnnotationMenu\n anchorEl={anchorEl}\n open={openedMenu && !disabled}\n annotations={predefinedAnnotations}\n isNewAnnotation={!!selectionDetails}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onEdit={this.editAnnotation}\n onWrite={this.addAnnotation}\n onAnnotate={this.handleMenuClick}\n />\n\n <FreeformEditor\n anchorEl={this.textRef}\n open={openedEditor && !disabled}\n offset={topOffset}\n value={annotation && annotation.label || ''}\n type={annotation && annotation.type}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onSave={this.updateAnnotation}\n onTypeChange={this.changeAnnotationType}\n />\n </div>\n );\n }\n};\n\nexport default withStyles(style)(AnnotationEditor);\n"],"file":"annotation-editor.js"}
1
+ {"version":3,"sources":["../../src/annotation/annotation-editor.jsx"],"names":["style","textContainer","padding","backgroundColor","border","borderRadius","overflowY","lineHeight","whiteSpace","overflowWrap","margin","userSelect","labelsContainer","width","wrapper","position","overflowX","display","commentContainer","paddingTop","marginBottom","marginTop","annotation","cursor","annotationLabel","top","left","fontSize","fontStyle","fontWeight","color","labelHover","zIndex","highlight","hover","sideAnnotationHover","borderRightColor","sideAnnotation","marginLeft","wordBreak","right","content","height","pointerEvents","borderWidth","AnnotationEditor","props","textRef","labelsRef","offsetLeft","offsetWidth","Array","from","children","forEach","label","spans","dataset","annId","spanOffset","offsetTop","offsetParent","scrollTop","event","annotations","classes","selectionDetails","state","target","id","annotationId","selectedElems","labelElem","annotationIndex","findIndex","isSideLabel","hasAttribute","classList","add","setState","anchorEl","openedMenu","openedEditor","elem","remove","length","selection","window","getSelection","detail","rangeCount","selectedRange","getRangeAt","selectedText","toString","isSelectionInside","contains","commonAncestorContainer","isCollapsed","onChange","parentRef","removeChild","splice","handleClose","elems","disabled","type","className","onclick","handleClick","onmouseover","handleHover","onmouseout","handleCancelHover","firstSpan","document","createElement","innerHTML","freeform","appendChild","start","end","Date","getTime","join","createDOMAnnotation","newAnnotation","text","updatedAnnotation","oldType","oldLabel","updateLabel","createNewAnnotation","push","newLabel","span","domStart","domEnd","range","createRange","setStart","node","offset","setEnd","adjustAnnotationsPosition","addEventListener","removeEventListener","comment","customKeys","disabledMath","keypadMode","maxHeight","onCommentChange","predefinedAnnotations","anchorOffset","topOffset","minHeight","r","clearSelection","handleSelection","__html","prompt","math","controlledKeypadMode","video","audio","deleteAnnotation","editAnnotation","addAnnotation","handleMenuClick","updateAnnotation","changeAnnotationType","React","Component","PropTypes","string","array","func","isRequired","number","bool","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport {\n clearSelection,\n isSideLabel,\n getAnnotationElements,\n getDOMNodes,\n getLabelElement,\n getRangeDetails,\n removeElemsWrapping,\n wrapRange\n} from './annotation-utils';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport FreeformEditor from './freeform-editor';\nimport AnnotationMenu from './annotation-menu';\n\nconst style = {\n textContainer: {\n padding: '10px 120px 10px 16px',\n backgroundColor: 'rgba(0, 0, 0, 0.06)',\n border: '1px solid #ccc',\n borderRadius: '4px',\n overflowY: 'scroll',\n lineHeight: '36px',\n whiteSpace: 'pre-wrap',\n overflowWrap: 'break-word',\n '& p': {\n margin: 0\n },\n '& span[data-latex]': {\n userSelect: 'none',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none'\n }\n },\n labelsContainer: {\n width: '230px'\n },\n wrapper: {\n position: 'relative',\n overflowX: 'hidden',\n display: 'flex'\n },\n commentContainer: {\n paddingTop: 16,\n marginBottom: 16,\n marginTop: 16,\n width: '100%'\n },\n annotation: {\n position: 'relative',\n cursor: 'pointer',\n\n '&.positive': {\n backgroundColor: 'rgb(51, 255, 51, 0.5)',\n },\n\n '&.negative': {\n backgroundColor: 'rgba(255, 102, 204, 0.4)',\n }\n },\n annotationLabel: {\n backgroundColor: 'rgb(242, 242, 242)',\n padding: '2px',\n position: 'absolute',\n userSelect: 'none',\n whiteSpace: 'nowrap',\n top: '-10px',\n left: '-2px',\n fontSize: '12px',\n fontStyle: 'normal',\n fontWeight: 'normal',\n lineHeight: '6px',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n\n '&.positive': {\n color: 'rgb(0, 128, 0)',\n },\n\n '&.negative': {\n color: 'rgb(204, 0, 136)',\n }\n },\n labelHover: {\n zIndex: 20,\n\n '&.positive': {\n color: 'rgb(0, 77, 0)',\n },\n\n '&.negative': {\n color: 'rgb(153, 0, 102)',\n }\n },\n highlight: {\n zIndex: 10\n },\n hover: {\n zIndex: 20,\n\n '&.positive': {\n backgroundColor: 'rgb(51, 255, 51, 0.7)',\n },\n\n '&.negative': {\n backgroundColor: 'rgba(255, 102, 204, 0.55)',\n }\n },\n sideAnnotationHover: {\n zIndex: 20,\n\n '&.negative': {\n backgroundColor: 'rgb(255, 179, 230) !important',\n '&:before': {\n borderRightColor: 'rgb(255, 179, 230) !important'\n }\n },\n\n '&.positive': {\n backgroundColor: 'rgb(128, 255, 128) !important',\n '&:before': {\n borderRightColor: 'rgb(153, 255, 153) !important'\n }\n }\n },\n sideAnnotation: {\n position: 'absolute',\n padding: '4px',\n borderRadius: '4px',\n marginLeft: '8px',\n width: '180px',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n border: '2px solid #ffffff',\n fontSize: '14px',\n fontStyle: 'normal',\n fontWeight: 'normal',\n\n '&:before': {\n position: 'absolute',\n right: '100%',\n top: '5px',\n border: 'solid transparent',\n content: '\"\"',\n height: 0,\n width: 0,\n pointerEvents: 'none',\n borderWidth: '7px',\n },\n\n '&.negative': {\n backgroundColor: 'rgb(255, 204, 238)',\n '&:before': {\n borderRightColor: 'rgb(255, 204, 238)'\n }\n },\n\n '&.positive': {\n backgroundColor: 'rgb(153, 255, 153)',\n '&:before': {\n borderRightColor: 'rgb(153, 255, 153)'\n }\n }\n },\n};\n\nclass AnnotationEditor extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n comment: PropTypes.string,\n annotations: PropTypes.array,\n predefinedAnnotations: PropTypes.array,\n onChange: PropTypes.func.isRequired,\n onCommentChange: PropTypes.func.isRequired,\n width: PropTypes.number,\n height: PropTypes.number,\n maxHeight: PropTypes.string,\n disabled: PropTypes.bool,\n disabledMath: PropTypes.bool,\n customKeys: PropTypes.array,\n keypadMode: PropTypes.string,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotation: null,\n annotationIndex: null\n };\n };\n\n componentDidMount() {\n const { annotations, text } = this.props;\n\n if (text) {\n annotations.forEach(annotation => {\n const [ domStart, domEnd ] = getDOMNodes(annotation.start, annotation.end, this.textRef);\n\n if (domStart && domEnd) {\n const range = document.createRange();\n\n range.setStart(domStart.node, domStart.offset);\n range.setEnd(domEnd.node, domEnd.offset);\n\n const spans = wrapRange(range);\n\n this.createDOMAnnotation(spans, annotation);\n }\n });\n }\n\n if (this.textRef) {\n this.adjustAnnotationsPosition();\n this.textRef.addEventListener('scroll', this.adjustAnnotationsPosition);\n }\n };\n\n adjustAnnotationsPosition = () => {\n if (this.textRef && this.labelsRef) {\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n Array.from(this.labelsRef.children).forEach(label => {\n const spans = getAnnotationElements(label.dataset.annId);\n const spanOffset = spans[0].offsetTop ? spans[0].offsetTop : spans[0].offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop - 6;\n\n label.style.top = `${top}px`;\n label.style.left = `${left}px`;\n });\n }\n };\n\n handleClick = event => {\n const { annotations, classes } = this.props;\n const { selectionDetails } = this.state;\n\n if (selectionDetails) {\n // new selection was made inside another annotation and should not update that annotation\n return;\n }\n\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const annotationIndex = annotations.findIndex(annotation => annotation.id === annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n if (isSideLabel) {\n labelElem.classList.add(classes.highlight);\n }\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: !!id || !!annId && !isSideLabel, // true if the annotation or the label was clicked\n openedEditor: !!annId && isSideLabel, // true if the side label was clicked\n selectedElems,\n labelElem,\n annotationIndex,\n annotation: annotations[annotationIndex],\n selectionDetails: null\n });\n };\n\n handleHover = event => {\n const { classes } = this.props;\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach(elem => elem.classList.add(classes.hover));\n labelElem.classList.add(isSideLabel ? classes.sideAnnotationHover : classes.labelHover);\n };\n\n handleCancelHover = event => {\n const { classes } = this.props;\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach(elem => elem.classList.remove(classes.hover));\n labelElem.classList.remove(isSideLabel ? classes.sideAnnotationHover : classes.labelHover);\n };\n\n handleClose = event => {\n const { classes } = this.props;\n const { selectedElems, labelElem } = this.state;\n\n if (selectedElems.length && !selectedElems[0].hasAttribute('data-id')) {\n removeElemsWrapping(selectedElems, this.textRef);\n }\n\n if (labelElem) {\n labelElem.classList.remove(classes.highlight);\n }\n\n this.setState({\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotationIndex: null,\n annotation: null\n });\n\n clearSelection();\n };\n\n handleSelection = event => {\n const selection = window.getSelection();\n\n // prevent unwanted selections\n if (event.detail > 2) {\n clearSelection();\n return;\n }\n\n if (selection && selection.rangeCount > 0) {\n const selectedRange = selection.getRangeAt(0);\n const selectedText = selectedRange.toString();\n const isSelectionInside = this.textRef.contains(selectedRange.commonAncestorContainer);\n\n if (!selection.isCollapsed && selectedText !== '' && isSelectionInside) {\n const selectionDetails = getRangeDetails(selectedRange, this.textRef);\n const selectedElems = wrapRange(selectedRange);\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: true,\n selectedElems,\n selectionDetails\n });\n }\n }\n };\n\n deleteAnnotation = () => {\n const { annotations, onChange } = this.props;\n const { selectedElems, labelElem, annotationIndex, annotation } = this.state;\n const parentRef = isSideLabel(annotation.label) ? this.labelsRef : selectedElems[0];\n\n parentRef.removeChild(labelElem);\n removeElemsWrapping(selectedElems, this.textRef);\n annotations.splice(annotationIndex, 1);\n\n onChange(annotations);\n this.handleClose();\n };\n\n createDOMAnnotation = (elems, annotation) => {\n const { classes, disabled } = this.props;\n const { id, label, type } = annotation;\n\n (elems || []).forEach(elem => {\n elem.dataset.id = id;\n elem.className = classNames(classes.annotation, type);\n elem.onclick = !disabled && this.handleClick;\n elem.onmouseover = this.handleHover;\n elem.onmouseout = this.handleCancelHover;\n });\n\n const firstSpan = elems && elems[0] || {};\n const labelElem = document.createElement('SPAN');\n\n labelElem.dataset.annId = id;\n labelElem.innerHTML = label;\n labelElem.onclick = !disabled && this.handleClick;\n labelElem.onmouseover = this.handleHover;\n labelElem.onmouseout = this.handleCancelHover;\n\n if (isSideLabel(label)) {\n const spanOffset = firstSpan.offsetTop ? firstSpan.offsetTop : firstSpan.offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop;\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n labelElem.dataset.freeform = true;\n labelElem.className = classNames(classes.sideAnnotation, type);\n labelElem.style.top = `${top}px`;\n labelElem.style.left = `${left}px`;\n\n this.labelsRef.appendChild(labelElem);\n } else {\n labelElem.className = classNames(classes.annotationLabel, type);\n firstSpan.appendChild(labelElem);\n }\n };\n\n createNewAnnotation = (label, type) => {\n const { selectedElems, selectionDetails } = this.state;\n const annotation = {\n id: [selectionDetails.start, selectionDetails.end, new Date().getTime()].join('-'),\n label,\n type,\n ...selectionDetails\n };\n\n this.createDOMAnnotation(selectedElems, annotation);\n\n return annotation;\n };\n\n handleMenuClick = newAnnotation => {\n const { annotations, onChange } = this.props;\n const { annotation, annotationIndex } = this.state;\n const { type, text: label } = newAnnotation;\n\n if (annotation) {\n const updatedAnnotation = { ...annotation, label, type };\n const { type: oldType, label: oldLabel } = annotation;\n\n this.updateLabel(oldLabel, updatedAnnotation, type !== oldType && oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n } else {\n const newAnnotation = this.createNewAnnotation(label, type);\n\n annotations.push(newAnnotation);\n }\n\n onChange(annotations);\n this.handleClose();\n };\n\n editAnnotation = () => {\n this.setState({\n openedMenu: false,\n openedEditor: true\n });\n };\n\n addAnnotation = type => {\n const { annotations, onChange } = this.props;\n const annotation = this.createNewAnnotation('', type);\n const labelElem = getLabelElement(annotation.id);\n\n annotations.push(annotation);\n\n this.setState({\n openedMenu: false,\n openedEditor: true,\n annotationIndex: annotations.length - 1,\n annotation,\n labelElem\n });\n\n onChange(annotations);\n };\n\n updateLabel = (oldLabel, annotation, oldType) => {\n const { selectedElems, labelElem } = this.state;\n const { label, type } = annotation;\n\n if (isSideLabel(label) && isSideLabel(oldLabel) || !isSideLabel(label) && !isSideLabel(oldLabel)) {\n labelElem.innerHTML = label;\n\n if (oldType) {\n labelElem.classList.remove(oldType);\n labelElem.classList.add(type);\n\n selectedElems.forEach(elem => {\n elem.classList.remove(oldType);\n elem.classList.add(type);\n });\n }\n } else if (isSideLabel(label) && !isSideLabel(oldLabel)) {\n selectedElems[0].removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n } else if (!isSideLabel(label) && isSideLabel(oldLabel)) {\n this.labelsRef.removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n }\n };\n\n changeAnnotationType = (newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex, selectedElems } = this.state;\n const { type: oldType, label: oldLabel } = annotations[annotationIndex];\n const type = oldType === 'positive' ? 'negative' : 'positive';\n const updatedAnnotation = { ...annotations[annotationIndex], type, label: newLabel };\n\n selectedElems.forEach(span => {\n span.classList.remove(oldType);\n span.classList.add(type);\n });\n\n this.updateLabel(oldLabel, updatedAnnotation, oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n this.handleClose();\n };\n\n updateAnnotation = (oldLabel, newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex } = this.state;\n const updatedAnnotation = { ...annotations[annotationIndex], label: newLabel };\n\n this.updateLabel(oldLabel, updatedAnnotation);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n };\n\n componentWillUnmount() {\n this.textRef.removeEventListener('scroll', this.adjustAnnotationsPosition);\n };\n\n render() {\n const {\n classes,\n comment,\n customKeys,\n disabled,\n disabledMath,\n keypadMode,\n height,\n width,\n maxHeight,\n onCommentChange,\n predefinedAnnotations,\n text\n } = this.props;\n const { anchorEl, annotation, openedMenu, openedEditor, selectionDetails } = this.state;\n const anchorOffset = anchorEl && (anchorEl.offsetTop ? anchorEl.offsetTop : anchorEl.offsetParent.offsetTop);\n const topOffset = this.textRef && anchorOffset ? (anchorOffset - this.textRef.scrollTop - 8) : 0;\n\n return (\n <div>\n <div className={classes.wrapper}>\n <div\n className={classes.textContainer}\n style={{ width: width - 34, minHeight: height, maxHeight: maxHeight }}\n ref={r => (this.textRef = r)}\n onMouseDown={!disabled ? clearSelection : () => {}}\n onMouseUp={!disabled ? this.handleSelection : () => {}}\n dangerouslySetInnerHTML={{ __html: text }}\n />\n <div\n className={classes.labelsContainer}\n ref={r => (this.labelsRef = r)}\n />\n </div>\n\n <InputContainer label={'Comment'} className={classes.commentContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={comment|| ''}\n onChange={onCommentChange}\n width={width && (width + 104).toString()}\n disabled={disabled}\n pluginProps={{\n math: {\n disabled: disabledMath,\n customKeys: customKeys,\n keypadMode: keypadMode,\n controlledKeypadMode: false\n },\n video: {\n disabled: true\n },\n audio: {\n disabled: true\n }\n }}\n />\n </InputContainer>\n\n <AnnotationMenu\n anchorEl={anchorEl}\n open={openedMenu && !disabled}\n annotations={predefinedAnnotations}\n isNewAnnotation={!!selectionDetails}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onEdit={this.editAnnotation}\n onWrite={this.addAnnotation}\n onAnnotate={this.handleMenuClick}\n />\n\n <FreeformEditor\n anchorEl={this.textRef}\n open={openedEditor && !disabled}\n offset={topOffset}\n value={annotation && annotation.label || ''}\n type={annotation && annotation.type}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onSave={this.updateAnnotation}\n onTypeChange={this.changeAnnotationType}\n />\n </div>\n );\n }\n};\n\nexport default withStyles(style)(AnnotationEditor);\n"],"file":"annotation-editor.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/extended-text-entry",
3
- "version": "6.8.4-annotations.0",
3
+ "version": "6.8.4-annotations.1",
4
4
  "description": "",
5
5
  "repository": "pie-framework/pie-elements",
6
6
  "publishConfig": {