@redneckz/wildless-cms-uni-blocks 0.14.331 → 0.14.333

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 (58) hide show
  1. package/bundle/Env.d.ts +7 -0
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +5 -3
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/bundle/components/ProductGallery/ProductGalleryContent.d.ts +3 -7
  6. package/bundle/ui-kit/RichText/RichTextProps.d.ts +0 -1
  7. package/dist/Env.d.ts +7 -0
  8. package/dist/Env.js +13 -0
  9. package/dist/Env.js.map +1 -0
  10. package/dist/components/ContentPage/renderContentPageHead.js +6 -1
  11. package/dist/components/ContentPage/renderContentPageHead.js.map +1 -1
  12. package/dist/components/ProductGallery/ProductGalleryContent.d.ts +3 -7
  13. package/dist/ui-kit/RichText/RichText.js +4 -2
  14. package/dist/ui-kit/RichText/RichText.js.map +1 -1
  15. package/dist/ui-kit/RichText/RichTextProps.d.ts +0 -1
  16. package/lib/Env.d.ts +7 -0
  17. package/lib/Env.js +11 -0
  18. package/lib/Env.js.map +1 -0
  19. package/lib/components/ContentPage/renderContentPageHead.js +6 -1
  20. package/lib/components/ContentPage/renderContentPageHead.js.map +1 -1
  21. package/lib/components/ProductGallery/ProductGalleryContent.d.ts +3 -7
  22. package/lib/ui-kit/RichText/RichText.js +4 -2
  23. package/lib/ui-kit/RichText/RichText.js.map +1 -1
  24. package/lib/ui-kit/RichText/RichTextProps.d.ts +0 -1
  25. package/mobile/bundle/Env.d.ts +7 -0
  26. package/mobile/bundle/bundle.umd.js +5 -3
  27. package/mobile/bundle/bundle.umd.min.js +1 -1
  28. package/mobile/bundle/components/ProductGallery/ProductGalleryContent.d.ts +3 -7
  29. package/mobile/bundle/ui-kit/RichText/RichTextProps.d.ts +0 -1
  30. package/mobile/dist/Env.d.ts +7 -0
  31. package/mobile/dist/Env.js +13 -0
  32. package/mobile/dist/Env.js.map +1 -0
  33. package/mobile/dist/components/ContentPage/renderContentPageHead.js +6 -1
  34. package/mobile/dist/components/ContentPage/renderContentPageHead.js.map +1 -1
  35. package/mobile/dist/components/ProductGallery/ProductGalleryContent.d.ts +3 -7
  36. package/mobile/dist/ui-kit/RichText/RichText.js +4 -2
  37. package/mobile/dist/ui-kit/RichText/RichText.js.map +1 -1
  38. package/mobile/dist/ui-kit/RichText/RichTextProps.d.ts +0 -1
  39. package/mobile/lib/Env.d.ts +7 -0
  40. package/mobile/lib/Env.js +11 -0
  41. package/mobile/lib/Env.js.map +1 -0
  42. package/mobile/lib/components/ContentPage/renderContentPageHead.js +6 -1
  43. package/mobile/lib/components/ContentPage/renderContentPageHead.js.map +1 -1
  44. package/mobile/lib/components/ProductGallery/ProductGalleryContent.d.ts +3 -7
  45. package/mobile/lib/ui-kit/RichText/RichText.js +4 -2
  46. package/mobile/lib/ui-kit/RichText/RichText.js.map +1 -1
  47. package/mobile/lib/ui-kit/RichText/RichTextProps.d.ts +0 -1
  48. package/mobile/src/Env.ts +21 -0
  49. package/mobile/src/components/ContentPage/renderContentPageHead.tsx +9 -1
  50. package/mobile/src/components/ProductGallery/ProductGalleryContent.ts +3 -7
  51. package/mobile/src/ui-kit/RichText/RichText.tsx +5 -3
  52. package/mobile/src/ui-kit/RichText/RichTextProps.ts +0 -1
  53. package/package.json +1 -1
  54. package/src/Env.ts +21 -0
  55. package/src/components/ContentPage/renderContentPageHead.tsx +9 -1
  56. package/src/components/ProductGallery/ProductGalleryContent.ts +3 -7
  57. package/src/ui-kit/RichText/RichText.tsx +5 -3
  58. package/src/ui-kit/RichText/RichTextProps.ts +0 -1
@@ -1,12 +1,8 @@
1
+ import { type DescriptionProps, type TitleProps } from '../../model/HeadlineType';
1
2
  import { type BaseProductTileContent } from '../../ui-kit/BaseProductTile/BaseProductTileContent';
