rotion 0.0.4 → 0.0.5

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 (39) hide show
  1. package/dist/exporter/blocks.js +4 -1
  2. package/dist/exporter/blocks.js.map +1 -1
  3. package/dist/exporter/breadcrumbs.d.ts +2 -7
  4. package/dist/exporter/breadcrumbs.js +91 -82
  5. package/dist/exporter/breadcrumbs.js.map +1 -1
  6. package/dist/exporter/types.d.ts +9 -1
  7. package/dist/ui/cjs/index.js +28 -12
  8. package/dist/ui/cjs/index.js.map +1 -1
  9. package/dist/ui/cjs/types/exporter/breadcrumbs.d.ts +2 -7
  10. package/dist/ui/cjs/types/exporter/types.d.ts +9 -1
  11. package/dist/ui/cjs/types/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.d.ts +1 -1
  12. package/dist/ui/cjs/types/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.types.d.ts +16 -2
  13. package/dist/ui/cjs/types/ui/components/Page/Page.d.ts +1 -1
  14. package/dist/ui/cjs/types/ui/components/Page/Page.types.d.ts +1 -0
  15. package/dist/ui/cjs/types/ui/components/Page/PageHandler.d.ts +1 -1
  16. package/dist/ui/cjs/types/ui/components/Page/PageHandler.types.d.ts +1 -0
  17. package/dist/ui/esm/index.js +28 -12
  18. package/dist/ui/esm/index.js.map +1 -1
  19. package/dist/ui/esm/types/exporter/breadcrumbs.d.ts +2 -7
  20. package/dist/ui/esm/types/exporter/types.d.ts +9 -1
  21. package/dist/ui/esm/types/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.d.ts +1 -1
  22. package/dist/ui/esm/types/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.types.d.ts +16 -2
  23. package/dist/ui/esm/types/ui/components/Page/Page.d.ts +1 -1
  24. package/dist/ui/esm/types/ui/components/Page/Page.types.d.ts +1 -0
  25. package/dist/ui/esm/types/ui/components/Page/PageHandler.d.ts +1 -1
  26. package/dist/ui/esm/types/ui/components/Page/PageHandler.types.d.ts +1 -0
  27. package/dist/ui/styles/page.css +26 -0
  28. package/dist/ui/types.d.ts +17 -5
  29. package/dist/ui/umd/index.js +28 -12
  30. package/dist/ui/umd/index.js.map +1 -1
  31. package/dist/ui/umd/types/exporter/breadcrumbs.d.ts +2 -7
  32. package/dist/ui/umd/types/exporter/types.d.ts +9 -1
  33. package/dist/ui/umd/types/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.d.ts +1 -1
  34. package/dist/ui/umd/types/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.types.d.ts +16 -2
  35. package/dist/ui/umd/types/ui/components/Page/Page.d.ts +1 -1
  36. package/dist/ui/umd/types/ui/components/Page/Page.types.d.ts +1 -0
  37. package/dist/ui/umd/types/ui/components/Page/PageHandler.d.ts +1 -1
  38. package/dist/ui/umd/types/ui/components/Page/PageHandler.types.d.ts +1 -0
  39. package/package.json +1 -1
@@ -1,12 +1,7 @@
1
- import type { MentionIcon } from './types.js';
1
+ import type { Breadcrumb } from './types.js';
2
2
  export interface FetchBreadcrumbsProps {
3
3
  type: 'page_id' | 'database_id' | 'block_id' | 'workspace';
4
4
  id: string;
5
5
  limit?: number;
6
6
  }
7
- export type BreadcrumbsIcon = MentionIcon;
8
- export interface Breadcrumbs {
9
- name: string;
10
- icon: BreadcrumbsIcon;
11
- }
12
- export declare const FetchBreadcrumbs: ({ type, id, limit }: FetchBreadcrumbsProps) => Promise<Breadcrumbs[]>;
7
+ export declare const FetchBreadcrumbs: ({ type, id, limit }: FetchBreadcrumbsProps) => Promise<Breadcrumb[]>;
@@ -208,7 +208,15 @@ export type ParagraphBlockObjectResponseEx = ParagraphBlockObjectResponse & {
208
208
  color: SelectColor;
209
209
  };
210
210
  };
