@pie-element/passage 1.11.9-next.9 → 1.11.9
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/CHANGELOG.md +11 -0
- package/lib/stimulus-tabs.js +18 -41
- package/lib/stimulus-tabs.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.11.9](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.11.8...@pie-element/passage@1.11.9) (2023-08-29)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **passage:** update font-size + refactoring PD-3133 ([ec51d60](https://github.com/pie-framework/pie-elements/commit/ec51d60b3be82a098e3f9d76daf4d4406f591840))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [1.11.8](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.11.7...@pie-element/passage@1.11.8) (2023-08-21)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @pie-element/passage
|
package/lib/stimulus-tabs.js
CHANGED
|
@@ -31,8 +31,6 @@ var _Tab = _interopRequireDefault(require("@material-ui/core/Tab"));
|
|
|
31
31
|
|
|
32
32
|
var _styles = require("@material-ui/core/styles");
|
|
33
33
|
|
|
34
|
-
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
35
|
-
|
|
36
34
|
var _renderUi = require("@pie-lib/render-ui");
|
|
37
35
|
|
|
38
36
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
@@ -50,11 +48,10 @@ var styles = function styles(theme) {
|
|
|
50
48
|
},
|
|
51
49
|
tab: {
|
|
52
50
|
backgroundColor: _renderUi.color.background(),
|
|
53
|
-
fontSize: '
|
|
51
|
+
fontSize: 'inherit'
|
|
54
52
|
},
|
|
55
53
|
stickyTabs: {
|
|
56
54
|
background: _renderUi.color.background(),
|
|
57
|
-
paddingBottom: theme.spacing.unit * 2.5,
|
|
58
55
|
position: 'sticky',
|
|
59
56
|
top: 0
|
|
60
57
|
},
|
|
@@ -67,33 +64,16 @@ var styles = function styles(theme) {
|
|
|
67
64
|
},
|
|
68
65
|
buttonContainer: {
|
|
69
66
|
background: _renderUi.color.background()
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
function TabContainer(props) {
|
|
75
|
-
var padding = props.multiple ? '0 24px 24px 24px' : '24px';
|
|
76
|
-
var ariaLabelledby = props.ariaLabelledby,
|
|
77
|
-
id = props.id;
|
|
78
|
-
return /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
79
|
-
component: "div",
|
|
80
|
-
role: "tabpanel",
|
|
81
|
-
"aria-labelledby": ariaLabelledby,
|
|
82
|
-
id: id,
|
|
83
|
-
style: {
|
|
84
|
-
padding: padding,
|
|
85
|
-
fontSize: '0.875em',
|
|
67
|
+
},
|
|
68
|
+
tabContainer: {
|
|
86
69
|
backgroundColor: _renderUi.color.background(),
|
|
87
|
-
color: _renderUi.color.text()
|
|
70
|
+
color: _renderUi.color.text(),
|
|
71
|
+
padding: theme.spacing.unit * 2
|
|
72
|
+
},
|
|
73
|
+
breakSpaces: {
|
|
74
|
+
whiteSpace: 'break-spaces'
|
|
88
75
|
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
TabContainer.propTypes = {
|
|
93
|
-
ariaLabelledby: _propTypes["default"].string,
|
|
94
|
-
id: _propTypes["default"].any,
|
|
95
|
-
children: _propTypes["default"].node.isRequired,
|
|
96
|
-
multiple: _propTypes["default"].bool
|
|
76
|
+
};
|
|
97
77
|
};
|
|
98
78
|
|
|
99
79
|
var StimulusTabs = /*#__PURE__*/function (_React$Component) {
|
|
@@ -213,11 +193,11 @@ var StimulusTabs = /*#__PURE__*/function (_React$Component) {
|
|
|
213
193
|
"aria-labelledby": "tab-".concat(tab.id),
|
|
214
194
|
"aria-controls": "tabpanel-".concat(tab.id),
|
|
215
195
|
tabIndex: "0"
|
|
216
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
217
|
-
|
|
196
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
197
|
+
className: classes.tabContainer,
|
|
218
198
|
id: "tabpanel-".concat(tab.id),
|
|
219
199
|
role: "tabpanel",
|
|
220
|
-
|
|
200
|
+
"aria-labelledby": "button-".concat(tab.id)
|
|
221
201
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
222
202
|
className: (0, _classnames["default"])(classes.title, 'title'),
|
|
223
203
|
dangerouslySetInnerHTML: {
|
|
@@ -265,12 +245,12 @@ var StimulusTabs = /*#__PURE__*/function (_React$Component) {
|
|
|
265
245
|
}
|
|
266
246
|
});
|
|
267
247
|
})), tabs.map(function (tab) {
|
|
268
|
-
return activeTab === tab.id ? /*#__PURE__*/_react["default"].createElement(
|
|
269
|
-
|
|
248
|
+
return activeTab === tab.id ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
249
|
+
className: classes.tabContainer,
|
|
270
250
|
key: tab.id,
|
|
271
251
|
id: "tabpanel-".concat(tab.id),
|
|
272
252
|
role: "tabpanel",
|
|
273
|
-
|
|
253
|
+
"aria-labelledby": "button-".concat(tab.id)
|
|
274
254
|
}, /*#__PURE__*/_react["default"].createElement(_renderUi.Purpose, {
|
|
275
255
|
purpose: "passage-text"
|
|
276
256
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -282,16 +262,13 @@ var StimulusTabs = /*#__PURE__*/function (_React$Component) {
|
|
|
282
262
|
}));
|
|
283
263
|
} else if (tabs && tabs[0]) {
|
|
284
264
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
285
|
-
className: "
|
|
286
|
-
|
|
287
|
-
whiteSpace: 'break-spaces'
|
|
288
|
-
}
|
|
289
|
-
}, /*#__PURE__*/_react["default"].createElement(TabContainer, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
265
|
+
className: (0, _classnames["default"])(classes.root, classes.tabContainer, classes.breakSpaces, 'passage')
|
|
266
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
290
267
|
className: "text",
|
|
291
268
|
dangerouslySetInnerHTML: {
|
|
292
269
|
__html: this.parsedText(tabs[0].text)
|
|
293
270
|
}
|
|
294
|
-
}))
|
|
271
|
+
}));
|
|
295
272
|
}
|
|
296
273
|
}
|
|
297
274
|
}]);
|
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","TabContainer","props","multiple","ariaLabelledby","id","children","propTypes","PropTypes","string","any","node","isRequired","bool","StimulusTabs","activeTab","event","setState","setTimeout","tabChangeEvent","CustomEvent","detail","window","dispatchEvent","currentTabId","key","tabs","newTabIndex","currentIndex","findIndex","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"],"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 backgroundColor: color.background(),\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: color.background(),\n },\n});\n\nfunction TabContainer(props) {\n const padding = props.multiple ? '0 24px 24px 24px' : '24px';\n const { ariaLabelledby, id } = props;\n\n return (\n <Typography\n component=\"div\"\n role=\"tabpanel\"\n aria-labelledby={ariaLabelledby}\n id={id}\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 ariaLabelledby: PropTypes.string,\n id: PropTypes.any,\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 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={classNames(classes.root, 'passages')}>\n {tabs.map((tab) => (\n <div\n key={tab.id}\n className={`passage-${tab.id}`}\n id={`tabpanel-${tab.id}`}\n aria-labelledby={`tab-${tab.id}`}\n aria-controls={`tabpanel-${tab.id}`}\n tabIndex=\"0\"\n >\n <TabContainer multiple id={`tabpanel-${tab.id}`} role=\"tabpanel\" ariaLabelledby={`button-${tab.id}`}>\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={classNames(classes.root, 'passages')}>\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 id={`button-${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-controls={`tabpanel-${tab.id}`}\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\n multiple\n key={tab.id}\n id={`tabpanel-${tab.id}`}\n role=\"tabpanel\"\n ariaLabelledby={`button-${tab.id}`}\n >\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","position","top","title","textTransform","padding","spacing","unit","borderBottom","secondary","width","marginBottom","buttonContainer","tabContainer","breakSpaces","whiteSpace","StimulusTabs","activeTab","event","setState","setTimeout","tabChangeEvent","CustomEvent","detail","window","dispatchEvent","currentTabId","key","tabs","props","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","React","Component","propTypes","PropTypes","object","isRequired","arrayOf","shape","number","string","bool"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAE,CADN;AAEJC,MAAAA,eAAe,EAAEC,gBAAMC,UAAN,EAFb;AAGJD,MAAAA,KAAK,EAAEA,gBAAME,IAAN;AAHH,KADmB;AAMzBC,IAAAA,GAAG,EAAE;AACHJ,MAAAA,eAAe,EAAEC,gBAAMC,UAAN,EADd;AAEHG,MAAAA,QAAQ,EAAE;AAFP,KANoB;AAUzBC,IAAAA,UAAU,EAAE;AACVJ,MAAAA,UAAU,EAAED,gBAAMC,UAAN,EADF;AAEVK,MAAAA,QAAQ,EAAE,QAFA;AAGVC,MAAAA,GAAG,EAAE;AAHK,KAVa;AAezBC,IAAAA,KAAK,EAAE;AACLC,MAAAA,aAAa,EAAE,WADV;AAELC,MAAAA,OAAO,YAAKd,KAAK,CAACe,OAAN,CAAcC,IAAnB,gBAA6BhB,KAAK,CAACe,OAAN,CAAcC,IAAd,GAAqB,CAAlD,OAFF;AAGLC,MAAAA,YAAY,sBAAeb,gBAAMc,SAAN,EAAf,CAHP;AAILC,MAAAA,KAAK,EAAE,aAJF;AAKLC,MAAAA,YAAY,EAAEpB,KAAK,CAACe,OAAN,CAAcC;AALvB,KAfkB;AAsBzBK,IAAAA,eAAe,EAAE;AACfhB,MAAAA,UAAU,EAAED,gBAAMC,UAAN;AADG,KAtBQ;AAyBzBiB,IAAAA,YAAY,EAAE;AACZnB,MAAAA,eAAe,EAAEC,gBAAMC,UAAN,EADL;AAEZD,MAAAA,KAAK,EAAEA,gBAAME,IAAN,EAFK;AAGZQ,MAAAA,OAAO,EAAEd,KAAK,CAACe,OAAN,CAAcC,IAAd,GAAqB;AAHlB,KAzBW;AA8BzBO,IAAAA,WAAW,EAAE;AACXC,MAAAA,UAAU,EAAE;AADD;AA9BY,GAAZ;AAAA,CAAf;;IAmCMC,Y;;;;;;;;;;;;;;;8FACI;AACNC,MAAAA,SAAS,EAAE;AADL,K;qGAIO,UAACC,KAAD,EAAQD,SAAR,EAAsB;AACnC,YAAKE,QAAL,CAAc;AAAA,eAAO;AAAEF,UAAAA,SAAS,EAATA;AAAF,SAAP;AAAA,OAAd;;AACAG,MAAAA,UAAU,CAAC,YAAM;AACf,YAAMC,cAAc,GAAG,IAAIC,WAAJ,CAAgB,2BAAhB,EAA6C;AAClEC,UAAAA,MAAM,EAAE;AACNzB,YAAAA,GAAG,EAAEmB;AADC;AAD0D,SAA7C,CAAvB;AAMAO,QAAAA,MAAM,CAACC,aAAP,CAAqBJ,cAArB;AACD,OARS,CAAV;AASD,K;sGAEe,UAACH,KAAD,EAAQQ,YAAR,EAAyB;AACvC,UAAQC,GAAR,GAAgBT,KAAhB,CAAQS,GAAR;AACA,UAAQC,IAAR,GAAiB,MAAKC,KAAtB,CAAQD,IAAR;AAEA,UAAIE,WAAW,GAAG,CAAC,CAAnB;AACA,UAAMC,YAAY,GAAGH,IAAI,CAACI,SAAL,CAAe,UAAClC,GAAD;AAAA,eAASA,GAAG,CAACmC,EAAJ,KAAWP,YAApB;AAAA,OAAf,CAArB;;AAEA,cAAQC,GAAR;AACE,aAAK,YAAL;AACA,aAAK,WAAL;AACEG,UAAAA,WAAW,GAAG,CAACC,YAAY,GAAG,CAAhB,IAAqBH,IAAI,CAACM,MAAxC;AACA;;AACF,aAAK,WAAL;AACA,aAAK,SAAL;AACEJ,UAAAA,WAAW,GAAG,CAACC,YAAY,GAAG,CAAf,GAAmBH,IAAI,CAACM,MAAzB,IAAmCN,IAAI,CAACM,MAAtD;AACA;;AACF,aAAK,MAAL;AACEJ,UAAAA,WAAW,GAAG,CAAd;AACA;;AACF,aAAK,KAAL;AACEA,UAAAA,WAAW,GAAGF,IAAI,CAACM,MAAL,GAAc,CAA5B;AACA;;AACF,aAAK,OAAL;AACA,aAAK,GAAL;AACEJ,UAAAA,WAAW,GAAGC,YAAd;AACA;;AACF;AACE;AApBJ;;AAuBA,UAAID,WAAW,KAAK,CAAC,CAArB,EAAwB;AACtBZ,QAAAA,KAAK,CAACiB,cAAN;;AACA,cAAKC,YAAL,CAAkBlB,KAAlB,EAAyBU,IAAI,CAACE,WAAD,CAAJ,CAAkBG,EAA3C;AACD;AACF,K;mGAEY,UAACpC,IAAD,EAAU;AACrB;AACA,UAAMwC,GAAG,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAZ;AACAF,MAAAA,GAAG,CAACG,SAAJ,GAAgB3C,IAAI,CAAC4C,OAAL,CAAa,aAAb,EAA4B,OAA5B,CAAhB;AAEA,UAAMC,KAAK,GAAGL,GAAG,CAACM,aAAJ,CAAkB,OAAlB,CAAd;;AACA,UAAID,KAAJ,EAAW;AACT,YAAME,MAAM,GAAGN,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;AAEAK,QAAAA,MAAM,CAACC,YAAP,CAAoB,MAApB,EAA4B,WAA5B;AACAD,QAAAA,MAAM,CAACC,YAAP,CAAoB,KAApB,EAA2BH,KAAK,CAACI,YAAN,CAAmB,KAAnB,CAA3B;AAEAJ,QAAAA,KAAK,CAACK,eAAN,CAAsB,KAAtB;AACAL,QAAAA,KAAK,CAACM,WAAN,CAAkBJ,MAAlB;AACD;;AAED,aAAOP,GAAG,CAACG,SAAX;AACD,K;;;;;;WAED,kBAAS;AAAA;;AACP,wBAAwC,KAAKX,KAA7C;AAAA,UAAQoB,OAAR,eAAQA,OAAR;AAAA,UAAiBrB,IAAjB,eAAiBA,IAAjB;AAAA,UAAuBsB,YAAvB,eAAuBA,YAAvB;AACA,UAAQjC,SAAR,GAAsB,KAAKkC,KAA3B,CAAQlC,SAAR;;AAEA,UAAIW,IAAI,IAAIA,IAAI,CAACM,MAAL,GAAc,CAA1B,EAA6B;AAC3B,eAAOgB,YAAY,gBACjB;AAAK,UAAA,SAAS,EAAE,4BAAWD,OAAO,CAACzD,IAAnB,EAAyB,UAAzB;AAAhB,WACGoC,IAAI,CAACwB,GAAL,CAAS,UAACtD,GAAD;AAAA,8BACR;AACE,YAAA,GAAG,EAAEA,GAAG,CAACmC,EADX;AAEE,YAAA,SAAS,oBAAanC,GAAG,CAACmC,EAAjB,CAFX;AAGE,YAAA,EAAE,qBAAcnC,GAAG,CAACmC,EAAlB,CAHJ;AAIE,6CAAwBnC,GAAG,CAACmC,EAA5B,CAJF;AAKE,gDAA2BnC,GAAG,CAACmC,EAA/B,CALF;AAME,YAAA,QAAQ,EAAC;AANX,0BAQE;AACE,YAAA,SAAS,EAAEgB,OAAO,CAACpC,YADrB;AAEE,YAAA,EAAE,qBAAcf,GAAG,CAACmC,EAAlB,CAFJ;AAGE,YAAA,IAAI,EAAC,UAHP;AAIE,gDAA2BnC,GAAG,CAACmC,EAA/B;AAJF,0BAME;AACE,YAAA,SAAS,EAAE,4BAAWgB,OAAO,CAAC9C,KAAnB,EAA0B,OAA1B,CADb;AAEE,YAAA,uBAAuB,EAAE;AAAEkD,cAAAA,MAAM,EAAE,MAAI,CAACC,UAAL,CAAgBxD,GAAG,CAACK,KAApB;AAAV;AAF3B,YANF,eAUE,gCAAC,iBAAD;AAAS,YAAA,OAAO,EAAC;AAAjB,0BACE;AAAK,YAAA,SAAS,EAAC,MAAf;AAAsB,YAAA,GAAG,EAAEL,GAAG,CAACmC,EAA/B;AAAmC,YAAA,uBAAuB,EAAE;AAAEoB,cAAAA,MAAM,EAAE,MAAI,CAACC,UAAL,CAAgBxD,GAAG,CAACD,IAApB;AAAV;AAA5D,YADF,CAVF,CARF,CADQ;AAAA,SAAT,CADH,CADiB,gBA6BjB;AAAK,UAAA,SAAS,EAAE,4BAAWoD,OAAO,CAACzD,IAAnB,EAAyB,UAAzB;AAAhB,wBACE,gCAAC,gBAAD;AACE,UAAA,OAAO,EAAE;AACPA,YAAAA,IAAI,EAAEyD,OAAO,CAACjD,UADP;AAEPuD,YAAAA,aAAa,EAAEN,OAAO,CAACrC;AAFhB,WADX;AAKE,UAAA,KAAK,EAAEK,SALT;AAME,UAAA,QAAQ,EAAE,KAAKmB;AANjB,WAQGR,IAAI,CAACwB,GAAL,CAAS,UAACtD,GAAD;AAAA,8BACR,gCAAC,eAAD;AACE,YAAA,SAAS,EAAEmD,OAAO,CAACnD,GADrB;AAEE,YAAA,GAAG,EAAEA,GAAG,CAACmC,EAFX;AAGE,YAAA,EAAE,mBAAYnC,GAAG,CAACmC,EAAhB,CAHJ;AAIE,YAAA,KAAK,eACH,gCAAC,iBAAD;AAAS,cAAA,OAAO,EAAC;AAAjB,4BACE;AAAM,cAAA,uBAAuB,EAAE;AAAEoB,gBAAAA,MAAM,EAAE,MAAI,CAACC,UAAL,CAAgBxD,GAAG,CAACK,KAApB;AAAV;AAA/B,cADF,CALJ;AASE,YAAA,KAAK,EAAEL,GAAG,CAACmC,EATb;AAUE,YAAA,QAAQ,EAAEhB,SAAS,KAAKnB,GAAG,CAACmC,EAAlB,GAAuB,CAAvB,GAA2B,CAAC,CAVxC;AAWE,gDAA2BnC,GAAG,CAACmC,EAA/B,CAXF;AAYE,6BAAehB,SAAS,KAAKnB,GAAG,CAACmC,EAZnC;AAaE,YAAA,OAAO,EAAE;AAAA,qBAAM,MAAI,CAACG,YAAL,CAAkB,IAAlB,EAAwBtC,GAAG,CAACmC,EAA5B,CAAN;AAAA,aAbX;AAcE,YAAA,SAAS,EAAE,mBAACf,KAAD;AAAA,qBAAW,MAAI,CAACsC,aAAL,CAAmBtC,KAAnB,EAA0BpB,GAAG,CAACmC,EAA9B,CAAX;AAAA;AAdb,YADQ;AAAA,SAAT,CARH,CADF,EA6BGL,IAAI,CAACwB,GAAL,CAAS,UAACtD,GAAD;AAAA,iBACRmB,SAAS,KAAKnB,GAAG,CAACmC,EAAlB,gBACE;AACE,YAAA,SAAS,EAAEgB,OAAO,CAACpC,YADrB;AAEE,YAAA,GAAG,EAAEf,GAAG,CAACmC,EAFX;AAGE,YAAA,EAAE,qBAAcnC,GAAG,CAACmC,EAAlB,CAHJ;AAIE,YAAA,IAAI,EAAC,UAJP;AAKE,gDAA2BnC,GAAG,CAACmC,EAA/B;AALF,0BAOE,gCAAC,iBAAD;AAAS,YAAA,OAAO,EAAC;AAAjB,0BACE;AAAK,YAAA,GAAG,EAAEnC,GAAG,CAACmC,EAAd;AAAkB,YAAA,uBAAuB,EAAE;AAAEoB,cAAAA,MAAM,EAAE,MAAI,CAACC,UAAL,CAAgBxD,GAAG,CAACD,IAApB;AAAV;AAA3C,YADF,CAPF,CADF,GAYI,IAbI;AAAA,SAAT,CA7BH,CA7BF;AA2ED,OA5ED,MA4EO,IAAI+B,IAAI,IAAIA,IAAI,CAAC,CAAD,CAAhB,EAAqB;AAC1B,4BACE;AAAK,UAAA,SAAS,EAAE,4BAAWqB,OAAO,CAACzD,IAAnB,EAAyByD,OAAO,CAACpC,YAAjC,EAA+CoC,OAAO,CAACnC,WAAvD,EAAoE,SAApE;AAAhB,wBACE;AAAK,UAAA,SAAS,EAAC,MAAf;AAAsB,UAAA,uBAAuB,EAAE;AAAEuC,YAAAA,MAAM,EAAE,KAAKC,UAAL,CAAgB1B,IAAI,CAAC,CAAD,CAAJ,CAAQ/B,IAAxB;AAAV;AAA/C,UADF,CADF;AAKD;AACF;;;EAhKwB4D,kBAAMC,S;;AAmKjC1C,YAAY,CAAC2C,SAAb,GAAyB;AACvBV,EAAAA,OAAO,EAAEW,sBAAUC,MAAV,CAAiBC,UADH;AAEvBlC,EAAAA,IAAI,EAAEgC,sBAAUG,OAAV,CACJH,sBAAUI,KAAV,CAAgB;AACd/B,IAAAA,EAAE,EAAE2B,sBAAUK,MAAV,CAAiBH,UADP;AAEd3D,IAAAA,KAAK,EAAEyD,sBAAUM,MAAV,CAAiBJ,UAFV;AAGdjE,IAAAA,IAAI,EAAE+D,sBAAUM,MAAV,CAAiBJ;AAHT,GAAhB,EAIGA,UALC,EAMJA,UARqB;AASvBZ,EAAAA,YAAY,EAAEU,sBAAUO;AATD,CAAzB;;eAYe,wBAAW7E,MAAX,EAAmB0B,YAAnB,C","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 { 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 backgroundColor: color.background(),\n fontSize: 'inherit',\n },\n stickyTabs: {\n background: color.background(),\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: color.background(),\n },\n tabContainer: {\n backgroundColor: color.background(),\n color: color.text(),\n padding: theme.spacing.unit * 2,\n },\n breakSpaces: {\n whiteSpace: 'break-spaces',\n },\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 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={classNames(classes.root, 'passages')}>\n {tabs.map((tab) => (\n <div\n key={tab.id}\n className={`passage-${tab.id}`}\n id={`tabpanel-${tab.id}`}\n aria-labelledby={`tab-${tab.id}`}\n aria-controls={`tabpanel-${tab.id}`}\n tabIndex=\"0\"\n >\n <div\n className={classes.tabContainer}\n id={`tabpanel-${tab.id}`}\n role=\"tabpanel\"\n aria-labelledby={`button-${tab.id}`}\n >\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 </div>\n </div>\n ))}\n </div>\n ) : (\n <div className={classNames(classes.root, 'passages')}>\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 id={`button-${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-controls={`tabpanel-${tab.id}`}\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 <div\n className={classes.tabContainer}\n key={tab.id}\n id={`tabpanel-${tab.id}`}\n role=\"tabpanel\"\n aria-labelledby={`button-${tab.id}`}\n >\n <Purpose purpose=\"passage-text\">\n <div key={tab.id} dangerouslySetInnerHTML={{ __html: this.parsedText(tab.text) }} />\n </Purpose>\n </div>\n ) : null,\n )}\n </div>\n );\n } else if (tabs && tabs[0]) {\n return (\n <div className={classNames(classes.root, classes.tabContainer, classes.breakSpaces, 'passage')}>\n <div className=\"text\" dangerouslySetInnerHTML={{ __html: this.parsedText(tabs[0].text) }} />\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.11.9
|
|
3
|
+
"version": "1.11.9",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"react": "^16.8.1",
|
|
18
18
|
"react-dom": "^16.8.1"
|
|
19
19
|
},
|
|
20
|
-
"gitHead": "
|
|
20
|
+
"gitHead": "19dbe737aed295848ebfabfcf7df82021abc0e91",
|
|
21
21
|
"scripts": {
|
|
22
22
|
"postpublish": "../../scripts/postpublish"
|
|
23
23
|
},
|