2
3
  import { type UniBlockContent } from '../../UniBlock/UniBlockProps';
3
4
  /** @title Кнопка под слайдом */
4
- export interface ProductGalleryNav {
5
- /** @title Заголовок */
6
- title: string;
7
- /** @title Описание */
8
- description: string;
9
- }
5
+ export declare type ProductGalleryNav = TitleProps & DescriptionProps;
10
6
  /**
11
7
  * @title Слайд
12
8
  */
@@ -14,7 +10,7 @@ export interface ProductSlide {
14
10
  /** @title Превью содержимого слайда на навигации */
15
11
  nav?: ProductGalleryNav;
16
12
  /** @title Содержимое слайда */
17
- productBlock: BaseProductTileContent;
13
+ productBlock?: BaseProductTileContent;
18
14
  }
19
15
  /**
20
16
  * @title Продуктовая галерея
@@ -1,7 +1,6 @@
1
1
  declare type HTML = string;
2
2
  /**
3
3
  * @title Стиль форматированного текста
4
- * @default "primary"
5
4
  * @enumNames ["Основной", "Второстепенный"]
6
5
  */
7
6
  export declare type RichVersion = '' | 'secondary';
@@ -0,0 +1,7 @@
1
+ export interface Env {
2
+ SITE_URL?: string;
3
+ }
4
+ export declare const env: Env & {
5
+ _: Env;
6
+ setup: (_: Env) => void;
7
+ };
@@ -0,0 +1,13 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.env = void 0;
3
+ exports.env = new Proxy({
4
+ _: {},
5
+ setup(_) {
6
+ this._ = _;
7
+ },
8
+ }, {
9
+ get(target, p) {
10
+ return target._[p] || target[p];
11
+ },
12
+ });
13
+ //# sourceMappingURL=Env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Env.js","sourceRoot":"","sources":["../src/Env.ts"],"names":[],"mappings":";;AAIa,QAAA,GAAG,GAGZ,IAAI,KAAK,CACX;IACE,CAAC,EAAE,EAAS;IAEZ,KAAK,CAAC,CAAM;QACV,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,EACD;IACE,GAAG,CAAC,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;CACF,CACF,CAAC"}
@@ -1,6 +1,8 @@
1
1
  Object.defineProperty(exports, "__esModule", { value: true });
2
2
  exports.renderContentPageHead = void 0;
3
3
  const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
+ const Env_1 = require("../../Env");
5
+ const url_1 = require("../../utils/url");
4
6
  function renderContentPageHead(data) {
5
7
  const { title, main, og, twitter, jsonLd } = data;
6
8
  const { description, keywords, canonical, robots } = main || {};
@@ -12,7 +14,7 @@ function renderContentPageHead(data) {
12
14
  robots ? (0, jsx_runtime_1.jsx)("meta", { name: "robots", content: robots.join(',') }, "robots") : null,
13
15
  renderOpenGraph(og),
14
16
  renderTwitter(twitter),
15
- canonical ? (0, jsx_runtime_1.jsx)("link", { rel: "canonical", href: canonical }, "canonical") : null,
17
+ canonical ? ((0, jsx_runtime_1.jsx)("link", { rel: "canonical", href: applyCanonicalHref(canonical) }, "canonical")) : null,
16
18
  jsonLd ? ((0, jsx_runtime_1.jsx)("script", { type: "application/ld+json", children: jsonLd }, "jsonLd")) : null,
17
19
  ].filter(Boolean);
18
20
  }
@@ -27,4 +29,7 @@ function renderTwitter(twitter) {
27
29
  ? Object.entries(twitter).map(([key, value]) => ((0, jsx_runtime_1.jsx)("meta", { name: `twitter:${key}`, content: value }, `twitter_${key}`)))
28
30
  : null;
29
31
  }