211
- export type BlockObjectResponse = ParagraphBlockObjectResponseEx | Heading1BlockObjectResponse | Heading2BlockObjectResponse | Heading3BlockObjectResponse | BulletedListItemBlockObjectResponseEx | NumberedListItemBlockObjectResponseEx | QuoteBlockObjectResponse | ToDoBlockObjectResponse | ToggleBlockObjectResponseEx | TemplateBlockObjectResponse | SyncedBlockBlockObjectResponse | ChildPageBlockObjectResponseEx | ChildDatabaseBlockObjectResponseEx | EquationBlockObjectResponse | CodeBlockObjectResponse | CalloutBlockObjectResponseEx | DividerBlockObjectResponse | BreadcrumbBlockObjectResponse | TableOfContentsBlockObjectResponse | ColumnListBlockObjectResponseEx | ColumnBlockObjectResponse | LinkToPageBlockObjectResponse | TableBlockObjectResponseEx | TableRowBlockObjectResponse | EmbedBlockObjectResponseEx | BookmarkBlockObjectResponseEx | ImageBlockObjectResponseEx | VideoBlockObjectResponseEx | PdfBlockObjectResponse | FileBlockObjectResponse | AudioBlockObjectResponse | LinkPreviewBlockObjectResponse | UnsupportedBlockObjectResponse;
211
+ export type Breadcrumb = {
212
+ id: string;
213
+ name: string;
214
+ icon: MentionIcon;
215
+ };
216
+ export type BreadcrumbBlockObjectResponseEx = BreadcrumbBlockObjectResponse & {
217
+ list: Breadcrumb[];
218
+ };
219
+ export type BlockObjectResponse = ParagraphBlockObjectResponseEx | Heading1BlockObjectResponse | Heading2BlockObjectResponse | Heading3BlockObjectResponse | BulletedListItemBlockObjectResponseEx | NumberedListItemBlockObjectResponseEx | QuoteBlockObjectResponse | ToDoBlockObjectResponse | ToggleBlockObjectResponseEx | TemplateBlockObjectResponse | SyncedBlockBlockObjectResponse | ChildPageBlockObjectResponseEx | ChildDatabaseBlockObjectResponseEx | EquationBlockObjectResponse | CodeBlockObjectResponse | CalloutBlockObjectResponseEx | DividerBlockObjectResponse | BreadcrumbBlockObjectResponseEx | TableOfContentsBlockObjectResponse | ColumnListBlockObjectResponseEx | ColumnBlockObjectResponse | LinkToPageBlockObjectResponse | TableBlockObjectResponseEx | TableRowBlockObjectResponse | EmbedBlockObjectResponseEx | BookmarkBlockObjectResponseEx | ImageBlockObjectResponseEx | VideoBlockObjectResponseEx | PdfBlockObjectResponse | FileBlockObjectResponse | AudioBlockObjectResponse | LinkPreviewBlockObjectResponse | UnsupportedBlockObjectResponse;
212
220
  export type ListBlockChildrenResponseEx = ListBlockChildrenResponse & {
213
221
  results: Array<BlockObjectResponse>;
214
222
  children?: ListBlockChildrenResponse;
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import type { BreadcrumbBlockProps } from './BreadcrumbBlock.types';
3
- declare const BreadcrumbBlock: ({ block }: BreadcrumbBlockProps) => React.JSX.Element;
3
+ declare const BreadcrumbBlock: ({ block, link, hrefs, query }: BreadcrumbBlockProps) => React.JSX.Element;
4
4
  export default BreadcrumbBlock;
@@ -1,4 +1,18 @@
1
- import type { BreadcrumbBlockObjectResponse } from '../../../../exporter';
1
+ /// <reference types="node" />
2
+ import type { ReactNode } from 'react';
3
+ import type { ParsedUrlQueryInput } from 'node:querystring';
4
+ import type { Link } from '../../types';
5
+ import type { Breadcrumb, BreadcrumbBlockObjectResponseEx } from '../../../../exporter';
6
+ export interface BreadcrumbLinkProps {
7
+ breadcrumb: Breadcrumb;
8
+ link?: Link;
9
+ href?: string;
10
+ query?: ParsedUrlQueryInput;
11
+ children?: ReactNode;
12
+ }
2
13
  export interface BreadcrumbBlockProps {
3
- block: BreadcrumbBlockObjectResponse;
14
+ block: BreadcrumbBlockObjectResponseEx;
15
+ link?: Link;
16
+ hrefs?: string[];
17
+ query?: ParsedUrlQueryInput;
4
18
  }
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import type { PageProps } from './Page.types';
3
- export declare const Page: ({ blocks, href, link, query, modules }: PageProps) => React.JSX.Element;
3
+ export declare const Page: ({ blocks, href, link, query, modules, breadcrumb_hrefs }: PageProps) => React.JSX.Element;
4
4
  export default Page;
@@ -8,6 +8,7 @@ export interface PageProps {
8
8
  link?: Link;
9
9
  query?: ParsedUrlQueryInput;
10
10
  modules?: ExternalModules;
11
+ breadcrumb_hrefs?: string[];
11
12
  }
12
13
  export interface ListType {
13
14
  [key: string]: string;
@@ -11,5 +11,5 @@ export declare const blockType: {
11
11
  code: string;
12
12
  quote: string;
13
13
  };
14
- export declare const PageHandler: ({ block, href, link, query, modules }: HandlerProps) => React.JSX.Element;
14
+ export declare const PageHandler: ({ block, href, link, query, modules, breadcrumb_hrefs }: HandlerProps) => React.JSX.Element;
15
15
  export default PageHandler;
@@ -8,4 +8,5 @@ export interface HandlerProps {
8
8
  link?: Link;
9
9
  query?: ParsedUrlQueryInput;
10
10
  modules?: ExternalModules;
11
+ breadcrumb_hrefs?: string[];
11
12
  }
@@ -89,6 +89,32 @@
89
89
  }
90
90
  }
