@prezly/theme-kit-nextjs 3.2.1 → 3.2.3-0

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.
Files changed (46) hide show
  1. package/build/components-nextjs/PageSeo/PageSeo.js +4 -15
  2. package/build/components-nextjs/PageSeo/PageSeo.js.map +1 -1
  3. package/build/components-nextjs/document.js.map +1 -1
  4. package/build/intl/getFallbackLocale.d.ts +8 -0
  5. package/build/intl/getFallbackLocale.js +21 -0
  6. package/build/intl/getFallbackLocale.js.map +1 -0
  7. package/build/intl/index.d.ts +2 -1
  8. package/build/intl/index.js +2 -1
  9. package/build/intl/index.js.map +1 -1
  10. package/build/intl/locale.d.ts +9 -0
  11. package/build/intl/locale.js.map +1 -1
  12. package/build/intl/localeObject.d.ts +5 -0
  13. package/build/intl/localeObject.js +7 -0
  14. package/build/intl/localeObject.js.map +1 -1
  15. package/build/seo/getAlternateLanguageLinks.d.ts +4 -0
  16. package/build/seo/getAlternateLanguageLinks.js +49 -0
  17. package/build/seo/getAlternateLanguageLinks.js.map +1 -0
  18. package/build/seo/index.d.ts +1 -0
  19. package/build/seo/index.js +18 -0
  20. package/build/seo/index.js.map +1 -0
  21. package/build/seo/utils/createAlternateLanguageLink.d.ts +5 -0
  22. package/build/seo/utils/createAlternateLanguageLink.js +15 -0
  23. package/build/seo/utils/createAlternateLanguageLink.js.map +1 -0
  24. package/build/seo/utils/getDefaultHrefLang.d.ts +11 -0
  25. package/build/seo/utils/getDefaultHrefLang.js +28 -0
  26. package/build/seo/utils/getDefaultHrefLang.js.map +1 -0
  27. package/build/seo/utils/mapLanguagesToLocales.d.ts +4 -0
  28. package/build/seo/utils/mapLanguagesToLocales.js +24 -0
  29. package/build/seo/utils/mapLanguagesToLocales.js.map +1 -0
  30. package/build/tsconfig.tsbuildinfo +1 -1
  31. package/build/utils/boilerplate.js +4 -1
  32. package/build/utils/boilerplate.js.map +1 -1
  33. package/package.json +10 -10
  34. package/src/components-nextjs/PageSeo/PageSeo.tsx +14 -25
  35. package/src/components-nextjs/document.tsx +0 -1
  36. package/src/intl/getFallbackLocale.ts +26 -0
  37. package/src/intl/index.ts +2 -1
  38. package/src/intl/locale.ts +5 -1
  39. package/src/intl/localeObject.ts +8 -0
  40. package/src/seo/getAlternateLanguageLinks.test.ts +150 -0
  41. package/src/seo/getAlternateLanguageLinks.ts +72 -0
  42. package/src/seo/index.ts +1 -0
  43. package/src/seo/utils/createAlternateLanguageLink.ts +18 -0
  44. package/src/seo/utils/getDefaultHrefLang.ts +57 -0
  45. package/src/seo/utils/mapLanguagesToLocales.ts +28 -0
  46. package/src/utils/boilerplate.ts +4 -1
@@ -7,6 +7,7 @@ const router_1 = require("next/router");
7
7
  const react_1 = require("react");
8
8
  const intl_1 = require("../../intl");
9
9
  const newsroom_context_1 = require("../../newsroom-context");
10
+ const seo_1 = require("../../seo");
10
11
  const utils_1 = require("../../utils");
11
12
  const getAbsoluteUrl_1 = require("./lib/getAbsoluteUrl");