32
+ function applyCanonicalHref(href) {
33
+ return Env_1.env.SITE_URL && href && !(0, url_1.isURL)(href) ? (0, url_1.joinPath)(Env_1.env.SITE_URL, href) : href;
34
+ }
30
35
  //# sourceMappingURL=renderContentPageHead.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderContentPageHead.js","sourceRoot":"","sources":["../../../src/components/ContentPage/renderContentPageHead.tsx"],"names":[],"mappings":";;;AAGA,SAAgB,qBAAqB,CAAC,IAAuC;IAC3E,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IAEhE,OAAO;QACL,4CAAoB,KAAK,IAAd,OAAO,CAAgB;QAClC,iCAAqB,IAAI,EAAC,UAAU,EAAC,OAAO,EAAC,qCAAqC,IAAxE,UAAU,CAAiE;QACrF,WAAW,CAAC,CAAC,CAAC,iCAAwB,IAAI,EAAC,aAAa,EAAC,OAAO,EAAE,WAAW,IAArD,aAAa,CAA4C,CAAC,CAAC,CAAC,IAAI;QACxF,QAAQ,CAAC,CAAC,CAAC,iCAAqB,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAtD,UAAU,CAAgD,CAAC,CAAC,CAAC,IAAI;QACtF,MAAM,CAAC,CAAC,CAAC,iCAAmB,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAhD,QAAQ,CAA4C,CAAC,CAAC,CAAC,IAAI;QAC9E,eAAe,CAAC,EAAE,CAAC;QACnB,aAAa,CAAC,OAAO,CAAC;QACtB,SAAS,CAAC,CAAC,CAAC,iCAAsB,GAAG,EAAC,WAAW,EAAC,IAAI,EAAE,SAAS,IAA3C,WAAW,CAAoC,CAAC,CAAC,CAAC,IAAI;QAC5E,MAAM,CAAC,CAAC,CAAC,CACP,mCAAqB,IAAI,EAAC,qBAAqB,YAC5C,MAAM,IADG,QAAQ,CAEX,CACV,CAAC,CAAC,CAAC,IAAI;KACT,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpB,CAAC;AAnBD,sDAmBC;AAED,SAAS,eAAe,CAAC,EAAsC;IAC7D,OAAO,EAAE;QACP,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACvC,iCAAwB,QAAQ,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,IAAlD,MAAM,GAAG,EAAE,CAA2C,CAClE,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,OAA2C;IAChE,OAAO,OAAO;QACZ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAC5C,iCAA6B,IAAI,EAAE,WAAW,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,IAAxD,WAAW,GAAG,EAAE,CAA4C,CACxE,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"renderContentPageHead.js","sourceRoot":"","sources":["../../../src/components/ContentPage/renderContentPageHead.tsx"],"names":[],"mappings":";;;AAAA,mCAAgC;AAGhC,yCAAkD;AAElD,SAAgB,qBAAqB,CAAC,IAAuC;IAC3E,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IAEhE,OAAO;QACL,4CAAoB,KAAK,IAAd,OAAO,CAAgB;QAClC,iCAAqB,IAAI,EAAC,UAAU,EAAC,OAAO,EAAC,qCAAqC,IAAxE,UAAU,CAAiE;QACrF,WAAW,CAAC,CAAC,CAAC,iCAAwB,IAAI,EAAC,aAAa,EAAC,OAAO,EAAE,WAAW,IAArD,aAAa,CAA4C,CAAC,CAAC,CAAC,IAAI;QACxF,QAAQ,CAAC,CAAC,CAAC,iCAAqB,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAtD,UAAU,CAAgD,CAAC,CAAC,CAAC,IAAI;QACtF,MAAM,CAAC,CAAC,CAAC,iCAAmB,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAhD,QAAQ,CAA4C,CAAC,CAAC,CAAC,IAAI;QAC9E,eAAe,CAAC,EAAE,CAAC;QACnB,aAAa,CAAC,OAAO,CAAC;QACtB,SAAS,CAAC,CAAC,CAAC,CACV,iCAAsB,GAAG,EAAC,WAAW,EAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,IAA/D,WAAW,CAAwD,CAC9E,CAAC,CAAC,CAAC,IAAI;QACR,MAAM,CAAC,CAAC,CAAC,CACP,mCAAqB,IAAI,EAAC,qBAAqB,YAC5C,MAAM,IADG,QAAQ,CAEX,CACV,CAAC,CAAC,CAAC,IAAI;KACT,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpB,CAAC;AArBD,sDAqBC;AAED,SAAS,eAAe,CAAC,EAAsC;IAC7D,OAAO,EAAE;QACP,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACvC,iCAAwB,QAAQ,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,IAAlD,MAAM,GAAG,EAAE,CAA2C,CAClE,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,OAA2C;IAChE,OAAO,OAAO;QACZ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAC5C,iCAA6B,IAAI,EAAE,WAAW,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,IAAxD,WAAW,GAAG,EAAE,CAA4C,CACxE,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa;IACvC,OAAO,SAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAA,WAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,cAAQ,EAAC,SAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpF,CAAC"}
@@ -1,12 +1,8 @@
1
+ import { type DescriptionProps, type TitleProps } from '../../model/HeadlineType';
1
2
  import { type BaseProductTileContent } from '../../ui-kit/BaseProductTile/BaseProductTileContent';
