@pie-element/number-line 9.6.7-next.12 → 9.6.7-next.15

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.
@@ -295,6 +295,7 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
295
295
  title = graph.title,
296
296
  fraction = graph.fraction;
297
297
  var width = this.getSize('width', minWidth, maxWidth, 600);
298
+ var showTeacherInstructions = teacherInstructions && ((0, _renderUi.hasText)(teacherInstructions) || (0, _renderUi.hasMedia)(teacherInstructions));
298
299
  var graphProps = {
299
300
  disabled: disabled,
300
301
  domain: domain,
@@ -369,7 +370,7 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
369
370
  return /*#__PURE__*/_react["default"].createElement(_renderUi.UiLayout, {
370
371
  extraCSSRules: extraCSSRules,
371
372
  className: containerNames
372
- }, teacherInstructions && (0, _renderUi.hasText)(teacherInstructions) && /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
373
+ }, showTeacherInstructions && /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
373
374
  labels: {
374
375
  hidden: 'Show Teacher Instructions',
375
376
  visible: 'Hide Teacher Instructions'
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/number-line/index.jsx"],"names":["translator","Translator","styles","theme","mainContainer","color","text","backgroundColor","background","graphTitle","textAlign","pointerEvents","userSelect","numberLine","boxSizing","toggle","marginBottom","black_on_rose","white_on_black","prompt","verticalAlign","collapsible","paddingBottom","spacing","unit","NumberLine","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","index","selected","indexOf","concat","filter","e","setState","t","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","availableTypes","toUpperCase","elementData","minor","contains","some","element","push","onAddElement","maxNumberOfPoints","length","nextProps","showCorrectAnswer","type","min","max","defaultValue","Math","onUndoElement","pop","onClearElements","classes","onDeleteElements","onMoveElement","minWidth","maxWidth","maxHeight","corrected","correct","incorrect","disabled","extraCSSRules","correctResponse","emptyAnswer","feedback","colorContrast","language","teacherInstructions","addElement","bind","elementsSelected","arrows","height","title","fraction","width","getSize","graphProps","getAnswerElements","map","out","includes","undefined","getCorrectAnswerElements","r","elements","maxPointsMessage","lng","count","deleteElements","v","d","getIcons","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","containerNames","numberLineContainerNames","hidden","visible","elementTypeSelected","clearAll","undo","toggleElement","deselectElements","__html","React","Component","PropTypes","func","isRequired","object","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Toggle from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isEqual from 'lodash/isEqual';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nimport { Collapsible, color, hasText, PreviewPrompt, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Feedback from './feedback';\nimport Graph from './graph';\nimport PropTypes from 'prop-types';\nimport PointChooser from './point-chooser';\nimport { buildElementModel } from './graph/elements/builder';\n\nconst { translator } = Translator;\n\nexport { Graph };\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n graphTitle: {\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n numberLine: {\n boxSizing: 'unset',\n },\n toggle: {\n marginBottom: '16px',\n },\n black_on_rose: {\n backgroundColor: 'mistyrose',\n },\n white_on_black: {\n backgroundColor: 'black',\n '--correct-answer-toggle-label-color': 'white',\n '--tick-color': 'white',\n '--line-stroke': 'white',\n '--arrow-color': 'white',\n '--point-stroke': 'white',\n '--point-fill': 'black',\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: '16px',\n },\n collapsible: {\n paddingBottom: theme.spacing.unit * 2,\n },\n});\n\nexport class NumberLine extends React.Component {\n static propTypes = {\n onMoveElement: PropTypes.func.isRequired,\n onDeleteElements: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n answer: PropTypes.array,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props, context) {\n super(props, context);\n\n let initialType = props.model.graph ? props.model.graph.initialType : null;\n initialType = initialType ? initialType.toLowerCase() : PointChooser.DEFAULT_TYPE;\n\n this.state = {\n selectedElements: [],\n elementType: initialType,\n answers: props.answer,\n };\n }\n\n toggleElement(index) {\n let selected = [];\n if (this.state.selectedElements.indexOf(index) === -1) {\n selected = this.state.selectedElements.concat([index]);\n } else {\n selected = this.state.selectedElements.filter((e) => e !== index);\n }\n this.setState({ selectedElements: selected });\n }\n\n elementTypeSelected(t) {\n this.setState({ elementType: t });\n }\n\n addElement(x) {\n if (this.hasMaxNoOfPoints()) {\n this.setState({ showMaxPointsWarning: true });\n setTimeout(() => {\n this.setState({ showMaxPointsWarning: false });\n }, 2000);\n return;\n }\n\n const { ticks, domain, availableTypes } = this.props.model.graph;\n\n // check if the element type is enabled in availableTypes\n if (availableTypes && !availableTypes[this.state.elementType.toUpperCase()]) {\n return;\n }\n\n let elementData = buildElementModel(x, this.state.elementType, domain, ticks.minor);\n\n if (elementData) {\n const { answers } = this.state;\n\n const contains = answers.some((element) => {\n return isEqual(element, elementData);\n });\n\n if (!contains) {\n answers.push(elementData);\n this.setState({ answers });\n this.props.onAddElement(elementData);\n }\n }\n }\n\n hasMaxNoOfPoints() {\n let {\n answer,\n model: {\n graph: { maxNumberOfPoints },\n },\n } = this.props;\n\n return isNumber(maxNumberOfPoints) && maxNumberOfPoints > 0 && (answer || []).length >= maxNumberOfPoints;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { answer } = nextProps;\n\n if (!isEqual(this.state.answers, answer)) {\n this.setState({ showCorrectAnswer: false, answers: answer });\n }\n }\n\n deselectElements() {\n this.setState({ selectedElements: [] });\n }\n\n getSize(type, min, max, defaultValue) {\n const {\n model: { graph },\n } = this.props;\n\n if (graph && graph[type]) {\n return Math.max(min, Math.min(max, graph[type]));\n } else {\n return defaultValue;\n }\n }\n\n undo() {\n const { answers } = this.state;\n const { onUndoElement } = this.props;\n\n answers.pop();\n this.setState({ answers });\n onUndoElement();\n }\n\n clearAll() {\n const { onClearElements } = this.props;\n\n this.setState({ answers: [] });\n onClearElements();\n }\n\n render() {\n let { model, classes, onDeleteElements, onMoveElement, minWidth = 400, maxWidth = 1600, maxHeight } = this.props;\n let { showCorrectAnswer, answers, selectedElements, showMaxPointsWarning, elementType } = this.state;\n let {\n corrected = { correct: [], incorrect: [] },\n disabled,\n extraCSSRules,\n graph,\n correctResponse,\n prompt,\n emptyAnswer,\n feedback,\n colorContrast,\n language,\n teacherInstructions\n } = model;\n let addElement = this.addElement.bind(this);\n let elementsSelected = !disabled && selectedElements && selectedElements.length > 0;\n const { ticks, domain, arrows, maxNumberOfPoints, height = 100, availableTypes, title, fraction } = graph;\n const width = this.getSize('width', minWidth, maxWidth, 600);\n\n const graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height: (height > maxHeight ? maxHeight : height) || 100,\n arrows,\n fraction,\n };\n\n let getAnswerElements = () => {\n return (answers || []).map((e, index) => {\n let out = cloneDeep(e);\n out.selected = selectedElements.indexOf(index) !== -1;\n out.correct = corrected.correct.includes(index)\n ? true\n : corrected.incorrect.includes(index)\n ? false\n : undefined;\n return out;\n });\n };\n\n let getCorrectAnswerElements = () => {\n return (correctResponse || []).map((r) => {\n r.correct = true;\n return r;\n });\n };\n\n let elements = showCorrectAnswer ? getCorrectAnswerElements() : getAnswerElements();\n\n let maxPointsMessage = () =>\n maxNumberOfPoints == 1\n ? translator.t('numberLine.addElementLimit_one', { lng: language, count: 1 })\n : translator.t('numberLine.addElementLimit_other', { lng: language, count: maxNumberOfPoints });\n\n let deleteElements = () => {\n onDeleteElements(selectedElements);\n\n answers = answers.filter((v, index) => {\n return !selectedElements.some((d) => d === index);\n });\n\n this.setState({ selectedElements: [], answers });\n };\n\n let getIcons = () => {\n if (availableTypes) {\n return Object.keys(availableTypes)\n .filter((k) => availableTypes[k])\n .map((k) => k.toLowerCase());\n }\n };\n\n let onShowCorrectAnswer = (show) => {\n this.setState({ showCorrectAnswer: show });\n };\n\n let adjustedWidth = graphProps.width - 20;\n\n const containerNames = classNames(classes.mainContainer, classes[colorContrast]);\n const numberLineContainerNames = classNames(classes.numberLine, classes.mainContainer, classes[colorContrast]);\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={containerNames}>\n {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={teacherInstructions}/>\n </Collapsible>\n )}\n\n {prompt && (\n <div className={classes.prompt}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n <div className={numberLineContainerNames} style={{ width }}>\n <div style={{ width: adjustedWidth }} className={classes.toggle}>\n <Toggle\n show={isArray(correctResponse) && correctResponse.length && !emptyAnswer}\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n language={language}\n />\n </div>\n\n {!disabled && (\n <PointChooser\n elementType={elementType}\n showDeleteButton={elementsSelected}\n onDeleteClick={deleteElements}\n onElementType={this.elementTypeSelected.bind(this)}\n onClearElements={this.clearAll.bind(this)}\n onUndoElement={this.undo.bind(this)}\n icons={getIcons()}\n language={language}\n />\n )}\n\n <Graph\n {...graphProps}\n elements={elements}\n onAddElement={addElement}\n onMoveElement={onMoveElement}\n onToggleElement={this.toggleElement.bind(this)}\n onDeselectElements={this.deselectElements.bind(this)}\n debug={false}\n />\n {title && <div className={classes.graphTitle} dangerouslySetInnerHTML={{ __html: title }} />}\n\n {showMaxPointsWarning && <Feedback type=\"info\" width={adjustedWidth} message={maxPointsMessage()} />}\n {feedback && !showCorrectAnswer && <Feedback {...feedback} width={adjustedWidth} />}\n </div>\n </UiLayout>\n );\n }\n}\n\nexport default withStyles(styles)(NumberLine);\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/number-line/index.jsx"],"names":["translator","Translator","styles","theme","mainContainer","color","text","backgroundColor","background","graphTitle","textAlign","pointerEvents","userSelect","numberLine","boxSizing","toggle","marginBottom","black_on_rose","white_on_black","prompt","verticalAlign","collapsible","paddingBottom","spacing","unit","NumberLine","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","index","selected","indexOf","concat","filter","e","setState","t","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","availableTypes","toUpperCase","elementData","minor","contains","some","element","push","onAddElement","maxNumberOfPoints","length","nextProps","showCorrectAnswer","type","min","max","defaultValue","Math","onUndoElement","pop","onClearElements","classes","onDeleteElements","onMoveElement","minWidth","maxWidth","maxHeight","corrected","correct","incorrect","disabled","extraCSSRules","correctResponse","emptyAnswer","feedback","colorContrast","language","teacherInstructions","addElement","bind","elementsSelected","arrows","height","title","fraction","width","getSize","showTeacherInstructions","graphProps","getAnswerElements","map","out","includes","undefined","getCorrectAnswerElements","r","elements","maxPointsMessage","lng","count","deleteElements","v","d","getIcons","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","containerNames","numberLineContainerNames","hidden","visible","elementTypeSelected","clearAll","undo","toggleElement","deselectElements","__html","React","Component","PropTypes","func","isRequired","object","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Toggle from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isEqual from 'lodash/isEqual';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nimport { Collapsible, color, hasMedia, hasText, PreviewPrompt, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Feedback from './feedback';\nimport Graph from './graph';\nimport PropTypes from 'prop-types';\nimport PointChooser from './point-chooser';\nimport { buildElementModel } from './graph/elements/builder';\n\nconst { translator } = Translator;\n\nexport { Graph };\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n graphTitle: {\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n numberLine: {\n boxSizing: 'unset',\n },\n toggle: {\n marginBottom: '16px',\n },\n black_on_rose: {\n backgroundColor: 'mistyrose',\n },\n white_on_black: {\n backgroundColor: 'black',\n '--correct-answer-toggle-label-color': 'white',\n '--tick-color': 'white',\n '--line-stroke': 'white',\n '--arrow-color': 'white',\n '--point-stroke': 'white',\n '--point-fill': 'black',\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: '16px',\n },\n collapsible: {\n paddingBottom: theme.spacing.unit * 2,\n },\n});\n\nexport class NumberLine extends React.Component {\n static propTypes = {\n onMoveElement: PropTypes.func.isRequired,\n onDeleteElements: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n answer: PropTypes.array,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props, context) {\n super(props, context);\n\n let initialType = props.model.graph ? props.model.graph.initialType : null;\n initialType = initialType ? initialType.toLowerCase() : PointChooser.DEFAULT_TYPE;\n\n this.state = {\n selectedElements: [],\n elementType: initialType,\n answers: props.answer,\n };\n }\n\n toggleElement(index) {\n let selected = [];\n if (this.state.selectedElements.indexOf(index) === -1) {\n selected = this.state.selectedElements.concat([index]);\n } else {\n selected = this.state.selectedElements.filter((e) => e !== index);\n }\n this.setState({ selectedElements: selected });\n }\n\n elementTypeSelected(t) {\n this.setState({ elementType: t });\n }\n\n addElement(x) {\n if (this.hasMaxNoOfPoints()) {\n this.setState({ showMaxPointsWarning: true });\n setTimeout(() => {\n this.setState({ showMaxPointsWarning: false });\n }, 2000);\n return;\n }\n\n const { ticks, domain, availableTypes } = this.props.model.graph;\n\n // check if the element type is enabled in availableTypes\n if (availableTypes && !availableTypes[this.state.elementType.toUpperCase()]) {\n return;\n }\n\n let elementData = buildElementModel(x, this.state.elementType, domain, ticks.minor);\n\n if (elementData) {\n const { answers } = this.state;\n\n const contains = answers.some((element) => {\n return isEqual(element, elementData);\n });\n\n if (!contains) {\n answers.push(elementData);\n this.setState({ answers });\n this.props.onAddElement(elementData);\n }\n }\n }\n\n hasMaxNoOfPoints() {\n let {\n answer,\n model: {\n graph: { maxNumberOfPoints },\n },\n } = this.props;\n\n return isNumber(maxNumberOfPoints) && maxNumberOfPoints > 0 && (answer || []).length >= maxNumberOfPoints;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { answer } = nextProps;\n\n if (!isEqual(this.state.answers, answer)) {\n this.setState({ showCorrectAnswer: false, answers: answer });\n }\n }\n\n deselectElements() {\n this.setState({ selectedElements: [] });\n }\n\n getSize(type, min, max, defaultValue) {\n const {\n model: { graph },\n } = this.props;\n\n if (graph && graph[type]) {\n return Math.max(min, Math.min(max, graph[type]));\n } else {\n return defaultValue;\n }\n }\n\n undo() {\n const { answers } = this.state;\n const { onUndoElement } = this.props;\n\n answers.pop();\n this.setState({ answers });\n onUndoElement();\n }\n\n clearAll() {\n const { onClearElements } = this.props;\n\n this.setState({ answers: [] });\n onClearElements();\n }\n\n render() {\n let { model, classes, onDeleteElements, onMoveElement, minWidth = 400, maxWidth = 1600, maxHeight } = this.props;\n let { showCorrectAnswer, answers, selectedElements, showMaxPointsWarning, elementType } = this.state;\n let {\n corrected = { correct: [], incorrect: [] },\n disabled,\n extraCSSRules,\n graph,\n correctResponse,\n prompt,\n emptyAnswer,\n feedback,\n colorContrast,\n language,\n teacherInstructions\n } = model;\n let addElement = this.addElement.bind(this);\n let elementsSelected = !disabled && selectedElements && selectedElements.length > 0;\n const { ticks, domain, arrows, maxNumberOfPoints, height = 100, availableTypes, title, fraction } = graph;\n const width = this.getSize('width', minWidth, maxWidth, 600);\n const showTeacherInstructions = teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));\n\n const graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height: (height > maxHeight ? maxHeight : height) || 100,\n arrows,\n fraction,\n };\n\n let getAnswerElements = () => {\n return (answers || []).map((e, index) => {\n let out = cloneDeep(e);\n out.selected = selectedElements.indexOf(index) !== -1;\n out.correct = corrected.correct.includes(index)\n ? true\n : corrected.incorrect.includes(index)\n ? false\n : undefined;\n return out;\n });\n };\n\n let getCorrectAnswerElements = () => {\n return (correctResponse || []).map((r) => {\n r.correct = true;\n return r;\n });\n };\n\n let elements = showCorrectAnswer ? getCorrectAnswerElements() : getAnswerElements();\n\n let maxPointsMessage = () =>\n maxNumberOfPoints == 1\n ? translator.t('numberLine.addElementLimit_one', { lng: language, count: 1 })\n : translator.t('numberLine.addElementLimit_other', { lng: language, count: maxNumberOfPoints });\n\n let deleteElements = () => {\n onDeleteElements(selectedElements);\n\n answers = answers.filter((v, index) => {\n return !selectedElements.some((d) => d === index);\n });\n\n this.setState({ selectedElements: [], answers });\n };\n\n let getIcons = () => {\n if (availableTypes) {\n return Object.keys(availableTypes)\n .filter((k) => availableTypes[k])\n .map((k) => k.toLowerCase());\n }\n };\n\n let onShowCorrectAnswer = (show) => {\n this.setState({ showCorrectAnswer: show });\n };\n\n let adjustedWidth = graphProps.width - 20;\n\n const containerNames = classNames(classes.mainContainer, classes[colorContrast]);\n const numberLineContainerNames = classNames(classes.numberLine, classes.mainContainer, classes[colorContrast]);\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={containerNames}>\n {showTeacherInstructions && (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={teacherInstructions}/>\n </Collapsible>\n )}\n\n {prompt && (\n <div className={classes.prompt}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n <div className={numberLineContainerNames} style={{ width }}>\n <div style={{ width: adjustedWidth }} className={classes.toggle}>\n <Toggle\n show={isArray(correctResponse) && correctResponse.length && !emptyAnswer}\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n language={language}\n />\n </div>\n\n {!disabled && (\n <PointChooser\n elementType={elementType}\n showDeleteButton={elementsSelected}\n onDeleteClick={deleteElements}\n onElementType={this.elementTypeSelected.bind(this)}\n onClearElements={this.clearAll.bind(this)}\n onUndoElement={this.undo.bind(this)}\n icons={getIcons()}\n language={language}\n />\n )}\n\n <Graph\n {...graphProps}\n elements={elements}\n onAddElement={addElement}\n onMoveElement={onMoveElement}\n onToggleElement={this.toggleElement.bind(this)}\n onDeselectElements={this.deselectElements.bind(this)}\n debug={false}\n />\n {title && <div className={classes.graphTitle} dangerouslySetInnerHTML={{ __html: title }} />}\n\n {showMaxPointsWarning && <Feedback type=\"info\" width={adjustedWidth} message={maxPointsMessage()} />}\n {feedback && !showCorrectAnswer && <Feedback {...feedback} width={adjustedWidth} />}\n </div>\n </UiLayout>\n );\n }\n}\n\nexport default withStyles(styles)(NumberLine);\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/number-line",
3
- "version": "9.6.7-next.12+407ed842a",
3
+ "version": "9.6.7-next.15+bfbc9385c",
4
4
  "repository": "pie-framework/pie-elements",
5
5
  "description": "",
6
6
  "publishConfig": {
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "author": "pie framework developers",
25
25
  "license": "ISC",
26
- "gitHead": "407ed842aa83643f461a691662b6ae7ca7d9ed7e",
26
+ "gitHead": "bfbc9385c35b0ff369561f5866aaf4cdb19a8723",
27
27
  "scripts": {
28
28
  "postpublish": "../../scripts/postpublish"
29
29
  },