12
13
  /**
@@ -38,21 +39,9 @@ function PageSeo({ title, description, imageUrl, canonical, openGraph, twitter,
38
39
  if (!languages.length) {
39
40
  return [];
40
41
  }
41
- const alternateLanguages = (0, intl_1.getUsedLanguages)(languages).filter((language) => language.code !== currentLocale.toUnderscoreCode());
42
- return alternateLanguages
43
- .map((language) => {
44
- const locale = intl_1.LocaleObject.fromAnyCode(language.code);
45
- const translationLink = getTranslationUrl(locale, true);
46
- if (!translationLink) {
47
- return undefined;
48
- }
49
- return {
50
- hrefLang: locale.toHyphenCode(),
51
- href: (0, getAbsoluteUrl_1.getAbsoluteUrl)(translationLink, site.url, currentStory && translationLink !== '/' ? false : getLinkLocaleSlug(locale)),
52
- };
53
- })
54
- .filter(Boolean);
55
- }, [currentLocale, getLinkLocaleSlug, getTranslationUrl, languages, site.url, currentStory]);
42
+ const usedLanguages = (0, intl_1.getUsedLanguages)(languages);
43
+ return (0, seo_1.getAlternateLanguageLinks)(usedLanguages, getTranslationUrl, (locale, translationUrl) => (0, getAbsoluteUrl_1.getAbsoluteUrl)(translationUrl, site.url, currentStory && translationUrl !== '/' ? false : getLinkLocaleSlug(locale)));
44
+ }, [currentStory, getLinkLocaleSlug, getTranslationUrl, languages, site.url]);
56
45
  return ((0, jsx_runtime_1.jsx)(next_seo_1.NextSeo, { title: pageTitle, description: pageDescription, canonical: canonicalUrl, noindex: nextSeoProps.noindex ?? !site.is_indexable, nofollow: nextSeoProps.nofollow ?? !site.is_indexable, openGraph: {
57
46
  url: canonicalUrl,
58
47
  title: pageTitle,
@@ -1 +1 @@
1
- {"version":3,"file":"PageSeo.js","sourceRoot":"","sources":["../../../src/components-nextjs/PageSeo/PageSeo.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PageSeo.js","sourceRoot":"","sources":["../../../src/components-nextjs/PageSeo/PageSeo.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/components-nextjs/document.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAuE;AAEvE,kCAA2E;AAG3E,MAAa,mBAAoB,SAAQ,kBAAQ;IAC7C,aAAa;QACT,MAAM,EACF,oBAAoB;QACpB,gDAAgD;UACnD,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,SAAsB,CAAC;QAE1D,oFAAoF;QACpF,kEAAkE;QAClE,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,IAAI,EAAE,UAAU,EAAE,qBAAc,EAAE,CAAC;QAE9E,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,MAAM;QACF,MAAM,MAAM,GAAG,mBAAY,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC9D,6DAA6D;QAC7D,MAAM,SAAS,GAAG,IAAA,yBAAkB,EAAC,MAAM,CAAC,CAAC;QAE7C,OAAO,CACH,wBAAC,eAAI,IAAC,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,aAC7C,uBAAC,eAAI,cACD,iCAAM,IAAI,EAAC,WAAW,EAAC,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,GAAI,GAEtD,EACP,6CACI,uBAAC,eAAI,KAAG,EACR,uBAAC,qBAAU,KAAG,IACX,IACJ,CACV,CAAC;IACN,CAAC;CACJ;AAhCD,kDAgCC"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/components-nextjs/document.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAuE;AAEvE,kCAA2E;AAG3E,MAAa,mBAAoB,SAAQ,kBAAQ;IAC7C,aAAa;QACT,MAAM,EACF,oBAAoB;QACpB,gDAAgD;UACnD,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,SAAsB,CAAC;QAE1D,oFAAoF;QACpF,kEAAkE;QAClE,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,IAAI,EAAE,UAAU,EAAE,qBAAc,EAAE,CAAC;QAE9E,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,MAAM;QACF,MAAM,MAAM,GAAG,mBAAY,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC9D,6DAA6D;QAC7D,MAAM,SAAS,GAAG,IAAA,yBAAkB,EAAC,MAAM,CAAC,CAAC;QAE7C,OAAO,CACH,wBAAC,eAAI,IAAC,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,aAC7C,uBAAC,eAAI,cACD,iCAAM,IAAI,EAAC,WAAW,EAAC,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,GAAI,GACtD,EACP,6CACI,uBAAC,eAAI,KAAG,EACR,uBAAC,qBAAU,KAAG,IACX,IACJ,CACV,CAAC;IACN,CAAC;CACJ;AA/BD,kDA+BC"}
@@ -0,0 +1,8 @@
1
+ import type { LangCode } from './locale';
2
+ import { LocaleObject } from './localeObject';
3
+ /**
4
+ * Fallback locales for each language.
5
+ * For example, a story has no en(global) locale, then we can take some fallback locale from here.
6
+ */
7
+ export declare const localeFallback: Record<LangCode, LocaleObject[]>;
8
+ export declare function getFallbackLocale(langCode: LangCode, availableLocales: LocaleObject[]): LocaleObject | undefined;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFallbackLocale = exports.localeFallback = void 0;
4
+ const localeObject_1 = require("./localeObject");
5
+ /**
6
+ * Fallback locales for each language.
7
+ * For example, a story has no en(global) locale, then we can take some fallback locale from here.
8
+ */
9
+ exports.localeFallback = {
10
+ en: [localeObject_1.LocaleObject.fromAnyCode('en-US'), localeObject_1.LocaleObject.fromAnyCode('en-GB')],
11
+ fr: [localeObject_1.LocaleObject.fromAnyCode('fr-FR'), localeObject_1.LocaleObject.fromAnyCode('fr-CA')],
12
+ };
13
+ function getFallbackLocale(langCode, availableLocales) {
14
+ const fallbacks = exports.localeFallback[langCode];
15
+ if (!fallbacks) {
16
+ return undefined;
17
+ }
18
+ return fallbacks.find((fallback) => Boolean(availableLocales.find((available) => available.isEqual(fallback))));
19
+ }
20
+ exports.getFallbackLocale = getFallbackLocale;
21
+ //# sourceMappingURL=getFallbackLocale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFallbackLocale.js","sourceRoot":"","sources":["../../src/intl/getFallbackLocale.ts"],"names":[],"mappings":";;;AACA,iDAA8C;AAE9C;;;GAGG;AACU,QAAA,cAAc,GAAqC;IAC5D,EAAE,EAAE,CAAC,2BAAY,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,2BAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1E,EAAE,EAAE,CAAC,2BAAY,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,2BAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;CAC7E,CAAC;AAEF,SAAgB,iBAAiB,CAC7B,QAAkB,EAClB,gBAAgC;IAEhC,MAAM,SAAS,GAAG,sBAAc,CAAC,QAAQ,CAAC,CAAC;IAE3C,IAAI,CAAC,SAAS,EAAE;QACZ,OAAO,SAAS,CAAC;KACpB;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC/B,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC7E,CAAC;AACN,CAAC;AAbD,8CAaC"}
@@ -1,4 +1,5 @@
1
+ export * from './getFallbackLocale';
1
2
  export * from './languages';