2
3
  import { type UniBlockContent } from '../../UniBlock/UniBlockProps';
3
4
  /** @title Кнопка под слайдом */
4
- export interface ProductGalleryNav {
5
- /** @title Заголовок */
6
- title: string;
7
- /** @title Описание */
8
- description: string;
9
- }
5
+ export declare type ProductGalleryNav = TitleProps & DescriptionProps;
10
6
  /**
11
7
  * @title Слайд
12
8
  */
@@ -14,7 +10,7 @@ export interface ProductSlide {
14
10
  /** @title Превью содержимого слайда на навигации */
15
11
  nav?: ProductGalleryNav;
16
12
  /** @title Содержимое слайда */
17
- productBlock: BaseProductTileContent;
13
+ productBlock?: BaseProductTileContent;
18
14
  }
19
15
  /**
20
16
  * @title Продуктовая галерея
@@ -4,9 +4,11 @@ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
4
  const uni_jsx_1 = require("@redneckz/uni-jsx");
5
5
  const style_1 = require("../../utils/style");
6
6
  const getHtmlText_1 = require("./getHtmlText");
7
+ const EMPTY_HTML = '<p><br></p>';
7
8
  exports.RichText = (0, uni_jsx_1.JSX)((props) => {
8
- const { __html = '', richVersion = '' } = props;
9
+ const { __html, richVersion = '' } = props;
10
+ return __html && (0, getHtmlText_1.getHtmlText)(__html) !== EMPTY_HTML ? (
9
11
  /* Attribute [data-component] need for correct render in wcms editor. Do not remove. */
10
- return (0, getHtmlText_1.getHtmlText)(__html) ? ((0, jsx_runtime_1.jsx)("div", { "data-component": "rich-text-container", children: (0, jsx_runtime_1.jsx)("div", { className: (0, style_1.style)(richVersion, 'md-container'), dangerouslySetInnerHTML: { __html } }) })) : null;
12
+ (0, jsx_runtime_1.jsx)("div", { "data-component": "rich-text-container", children: (0, jsx_runtime_1.jsx)("div", { className: (0, style_1.style)(richVersion, 'md-container'), dangerouslySetInnerHTML: { __html } }) })) : null;
11
13
  });
12
14
  //# sourceMappingURL=RichText.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.js","sourceRoot":"","sources":["../../../src/ui-kit/RichText/RichText.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,6CAA0C;AAC1C,+CAA4C;AAG/B,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAgB,CAAC,KAAK,EAAE,EAAE;IACnD,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAEhD,uFAAuF;IACvF,OAAO,IAAA,yBAAW,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAC3B,kDAAoB,qBAAqB,YACvC,gCAAK,SAAS,EAAE,IAAA,aAAK,EAAC,WAAW,EAAE,cAAc,CAAC,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAI,GACvF,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"RichText.js","sourceRoot":"","sources":["../../../src/ui-kit/RichText/RichText.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,6CAA0C;AAC1C,+CAA4C;AAG5C,MAAM,UAAU,GAAG,aAAa,CAAC;AAEpB,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAgB,CAAC,KAAK,EAAE,EAAE;IACnD,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAE3C,OAAO,MAAM,IAAI,IAAA,yBAAW,EAAC,MAAM,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC;IACpD,uFAAuF;IACvF,kDAAoB,qBAAqB,YACvC,gCAAK,SAAS,EAAE,IAAA,aAAK,EAAC,WAAW,EAAE,cAAc,CAAC,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAI,GACvF,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  declare type HTML = string;
2
2
  /**
3
3
  * @title Стиль форматированного текста
4
- * @default "primary"
5
4
  * @enumNames ["Основной", "Второстепенный"]
6
5
  */
7
6
  export declare type RichVersion = '' | 'secondary';