91
91
 
92
+ /* breadcrumb */
93
+ .notionate-blocks-breadcrumb {
94
+ padding-left: .5rem;
95
+ }
96
+ .notionate-blocks-breadcrumb-a {
97
+ text-decoration: none;
98
+ color: #333;
99
+ font-size: .9rem;
100
+ padding: .2rem .3rem;
101
+ border-radius: 4px;
102
+ }
103
+ .notionate-blocks-breadcrumb-a:hover {
104
+ color: #666;
105
+ background-color: #fff;
106
+ }
107
+ .notionate-blocks-breadcrumb-icon {
108
+ vertical-align: middle;
109
+ padding-right: .4rem;
110
+ padding-bottom: .2rem;
111
+ }
112
+ .notionate-blocks-breadcrumb-slash {
113
+ font-size: .9rem;
114
+ opacity: .5;
115
+ padding: 0 .3rem;
116
+ }
117
+
92
118
  /* callout */
93
119
  .notionate-blocks-callout {
94
120
  display: flex;
@@ -1,5 +1,5 @@
1
1
  import React, { ReactNode } from 'react';
2
- import { ListBlockChildrenResponse, BulletedListItemBlockObjectResponse, NumberedListItemBlockObjectResponse, TableBlockObjectResponse, ToggleBlockObjectResponse, ColumnListBlockObjectResponse, ChildPageBlockObjectResponse, ChildDatabaseBlockObjectResponse, BookmarkBlockObjectResponse, RichTextItemResponse, CalloutBlockObjectResponse, ImageBlockObjectResponse, VideoBlockObjectResponse, EmbedBlockObjectResponse, TextRichTextItemResponse, EquationRichTextItemResponse, Heading1BlockObjectResponse, Heading2BlockObjectResponse, Heading3BlockObjectResponse, QuoteBlockObjectResponse, ToDoBlockObjectResponse, TemplateBlockObjectResponse, SyncedBlockBlockObjectResponse, EquationBlockObjectResponse, CodeBlockObjectResponse, DividerBlockObjectResponse, BreadcrumbBlockObjectResponse, TableOfContentsBlockObjectResponse, ColumnBlockObjectResponse, LinkToPageBlockObjectResponse, TableRowBlockObjectResponse, PdfBlockObjectResponse, FileBlockObjectResponse, AudioBlockObjectResponse, LinkPreviewBlockObjectResponse, UnsupportedBlockObjectResponse, PageObjectResponse, GetPagePropertyResponse, DatabaseObjectResponse, QueryDatabaseResponse, MentionRichTextItemResponse, ParagraphBlockObjectResponse, GetSelfResponse, MultiSelectPropertyItemObjectResponse, NumberPropertyItemObjectResponse, RichTextPropertyItemObjectResponse, TitlePropertyItemObjectResponse, SelectPropertyItemObjectResponse } from '@notionhq/client/build/src/api-endpoints.js';
2
+ import { ListBlockChildrenResponse, BulletedListItemBlockObjectResponse, NumberedListItemBlockObjectResponse, TableBlockObjectResponse, ToggleBlockObjectResponse, ColumnListBlockObjectResponse, ChildPageBlockObjectResponse, ChildDatabaseBlockObjectResponse, BookmarkBlockObjectResponse, RichTextItemResponse, CalloutBlockObjectResponse, ImageBlockObjectResponse, VideoBlockObjectResponse, EmbedBlockObjectResponse, TextRichTextItemResponse, EquationRichTextItemResponse, BreadcrumbBlockObjectResponse, Heading1BlockObjectResponse, Heading2BlockObjectResponse, Heading3BlockObjectResponse, QuoteBlockObjectResponse, ToDoBlockObjectResponse, TemplateBlockObjectResponse, SyncedBlockBlockObjectResponse, EquationBlockObjectResponse, CodeBlockObjectResponse, DividerBlockObjectResponse, TableOfContentsBlockObjectResponse, ColumnBlockObjectResponse, LinkToPageBlockObjectResponse, TableRowBlockObjectResponse, PdfBlockObjectResponse, FileBlockObjectResponse, AudioBlockObjectResponse, LinkPreviewBlockObjectResponse, UnsupportedBlockObjectResponse, PageObjectResponse, GetPagePropertyResponse, DatabaseObjectResponse, QueryDatabaseResponse, MentionRichTextItemResponse, ParagraphBlockObjectResponse, GetSelfResponse, MultiSelectPropertyItemObjectResponse, NumberPropertyItemObjectResponse, RichTextPropertyItemObjectResponse, TitlePropertyItemObjectResponse, SelectPropertyItemObjectResponse } from '@notionhq/client/build/src/api-endpoints.js';
3
3
  import { ParsedUrlQueryInput } from 'node:querystring';
4
4
  import { UrlObject } from 'node:url';
5
5
 
@@ -174,7 +174,15 @@ type ParagraphBlockObjectResponseEx = ParagraphBlockObjectResponse & {
174
174
  color: SelectColor;
175
175
  };
176
176
  };