2
- export * from './locale';
3
3
  export { default as localeConfig } from './localeConfig';
4
+ export * from './locale';
4
5
  export * from './localeObject';
@@ -18,9 +18,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.localeConfig = void 0;
21
+ __exportStar(require("./getFallbackLocale"), exports);
21
22
  __exportStar(require("./languages"), exports);
22
- __exportStar(require("./locale"), exports);
23
23
  var localeConfig_1 = require("./localeConfig");
24
24
  Object.defineProperty(exports, "localeConfig", { enumerable: true, get: function () { return __importDefault(localeConfig_1).default; } });
25
+ __exportStar(require("./locale"), exports);
25
26
  __exportStar(require("./localeObject"), exports);
26
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intl/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2CAAyB;AACzB,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intl/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,8CAA4B;AAC5B,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,2CAAyB;AACzB,iDAA+B"}
@@ -4,6 +4,15 @@ import type { ParsedUrlQuery } from 'querystring';
4
4
  import { LocaleObject } from './localeObject';
5
5
  export declare const DEFAULT_LOCALE = "en";
6
6
  export declare const DUMMY_DEFAULT_LOCALE = "qps-ploc";
7
+ export type LangCode = string & {
8
+ __BRAND__?: 'langCode';
9
+ };
10
+ export type RegionCode = string & {
11
+ __BRAND__?: 'regionCode';
12
+ };
13
+ export type LocaleCode = string & {
14
+ __BRAND__?: 'localeCode';
15
+ };
7
16
  /**
8
17
  * Use this function to determine which translations file you should load from `@prezly/themes-intl-mesages` package.
9
18
  * See https://github.com/prezly/theme-nextjs-bea/blob/main/utils/lang.ts for a usage example.
@@ -1 +1 @@
1
- {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/intl/locale.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/intl/locale.ts"],"names":[],"mappings":";;;AAEA,6CAAwC;AAExC,iDAA8C;AAEjC,QAAA,cAAc,GAAG,IAAI,CAAC;AACnC,oIAAoI;AACvH,QAAA,oBAAoB,GAAG,UAAU,CAAC;AAM/C;;;GAGG;AACH,MAAM,iBAAiB,GAAiB;IACpC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,OAAO;CACV,CAAC;AAEF;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,MAAoB;IAC1D,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAE5C,MAAM,iBAAiB,GACnB,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC3E,IAAI,iBAAiB,EAAE;QACnB,OAAO,aAAa,CAAC;KACxB;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAChD,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjE,IAAI,mBAAmB,EAAE;QACrB,OAAO,QAAQ,CAAC;KACnB;IAED,qCAAqC;IACrC,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;QAC3C,OAAO,OAAO,CAAC;KAClB;IACD,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;QACzC,OAAO,OAAO,CAAC;KAClB;IAED,0GAA0G;IAC1G,sCAAsC;IACtC,OAAO,CAAC,IAAI,CACR,oHAAoH,CACvH,CAAC;IACF,OAAO,sBAAc,CAAC;AAC1B,CAAC;AA7BD,8DA6BC;AAED,SAAgB,4BAA4B,CACxC,kBAAkC,EAClC,iBAAqC,EACrC,YAAoB,EACpB,KAAsB;IAEtB,+EAA+E;IAC/E,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,KAAK,4BAAoB,EAAE;QAClE,OAAO,SAAS,CAAC;KACpB;IAED,MAAM,kBAAkB,GAAG,kBAAkB;QACzC,CAAC,CAAC,2BAAY,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE;QAC1D,CAAC,CAAC,kBAAkB,CAAC;IAEzB,IAAI,kBAAkB,KAAK,iBAAiB,EAAE;QAC1C,MAAM,YAAY,GACd,YAAY,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QAEtF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAA,uBAAS,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAErD,OAAO;YACH,WAAW,EAAE,kBAAkB;gBAC3B,CAAC,CAAC,IAAI,kBAAkB,GAAG,YAAY,GAAG,QAAQ,EAAE;gBACpD,CAAC,CAAC,GAAG,YAAY,GAAG,QAAQ,EAAE;YAClC,SAAS,EAAE,KAAK;SACnB,CAAC;KACL;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AA9BD,oEA8BC;AAED,SAAgB,kBAAkB,CAAC,MAAoB;IACnD,MAAM,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAE3D,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAClD,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AARD,gDAQC"}
@@ -9,6 +9,11 @@ export declare class LocaleObject {
9
9
  * Examples: `nl-BE`, `en-US`, `fr`, `fil`
10
10
  */