@@ -0,0 +1,7 @@
1
+ export interface Env {
2
+ SITE_URL?: string;
3
+ }
4
+ export declare const env: Env & {
5
+ _: Env;
6
+ setup: (_: Env) => void;
7
+ };
@@ -0,0 +1,11 @@
1
+ export const env = new Proxy({
2
+ _: {},
3
+ setup(_) {
4
+ this._ = _;
5
+ },
6
+ }, {
7
+ get(target, p) {
8
+ return target._[p] || target[p];
9
+ },
10
+ });
11
+ //# sourceMappingURL=Env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Env.js","sourceRoot":"","sources":["../src/Env.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,GAAG,GAGZ,IAAI,KAAK,CACX;IACE,CAAC,EAAE,EAAS;IAEZ,KAAK,CAAC,CAAM;QACV,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,EACD;IACE,GAAG,CAAC,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;CACF,CACF,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
2
+ import { env } from '../../Env.js';
3
+ import { isURL, joinPath } from '../../utils/url.js';
2
4
  export function renderContentPageHead(data) {
3
5
  const { title, main, og, twitter, jsonLd } = data;
4
6
  const { description, keywords, canonical, robots } = main || {};
@@ -10,7 +12,7 @@ export function renderContentPageHead(data) {
10
12
  robots ? _jsx("meta", { name: "robots", content: robots.join(',') }, "robots") : null,
11
13
  renderOpenGraph(og),
12
14
  renderTwitter(twitter),
13
- canonical ? _jsx("link", { rel: "canonical", href: canonical }, "canonical") : null,
15
+ canonical ? (_jsx("link", { rel: "canonical", href: applyCanonicalHref(canonical) }, "canonical")) : null,
14
16
  jsonLd ? (_jsx("script", { type: "application/ld+json", children: jsonLd }, "jsonLd")) : null,
15
17
  ].filter(Boolean);
16
18
  }
@@ -24,4 +26,7 @@ function renderTwitter(twitter) {
24
26
  ? Object.entries(twitter).map(([key, value]) => (_jsx("meta", { name: `twitter:${key}`, content: value }, `twitter_${key}`)))
25
27
  : null;
26
28
  }
29
+ function applyCanonicalHref(href) {
30
+ return env.SITE_URL && href && !isURL(href) ? joinPath(env.SITE_URL, href) : href;
31
+ }
27
32
  //# sourceMappingURL=renderContentPageHead.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderContentPageHead.js","sourceRoot":"","sources":["../../../src/components/ContentPage/renderContentPageHead.tsx"],"names":[],"mappings":";AAGA,MAAM,UAAU,qBAAqB,CAAC,IAAuC;IAC3E,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IAEhE,OAAO;QACL,0BAAoB,KAAK,IAAd,OAAO,CAAgB;QAClC,eAAqB,IAAI,EAAC,UAAU,EAAC,OAAO,EAAC,qCAAqC,IAAxE,UAAU,CAAiE;QACrF,WAAW,CAAC,CAAC,CAAC,eAAwB,IAAI,EAAC,aAAa,EAAC,OAAO,EAAE,WAAW,IAArD,aAAa,CAA4C,CAAC,CAAC,CAAC,IAAI;QACxF,QAAQ,CAAC,CAAC,CAAC,eAAqB,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAtD,UAAU,CAAgD,CAAC,CAAC,CAAC,IAAI;QACtF,MAAM,CAAC,CAAC,CAAC,eAAmB,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAhD,QAAQ,CAA4C,CAAC,CAAC,CAAC,IAAI;QAC9E,eAAe,CAAC,EAAE,CAAC;QACnB,aAAa,CAAC,OAAO,CAAC;QACtB,SAAS,CAAC,CAAC,CAAC,eAAsB,GAAG,EAAC,WAAW,EAAC,IAAI,EAAE,SAAS,IAA3C,WAAW,CAAoC,CAAC,CAAC,CAAC,IAAI;QAC5E,MAAM,CAAC,CAAC,CAAC,CACP,iBAAqB,IAAI,EAAC,qBAAqB,YAC5C,MAAM,IADG,QAAQ,CAEX,CACV,CAAC,CAAC,CAAC,IAAI;KACT,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,EAAsC;IAC7D,OAAO,EAAE;QACP,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACvC,eAAwB,QAAQ,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,IAAlD,MAAM,GAAG,EAAE,CAA2C,CAClE,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,OAA2C;IAChE,OAAO,OAAO;QACZ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAC5C,eAA6B,IAAI,EAAE,WAAW,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,IAAxD,WAAW,GAAG,EAAE,CAA4C,CACxE,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"renderContentPageHead.js","sourceRoot":"","sources":["../../../src/components/ContentPage/renderContentPageHead.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGhC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,UAAU,qBAAqB,CAAC,IAAuC;IAC3E,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IAEhE,OAAO;QACL,0BAAoB,KAAK,IAAd,OAAO,CAAgB;QAClC,eAAqB,IAAI,EAAC,UAAU,EAAC,OAAO,EAAC,qCAAqC,IAAxE,UAAU,CAAiE;QACrF,WAAW,CAAC,CAAC,CAAC,eAAwB,IAAI,EAAC,aAAa,EAAC,OAAO,EAAE,WAAW,IAArD,aAAa,CAA4C,CAAC,CAAC,CAAC,IAAI;QACxF,QAAQ,CAAC,CAAC,CAAC,eAAqB,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAtD,UAAU,CAAgD,CAAC,CAAC,CAAC,IAAI;QACtF,MAAM,CAAC,CAAC,CAAC,eAAmB,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAhD,QAAQ,CAA4C,CAAC,CAAC,CAAC,IAAI;QAC9E,eAAe,CAAC,EAAE,CAAC;QACnB,aAAa,CAAC,OAAO,CAAC;QACtB,SAAS,CAAC,CAAC,CAAC,CACV,eAAsB,GAAG,EAAC,WAAW,EAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,IAA/D,WAAW,CAAwD,CAC9E,CAAC,CAAC,CAAC,IAAI;QACR,MAAM,CAAC,CAAC,CAAC,CACP,iBAAqB,IAAI,EAAC,qBAAqB,YAC5C,MAAM,IADG,QAAQ,CAEX,CACV,CAAC,CAAC,CAAC,IAAI;KACT,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,EAAsC;IAC7D,OAAO,EAAE;QACP,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACvC,eAAwB,QAAQ,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,IAAlD,MAAM,GAAG,EAAE,CAA2C,CAClE,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,OAA2C;IAChE,OAAO,OAAO;QACZ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAC5C,eAA6B,IAAI,EAAE,WAAW,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,IAAxD,WAAW,GAAG,EAAE,CAA4C,CACxE,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa;IACvC,OAAO,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpF,CAAC"}