177
- type BlockObjectResponse = ParagraphBlockObjectResponseEx | Heading1BlockObjectResponse | Heading2BlockObjectResponse | Heading3BlockObjectResponse | BulletedListItemBlockObjectResponseEx | NumberedListItemBlockObjectResponseEx | QuoteBlockObjectResponse | ToDoBlockObjectResponse | ToggleBlockObjectResponseEx | TemplateBlockObjectResponse | SyncedBlockBlockObjectResponse | ChildPageBlockObjectResponseEx | ChildDatabaseBlockObjectResponseEx | EquationBlockObjectResponse | CodeBlockObjectResponse | CalloutBlockObjectResponseEx | DividerBlockObjectResponse | BreadcrumbBlockObjectResponse | TableOfContentsBlockObjectResponse | ColumnListBlockObjectResponseEx | ColumnBlockObjectResponse | LinkToPageBlockObjectResponse | TableBlockObjectResponseEx | TableRowBlockObjectResponse | EmbedBlockObjectResponseEx | BookmarkBlockObjectResponseEx | ImageBlockObjectResponseEx | VideoBlockObjectResponseEx | PdfBlockObjectResponse | FileBlockObjectResponse | AudioBlockObjectResponse | LinkPreviewBlockObjectResponse | UnsupportedBlockObjectResponse;
177
+ type Breadcrumb = {
178
+ id: string;
179
+ name: string;
180
+ icon: MentionIcon;
181
+ };
182
+ type BreadcrumbBlockObjectResponseEx = BreadcrumbBlockObjectResponse & {
183
+ list: Breadcrumb[];
184
+ };
185
+ type BlockObjectResponse = ParagraphBlockObjectResponseEx | Heading1BlockObjectResponse | Heading2BlockObjectResponse | Heading3BlockObjectResponse | BulletedListItemBlockObjectResponseEx | NumberedListItemBlockObjectResponseEx | QuoteBlockObjectResponse | ToDoBlockObjectResponse | ToggleBlockObjectResponseEx | TemplateBlockObjectResponse | SyncedBlockBlockObjectResponse | ChildPageBlockObjectResponseEx | ChildDatabaseBlockObjectResponseEx | EquationBlockObjectResponse | CodeBlockObjectResponse | CalloutBlockObjectResponseEx | DividerBlockObjectResponse | BreadcrumbBlockObjectResponseEx | TableOfContentsBlockObjectResponse | ColumnListBlockObjectResponseEx | ColumnBlockObjectResponse | LinkToPageBlockObjectResponse | TableBlockObjectResponseEx | TableRowBlockObjectResponse | EmbedBlockObjectResponseEx | BookmarkBlockObjectResponseEx | ImageBlockObjectResponseEx | VideoBlockObjectResponseEx | PdfBlockObjectResponse | FileBlockObjectResponse | AudioBlockObjectResponse | LinkPreviewBlockObjectResponse | UnsupportedBlockObjectResponse;
178
186
  type ListBlockChildrenResponseEx = ListBlockChildrenResponse & {
179
187
  results: Array<BlockObjectResponse>;
180
188
  children?: ListBlockChildrenResponse;
@@ -511,9 +519,10 @@ interface PageProps {
511
519
  link?: Link;
512
520
  query?: ParsedUrlQueryInput;
513
521
  modules?: ExternalModules;
522
+ breadcrumb_hrefs?: string[];
514
523
  }
515
524
 
516
- declare const Page: ({ blocks, href, link, query, modules }: PageProps) => React.JSX.Element;
525
+ declare const Page: ({ blocks, href, link, query, modules, breadcrumb_hrefs }: PageProps) => React.JSX.Element;
517
526
 
518
527
  interface BookmarkBlockProps {
519
528
  block: BookmarkBlockObjectResponseEx;
@@ -522,10 +531,13 @@ interface BookmarkBlockProps {
522
531
  declare const BookmarkBlock: ({ block }: BookmarkBlockProps) => React.JSX.Element;
523
532
 
524
533
  interface BreadcrumbBlockProps {
525
- block: BreadcrumbBlockObjectResponse;
534
+ block: BreadcrumbBlockObjectResponseEx;
535
+ link?: Link;
536
+ hrefs?: string[];
537
+ query?: ParsedUrlQueryInput;
526
538
  }
527
539
 
528
- declare const BreadcrumbBlock: ({ block }: BreadcrumbBlockProps) => React.JSX.Element;
540
+ declare const BreadcrumbBlock: ({ block, link, hrefs, query }: BreadcrumbBlockProps) => React.JSX.Element;
529
541
 
530
542
  interface BulletedListBlocksProps {
531
543
  block: BulletedListItemBlockObjectResponseEx;
@@ -19317,11 +19317,28 @@
19317
19317
  React.createElement(TextBlock, { tag: "span", block: block.bookmark.caption }))));
19318
19318
  };
