ngx-notion
Version:
An Notion page renderer for Angular
1 lines • 40.9 kB
Source Map (JSON)
{"version":3,"file":"ngx-notion.mjs","sources":["../../../projects/ngx-notion/src/lib/components/blocks/asset/asset-iframe/asset-iframe.component.ts","../../../projects/ngx-notion/src/lib/components/blocks/asset/asset-iframe/asset-iframe.component.html","../../../projects/ngx-notion/src/lib/components/blocks/asset/asset-image/asset-image.component.ts","../../../projects/ngx-notion/src/lib/components/blocks/asset/asset-image/asset-image.component.html","../../../projects/ngx-notion/src/lib/components/blocks/asset/asset.component.ts","../../../projects/ngx-notion/src/lib/components/blocks/asset/asset.component.html","../../../projects/ngx-notion/src/lib/types/block.type.ts","../../../projects/ngx-notion/src/lib/components/blocks/table-of-contents/table-of-contents.component.ts","../../../projects/ngx-notion/src/lib/components/blocks/table-of-contents/table-of-contents.component.html","../../../projects/ngx-notion/src/lib/components/blocks/rich-text/rich-text.component.ts","../../../projects/ngx-notion/src/lib/components/blocks/rich-text/rich-text.component.html","../../../projects/ngx-notion/src/lib/components/blocks/heading/heading.component.ts","../../../projects/ngx-notion/src/lib/components/blocks/heading/heading.component.html","../../../projects/ngx-notion/src/lib/components/blocks/table/table.component.ts","../../../projects/ngx-notion/src/lib/components/blocks/table/table.component.html","../../../projects/ngx-notion/src/lib/components/blocks/list/list.component.ts","../../../projects/ngx-notion/src/lib/components/blocks/list/list.component.html","../../../projects/ngx-notion/src/lib/components/blocks/block/block.component.ts","../../../projects/ngx-notion/src/lib/components/blocks/block/block.component.html","../../../projects/ngx-notion/src/lib/components/renderer/renderer.component.ts","../../../projects/ngx-notion/src/lib/components/renderer/renderer.component.html","../../../projects/ngx-notion/src/lib/ngx-notion.module.ts","../../../projects/ngx-notion/src/public-api.ts","../../../projects/ngx-notion/src/ngx-notion.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'asset-iframe',\n templateUrl: './asset-iframe.component.html',\n styleUrls: ['./asset-iframe.component.scss'],\n})\nexport class AssetIframeComponent {\n @Input()\n value!: string;\n}\n","<iframe class=\"notion-image-inset\" [src]=\"value\" frameborder=\"0\"></iframe>","import { DOCUMENT } from '@angular/common';\nimport { Component, Inject, Input, Renderer2 } from '@angular/core';\n\n@Component({\n selector: 'asset-image',\n templateUrl: './asset-image.component.html',\n styleUrls: ['./asset-image.component.scss'],\n})\nexport class AssetImageComponent {\n\n @Input()\n id: string = '';\n\n @Input()\n value!: string;\n\n @Input()\n caption: string | undefined = '';\n\n constructor(\n @Inject(DOCUMENT)\n private documentRef: Document,\n private renderer: Renderer2,\n ) {}\n\n ngAfterViewInit() {\n const modal: any = this.documentRef.getElementById(`imgModal_${this.id}`);\n\n const img: any = this.documentRef.getElementById(`image_${this.id}`);\n const modalImg: any = this.documentRef.getElementById(`img_${this.id}`);\n const captionText: any = this.documentRef.getElementById(`caption_${this.id}`);\n\n this.renderer.listen(img, 'click', () => {\n this.renderer.setStyle(this.documentRef.body, 'overflow', 'hidden');\n modal.style.display = 'block';\n modalImg.src = this.value;\n captionText.innerHTML = this.caption;\n });\n\n var span = this.documentRef.getElementById(`closeImgDialogBtn_${this.id}`);\n\n this.renderer.listen(span, 'click', () => {\n this.renderer.removeStyle(this.documentRef.body, 'overflow');\n modal.style.display = 'none';\n });\n }\n}\n","<img id=\"image_{{ id }}\" class=\"asset-image\" [alt]=\"caption\" [src]=\"value\" />\n\n<div id=\"imgModal_{{ id }}\" class=\"modal\">\n <span id=\"closeImgDialogBtn_{{ id }}\" class=\"close-img-dialog-btn\">×</span>\n <img id=\"img_{{ id }}\" class=\"modal-content\">\n <div id=\"caption_{{ id }}\" class=\"caption\"></div>\n</div>\n","import { Component, Input } from '@angular/core';\n\ntype AssetBlockValueType = 'video' | 'image' | 'embed' | 'figma';\n\n@Component({\n selector: 'asset',\n templateUrl: './asset.component.html',\n})\nexport class AssetComponent {\n\n @Input()\n id: string = '';\n\n @Input()\n value!: any;\n\n @Input() \n type!: AssetBlockValueType;\n}\n","<asset-image\n *ngIf=\"type === 'image'\"\n [id]=\"id\"\n [value]=\"value.file?.url\"\n></asset-image>\n","export enum BlockType {\n Paragraph = 'paragraph',\n Heading1 = 'heading_1',\n Heading2 = 'heading_2',\n Heading3 = 'heading_3',\n BulletedListItem = 'bulleted_list_item',\n NumberedListItem = 'numbered_list_item',\n ToDo = 'to_do',\n Toggle = 'toggle',\n ChildPage = 'child_page',\n ChildDatabase = 'child_database',\n Embed = 'embed',\n Image = 'image',\n Video = 'video',\n File = 'file',\n Pdf = 'pdf',\n Bookmark = 'bookmark',\n Callout = 'callout',\n Quote = 'quote',\n Equation = 'equation',\n Divider = 'divider',\n TableOfContents = 'table_of_contents',\n Column = 'column',\n ColumnList = 'column_list',\n LinkPreview = 'link_preview',\n SyncedBlock = 'synced_block',\n Template = 'template',\n LinkToPage = 'link_to_page',\n Table = 'table',\n TableRow = 'table_row',\n Unsupported = 'unsupported',\n}\n\nexport enum ColorType {\n 'default',\n 'gray',\n 'brown',\n 'orange',\n 'yellow',\n 'green',\n 'blue',\n 'purple',\n 'pink',\n 'red',\n 'gray_background',\n 'brown_background',\n 'orange_background',\n 'yellow_background',\n 'green_background',\n 'blue_background',\n 'purple_background',\n 'pink_background',\n 'red_background',\n}\n\nexport interface Block {\n id: string;\n object: 'block';\n created_time: string\n created_by: {\n object: 'user';\n id: 'cb38e95d-00cf-4e7e-adce-974f4a44a547';\n };\n last_edited_time: string;\n last_edited_by: {\n object: 'user';\n id: 'e79a0b74-3aba-4149-9f74-0bb5791a6ee6';\n };\n has_children: boolean;\n type: BlockType;\n archived: boolean;\n index: number;\n blocks: Block[];\n [key: string]: any;\n // [key in BlockType]: BlockObjectType;\n}\n\nexport interface RichTextAnnotations {\n bold: boolean;\n italic: boolean;\n strikethrough: boolean;\n underline: boolean;\n code: boolean;\n color: ColorType;\n}\n\nexport interface BlockObjectType {\n type: BlockType;\n to_do: {\n rich_text: [{\n type: 'text' | 'mention' | 'equation';\n text: {\n content: string;\n link: string | null;\n },\n annotations: RichTextAnnotations;\n plain_text: string;\n href: string | null;\n }],\n color: ColorType;\n children: BlockObjectType[];\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'table-of-contents',\n templateUrl: './table-of-contents.component.html',\n styleUrls: ['./table-of-contents.component.scss'],\n})\nexport class TableOfContentsComponent implements OnInit {\n\n @Input()\n headings: any[] = [];\n\n items: any[] = [];\n\n ngOnInit() {\n this.items = [];\n\n this.headings.forEach((heading, index) => {\n const prevElement = this.items[index - 1];\n\n let level = 0;\n\n if (prevElement) {\n level = prevElement.level;\n if (this.getHeaderLevel(prevElement.type) > this.getHeaderLevel(heading.type)) {\n level = level > 0 ? level - 1 : level;\n } else if (this.getHeaderLevel(prevElement.type) < this.getHeaderLevel(heading.type)) {\n level += 1;\n }\n }\n\n this.items.push({\n id: heading.id,\n type: heading.type,\n text: heading[heading.type].rich_text.reduce((text: string, item: any) => text + item.plain_text, ''),\n level,\n });\n });\n }\n\n getHeaderLevel(type: string): number {\n const headings: any = {\n heading_1: 0,\n heading_2: 1,\n heading_3: 2,\n };\n\n return headings[type] || 0;\n }\n}\n","<div class=\"table-of-contents\">\n <div [style.position]=\"'relative'\">\n <div\n *ngFor=\"let item of items\"\n class=\"content-item\"\n >\n <a class=\"content-link\" [routerLink]=\"[]\" [fragment]=\"item.id\">\n <div class=\"content-link-item\">\n <div\n class=\"content-text-wrapper\"\n [style.margin-left.px]=\"item.level * 24\"\n >\n <div class=\"content-text\">\n {{ item.text }}\n </div>\n </div>\n </div>\n </a>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'rich-text',\n templateUrl: './rich-text.component.html',\n styleUrls: ['./rich-text.component.scss'],\n})\nexport class RichTextComponent {\n @Input()\n richText: any;\n}\n","<span\n *ngFor=\"let item of richText\"\n class=\"text-color-{{ item.annotations.color }}\"\n [ngClass]=\"{\n 'text-bold': item.annotations.bold,\n 'text-italic': item.annotations.italic,\n 'text-strikethrough': item.annotations.strikethrough,\n 'text-underline': item.annotations.underline,\n 'text-code': item.annotations.code\n }\"\n>\n <ng-container *ngIf=\"item.href; else simpleText\">\n <a class=\"text-link\" [href]=\"item.href\" target=\"_blank\">{{ item.text.content }}</a>\n </ng-container>\n <ng-template #simpleText>{{ item.text.content }}</ng-template>\n</span>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'heading',\n templateUrl: './heading.component.html',\n styleUrls: ['./heading.component.scss'],\n})\nexport class HeadingComponent {\n\n @Input()\n id!: string;\n\n @Input()\n level: number = 1;\n\n @Input()\n text!: any;\n}\n","<h1\n *ngIf=\"level === 1\"\n [id]=\"id\"\n class=\"heading_1\"\n>\n <rich-text [richText]=\"text\"></rich-text>\n</h1>\n\n<h2\n *ngIf=\"level === 2\"\n [id]=\"id\"\n class=\"heading_2\">\n <rich-text [richText]=\"text\"></rich-text>\n</h2>\n\n<h3\n *ngIf=\"level === 3\"\n [id]=\"id\"\n class=\"heading_3\"\n>\n <rich-text [richText]=\"text\"></rich-text>\n</h3>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'block-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\n})\nexport class TableComponent {\n\n @Input()\n properties: any;\n\n @Input()\n data: any[] = [];\n\n}\n","<table [ngClass]=\"{\n 'row-header': properties?.has_row_header,\n 'column-header': properties?.has_column_header\n}\">\n <tbody>\n <tr *ngFor=\"let row of data; let i = index\">\n <td *ngFor=\"let item of row.table_row?.cells || []\">\n <div class=\"table-cell-text\">\n <rich-text [richText]=\"item\"></rich-text>\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n})\nexport class ListComponent implements OnInit {\n\n @Input()\n index: number = 0;\n\n @Input()\n type: 'numbered' | 'bulleted' = 'bulleted';\n\n @Input()\n value!: any;\n\n @Input()\n level: number = 0;\n\n bullet!: string;\n\n ngOnInit(): void {\n switch (this.level % 3) {\n case 0:\n this.bullet = this.type === 'numbered' ? (this.index + 1) + '.' : '•';\n break;\n case 1:\n this.bullet = this.type === 'numbered' ? this.alphabetic(this.index) + '.' : '◦';\n break;\n case 2:\n this.bullet = this.type === 'numbered' ? this.romanize(this.index + 1) + '.' : '▪';\n break;\n }\n }\n\n private alphabetic(number: number): string {\n const letters = 'abcdefghijklmnopqrstuvwxyz'.split('');\n let alphabetic = '';\n \n do {\n // if it is end, or number is lower then 26\n if (number < 26) {\n alphabetic += letters[number];\n break;\n }\n\n const letter = Math.floor(number / 26);\n\n if (letter < 26) {\n alphabetic += letters[letter - 1];\n number -= letter * 26;\n } else {\n return 'X';\n }\n } while (true);\n\n return alphabetic;\n }\n\n private romanize(number: number): string {\n const lookup: any = {\n 'm': 1000,\n 'cm': 900,\n 'd': 500,\n 'cd': 400,\n 'c': 100,\n 'xc': 90,\n 'l': 50,\n 'xl': 40,\n 'x': 10,\n 'ix': 9,\n 'v': 5,\n 'iv': 4,\n 'i': 1\n };\n\n let roman = '';\n\n for (let i in lookup) {\n const value: number = lookup[i];\n \n while (number >= value) {\n roman += i;\n number -= value;\n }\n }\n\n return roman;\n }\n}\n","<div class=\"bulleted-item\">\n <div class=\"bullet-wrapper\">\n <div\n class=\"bullet {{ type }}\"\n style=\"--bullet--content: '{{ bullet }}'\"\n ></div>\n </div>\n <div class=\"content-wrapper\">\n <div [style.display]=\"'flex'\">\n <div class=\"content\">\n <rich-text [richText]=\"value.rich_text\"></rich-text>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { Block, BlockType } from '../../../types/block.type';\n\n@Component({\n selector: 'block',\n templateUrl: './block.component.html',\n styleUrls: ['./block.component.scss'],\n})\nexport class BlockComponent {\n @Input()\n block!: Block;\n\n @Input()\n previousBlock!: Block | null;\n\n @Input()\n headings: any[] = [];\n\n @Input()\n level: number = 0;\n\n BlockType = BlockType;\n\n trackByFn(index: number, block: Block): string {\n return block.id;\n }\n}\n","<ng-container [ngSwitch]=\"block.type\">\n <div *ngSwitchCase=\"BlockType.TableOfContents\">\n <table-of-contents \n [headings]=\"headings\"\n ></table-of-contents>\n </div>\n\n <div *ngSwitchCase=\"BlockType.Heading1\">\n <heading\n [id]=\"block.id\"\n [level]=\"1\"\n [text]=\"block[block.type]?.rich_text\"\n ></heading>\n </div>\n\n <div *ngSwitchCase=\"BlockType.Heading2\">\n <heading\n [id]=\"block.id\"\n [level]=\"2\"\n [text]=\"block[block.type]?.rich_text\"\n ></heading>\n </div>\n\n <div *ngSwitchCase=\"BlockType.Heading3\">\n <heading\n [id]=\"block.id\"\n [level]=\"3\"\n [text]=\"block[block.type]?.rich_text\"\n ></heading>\n </div>\n\n <div *ngSwitchCase=\"BlockType.Paragraph\">\n <rich-text [richText]=\"block[block.type]?.rich_text\"></rich-text>\n </div>\n\n <div *ngSwitchCase=\"BlockType.Image\">\n <asset type=\"image\" [id]=\"block.id\" [value]=\"block[block.type]\"></asset>\n </div>\n\n <div *ngSwitchCase=\"BlockType.Table\">\n <block-table\n [properties]=\"block[block.type]\"\n [data]=\"block['blocks'] || []\"\n ></block-table>\n </div>\n\n <div *ngSwitchCase=\"BlockType.NumberedListItem\">\n <list\n type=\"numbered\"\n [index]=\"block.index\"\n [level]=\"level\"\n [value]=\"block[block.type]\"\n ></list>\n </div>\n\n <div *ngSwitchCase=\"BlockType.BulletedListItem\">\n <list\n type=\"bulleted\"\n [index]=\"block.index\"\n [level]=\"level\"\n [value]=\"block[block.type]\"\n ></list>\n </div>\n</ng-container>\n\n<div *ngIf=\"block.has_children && block.blocks.length\" class=\"children level-{{ level + 1 }}\">\n <ng-container *ngFor=\"let child of block.blocks; let i = index; trackBy: trackByFn\">\n <block\n [class]=\"'type-' + child.type\"\n [block]=\"child\"\n [level]=\"level + 1\"\n [previousBlock]=\"i > 0 ? child.blocks[i - 1] : null\"\n ></block>\n </ng-container>\n</div>\n","import { AfterViewInit, Component, Input } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Block, BlockType } from '../../types';\n\n@Component({\n selector: 'notion-renderer',\n templateUrl: './renderer.component.html',\n styleUrls: ['./renderer.component.scss'],\n})\nexport class RendererComponent implements AfterViewInit {\n @Input()\n set page(page: any) {\n if (page.blocks) {\n page.blocks = this.normalizeBlocks(page.blocks);\n }\n\n this._page = page;\n }\n\n get page(): any {\n return this._page;\n }\n\n @Input()\n fullPage: boolean = false;\n\n @Input()\n hideHeader: boolean = false;\n\n fragment: any;\n\n private _page: any;\n\n constructor(private route: ActivatedRoute) { }\n\n ngOnInit() {\n this.route.fragment.subscribe(fragment => { \n this.fragment = fragment;\n\n if (this.fragment) {\n this.scrollToFragment();\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (this.fragment) {\n this.scrollToFragment();\n }\n }\n\n getHeadings() {\n const headings: any[] = [];\n\n this.page.blocks.forEach((block: any) => {\n if (\n block.type === BlockType.Heading1 ||\n block.type === BlockType.Heading2 ||\n block.type === BlockType.Heading3\n ) {\n headings.push(block);\n }\n });\n\n return headings;\n }\n\n trackByFn(index: number, block: Block): string {\n return block.id;\n }\n\n private normalizeBlocks(blocks: Block[]): Block[] {\n let index = 0;\n\n for (let i = 0; i < blocks.length; i++) {\n if (i > 0) {\n if (blocks[i].type === blocks[i - 1].type) {\n index++;\n } else {\n index = 0;\n }\n }\n\n blocks[i]['index'] = index;\n\n if (blocks[i].blocks.length) {\n blocks[i].blocks = this.normalizeBlocks(blocks[i].blocks);\n }\n }\n\n return blocks;\n }\n\n private scrollToFragment(): void {\n try {\n (document as any).getElementById(this.fragment).scrollIntoView();\n } catch (e) { }\n }\n}\n","<div class=\"notion\">\n <ng-container *ngFor=\"let block of page.blocks; let i = index; trackBy: trackByFn\">\n <block\n [class]=\"'type-' + block.type\"\n [block]=\"block\"\n [previousBlock]=\"i > 0 ? page.blocks[i - 1] : null\"\n [headings]=\"getHeadings()\"\n ></block>\n </ng-container>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AssetIframeComponent } from './components/blocks/asset/asset-iframe/asset-iframe.component';\nimport { AssetImageComponent } from './components/blocks/asset/asset-image/asset-image.component';\nimport { AssetComponent } from './components/blocks/asset/asset.component';\nimport { BlockComponent } from './components/blocks/block/block.component';\nimport { HeadingComponent } from './components/blocks/heading/heading.component';\nimport { RendererComponent } from './components/renderer/renderer.component';\nimport { RichTextComponent } from './components/blocks/rich-text/rich-text.component';\nimport { TableOfContentsComponent } from './components/blocks/table-of-contents/table-of-contents.component';\nimport { TableComponent } from './components/blocks/table/table.component';\nimport { ListComponent } from './components/blocks/list/list.component';\nimport { RouterModule } from '@angular/router';\n\nconst components = [\n AssetComponent,\n AssetImageComponent,\n AssetIframeComponent,\n BlockComponent,\n HeadingComponent,\n RendererComponent,\n RichTextComponent,\n TableOfContentsComponent,\n TableComponent,\n ListComponent,\n];\n\n@NgModule({\n declarations: [\n ...components,\n ],\n imports: [\n CommonModule,\n RouterModule\n ],\n exports: [\n ...components,\n ]\n})\nexport class NgxNotionModule {}\n","/*\n * Public API Surface of ngx-notion\n */\n\nexport * from './lib/components';\nexport * from './lib/types';\nexport * from './lib/ngx-notion.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AssetImageComponent","i2","i1.RichTextComponent","i1.TableOfContentsComponent","i2.HeadingComponent","i3.RichTextComponent","i4.AssetComponent","i5.TableComponent","i6.ListComponent","i7","i1","i2.BlockComponent","i3"],"mappings":"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"}