@@ -1,12 +1,8 @@
1
+ import { type DescriptionProps, type TitleProps } from '../../model/HeadlineType';
1
2
  import { type BaseProductTileContent } from '../../ui-kit/BaseProductTile/BaseProductTileContent';
2
3
  import { type UniBlockContent } from '../../UniBlock/UniBlockProps';
3
4
  /** @title Кнопка под слайдом */
4
- export interface ProductGalleryNav {
5
- /** @title Заголовок */
6
- title: string;
7
- /** @title Описание */
8
- description: string;
9
- }
5
+ export declare type ProductGalleryNav = TitleProps & DescriptionProps;
10
6
  /**
11
7
  * @title Слайд
12
8
  */
@@ -14,7 +10,7 @@ export interface ProductSlide {
14
10
  /** @title Превью содержимого слайда на навигации */
15
11
  nav?: ProductGalleryNav;
16
12
  /** @title Содержимое слайда */
17
- productBlock: BaseProductTileContent;
13
+ productBlock?: BaseProductTileContent;
18
14
  }
19
15
  /**
20
16
  * @title Продуктовая галерея
@@ -2,9 +2,11 @@ import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
3
  import { style } from '../../utils/style.js';
4
4
  import { getHtmlText } from './getHtmlText.js';
5
+ const EMPTY_HTML = '<p><br></p>';
5
6
  export const RichText = JSX((props) => {
6
- const { __html = '', richVersion = '' } = props;
7
+ const { __html, richVersion = '' } = props;
8
+ return __html && getHtmlText(__html) !== EMPTY_HTML ? (
7
9
  /* Attribute [data-component] need for correct render in wcms editor. Do not remove. */
8
- return getHtmlText(__html) ? (_jsx("div", { "data-component": "rich-text-container", children: _jsx("div", { className: style(richVersion, 'md-container'), dangerouslySetInnerHTML: { __html } }) })) : null;
10
+ _jsx("div", { "data-component": "rich-text-container", children: _jsx("div", { className: style(richVersion, 'md-container'), dangerouslySetInnerHTML: { __html } }) })) : null;
9
11
  });
10
12
  //# sourceMappingURL=RichText.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.js","sourceRoot":"","sources":["../../../src/ui-kit/RichText/RichText.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAgB,CAAC,KAAK,EAAE,EAAE;IACnD,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAEhD,uFAAuF;IACvF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAC3B,gCAAoB,qBAAqB,YACvC,cAAK,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAI,GACvF,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"RichText.js","sourceRoot":"","sources":["../../../src/ui-kit/RichText/RichText.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAgB,CAAC,KAAK,EAAE,EAAE;IACnD,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAE3C,OAAO,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC;IACpD,uFAAuF;IACvF,gCAAoB,qBAAqB,YACvC,cAAK,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAI,GACvF,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  declare type HTML = string;
2
2
  /**
3
3
  * @title Стиль форматированного текста
4
- * @default "primary"
5
4
  * @enumNames ["Основной", "Второстепенный"]
6
5
  */