11
11
  private localeCode;
12
+ /**
13
+ * Whether the locale is global (without region/culture part).
14
+ * I.E. `en` is global, while `en-US` is not.
15
+ */
16
+ isGlobal: boolean;
12
17
  private constructor();
13
18
  /**
14
19
  * @param localeCode Locale code in any of the formats below.
@@ -16,17 +16,24 @@ class LocaleObject {
16
16
  * Examples: `nl-BE`, `en-US`, `fr`, `fil`
17
17
  */
18
18
  localeCode;
19
+ /**
20
+ * Whether the locale is global (without region/culture part).
21
+ * I.E. `en` is global, while `en-US` is not.
22
+ */
23
+ isGlobal;
19
24
  constructor(localeCode) {
20
25
  if (!/^([a-z]{2,3})(-[a-z\d]{1,4})?$/i.test(localeCode)) {
21
26
  throw new Error('Invalid locale code provided!');
22
27
  }
23
28
  const [language, region] = localeCode.split('-');
24
29
  if (region) {
30
+ this.isGlobal = false;
25
31
  // Workaround for `zh-Hant` locale, which is the only locale with non-uppercase region part
26
32
  const regionSuffix = region === 'hant' ? 'Hant' : region.toUpperCase();
27
33
  this.localeCode = [language, regionSuffix].join('-');
28
34
  }
29
35
  else {
36
+ this.isGlobal = true;
30
37
  this.localeCode = language;
31
38
  }
32
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"localeObject.js","sourceRoot":"","sources":["../../src/intl/localeObject.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA0C;AAE1C;;;;GAIG;AACH,MAAa,YAAY;IACrB;;;OAGG;IACK,UAAU,CAAS;IAE3B,YAAoB,UAAkB;QAClC,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACpD;QAED,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEjD,IAAI,MAAM,EAAE;YACR,2FAA2F;YAC3F,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAEvE,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACxD;aAAM;YACH,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;SAC9B;IACL,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,WAAW,CAAC,UAAkB;QACxC,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,sBAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAEtE,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,GAAG,CAAC,CAAC;SAC3E;QAED,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,YAAY;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,gBAAgB;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,SAAS;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,qBAAqB;QACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,YAAY;QACf,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,EAAE;YACT,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;SACjC;QAED,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,aAA2B;QACtC,OAAO,aAAa,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC;IAC5D,CAAC;CACJ;AA3FD,oCA2FC"}
1
+ {"version":3,"file":"localeObject.js","sourceRoot":"","sources":["../../src/intl/localeObject.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA0C;AAE1C;;;;GAIG;AACH,MAAa,YAAY;IACrB;;;OAGG;IACK,UAAU,CAAS;IAE3B;;;OAGG;IACI,QAAQ,CAAU;IAEzB,YAAoB,UAAkB;QAClC,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACpD;QAED,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEjD,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,2FAA2F;YAC3F,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAEvE,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACxD;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;SAC9B;IACL,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,WAAW,CAAC,UAAkB;QACxC,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,sBAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAEtE,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,GAAG,CAAC,CAAC;SAC3E;QAED,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,YAAY;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,gBAAgB;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,SAAS;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,qBAAqB;QACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,YAAY;QACf,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,EAAE;YACT,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;SACjC;QAED,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,aAA2B;QACtC,OAAO,aAAa,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC;IAC5D,CAAC;CACJ;AAnGD,oCAmGC"}
@@ -0,0 +1,4 @@
1
+ import type { NewsroomLanguageSettings } from '@prezly/sdk';
2
+ import type { AlternateLanguageLink } from '../components-nextjs/PageSeo';
3
+ import type { LocaleObject } from '../intl';
4
+ export declare function getAlternateLanguageLinks(languages: NewsroomLanguageSettings[], getTranslationUrl: (locale: LocaleObject) => string | undefined, createHref: (locale: LocaleObject, translationUrl: string) => string): AlternateLanguageLink[];
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAlternateLanguageLinks = void 0;
4
+ const intl_1 = require("../intl");
5
+ const createAlternateLanguageLink_1 = require("./utils/createAlternateLanguageLink");
6
+ const getDefaultHrefLang_1 = require("./utils/getDefaultHrefLang");
7
+ const mapLanguagesToLocales_1 = require("./utils/mapLanguagesToLocales");
8
+ function getAlternateLanguageLinks(languages, getTranslationUrl, createHref) {
9
+ const alternateLanguageFallbackGlobalLinks = [];
10
+ const alternateLanguageLocales = [];
11
+ const [localesByLangCode, defaultLangLocale] = (0, mapLanguagesToLocales_1.mapLanguagesToLocales)(languages);
12
+ localesByLangCode.forEach((locales, globalLocaleCode) => {
13
+ let hasGlobalLocale = false;
14
+ locales.forEach((locale) => {
15
+ alternateLanguageLocales.push(locale);
16
+ if (!hasGlobalLocale && locale.isGlobal) {
17
+ hasGlobalLocale = true;
18
+ }
19
+ });
20
+ if (!hasGlobalLocale) {
21
+ const localesArray = Array.from(locales.values());
22
+ const fallback = (0, intl_1.getFallbackLocale)(globalLocaleCode, localesArray) ?? localesArray.at(0);
23
+ if (fallback) {
24
+ const fallbackLink = (0, createAlternateLanguageLink_1.createAlternateLanguageLink)(fallback, getTranslationUrl, createHref);
25
+ if (fallbackLink) {
26
+ alternateLanguageFallbackGlobalLinks.push({
27
+ ...fallbackLink,
28
+ hrefLang: globalLocaleCode,
29
+ });
30
+ }
31
+ }
32
+ }
33
+ });
34
+ let languageAlternates = alternateLanguageLocales.map((locale) => (0, createAlternateLanguageLink_1.createAlternateLanguageLink)(locale, getTranslationUrl, createHref));
35
+ languageAlternates = languageAlternates.concat(alternateLanguageFallbackGlobalLinks);
36
+ const xDefault = (0, getDefaultHrefLang_1.getDefaultHrefLang)({
37
+ alternateLanguageLocales,
38
+ alternateLanguageFallbackGlobalLinks,
39
+ defaultLangLocale,
40
+ getTranslationUrl,
41
+ createHref,
42
+ });
43
+ languageAlternates.push(xDefault);
44
+ return languageAlternates
45
+ .filter((link) => Boolean(link))
46
+ .sort((a, b) => a.hrefLang.localeCompare(b.hrefLang));
47
+ }
48
+ exports.getAlternateLanguageLinks = getAlternateLanguageLinks;
49
+ //# sourceMappingURL=getAlternateLanguageLinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAlternateLanguageLinks.js","sourceRoot":"","sources":["../../src/seo/getAlternateLanguageLinks.ts"],"names":[],"mappings":";;;AAIA,kCAA4C;AAE5C,qFAAkF;AAClF,mEAAgE;AAChE,yEAAsE;AAEtE,SAAgB,yBAAyB,CACrC,SAAqC,EACrC,iBAA+D,EAC/D,UAAoE;IAEpE,MAAM,oCAAoC,GAA4B,EAAE,CAAC;IACzE,MAAM,wBAAwB,GAAmB,EAAE,CAAC;IACpD,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,IAAA,6CAAqB,EAAC,SAAS,CAAC,CAAC;IAEhF,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE;QACpD,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACvB,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEtC,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACrC,eAAe,GAAG,IAAI,CAAC;aAC1B;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE;YAClB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,MAAM,QAAQ,GACV,IAAA,wBAAiB,EAAC,gBAAgB,EAAE,YAAY,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAE5E,IAAI,QAAQ,EAAE;gBACV,MAAM,YAAY,GAAG,IAAA,yDAA2B,EAC5C,QAAQ,EACR,iBAAiB,EACjB,UAAU,CACb,CAAC;gBAEF,IAAI,YAAY,EAAE;oBACd,oCAAoC,CAAC,IAAI,CAAC;wBACtC,GAAG,YAAY;wBACf,QAAQ,EAAE,gBAAgB;qBAC7B,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,kBAAkB,GAA6C,wBAAwB,CAAC,GAAG,CAC3F,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,yDAA2B,EAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC,CACjF,CAAC;IAEF,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;IAErF,MAAM,QAAQ,GAAG,IAAA,uCAAkB,EAAC;QAChC,wBAAwB;QACxB,oCAAoC;QACpC,iBAAiB;QACjB,iBAAiB;QACjB,UAAU;KACb,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElC,OAAO,kBAAkB;SACpB,MAAM,CAAC,CAAC,IAAI,EAA2C,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACxE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9D,CAAC;AA7DD,8DA6DC"}
@@ -0,0 +1 @@
1
+ export * from './getAlternateLanguageLinks';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./getAlternateLanguageLinks"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C"}
@@ -0,0 +1,5 @@
1
+ import type { LocaleObject } from '../../intl';
2
+ export declare function createAlternateLanguageLink(locale: LocaleObject, getTranslationUrl: (locale: LocaleObject) => string | undefined, createHref: (locale: LocaleObject, translationUrl: string) => string): {
3
+ hrefLang: string;
4
+ href: string;
5
+ } | undefined;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAlternateLanguageLink = void 0;
4
+ function createAlternateLanguageLink(locale, getTranslationUrl, createHref) {
5
+ const translationUrl = getTranslationUrl(locale);
6
+ if (!translationUrl) {
7
+ return undefined;
8
+ }
9
+ return {
10
+ hrefLang: locale.toHyphenCode(),
11
+ href: createHref(locale, translationUrl),
12
+ };
13
+ }
14
+ exports.createAlternateLanguageLink = createAlternateLanguageLink;
15
+ //# sourceMappingURL=createAlternateLanguageLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createAlternateLanguageLink.js","sourceRoot":"","sources":["../../../src/seo/utils/createAlternateLanguageLink.ts"],"names":[],"mappings":";;;AAEA,SAAgB,2BAA2B,CACvC,MAAoB,EACpB,iBAA+D,EAC/D,UAAoE;IAEpE,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,CAAC,cAAc,EAAE;QACjB,OAAO,SAAS,CAAC;KACpB;IAED,OAAO;QACH,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE;QAC/B,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC;KAC3C,CAAC;AACN,CAAC;AAfD,kEAeC"}
@@ -0,0 +1,11 @@
1
+ import type { AlternateLanguageLink } from '../../components-nextjs/PageSeo';
2
+ import type { LocaleObject } from '../../intl';
3
+ interface Options {
4
+ alternateLanguageLocales: LocaleObject[];
5
+ alternateLanguageFallbackGlobalLinks: AlternateLanguageLink[];
6
+ defaultLangLocale: LocaleObject | undefined;
7
+ getTranslationUrl: (locale: LocaleObject) => string | undefined;
8
+ createHref: (locale: LocaleObject, translationUrl: string) => string;
9
+ }
10
+ export declare function getDefaultHrefLang({ createHref, defaultLangLocale, getTranslationUrl, alternateLanguageFallbackGlobalLinks, alternateLanguageLocales, }: Options): AlternateLanguageLink | undefined;
11
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefaultHrefLang = void 0;
4
+ const createAlternateLanguageLink_1 = require("./createAlternateLanguageLink");
5
+ function getDefaultHrefLang({ createHref, defaultLangLocale, getTranslationUrl, alternateLanguageFallbackGlobalLinks, alternateLanguageLocales, }) {
6
+ const engFallback = 'en';
7
+ const hrefLang = 'x-default';
8
+ const fallbackFromLocales = alternateLanguageLocales.find((alternate) => alternate.isGlobal && alternate.toNeutralLanguageCode() === engFallback);
9
+ if (fallbackFromLocales) {
10
+ const link = (0, createAlternateLanguageLink_1.createAlternateLanguageLink)(fallbackFromLocales, getTranslationUrl, createHref);
11
+ if (link) {
12
+ return { ...link, hrefLang };
13
+ }
14
+ }
15
+ const fallbackFromGlobalLocales = alternateLanguageFallbackGlobalLinks.find((alternate) => alternate.hrefLang === engFallback);
16
+ if (fallbackFromGlobalLocales) {
17
+ return { ...fallbackFromGlobalLocales, hrefLang };
18
+ }
19
+ if (defaultLangLocale) {
20
+ const link = (0, createAlternateLanguageLink_1.createAlternateLanguageLink)(defaultLangLocale, getTranslationUrl, createHref);
21
+ if (link) {
22
+ return { ...link, hrefLang };
23
+ }
24
+ }
25
+ return undefined;
26
+ }
27
+ exports.getDefaultHrefLang = getDefaultHrefLang;
28
+ //# sourceMappingURL=getDefaultHrefLang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDefaultHrefLang.js","sourceRoot":"","sources":["../../../src/seo/utils/getDefaultHrefLang.ts"],"names":[],"mappings":";;;AAGA,+EAA4E;AAU5E,SAAgB,kBAAkB,CAAC,EAC/B,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,oCAAoC,EACpC,wBAAwB,GAClB;IACN,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,WAAW,CAAC;IAE7B,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,IAAI,CACrD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,qBAAqB,EAAE,KAAK,WAAW,CACzF,CAAC;IAEF,IAAI,mBAAmB,EAAE;QACrB,MAAM,IAAI,GAAG,IAAA,yDAA2B,EACpC,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,CACb,CAAC;QAEF,IAAI,IAAI,EAAE;YACN,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;SAChC;KACJ;IAED,MAAM,yBAAyB,GAAG,oCAAoC,CAAC,IAAI,CACvE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,WAAW,CACpD,CAAC;IAEF,IAAI,yBAAyB,EAAE;QAC3B,OAAO,EAAE,GAAG,yBAAyB,EAAE,QAAQ,EAAE,CAAC;KACrD;IAED,IAAI,iBAAiB,EAAE;QACnB,MAAM,IAAI,GAAG,IAAA,yDAA2B,EAAC,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAE3F,IAAI,IAAI,EAAE;YACN,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;SAChC;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AA3CD,gDA2CC"}
@@ -0,0 +1,4 @@
1
+ import type { NewsroomLanguageSettings } from '@prezly/sdk';
2
+ import type { LangCode, LocaleCode } from '../../intl';
3
+ import { LocaleObject } from '../../intl';
4
+ export declare function mapLanguagesToLocales(languages: NewsroomLanguageSettings[]): readonly [Map<LangCode, Map<LocaleCode, LocaleObject>>, LocaleObject | undefined];
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapLanguagesToLocales = void 0;
4
+ const intl_1 = require("../../intl");
5
+ function mapLanguagesToLocales(languages) {
6
+ let defaultLangLocale;
7
+ const localesByLangCode = new Map();
8
+ languages.forEach((language) => {
9
+ const languageLocale = intl_1.LocaleObject.fromAnyCode(language.code);
10
+ const globalLanguageCode = languageLocale.toNeutralLanguageCode();
11
+ let currentLocale = localesByLangCode.get(globalLanguageCode);
12
+ if (!currentLocale) {
13
+ currentLocale = new Map([[languageLocale.toHyphenCode(), languageLocale]]);
14
+ localesByLangCode.set(globalLanguageCode, currentLocale);
15
+ }
16
+ currentLocale.set(languageLocale.toHyphenCode(), languageLocale);
17
+ if (language.is_default) {
18
+ defaultLangLocale = languageLocale;
19
+ }
20
+ });
21
+ return [localesByLangCode, defaultLangLocale];
22
+ }
23
+ exports.mapLanguagesToLocales = mapLanguagesToLocales;
24
+ //# sourceMappingURL=mapLanguagesToLocales.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapLanguagesToLocales.js","sourceRoot":"","sources":["../../../src/seo/utils/mapLanguagesToLocales.ts"],"names":[],"mappings":";;;AAGA,qCAA0C;AAE1C,SAAgB,qBAAqB,CAAC,SAAqC;IACvE,IAAI,iBAA2C,CAAC;IAChD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA2C,CAAC;IAE7E,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC3B,MAAM,cAAc,GAAG,mBAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,kBAAkB,GAAG,cAAc,CAAC,qBAAqB,EAAE,CAAC;QAClE,IAAI,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAE9D,IAAI,CAAC,aAAa,EAAE;YAChB,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;YAC3E,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;SAC5D;QAED,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,cAAc,CAAC,CAAC;QAEjE,IAAI,QAAQ,CAAC,UAAU,EAAE;YACrB,iBAAiB,GAAG,cAAc,CAAC;SACtC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,iBAAiB,EAAE,iBAAiB,CAAU,CAAC;AAC3D,CAAC;AAtBD,sDAsBC"}