@royaloperahouse/chord 2.4.6 → 2.4.7

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 CHANGED
@@ -1,3 +1,6 @@
1
+ ## [2.4.7]
2
+ - Compact Header bug fixes for Default Pages roll out
3
+
1
4
  ## [2.4.6]
2
5
  - Print behaviour: Accordion and ReadMore now open to display content when printing, PeopleListing avoids content breaking between pages
3
6
 
@@ -127,9 +127,12 @@ var StreamBadge = function StreamBadge(_ref) {
127
127
  var _ref$fillColor = _ref.fillColor,
128
128
  fillColor = _ref$fillColor === void 0 ? exports.Colors.White : _ref$fillColor,
129
129
  _ref$align = _ref.align,
130
- align = _ref$align === void 0 ? 'center' : _ref$align;
130
+ align = _ref$align === void 0 ? 'center' : _ref$align,
131
+ _ref$invert = _ref.invert,
132
+ invert = _ref$invert === void 0 ? false : _ref$invert;
133
+ var colour = invert ? exports.Colors.Black : fillColor;
131
134
  return /*#__PURE__*/React__default.createElement(BadgeWrapper, {
132
- fillColor: fillColor,
135
+ fillColor: colour,
133
136
  width: "100%",
134
137
  height: "100%",
135
138
  viewBox: "110 450 865 200",
@@ -227,9 +230,12 @@ var CinemaBadge = function CinemaBadge(_ref) {
227
230
  var _ref$fillColor = _ref.fillColor,
228
231
  fillColor = _ref$fillColor === void 0 ? exports.Colors.White : _ref$fillColor,
229
232
  _ref$align = _ref.align,
230
- align = _ref$align === void 0 ? 'center' : _ref$align;
233
+ align = _ref$align === void 0 ? 'center' : _ref$align,
234
+ _ref$invert = _ref.invert,
235
+ invert = _ref$invert === void 0 ? false : _ref$invert;
236
+ var colour = invert ? exports.Colors.Black : fillColor;
231
237
  return /*#__PURE__*/React__default.createElement(BadgeWrapper, {
232
- fillColor: fillColor,
238
+ fillColor: colour,
233
239
  width: "100%",
234
240
  height: "100%",
235
241
  viewBox: "110 450 865 200",
@@ -7354,59 +7360,61 @@ var ButtonsContainer$1 = /*#__PURE__*/styled__default.div(_templateObject14 || (
7354
7360
  return '';
7355
7361
  });
7356
7362
 
7357
- var TEXT_STYLE_HTML_TAGS_REGEXP = '<em>|</em>|<b>|</b>';
7358
7363
  var stripAllHtmlTags = function stripAllHtmlTags(htmlString) {
7359
7364
  return htmlString.replace(/<[^>]*>/g, '');
7360
7365
  };
7366
+ var truncateHtmlString = function truncateHtmlString(htmlString, resultLength, addDots) {
7367
+ if (addDots === void 0) {
7368
+ addDots = false;
7369
+ }
7361
7370
 
7362
- var getAllMatches = function getAllMatches(str, regExp) {
7363
- var allMatches = [];
7364
- var match;
7371
+ var textContent = stripAllHtmlTags(htmlString);
7365
7372
 
7366
- while (match = regExp.exec(str)) {
7367
- allMatches.push({
7368
- value: match[0],
7369
- index: match.index
7370
- });
7373
+ if (textContent.length <= resultLength) {
7374
+ return htmlString;
7371
7375
  }
7372
7376
 
7373
- return allMatches;
7374
- };
7375
-
7376
- var insertString = function insertString(mainString, str, position) {
7377
- return "" + mainString.substring(0, position) + str + mainString.substring(position);
7378
- };
7377
+ var accumulatedText = '';
7378
+ var tagStack = [];
7379
+ var charCount = 0;
7379
7380
 
7380
- var insertHtmlTags = function insertHtmlTags(strWithTags, strWithoutTags, resultLength) {
7381
- var htmlTagPositions = getAllMatches(strWithTags, new RegExp(TEXT_STYLE_HTML_TAGS_REGEXP, 'g'));
7382
- var tagsLength = 0;
7383
- var resultString = strWithoutTags;
7384
- htmlTagPositions.forEach(function (tag) {
7385
- resultString = insertString(resultString, tag.value, tag.index);
7386
- if (tag.index - tagsLength <= resultLength) tagsLength += tag.value.length;
7387
- });
7388
- return {
7389
- stringWithInsertedTags: resultString,
7390
- tagsLength: tagsLength
7381
+ var closeTags = function closeTags() {
7382
+ while (tagStack.length > 0) {
7383
+ accumulatedText += '</' + tagStack.pop() + '>';
7384
+ }
7391
7385
  };
7392
- };
7393
7386
 
7394
- var truncateHtmlString = function truncateHtmlString(str, resultLength, addDots) {
7395
- if (addDots === void 0) {
7396
- addDots = false;
7397
- }
7387
+ for (var i = 0; i < htmlString.length; i++) {
7388
+ var _char = htmlString[i];
7398
7389
 
7399
- var strWithoutTags = stripAllHtmlTags(str);
7400
- if (strWithoutTags.length <= resultLength) return str;
7390
+ if (_char === '<') {
7391
+ accumulatedText += _char;
7401
7392
 
7402
- var _insertHtmlTags = insertHtmlTags(str, strWithoutTags, resultLength),
7403
- stringWithInsertedTags = _insertHtmlTags.stringWithInsertedTags,
7404
- tagsLength = _insertHtmlTags.tagsLength;
7393
+ if (htmlString[i + 1] !== '/') {
7394
+ var tagNameEnd = htmlString.indexOf('>', i);
7395
+ var tagName = htmlString.slice(i + 1, tagNameEnd).split(' ')[0];
7396
+ tagStack.push(tagName);
7397
+ accumulatedText += tagName + ">";
7398
+ i = tagNameEnd;
7399
+ }
7400
+ } else if (_char === '>') {
7401
+ accumulatedText += _char;
7402
+ } else if (charCount < resultLength) {
7403
+ accumulatedText += _char;
7404
+ charCount++;
7405
+ }
7405
7406
 
7406
- var truncatedString = stringWithInsertedTags.substring(0, resultLength + tagsLength);
7407
- var isSpaceNext = strWithoutTags[resultLength] === ' ';
7408
- if (!isSpaceNext) truncatedString = truncatedString.substring(0, truncatedString.lastIndexOf(' '));
7409
- return addDots ? truncatedString + "..." : truncatedString;
7407
+ if (charCount >= resultLength) {
7408
+ if (addDots) {
7409
+ accumulatedText += '...';
7410
+ }
7411
+
7412
+ break;
7413
+ }
7414
+ }
7415
+
7416
+ closeTags();
7417
+ return accumulatedText;
7410
7418
  };
7411
7419
  var truncate = function truncate(str, n) {
7412
7420
  return str.length >= n ? str.substring(0, n) : str;
@@ -8212,8 +8220,8 @@ var PageHeadingStream = function PageHeadingStream(_ref) {
8212
8220
  };
8213
8221
 
8214
8222
  var _templateObject$_, _templateObject2$I, _templateObject3$z, _templateObject5$m, _templateObject6$h, _templateObject7$b, _templateObject8$9, _templateObject9$4, _templateObject10$4;
8215
- var BrandingTextBlock = /*#__PURE__*/styled__default.div(_templateObject$_ || (_templateObject$_ = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: var(--font-size-overline-4);\n font-family: var(--font-family-header);\n text-transform: uppercase;\n margin: 0;\n white-space: nowrap;\n @media screen and (max-width: 920px) {\n white-space: normal;\n }\n @media ", " {\n white-space: nowrap;\n }\n"])), devices.mobile);
8216
- var BrandingTextBody = /*#__PURE__*/styled__default.p(_templateObject2$I || (_templateObject2$I = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-family: var(--font-family-body);\n font-size: var(--font-size-heading-6);\n line-height: var(--line-height-heading-6);\n"])));
8223
+ var BrandingTextBlock = /*#__PURE__*/styled__default.div(_templateObject$_ || (_templateObject$_ = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: var(--font-size-body-2);\n font-family: var(--font-family-header);\n text-transform: uppercase;\n margin: 0;\n white-space: nowrap;\n @media screen and (max-width: 920px) {\n white-space: normal;\n }\n @media ", " {\n white-space: nowrap;\n }\n"])), devices.mobile);
8224
+ var BrandingTextBody = /*#__PURE__*/styled__default.div(_templateObject2$I || (_templateObject2$I = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-family: var(--font-family-body);\n font-size: var(--font-size-heading-6);\n line-height: var(--line-height-heading-6);\n"])));
8217
8225
  var ComapctHeaderWrapper = /*#__PURE__*/styled__default.div(_templateObject3$z || (_templateObject3$z = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n display: block;\n"])));
8218
8226
  var CompactHeaderAssetWrapper = /*#__PURE__*/styled__default.div(_templateObject5$m || (_templateObject5$m = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 37.5vw;\n width: 100%;\n position: relative;\n overflow: hidden;\n background-color: #000;\n img {\n position: relative;\n height: 100%;\n width: 100%;\n object-fit: cover;\n }\n video {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n object-fit: contain;\n @media ", " {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n margin: auto;\n height: auto;\n max-height: 100vh;\n width: 100%;\n object-fit: contain;\n }\n }\n @media ", " {\n height: 85vw;\n max-height: 100vh;\n }\n"])), devices.mobile, devices.mobile);
8219
8227
  var CompactHeaderCopyWrapper = /*#__PURE__*/styled__default(Grid)(_templateObject6$h || (_templateObject6$h = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n height: 160px;\n grid-template-rows: min-content min-content;\n grid-template-rows: min-content min-content;\n grid-template-columns: [logo] 1fr [title] 3fr [cta] 1fr;\n align-content: center;\n gap: 0;\n background-color: ", ";\n color: ", ";\n\n svg {\n width: 210px;\n fill: ", ";\n }\n\n h1::selection,\n div::selection {\n ", ";\n }\n\n @media ", " {\n svg {\n width: 145px;\n }\n }\n\n @media ", " {\n display: flex;\n flex-direction: column;\n height: auto;\n padding: 32px 20px;\n\n svg {\n width: 180px;\n }\n }\n"])), function (_ref) {
@@ -8316,10 +8324,14 @@ var renderBranding = function renderBranding(brandingStyle, invert, brandingText
8316
8324
  }, truncate(stripAllHtmlTags(brandingText), 25));
8317
8325
 
8318
8326
  case 'StreamLogo':
8319
- return /*#__PURE__*/React__default.createElement(StreamBadge, null);
8327
+ return /*#__PURE__*/React__default.createElement(StreamBadge, {
8328
+ invert: invert
8329
+ });
8320
8330
 
8321
8331
  case 'CinemaLogo':
8322
- return /*#__PURE__*/React__default.createElement(CinemaBadge, null);
8332
+ return /*#__PURE__*/React__default.createElement(CinemaBadge, {
8333
+ invert: invert
8334
+ });
8323
8335
 
8324
8336
  default:
8325
8337
  return null;