@pie-element/passage 1.10.3-next.4 → 1.10.3-next.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/stimulus-tabs.js +51 -1
- package/lib/stimulus-tabs.js.map +1 -1
- package/package.json +3 -3
package/lib/stimulus-tabs.js
CHANGED
|
@@ -122,6 +122,48 @@ var StimulusTabs = /*#__PURE__*/function (_React$Component) {
|
|
|
122
122
|
window.dispatchEvent(tabChangeEvent);
|
|
123
123
|
});
|
|
124
124
|
});
|
|
125
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (event, currentTabId) {
|
|
126
|
+
var key = event.key;
|
|
127
|
+
var tabs = _this.props.tabs;
|
|
128
|
+
var newTabIndex = -1;
|
|
129
|
+
var currentIndex = tabs.findIndex(function (tab) {
|
|
130
|
+
return tab.id === currentTabId;
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
switch (key) {
|
|
134
|
+
case 'ArrowRight':
|
|
135
|
+
case 'ArrowDown':
|
|
136
|
+
newTabIndex = (currentIndex + 1) % tabs.length;
|
|
137
|
+
break;
|
|
138
|
+
|
|
139
|
+
case 'ArrowLeft':
|
|
140
|
+
case 'ArrowUp':
|
|
141
|
+
newTabIndex = (currentIndex - 1 + tabs.length) % tabs.length;
|
|
142
|
+
break;
|
|
143
|
+
|
|
144
|
+
case 'Home':
|
|
145
|
+
newTabIndex = 0;
|
|
146
|
+
break;
|
|
147
|
+
|
|
148
|
+
case 'End':
|
|
149
|
+
newTabIndex = tabs.length - 1;
|
|
150
|
+
break;
|
|
151
|
+
|
|
152
|
+
case 'Enter':
|
|
153
|
+
case ' ':
|
|
154
|
+
newTabIndex = currentIndex;
|
|
155
|
+
break;
|
|
156
|
+
|
|
157
|
+
default:
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (newTabIndex !== -1) {
|
|
162
|
+
event.preventDefault();
|
|
163
|
+
|
|
164
|
+
_this.handleChange(event, tabs[newTabIndex].id);
|
|
165
|
+
}
|
|
166
|
+
});
|
|
125
167
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "parsedText", function (text) {
|
|
126
168
|
// fix imported audio content for Safari PD-1391
|
|
127
169
|
var div = document.createElement('div');
|
|
@@ -195,7 +237,15 @@ var StimulusTabs = /*#__PURE__*/function (_React$Component) {
|
|
|
195
237
|
__html: _this2.parsedText(tab.title)
|
|
196
238
|
}
|
|
197
239
|
})),
|
|
198
|
-
value: tab.id
|
|
240
|
+
value: tab.id,
|
|
241
|
+
tabIndex: activeTab === tab.id ? 0 : -1,
|
|
242
|
+
"aria-selected": activeTab === tab.id,
|
|
243
|
+
onFocus: function onFocus() {
|
|
244
|
+
return _this2.handleChange(null, tab.id);
|
|
245
|
+
},
|
|
246
|
+
onKeyDown: function onKeyDown(event) {
|
|
247
|
+
return _this2.handleKeyDown(event, tab.id);
|
|
248
|
+
}
|
|
199
249
|
});
|
|
200
250
|
})), tabs.map(function (tab) {
|
|
201
251
|
return activeTab === tab.id ? /*#__PURE__*/_react["default"].createElement(TabContainer, {
|
package/lib/stimulus-tabs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/stimulus-tabs.jsx"],"names":["styles","theme","root","flexGrow","backgroundColor","color","background","text","tab","fontSize","stickyTabs","paddingBottom","spacing","unit","position","top","title","textTransform","padding","borderBottom","secondary","width","marginBottom","buttonContainer","palette","common","white","TabContainer","props","multiple","children","propTypes","PropTypes","node","isRequired","bool","StimulusTabs","activeTab","event","setState","setTimeout","tabChangeEvent","CustomEvent","detail","window","dispatchEvent","div","document","createElement","innerHTML","replace","audio","querySelector","source","setAttribute","getAttribute","removeAttribute","appendChild","classes","tabs","disabledTabs","state","length","map","id","__html","parsedText","flexContainer","handleChange","whiteSpace","React","Component","object","arrayOf","shape","number","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { color, Purpose } from '@pie-lib/render-ui';\nimport classNames from 'classnames';\n\nconst styles = (theme) => ({\n root: {\n flexGrow: 1,\n backgroundColor: color.background(),\n color: color.text(),\n },\n tab: {\n fontSize: '0.8125em',\n },\n stickyTabs: {\n background: color.background(),\n paddingBottom: theme.spacing.unit * 2.5,\n position: 'sticky',\n top: 0,\n },\n title: {\n textTransform: 'uppercase',\n padding: `${theme.spacing.unit}px ${theme.spacing.unit * 3}px`,\n borderBottom: `2px solid ${color.secondary()}`,\n width: 'fit-content',\n marginBottom: theme.spacing.unit,\n },\n buttonContainer: {\n background: theme.palette.common.white,\n },\n});\n\nfunction TabContainer(props) {\n const padding = props.multiple ? '0 24px 24px 24px' : '24px';\n\n return (\n <Typography\n component=\"div\"\n style={{\n padding,\n fontSize: '0.875em',\n backgroundColor: color.background(),\n color: color.text(),\n }}\n >\n {props.children}\n </Typography>\n );\n}\n\nTabContainer.propTypes = {\n children: PropTypes.node.isRequired,\n multiple: PropTypes.bool,\n};\n\nclass StimulusTabs extends React.Component {\n state = {\n activeTab: 0,\n };\n\n handleChange = (event, activeTab) => {\n this.setState(() => ({ activeTab }));\n setTimeout(() => {\n const tabChangeEvent = new CustomEvent('pie-ui-passage-tabChanged', {\n detail: {\n tab: activeTab,\n },\n });\n\n window.dispatchEvent(tabChangeEvent);\n });\n };\n\n parsedText = (text) => {\n // fix imported audio content for Safari PD-1391\n const div = document.createElement('div');\n div.innerHTML = text.replace(/(<br\\/>\\n)/g, '<br/>');\n\n const audio = div.querySelector('audio');\n if (audio) {\n const source = document.createElement('source');\n\n source.setAttribute('type', 'audio/mp3');\n source.setAttribute('src', audio.getAttribute('src'));\n\n audio.removeAttribute('src');\n audio.appendChild(source);\n }\n\n return div.innerHTML;\n };\n\n render() {\n const { classes, tabs, disabledTabs } = this.props;\n const { activeTab } = this.state;\n\n if (tabs && tabs.length > 1) {\n return disabledTabs ? (\n <div className=\"passages\">\n {tabs.map((tab) => (\n <div key={tab.id} className={`passage-${tab.id}`}>\n <TabContainer multiple>\n <div\n className={classNames(classes.title, 'title')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }}\n />\n <Purpose purpose=\"passage-text\">\n <div className=\"text\" key={tab.id} dangerouslySetInnerHTML={{ __html: this.parsedText(tab.text) }} />\n </Purpose>\n </TabContainer>\n </div>\n ))}\n </div>\n ) : (\n <div className={classes.root}>\n <Tabs\n classes={{\n root: classes.stickyTabs,\n flexContainer: classes.buttonContainer,\n }}\n value={activeTab}\n onChange={this.handleChange}\n >\n {tabs.map((tab) => (\n <Tab\n className={classes.tab}\n key={tab.id}\n label={\n <Purpose purpose=\"passage-title\">\n <span dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }} />\n </Purpose>\n }\n value={tab.id}\n />\n ))}\n </Tabs>\n\n {tabs.map((tab) =>\n activeTab === tab.id ? (\n <TabContainer multiple key={tab.id}>\n <Purpose purpose=\"passage-text\">\n <div key={tab.id} dangerouslySetInnerHTML={{ __html: this.parsedText(tab.text) }} />\n </Purpose>\n </TabContainer>\n ) : null,\n )}\n </div>\n );\n } else if (tabs && tabs[0]) {\n return (\n <div className=\"passage\" style={{ whiteSpace: 'break-spaces' }}>\n <TabContainer>\n <div className=\"text\" dangerouslySetInnerHTML={{ __html: this.parsedText(tabs[0].text) }} />\n </TabContainer>\n </div>\n );\n }\n }\n}\n\nStimulusTabs.propTypes = {\n classes: PropTypes.object.isRequired,\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n }).isRequired,\n ).isRequired,\n disabledTabs: PropTypes.bool,\n};\n\nexport default withStyles(styles)(StimulusTabs);\n"],"file":"stimulus-tabs.js"}
|
|
1
|
+
{"version":3,"sources":["../src/stimulus-tabs.jsx"],"names":["styles","theme","root","flexGrow","backgroundColor","color","background","text","tab","fontSize","stickyTabs","paddingBottom","spacing","unit","position","top","title","textTransform","padding","borderBottom","secondary","width","marginBottom","buttonContainer","palette","common","white","TabContainer","props","multiple","children","propTypes","PropTypes","node","isRequired","bool","StimulusTabs","activeTab","event","setState","setTimeout","tabChangeEvent","CustomEvent","detail","window","dispatchEvent","currentTabId","key","tabs","newTabIndex","currentIndex","findIndex","id","length","preventDefault","handleChange","div","document","createElement","innerHTML","replace","audio","querySelector","source","setAttribute","getAttribute","removeAttribute","appendChild","classes","disabledTabs","state","map","__html","parsedText","flexContainer","handleKeyDown","whiteSpace","React","Component","object","arrayOf","shape","number","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { color, Purpose } from '@pie-lib/render-ui';\nimport classNames from 'classnames';\n\nconst styles = (theme) => ({\n root: {\n flexGrow: 1,\n backgroundColor: color.background(),\n color: color.text(),\n },\n tab: {\n fontSize: '0.8125em',\n },\n stickyTabs: {\n background: color.background(),\n paddingBottom: theme.spacing.unit * 2.5,\n position: 'sticky',\n top: 0,\n },\n title: {\n textTransform: 'uppercase',\n padding: `${theme.spacing.unit}px ${theme.spacing.unit * 3}px`,\n borderBottom: `2px solid ${color.secondary()}`,\n width: 'fit-content',\n marginBottom: theme.spacing.unit,\n },\n buttonContainer: {\n background: theme.palette.common.white,\n },\n});\n\nfunction TabContainer(props) {\n const padding = props.multiple ? '0 24px 24px 24px' : '24px';\n\n return (\n <Typography\n component=\"div\"\n style={{\n padding,\n fontSize: '0.875em',\n backgroundColor: color.background(),\n color: color.text(),\n }}\n >\n {props.children}\n </Typography>\n );\n}\n\nTabContainer.propTypes = {\n children: PropTypes.node.isRequired,\n multiple: PropTypes.bool,\n};\n\nclass StimulusTabs extends React.Component {\n state = {\n activeTab: 0,\n };\n\n handleChange = (event, activeTab) => {\n this.setState(() => ({ activeTab }));\n setTimeout(() => {\n const tabChangeEvent = new CustomEvent('pie-ui-passage-tabChanged', {\n detail: {\n tab: activeTab,\n },\n });\n\n window.dispatchEvent(tabChangeEvent);\n });\n };\n\n handleKeyDown = (event, currentTabId) => {\n const { key } = event;\n const { tabs } = this.props;\n \n let newTabIndex = -1;\n const currentIndex = tabs.findIndex((tab) => tab.id === currentTabId);\n \n switch (key) {\n case 'ArrowRight':\n case 'ArrowDown':\n newTabIndex = (currentIndex + 1) % tabs.length;\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n newTabIndex = (currentIndex - 1 + tabs.length) % tabs.length;\n break;\n case 'Home':\n newTabIndex = 0;\n break;\n case 'End':\n newTabIndex = tabs.length - 1;\n break;\n case 'Enter':\n case ' ':\n newTabIndex = currentIndex;\n break;\n default:\n break;\n }\n \n if (newTabIndex !== -1) {\n event.preventDefault();\n this.handleChange(event, tabs[newTabIndex].id);\n }\n };\n \n \n parsedText = (text) => {\n // fix imported audio content for Safari PD-1391\n const div = document.createElement('div');\n div.innerHTML = text.replace(/(<br\\/>\\n)/g, '<br/>');\n\n const audio = div.querySelector('audio');\n if (audio) {\n const source = document.createElement('source');\n\n source.setAttribute('type', 'audio/mp3');\n source.setAttribute('src', audio.getAttribute('src'));\n\n audio.removeAttribute('src');\n audio.appendChild(source);\n }\n\n return div.innerHTML;\n };\n\n render() {\n const { classes, tabs, disabledTabs } = this.props;\n const { activeTab } = this.state;\n\n if (tabs && tabs.length > 1) {\n return disabledTabs ? (\n <div className=\"passages\">\n {tabs.map((tab) => (\n <div key={tab.id} className={`passage-${tab.id}`}>\n <TabContainer multiple>\n <div\n className={classNames(classes.title, 'title')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }}\n />\n <Purpose purpose=\"passage-text\">\n <div className=\"text\" key={tab.id} dangerouslySetInnerHTML={{ __html: this.parsedText(tab.text) }} />\n </Purpose>\n </TabContainer>\n </div>\n ))}\n </div>\n ) : (\n <div className={classes.root}>\n <Tabs\n classes={{\n root: classes.stickyTabs,\n flexContainer: classes.buttonContainer,\n }}\n value={activeTab}\n onChange={this.handleChange}\n >\n {tabs.map((tab) => (\n <Tab\n className={classes.tab}\n key={tab.id}\n label={\n <Purpose purpose=\"passage-title\">\n <span dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }} />\n </Purpose>\n }\n value={tab.id}\n tabIndex={activeTab === tab.id ? 0 : -1}\n aria-selected={activeTab === tab.id}\n onFocus={() => this.handleChange(null, tab.id)}\n onKeyDown={(event) => this.handleKeyDown(event, tab.id)}\n />\n ))}\n </Tabs>\n\n {tabs.map((tab) =>\n activeTab === tab.id ? (\n <TabContainer multiple key={tab.id}>\n <Purpose purpose=\"passage-text\">\n <div key={tab.id} dangerouslySetInnerHTML={{ __html: this.parsedText(tab.text) }} />\n </Purpose>\n </TabContainer>\n ) : null,\n )}\n </div>\n );\n } else if (tabs && tabs[0]) {\n return (\n <div className=\"passage\" style={{ whiteSpace: 'break-spaces' }}>\n <TabContainer>\n <div className=\"text\" dangerouslySetInnerHTML={{ __html: this.parsedText(tabs[0].text) }} />\n </TabContainer>\n </div>\n );\n }\n }\n}\n\nStimulusTabs.propTypes = {\n classes: PropTypes.object.isRequired,\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n }).isRequired,\n ).isRequired,\n disabledTabs: PropTypes.bool,\n};\n\nexport default withStyles(styles)(StimulusTabs);\n"],"file":"stimulus-tabs.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/passage",
|
|
3
|
-
"version": "1.10.3-next.
|
|
3
|
+
"version": "1.10.3-next.45+62ff92a85",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@material-ui/core": "^3.9.2",
|
|
13
13
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
14
|
-
"@pie-lib/render-ui": "^4.14.
|
|
14
|
+
"@pie-lib/render-ui": "^4.14.19",
|
|
15
15
|
"classnames": "^2.2.5",
|
|
16
16
|
"prop-types": "^15.6.1",
|
|
17
17
|
"react": "^16.8.1",
|
|
18
18
|
"react-dom": "^16.8.1"
|
|
19
19
|
},
|
|
20
|
-
"gitHead": "
|
|
20
|
+
"gitHead": "62ff92a8524033abfcc7a323b126605d76eb73c7",
|
|
21
21
|
"scripts": {
|
|
22
22
|
"postpublish": "../../scripts/postpublish"
|
|
23
23
|
},
|