19319
19319
 
19320
- // TODO: Iimplement and design
19320
+ var BreadcrumbLink = function (_a) {
19321
+ var breadcrumb = _a.breadcrumb, link = _a.link, href = _a.href, query = _a.query, children = _a.children;
19322
+ var id = breadcrumb.id, name = breadcrumb.name;
19323
+ var _b = getLinkPathAndLinkKey(href || ''), path = _b[0], slugKey = _b[1];
19324
+ var file = slugKey === 'id' ? id : encodeURIComponent(name.toLowerCase()).replace(/%20/g, '-');
19325
+ if (link && href) {
19326
+ var Link = link;
19327
+ return (React.createElement(Link, { className: "notionate-blocks-breadcrumb-a", href: { pathname: "".concat(path).concat(file), query: query } }, children));
19328
+ }
19329
+ if (href) {
19330
+ return (React.createElement("a", { className: "notionate-blocks-breadcrumb-a", href: "".concat(path).concat(file).concat(queryToString(query)) }, children));
19331
+ }
19332
+ return (React.createElement("span", { className: "notionate-blocks-breadcrumb-a" }, children));
19333
+ };
19321
19334
  var BreadcrumbBlock = function (_a) {
19322
- var block = _a.block;
19323
- var parent = block.parent;
19324
- return (React.createElement("div", { className: "notionate-blocks-breadcrumb" }, parent.type));
19335
+ var block = _a.block, link = _a.link, hrefs = _a.hrefs, query = _a.query;
19336
+ var max = block.list.length;
19337
+ return (React.createElement("div", { className: "notionate-blocks-breadcrumb" }, block.list.map(function (v, i) { return (React.createElement(BreadcrumbLink, { key: "crumb-".concat(i), breadcrumb: v, href: hrefs === undefined ? undefined : hrefs[i], link: link, query: query },
19338
+ v.icon.type === 'emoji' && React.createElement("span", { className: "notionate-blocks-breadcrumb-emoji" }, v.icon.emoji),
19339
+ v.icon.type !== 'emoji' && React.createElement("img", { className: "notionate-blocks-breadcrumb-icon", src: v.icon.src, width: 20, height: 20, alt: v.name }),
19340
+ React.createElement("span", { className: "notionate-blocks-breadcrumb-title" }, v.name),
19341
+ i + 1 < max && React.createElement("span", { className: "notionate-blocks-breadcrumb-slash" }, "/"))); })));
19325
19342
  };