7
6
  export declare type RichVersion = '' | 'secondary';
@@ -0,0 +1,21 @@
1
+ export interface Env {
2
+ SITE_URL?: string;
3
+ }
4
+
5
+ export const env: Env & {
6
+ _: Env;
7
+ setup: (_: Env) => void;
8
+ } = new Proxy(
9
+ {
10
+ _: {} as Env,
11
+
12
+ setup(_: Env) {
13
+ this._ = _;
14
+ },
15
+ },
16
+ {
17
+ get(target, p) {
18
+ return target._[p] || target[p];
19
+ },
20
+ },
21
+ );
@@ -1,5 +1,7 @@
1
+ import { env } from '../../Env';
1
2
  import { type ContentPageBase } from '../../model/ContentPageBase';
2
3
  import { type ContentPageMeta } from '../../model/ContentPageMeta';
4
+ import { isURL, joinPath } from '../../utils/url';
3
5
 
4
6
  export function renderContentPageHead(data: ContentPageBase & ContentPageMeta) {
5
7
  const { title, main, og, twitter, jsonLd } = data;
@@ -13,7 +15,9 @@ export function renderContentPageHead(data: ContentPageBase & ContentPageMeta) {
13
15
  robots ? <meta key="robots" name="robots" content={robots.join(',')} /> : null,
14
16
  renderOpenGraph(og),
15
17
  renderTwitter(twitter),
16
- canonical ? <link key="canonical" rel="canonical" href={canonical} /> : null,
18
+ canonical ? (
19
+ <link key="canonical" rel="canonical" href={applyCanonicalHref(canonical)} />
20
+ ) : null,
17
21
  jsonLd ? (
18
22
  <script key="jsonLd" type="application/ld+json">
19
23
  {jsonLd}
@@ -37,3 +41,7 @@ function renderTwitter(twitter: Record<string, string> | undefined) {
37
41
  ))
38
42
  : null;
39
43
  }
44
+
45
+ function applyCanonicalHref(href?: string) {
46
+ return env.SITE_URL && href && !isURL(href) ? joinPath(env.SITE_URL, href) : href;
47
+ }
@@ -1,13 +1,9 @@
1
+ import { type DescriptionProps, type TitleProps } from '../../model/HeadlineType';
1
2
  import { type BaseProductTileContent } from '../../ui-kit/BaseProductTile/BaseProductTileContent';
2
3
  import { type UniBlockContent } from '../../UniBlock/UniBlockProps';
3
4
 
4
5
  /** @title Кнопка под слайдом */
5
- export interface ProductGalleryNav {
6
- /** @title Заголовок */
7
- title: string;
8
- /** @title Описание */
9
- description: string;
10
- }
6
+ export type ProductGalleryNav = TitleProps & DescriptionProps;
11
7
 
12
8
  /**
13
9
  * @title Слайд
@@ -16,7 +12,7 @@ export interface ProductSlide {
16
12
  /** @title Превью содержимого слайда на навигации */
17
13
  nav?: ProductGalleryNav;
18
14
  /** @title Содержимое слайда */
19
- productBlock: BaseProductTileContent;
15
+ productBlock?: BaseProductTileContent;
20
16
  }
21
17
 
22
18
  /**
@@ -3,11 +3,13 @@ import { style } from '../../utils/style';
3
3
  import { getHtmlText } from './getHtmlText';
4
4
  import { type RichTextProps } from './RichTextProps';
5
5
 
6
+ const EMPTY_HTML = '<p><br></p>';
7
+
6
8
  export const RichText = JSX<RichTextProps>((props) => {
7
- const { __html = '', richVersion = '' } = props;
9
+ const { __html, richVersion = '' } = props;
8
10
 
9
- /* Attribute [data-component] need for correct render in wcms editor. Do not remove. */
10
- return getHtmlText(__html) ? (
11
+ return __html && getHtmlText(__html) !== EMPTY_HTML ? (
12
+ /* Attribute [data-component] need for correct render in wcms editor. Do not remove. */
11
13
  <div data-component="rich-text-container">
12
14
  <div className={style(richVersion, 'md-container')} dangerouslySetInnerHTML={{ __html }} />
13
15
  </div>
@@ -2,7 +2,6 @@ type HTML = string;
2
2
 
3
3
  /**
4
4
  * @title Стиль форматированного текста
5
- * @default "primary"
6
5
  * @enumNames ["Основной", "Второстепенный"]
7
6
  */
8
7
  export type RichVersion = '' | 'secondary';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.331",
3
+ "version": "0.14.333",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
package/src/Env.ts ADDED
@@ -0,0 +1,21 @@
1
+ export interface Env {
2
+ SITE_URL?: string;
3
+ }
4
+
5
+ export const env: Env & {
6
+ _: Env;
7
+ setup: (_: Env) => void;
8
+ } = new Proxy(
9
+ {
10
+ _: {} as Env,
11
+
12
+ setup(_: Env) {
13
+ this._ = _;
14
+ },
15
+ },
16
+ {
17
+ get(target, p) {
18
+ return target._[p] || target[p];
19
+ },
20
+ },
21
+ );
@@ -1,5 +1,7 @@
1
+ import { env } from '../../Env';
1
2
  import { type ContentPageBase } from '../../model/ContentPageBase';
2
3
  import { type ContentPageMeta } from '../../model/ContentPageMeta';
4
+ import { isURL, joinPath } from '../../utils/url';
3
5
 
4
6
  export function renderContentPageHead(data: ContentPageBase & ContentPageMeta) {
5
7
  const { title, main, og, twitter, jsonLd } = data;
@@ -13,7 +15,9 @@ export function renderContentPageHead(data: ContentPageBase & ContentPageMeta) {
13
15
  robots ? <meta key="robots" name="robots" content={robots.join(',')} /> : null,
14
16
  renderOpenGraph(og),
15
17
  renderTwitter(twitter),
16
- canonical ? <link key="canonical" rel="canonical" href={canonical} /> : null,
18
+ canonical ? (
19
+ <link key="canonical" rel="canonical" href={applyCanonicalHref(canonical)} />
20
+ ) : null,
17
21
  jsonLd ? (
18
22
  <script key="jsonLd" type="application/ld+json">
19
23
  {jsonLd}
@@ -37,3 +41,7 @@ function renderTwitter(twitter: Record<string, string> | undefined) {
37
41
  ))
38
42
  : null;
39
43
  }
44
+
45
+ function applyCanonicalHref(href?: string) {
46
+ return env.SITE_URL && href && !isURL(href) ? joinPath(env.SITE_URL, href) : href;
47
+ }
@@ -1,13 +1,9 @@
1
+ import { type DescriptionProps, type TitleProps } from '../../model/HeadlineType';
1
2
  import { type BaseProductTileContent } from '../../ui-kit/BaseProductTile/BaseProductTileContent';
2
3
  import { type UniBlockContent } from '../../UniBlock/UniBlockProps';
3
4
 
4
5
  /** @title Кнопка под слайдом */
5
- export interface ProductGalleryNav {
6
- /** @title Заголовок */
7
- title: string;
8
- /** @title Описание */
9
- description: string;
10
- }
6
+ export type ProductGalleryNav = TitleProps & DescriptionProps;
11
7
 
12
8
  /**
13
9
  * @title Слайд
@@ -16,7 +12,7 @@ export interface ProductSlide {
16
12
  /** @title Превью содержимого слайда на навигации */
17
13
  nav?: ProductGalleryNav;
18
14
  /** @title Содержимое слайда */
19
- productBlock: BaseProductTileContent;
15
+ productBlock?: BaseProductTileContent;
20
16
  }
21
17
 
22
18
  /**
@@ -3,11 +3,13 @@ import { style } from '../../utils/style';
3
3
  import { getHtmlText } from './getHtmlText';
4
4
  import { type RichTextProps } from './RichTextProps';
5
5
 
6
+ const EMPTY_HTML = '<p><br></p>';
7
+
6
8
  export const RichText = JSX<RichTextProps>((props) => {
7
- const { __html = '', richVersion = '' } = props;
9
+ const { __html, richVersion = '' } = props;
8
10
 
9
- /* Attribute [data-component] need for correct render in wcms editor. Do not remove. */
10
- return getHtmlText(__html) ? (
11
+ return __html && getHtmlText(__html) !== EMPTY_HTML ? (
12
+ /* Attribute [data-component] need for correct render in wcms editor. Do not remove. */
11
13
  <div data-component="rich-text-container">
12
14
  <div className={style(richVersion, 'md-container')} dangerouslySetInnerHTML={{ __html }} />
13
15
  </div>
@@ -2,7 +2,6 @@ type HTML = string;
2
2
 
3
3
  /**
4
4
  * @title Стиль форматированного текста
5
- * @default "primary"
6
5
  * @enumNames ["Основной", "Второстепенный"]
7
6
  */
8
7
  export type RichVersion = '' | 'secondary';