19326
19343
 
19327
19344
  var BulletedListBlocks = function (_a) {
@@ -19818,9 +19835,9 @@
19818
19835
  };
19819
19836
 
19820
19837
  var blockType = {
19821
- heading_1: 'h1',
19822
- heading_2: 'h2',
19823
- heading_3: 'h3',
19838
+ heading_1: 'h2',
19839
+ heading_2: 'h3',
19840
+ heading_3: 'h4',
19824
19841
  bulleted_list_item: 'li',
19825
19842
  numbered_list_item: 'li',
19826
19843
  divider: 'hr',
@@ -19830,13 +19847,12 @@
19830
19847
  };
19831
19848
  var PageHandler = function (_a) {
19832
19849
  var _b;
19833
- var block = _a.block, href = _a.href, link = _a.link, query = _a.query, modules = _a.modules;
19850
+ var block = _a.block, href = _a.href, link = _a.link, query = _a.query, modules = _a.modules, breadcrumb_hrefs = _a.breadcrumb_hrefs;
19834
19851
  switch (block.type) {
19835
19852
  case 'bookmark':
19836
19853
  return React.createElement(BookmarkBlock, { block: block, key: block.id });
19837
19854
  case 'breadcrumb':
19838
- console.log("still a not supported component: ".concat(block.type));
19839
- return React.createElement(BreadcrumbBlock, { block: block, key: block.id });
19855
+ return React.createElement(BreadcrumbBlock, { block: block, hrefs: breadcrumb_hrefs, link: link, query: query, key: block.id });
19840
19856
  case 'bulleted_list_item':
19841
19857
  return React.createElement(BulletedListBlocks, { block: block, key: block.id });
19842
19858
  case 'callout':
@@ -19908,7 +19924,7 @@
19908
19924
  };
19909
19925
 
19910
19926
  var Page = function (_a) {
19911
- var blocks = _a.blocks, href = _a.href, link = _a.link, query = _a.query, modules = _a.modules;
19927
+ var blocks = _a.blocks, href = _a.href, link = _a.link, query = _a.query, modules = _a.modules, breadcrumb_hrefs = _a.breadcrumb_hrefs;
19912
19928
  var results = blocks.results;
19913
19929
  var listType = {
19914
19930
  bulleted_list_item: 'ul',
@@ -19943,7 +19959,7 @@
19943
19959
  }
19944
19960
  }
19945
19961
  else {
19946
- var elem = PageHandler({ block: block, href: href, link: link, query: query, modules: modules });
19962
+ var elem = PageHandler({ block: block, href: href, link: link, query: query, modules: modules, breadcrumb_hrefs: breadcrumb_hrefs });
19947
19963
  if (elem !== undefined) {
19948
19964
  children.push(elem);
19949
19965
  }