@frontify/guideline-blocks-settings 0.28.4 → 0.28.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.
- package/CHANGELOG.md +9 -0
- package/dist/components/Attachments/Attachments.es.js +55 -55
- package/dist/components/Attachments/Attachments.es.js.map +1 -1
- package/dist/components/BlockItemWrapper/Toolbar.es.js +1 -1
- package/dist/components/BlockItemWrapper/Toolbar.es.js.map +1 -1
- package/dist/components/DownloadButton/DownloadButton.es.js +3 -3
- package/dist/components/DownloadButton/DownloadButton.es.js.map +1 -1
- package/dist/components/Link/LinkInput.es.js +61 -0
- package/dist/components/Link/LinkInput.es.js.map +1 -0
- package/dist/components/Link/LinkSelector/DocumentLink.es.js.map +1 -0
- package/dist/components/Link/LinkSelector/DocumentLinks.es.js.map +1 -0
- package/dist/components/Link/LinkSelector/LinkSelector.es.js +67 -0
- package/dist/components/Link/LinkSelector/LinkSelector.es.js.map +1 -0
- package/dist/components/Link/LinkSelector/PageLink.es.js.map +1 -0
- package/dist/components/Link/LinkSelector/PageLinks.es.js +37 -0
- package/dist/components/Link/LinkSelector/PageLinks.es.js.map +1 -0
- package/dist/components/Link/LinkSelector/SectionLink.es.js.map +1 -0
- package/dist/components/Link/utils/getUrl.es.js +17 -0
- package/dist/components/Link/utils/getUrl.es.js.map +1 -0
- package/dist/components/Link/utils/relativeUrlRegex.es.js.map +1 -0
- package/dist/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/url.es.js +1 -1
- package/dist/components/Link/utils/url.es.js.map +1 -0
- package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/useInsertModal.es.js +1 -1
- package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/useInsertModal.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/ButtonPlugin/createButtonPlugin.es.js +1 -1
- package/dist/components/RichTextEditor/plugins/ButtonPlugin/createButtonPlugin.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/useFloatingLinkEdit.es.js +1 -1
- package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/useFloatingLinkEdit.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.es.js +39 -53
- package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/useInsertModal.es.js +2 -2
- package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/useInsertModal.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/LinkPlugin/index.es.js +1 -1
- package/dist/components/RichTextEditor/plugins/LinkPlugin/index.es.js.map +1 -1
- package/dist/helpers/addHttps.es.js +1 -1
- package/dist/helpers/addHttps.es.js.map +1 -1
- package/dist/index.cjs.js +8 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +60 -0
- package/dist/index.es.js +134 -121
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +8 -8
- package/dist/index.umd.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +4 -4
- package/src/components/Attachments/Attachments.tsx +1 -1
- package/src/components/BlockItemWrapper/Toolbar.tsx +1 -1
- package/src/components/DownloadButton/DownloadButton.tsx +1 -1
- package/src/components/Link/LinkInput.spec.ct.tsx +142 -0
- package/src/components/Link/LinkInput.tsx +80 -0
- package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/DocumentLink.tsx +1 -1
- package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/DocumentLinks.tsx +1 -1
- package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/LinkSelector.tsx +10 -4
- package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/PageLink.tsx +1 -1
- package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/PageLinks.tsx +8 -2
- package/src/components/Link/index.ts +6 -0
- package/src/components/Link/types.ts +6 -0
- package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/getUrl.ts +1 -5
- package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/index.ts +1 -0
- package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/url.ts +2 -2
- package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/useInsertModal.ts +1 -1
- package/src/components/RichTextEditor/plugins/ButtonPlugin/createButtonPlugin.ts +1 -1
- package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/useFloatingLinkEdit.ts +1 -1
- package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.tsx +11 -28
- package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/types.ts +0 -5
- package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/useInsertModal.ts +2 -2
- package/src/components/RichTextEditor/plugins/LinkPlugin/index.ts +1 -1
- package/src/components/index.ts +1 -0
- package/src/helpers/addHttps.ts +1 -1
- package/src/index.ts +2 -0
- package/dist/components/RichTextEditor/plugins/LinkPlugin/utils/getUrl.es.js +0 -18
- package/dist/components/RichTextEditor/plugins/LinkPlugin/utils/getUrl.es.js.map +0 -1
- package/dist/components/RichTextEditor/plugins/LinkPlugin/utils/relativeUrlRegex.es.js.map +0 -1
- package/dist/components/RichTextEditor/plugins/LinkPlugin/utils/url.es.js.map +0 -1
- package/dist/components/RichTextEditor/plugins/shared/LinkSelector/DocumentLink.es.js.map +0 -1
- package/dist/components/RichTextEditor/plugins/shared/LinkSelector/DocumentLinks.es.js.map +0 -1
- package/dist/components/RichTextEditor/plugins/shared/LinkSelector/LinkSelector.es.js +0 -62
- package/dist/components/RichTextEditor/plugins/shared/LinkSelector/LinkSelector.es.js.map +0 -1
- package/dist/components/RichTextEditor/plugins/shared/LinkSelector/PageLink.es.js.map +0 -1
- package/dist/components/RichTextEditor/plugins/shared/LinkSelector/PageLinks.es.js +0 -34
- package/dist/components/RichTextEditor/plugins/shared/LinkSelector/PageLinks.es.js.map +0 -1
- package/dist/components/RichTextEditor/plugins/shared/LinkSelector/SectionLink.es.js.map +0 -1
- /package/dist/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/DocumentLink.es.js +0 -0
- /package/dist/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/DocumentLinks.es.js +0 -0
- /package/dist/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/PageLink.es.js +0 -0
- /package/dist/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/SectionLink.es.js +0 -0
- /package/dist/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/relativeUrlRegex.es.js +0 -0
- /package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/LinkSelector.spec.ct.tsx +0 -0
- /package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/SectionLink.tsx +0 -0
- /package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/index.ts +0 -0
- /package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/relativeUrlRegex.spec.ts +0 -0
- /package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/relativeUrlRegex.ts +0 -0
- /package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/url.spec.ts +0 -0
package/src/index.ts
CHANGED
|
@@ -17,6 +17,7 @@ import type {
|
|
|
17
17
|
FontInputBlock as FontInputBlockSidebarSettings,
|
|
18
18
|
InputBlock as InputBlockSidebarSettings,
|
|
19
19
|
LegacyAssetInputBlock as LegacyAssetInputBlockSidebarSettings,
|
|
20
|
+
LinkBlock as LinkBlockSidebarSettings,
|
|
20
21
|
LinkChooserBlock as LinkChooserBlockSidebarSettings,
|
|
21
22
|
MultiInputBlock as MultiInputBlockSidebarSettings,
|
|
22
23
|
NotificationBlock as NotificationBlockSidebarSettings,
|
|
@@ -45,6 +46,7 @@ export type DynamicSupportedBlock = DynamicSupportedBlockSidebarSettings<AppBrid
|
|
|
45
46
|
export type FontInputBlock = FontInputBlockSidebarSettings<AppBridgeBlock>;
|
|
46
47
|
export type InputBlock = InputBlockSidebarSettings<AppBridgeBlock>;
|
|
47
48
|
export type LegacyAssetInputBlock = LegacyAssetInputBlockSidebarSettings<AppBridgeBlock>;
|
|
49
|
+
export type LinkBlock = LinkBlockSidebarSettings<AppBridgeBlock>;
|
|
48
50
|
export type LinkChooserBlock = LinkChooserBlockSidebarSettings<AppBridgeBlock>;
|
|
49
51
|
export type MultiInputBlock = MultiInputBlockSidebarSettings<AppBridgeBlock>;
|
|
50
52
|
export type NotificationBlock = NotificationBlockSidebarSettings<AppBridgeBlock>;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { getAboveNode as c, ELEMENT_LINK as s } from "@udecode/plate";
|
|
2
|
-
const n = (r, e) => {
|
|
3
|
-
const t = c(r, { match: { type: s } });
|
|
4
|
-
return Array.isArray(t) ? e(t[0]) : "";
|
|
5
|
-
}, u = (r) => n(r, (e) => {
|
|
6
|
-
var t, o;
|
|
7
|
-
return ((o = (t = e.chosenLink) == null ? void 0 : t.searchResult) == null ? void 0 : o.link) || "";
|
|
8
|
-
}), L = (r) => n(r, (e) => e.url || ""), i = (r) => {
|
|
9
|
-
var e, t;
|
|
10
|
-
return r.url || ((t = (e = r.chosenLink) == null ? void 0 : e.searchResult) == null ? void 0 : t.link) || "";
|
|
11
|
-
}, g = (r) => n(r, i);
|
|
12
|
-
export {
|
|
13
|
-
u as getLegacyUrl,
|
|
14
|
-
L as getUrl,
|
|
15
|
-
g as getUrlFromEditor,
|
|
16
|
-
i as getUrlFromLinkOrLegacyLink
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=getUrl.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getUrl.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/LinkPlugin/utils/getUrl.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { ELEMENT_LINK, PlateEditor, getAboveNode } from '@udecode/plate';\nimport { TLinkElement } from '../types';\n\nconst getLinkNode = (editor: PlateEditor, cb: (link: TLinkElement) => string): string => {\n const linkNode = getAboveNode<TLinkElement>(editor, { match: { type: ELEMENT_LINK } });\n\n if (!Array.isArray(linkNode)) {\n return '';\n }\n\n return cb(linkNode[0]);\n};\n\nexport const getLegacyUrl = (editor: PlateEditor) => {\n return getLinkNode(editor, (link) => link.chosenLink?.searchResult?.link || '');\n};\n\nexport const getUrl = (editor: PlateEditor) => {\n return getLinkNode(editor, (link) => link.url || '');\n};\n\nexport const getUrlFromLinkOrLegacyLink = (link: TLinkElement): string => {\n return link.url || link.chosenLink?.searchResult?.link || '';\n};\n\nexport const getUrlFromEditor = (editor: PlateEditor) => {\n return getLinkNode(editor, getUrlFromLinkOrLegacyLink);\n};\n"],"names":["getLinkNode","editor","cb","linkNode","getAboveNode","ELEMENT_LINK","getLegacyUrl","link","_b","_a","getUrl","getUrlFromLinkOrLegacyLink","getUrlFromEditor"],"mappings":";AAKA,MAAMA,IAAc,CAACC,GAAqBC,MAA+C;AAC/E,QAAAC,IAAWC,EAA2BH,GAAQ,EAAE,OAAO,EAAE,MAAMI,EAAa,EAAA,CAAG;AAErF,SAAK,MAAM,QAAQF,CAAQ,IAIpBD,EAAGC,EAAS,CAAC,CAAC,IAHV;AAIf,GAEaG,IAAe,CAACL,MAClBD,EAAYC,GAAQ,CAACM,MAAS;;AAAA,WAAAC,KAAAC,IAAAF,EAAK,eAAL,gBAAAE,EAAiB,iBAAjB,gBAAAD,EAA+B,SAAQ;AAAA,CAAE,GAGrEE,IAAS,CAACT,MACZD,EAAYC,GAAQ,CAACM,MAASA,EAAK,OAAO,EAAE,GAG1CI,IAA6B,CAACJ,MAA+B;;AACtE,SAAOA,EAAK,SAAOC,KAAAC,IAAAF,EAAK,eAAL,gBAAAE,EAAiB,iBAAjB,gBAAAD,EAA+B,SAAQ;AAC9D,GAEaI,IAAmB,CAACX,MACtBD,EAAYC,GAAQU,CAA0B;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"relativeUrlRegex.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/LinkPlugin/utils/relativeUrlRegex.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nexport const relativeUrlRegex = /^\\/(document|r)\\/\\S+$/i;\n"],"names":["relativeUrlRegex"],"mappings":"AAEO,MAAMA,IAAmB;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"url.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/LinkPlugin/utils/url.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { addHttps } from '../../../../../helpers';\nimport { relativeUrlRegex } from './relativeUrlRegex';\n\nexport const isValidUrl = (url: string) => {\n if (relativeUrlRegex.test(url)) {\n return true;\n }\n try {\n const parsedUrl = new URL(url);\n const validProtocols = ['http:', 'https:', 'mailto:', 'tel:'];\n return validProtocols.includes(parsedUrl.protocol) && parsedUrl.pathname !== '';\n } catch (error) {\n return false;\n }\n};\n\nexport const isValidUrlOrEmpty = (url: string) => {\n return isValidUrl(addHttps(url)) || url === '';\n};\n"],"names":["isValidUrl","url","relativeUrlRegex","parsedUrl","isValidUrlOrEmpty","addHttps"],"mappings":";;AAKa,MAAAA,IAAa,CAACC,MAAgB;AACnC,MAAAC,EAAiB,KAAKD,CAAG;AAClB,WAAA;AAEP,MAAA;AACM,UAAAE,IAAY,IAAI,IAAIF,CAAG;AAE7B,WADuB,CAAC,SAAS,UAAU,WAAW,MAAM,EACtC,SAASE,EAAU,QAAQ,KAAKA,EAAU,aAAa;AAAA,UACjE;AACL,WAAA;AAAA,EACX;AACJ,GAEaC,IAAoB,CAACH,MACvBD,EAAWK,EAASJ,CAAG,CAAC,KAAKA,MAAQ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentLink.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/shared/LinkSelector/DocumentLink.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { AppBridgeBlock } from '@frontify/app-bridge';\nimport { useEffect, useState } from 'react';\nimport { PageLinks } from './PageLinks';\nimport { IconColorFan16, merge } from '@frontify/fondue';\nimport { InitiallyExpandedItems } from '../../LinkPlugin/FloatingLink/InsertLinkModal/types';\n\ntype DocumentLinkProps = {\n document: {\n id: number;\n title: string;\n permanentLink: string;\n };\n appBridge: AppBridgeBlock;\n selectedUrl: string;\n onSelectUrl: (url: string) => void;\n itemsToExpandInitially: InitiallyExpandedItems;\n};\n\nexport const DocumentLink = ({\n document,\n appBridge,\n selectedUrl,\n onSelectUrl,\n itemsToExpandInitially,\n}: DocumentLinkProps) => {\n const [isExpanded, setIsExpanded] = useState(document.id === itemsToExpandInitially.documentId);\n const isActive = document.permanentLink === selectedUrl;\n\n useEffect(() => {\n if (document.id === itemsToExpandInitially.documentId) {\n setIsExpanded(true);\n }\n }, [itemsToExpandInitially, document.id]);\n\n return (\n <>\n <button\n data-test-id=\"internal-link-selector-document-link\"\n className={merge([\n 'tw-flex tw-flex-1 tw-space-x-2 tw-items-center tw-py-2 tw-px-2.5 tw-leading-5 tw-cursor-pointer tw-w-full',\n isActive\n ? 'tw-bg-box-selected-strong tw-text-box-selected-strong-inverse hover:tw-bg-box-selected-strong-hover:hover hover:tw-text-box-selected-strong-inverse-hover:hover'\n : 'hover:tw-bg-box-neutral-hover hover:tw-text-box-neutral-inverse-hover',\n ])}\n onClick={() => onSelectUrl(document.permanentLink)}\n onFocus={() => onSelectUrl(document.permanentLink)}\n >\n <div\n role=\"button\"\n tabIndex={0}\n data-test-id=\"tree-item-toggle\"\n className=\"tw-flex tw-items-center tw-justify-center tw-p-1.5 tw-cursor-pointer\"\n onClick={() => setIsExpanded(!isExpanded)}\n onFocus={() => setIsExpanded(!isExpanded)}\n >\n <div\n className={merge([\n 'tw-transition-transform tw-w-0 tw-h-0 tw-font-normal tw-border-t-4 tw-border-t-transparent tw-border-b-4 tw-border-b-transparent tw-border-l-4 tw-border-l-x-strong',\n isExpanded ? 'tw-rotate-90' : '',\n ])}\n ></div>\n </div>\n <IconColorFan16 />\n <span className=\"tw-text-s\">{document.title}</span>\n <span className=\"tw-flex-auto tw-font-sans tw-text-xs tw-text-right\">Document</span>\n </button>\n {isExpanded && (\n <PageLinks\n appBridge={appBridge}\n documentId={document.id}\n selectedUrl={selectedUrl}\n onSelectUrl={onSelectUrl}\n itemsToExpandInitially={itemsToExpandInitially}\n />\n )}\n </>\n );\n};\n"],"names":["DocumentLink","document","appBridge","selectedUrl","onSelectUrl","itemsToExpandInitially","isExpanded","setIsExpanded","useState","isActive","useEffect","jsxs","Fragment","merge","jsx","IconColorFan16","PageLinks"],"mappings":";;;;AAoBO,MAAMA,IAAe,CAAC;AAAA,EACzB,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,wBAAAC;AACJ,MAAyB;AACf,QAAA,CAACC,GAAYC,CAAa,IAAIC,EAASP,EAAS,OAAOI,EAAuB,UAAU,GACxFI,IAAWR,EAAS,kBAAkBE;AAE5C,SAAAO,EAAU,MAAM;AACR,IAAAT,EAAS,OAAOI,EAAuB,cACvCE,EAAc,EAAI;AAAA,EAEvB,GAAA,CAACF,GAAwBJ,EAAS,EAAE,CAAC,GAIhC,gBAAAU,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,gBAAa;AAAA,QACb,WAAWE,EAAM;AAAA,UACb;AAAA,UACAJ,IACM,oKACA;AAAA,QAAA,CACT;AAAA,QACD,SAAS,MAAML,EAAYH,EAAS,aAAa;AAAA,QACjD,SAAS,MAAMG,EAAYH,EAAS,aAAa;AAAA,QAEjD,UAAA;AAAA,UAAA,gBAAAa;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,MAAK;AAAA,cACL,UAAU;AAAA,cACV,gBAAa;AAAA,cACb,WAAU;AAAA,cACV,SAAS,MAAMP,EAAc,CAACD,CAAU;AAAA,cACxC,SAAS,MAAMC,EAAc,CAACD,CAAU;AAAA,cAExC,UAAA,gBAAAQ;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,WAAWD,EAAM;AAAA,oBACb;AAAA,oBACAP,IAAa,iBAAiB;AAAA,kBAAA,CACjC;AAAA,gBAAA;AAAA,cACJ;AAAA,YAAA;AAAA,UACL;AAAA,4BACCS,GAAe,EAAA;AAAA,UACf,gBAAAD,EAAA,QAAA,EAAK,WAAU,aAAa,YAAS,OAAM;AAAA,UAC3C,gBAAAA,EAAA,QAAA,EAAK,WAAU,sDAAqD,UAAQ,YAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACjF;AAAA,IACCR,KACG,gBAAAQ;AAAA,MAACE;AAAA,MAAA;AAAA,QACG,WAAAd;AAAA,QACA,YAAYD,EAAS;AAAA,QACrB,aAAAE;AAAA,QACA,aAAAC;AAAA,QACA,wBAAAC;AAAA,MAAA;AAAA,IACJ;AAAA,EAER,EAAA,CAAA;AAER;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentLinks.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/shared/LinkSelector/DocumentLinks.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { AppBridgeBlock, Document } from '@frontify/app-bridge';\nimport { LoadingCircle } from '@frontify/fondue';\nimport { ReactElement, useEffect, useState } from 'react';\nimport { InitiallyExpandedItems } from '../../LinkPlugin/FloatingLink/InsertLinkModal/types';\nimport { DocumentLink } from './DocumentLink';\n\ntype DocumentLinksProps = {\n appBridge: AppBridgeBlock;\n selectedUrl: string;\n onSelectUrl: (url: string) => void;\n};\n\nexport const DocumentLinks = ({ appBridge, selectedUrl, onSelectUrl }: DocumentLinksProps): ReactElement => {\n const [isLoading, setIsLoading] = useState(true);\n const [documents, setDocuments] = useState<Document[]>([]);\n const [itemsToExpandInitially, setItemsToExpandInitially] = useState<InitiallyExpandedItems>({\n documentId: undefined,\n pageId: undefined,\n });\n\n const documentArray = [...documents.values()];\n\n useEffect(() => {\n if (selectedUrl && documentArray.length > 0) {\n findLocationOfSelectedUrl().then((items) => {\n setItemsToExpandInitially(items);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [documentArray.length]);\n\n useEffect(() => {\n appBridge\n .getAllDocuments()\n .then((_documents) => {\n setDocuments(_documents);\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n const findLocationOfSelectedUrl = async () => {\n const itemsToExpand: InitiallyExpandedItems = {\n documentId: undefined,\n pageId: undefined,\n };\n const selectedUrlIsDocument = documentArray.find((document) => document.permanentLink === selectedUrl);\n if (selectedUrlIsDocument) {\n return itemsToExpand;\n }\n for (const document of documentArray) {\n const pages = await appBridge.getDocumentPagesByDocumentId(document.id);\n appBridge.getAllDocuments();\n const pagesArray = [...pages.values()];\n const selectedUrlIsPage = !!pagesArray.find((page) => page.permanentLink === selectedUrl);\n if (selectedUrlIsPage) {\n itemsToExpand.documentId = document.id;\n return itemsToExpand;\n }\n for (const page of pagesArray) {\n const sections = await appBridge.getDocumentSectionsByDocumentPageId(page.id);\n const sectionsArray = [...sections.values()];\n const selectedUrlIsSection = !!sectionsArray.find((section) => section.permanentLink === selectedUrl);\n if (selectedUrlIsSection) {\n itemsToExpand.documentId = document.id;\n itemsToExpand.pageId = page.id;\n return itemsToExpand;\n }\n }\n }\n return itemsToExpand;\n };\n\n return isLoading ? (\n <div className=\"tw-flex tw-justify-center tw-p-4\">\n <LoadingCircle />\n </div>\n ) : (\n <>\n {documentArray.map((document) => {\n return (\n <DocumentLink\n key={document.id}\n document={document}\n appBridge={appBridge}\n selectedUrl={selectedUrl}\n onSelectUrl={onSelectUrl}\n itemsToExpandInitially={itemsToExpandInitially}\n />\n );\n })}\n </>\n );\n};\n"],"names":["DocumentLinks","appBridge","selectedUrl","onSelectUrl","isLoading","setIsLoading","useState","documents","setDocuments","itemsToExpandInitially","setItemsToExpandInitially","documentArray","useEffect","findLocationOfSelectedUrl","items","_documents","itemsToExpand","document","pages","pagesArray","page","section","jsx","LoadingCircle","Fragment","DocumentLink"],"mappings":";;;;AAcO,MAAMA,IAAgB,CAAC,EAAE,WAAAC,GAAW,aAAAC,GAAa,aAAAC,QAAoD;AACxG,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAI,GACzC,CAACC,GAAWC,CAAY,IAAIF,EAAqB,CAAE,CAAA,GACnD,CAACG,GAAwBC,CAAyB,IAAIJ,EAAiC;AAAA,IACzF,YAAY;AAAA,IACZ,QAAQ;AAAA,EAAA,CACX,GAEKK,IAAgB,CAAC,GAAGJ,EAAU,OAAQ,CAAA;AAE5C,EAAAK,EAAU,MAAM;AACR,IAAAV,KAAeS,EAAc,SAAS,KACZE,EAAA,EAAE,KAAK,CAACC,MAAU;AACxC,MAAAJ,EAA0BI,CAAK;AAAA,IAAA,CAClC;AAAA,EACL,GAED,CAACH,EAAc,MAAM,CAAC,GAEzBC,EAAU,MAAM;AACZ,IAAAX,EACK,gBAAgB,EAChB,KAAK,CAACc,MAAe;AAClB,MAAAP,EAAaO,CAAU;AAAA,IAAA,CAC1B,EACA,QAAQ,MAAM;AACX,MAAAV,EAAa,EAAK;AAAA,IAAA,CACrB;AAAA,EACT,GAAG,CAAE,CAAA;AAEL,QAAMQ,IAA4B,YAAY;AAC1C,UAAMG,IAAwC;AAAA,MAC1C,YAAY;AAAA,MACZ,QAAQ;AAAA,IAAA;AAGZ,QAD8BL,EAAc,KAAK,CAACM,MAAaA,EAAS,kBAAkBf,CAAW;AAE1F,aAAAc;AAEX,eAAWC,KAAYN,GAAe;AAClC,YAAMO,IAAQ,MAAMjB,EAAU,6BAA6BgB,EAAS,EAAE;AACtE,MAAAhB,EAAU,gBAAgB;AAC1B,YAAMkB,IAAa,CAAC,GAAGD,EAAM,OAAQ,CAAA;AAErC,UAD0B,CAAC,CAACC,EAAW,KAAK,CAACC,MAASA,EAAK,kBAAkBlB,CAAW;AAEpF,eAAAc,EAAc,aAAaC,EAAS,IAC7BD;AAEX,iBAAWI,KAAQD;AAIf,YAD6B,CAAC,CADR,CAAC,IADN,MAAMlB,EAAU,oCAAoCmB,EAAK,EAAE,GACzC,OAAQ,CAAA,EACE,KAAK,CAACC,MAAYA,EAAQ,kBAAkBnB,CAAW;AAEhG,iBAAAc,EAAc,aAAaC,EAAS,IACpCD,EAAc,SAASI,EAAK,IACrBJ;AAAA,IAGnB;AACO,WAAAA;AAAA,EAAA;AAGX,SAAOZ,IACH,gBAAAkB,EAAC,OAAI,EAAA,WAAU,oCACX,UAAA,gBAAAA,EAACC,GAAc,CAAA,CAAA,GACnB,IAEA,gBAAAD,EAAAE,GAAA,EACK,UAAcb,EAAA,IAAI,CAACM,MAEZ,gBAAAK;AAAA,IAACG;AAAA,IAAA;AAAA,MAEG,UAAAR;AAAA,MACA,WAAAhB;AAAA,MACA,aAAAC;AAAA,MACA,aAAAC;AAAA,MACA,wBAAAM;AAAA,IAAA;AAAA,IALKQ,EAAS;AAAA,EAAA,CAQzB,EACL,CAAA;AAER;"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { jsxs as d, jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { Button as y, IconLink as D, ButtonSize as S, ButtonType as B, ButtonStyle as l, ButtonEmphasis as r, Modal as i } from "@frontify/fondue";
|
|
3
|
-
import { useOverlayTriggerState as L } from "@react-stately/overlays";
|
|
4
|
-
import { useState as C, useEffect as T } from "react";
|
|
5
|
-
import { DocumentLinks as x } from "./DocumentLinks.es.js";
|
|
6
|
-
const I = ({ appBridge: p, url: o, onUrlChange: m }) => {
|
|
7
|
-
const { open: u, isOpen: f, close: s } = L({}), [n, c] = C(o), k = (e) => {
|
|
8
|
-
c(e);
|
|
9
|
-
}, h = (e) => {
|
|
10
|
-
e.key === "Enter" && a();
|
|
11
|
-
};
|
|
12
|
-
T(() => {
|
|
13
|
-
o && !n && c(o);
|
|
14
|
-
}, [o, n]);
|
|
15
|
-
const a = () => {
|
|
16
|
-
m(n), s();
|
|
17
|
-
};
|
|
18
|
-
return /* @__PURE__ */ d("div", { "data-test-id": "internal-link-selector", onKeyDown: h, children: [
|
|
19
|
-
/* @__PURE__ */ t(
|
|
20
|
-
y,
|
|
21
|
-
{
|
|
22
|
-
icon: /* @__PURE__ */ t(D, {}),
|
|
23
|
-
size: S.Medium,
|
|
24
|
-
type: B.Button,
|
|
25
|
-
style: l.Default,
|
|
26
|
-
emphasis: r.Default,
|
|
27
|
-
onClick: () => u(),
|
|
28
|
-
children: "Internal link"
|
|
29
|
-
}
|
|
30
|
-
),
|
|
31
|
-
/* @__PURE__ */ d(i, { zIndex: 1001, onClose: () => s(), isOpen: f, isDismissable: !0, children: [
|
|
32
|
-
/* @__PURE__ */ t(i.Header, { title: "Select internal link" }),
|
|
33
|
-
/* @__PURE__ */ t(i.Body, { children: /* @__PURE__ */ t(x, { appBridge: p, selectedUrl: n, onSelectUrl: k }) }),
|
|
34
|
-
/* @__PURE__ */ t(
|
|
35
|
-
i.Footer,
|
|
36
|
-
{
|
|
37
|
-
buttons: [
|
|
38
|
-
{
|
|
39
|
-
children: "Cancel",
|
|
40
|
-
onClick: () => s(),
|
|
41
|
-
style: l.Default,
|
|
42
|
-
emphasis: r.Default
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
children: "Choose",
|
|
46
|
-
onClick: (e) => {
|
|
47
|
-
e == null || e.preventDefault(), a();
|
|
48
|
-
},
|
|
49
|
-
style: l.Default,
|
|
50
|
-
emphasis: r.Strong,
|
|
51
|
-
disabled: !n
|
|
52
|
-
}
|
|
53
|
-
]
|
|
54
|
-
}
|
|
55
|
-
)
|
|
56
|
-
] })
|
|
57
|
-
] });
|
|
58
|
-
};
|
|
59
|
-
export {
|
|
60
|
-
I as LinkSelector
|
|
61
|
-
};
|
|
62
|
-
//# sourceMappingURL=LinkSelector.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinkSelector.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/shared/LinkSelector/LinkSelector.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { AppBridgeBlock } from '@frontify/app-bridge';\nimport { Button, ButtonEmphasis, ButtonSize, ButtonStyle, ButtonType, IconLink, Modal } from '@frontify/fondue';\nimport { useOverlayTriggerState } from '@react-stately/overlays';\nimport { KeyboardEvent, ReactElement, useEffect, useState } from 'react';\nimport { DocumentLinks } from './DocumentLinks';\n\ntype LinkSelectorProps = {\n appBridge: AppBridgeBlock;\n url: string;\n onUrlChange: (value: string) => void;\n};\n\nexport const LinkSelector = ({ appBridge, url, onUrlChange }: LinkSelectorProps): ReactElement => {\n const { open: openLinkTree, isOpen: isLinkTreeOpen, close: closeLinkTree } = useOverlayTriggerState({});\n const [selectedUrl, setSelectedUrl] = useState<string>(url);\n\n const onSelectUrl = (url: string) => {\n setSelectedUrl(url);\n };\n\n const onPressEnter = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n saveLink();\n }\n };\n\n useEffect(() => {\n if (url && !selectedUrl) {\n setSelectedUrl(url);\n }\n }, [url, selectedUrl]);\n\n const saveLink = () => {\n onUrlChange(selectedUrl);\n closeLinkTree();\n };\n\n return (\n <div data-test-id=\"internal-link-selector\" onKeyDown={onPressEnter}>\n <Button\n icon={<IconLink />}\n size={ButtonSize.Medium}\n type={ButtonType.Button}\n style={ButtonStyle.Default}\n emphasis={ButtonEmphasis.Default}\n onClick={() => openLinkTree()}\n >\n Internal link\n </Button>\n <Modal zIndex={1001} onClose={() => closeLinkTree()} isOpen={isLinkTreeOpen} isDismissable>\n <Modal.Header title=\"Select internal link\" />\n <Modal.Body>\n <DocumentLinks appBridge={appBridge} selectedUrl={selectedUrl} onSelectUrl={onSelectUrl} />\n </Modal.Body>\n <Modal.Footer\n buttons={[\n {\n children: 'Cancel',\n onClick: () => closeLinkTree(),\n style: ButtonStyle.Default,\n emphasis: ButtonEmphasis.Default,\n },\n {\n children: 'Choose',\n onClick: (event) => {\n event?.preventDefault();\n saveLink();\n },\n style: ButtonStyle.Default,\n emphasis: ButtonEmphasis.Strong,\n disabled: !selectedUrl,\n },\n ]}\n />\n </Modal>\n </div>\n );\n};\n"],"names":["LinkSelector","appBridge","url","onUrlChange","openLinkTree","isLinkTreeOpen","closeLinkTree","useOverlayTriggerState","selectedUrl","setSelectedUrl","useState","onSelectUrl","onPressEnter","event","saveLink","useEffect","jsxs","jsx","Button","IconLink","ButtonSize","ButtonType","ButtonStyle","ButtonEmphasis","Modal","DocumentLinks"],"mappings":";;;;;AAcO,MAAMA,IAAe,CAAC,EAAE,WAAAC,GAAW,KAAAC,GAAK,aAAAC,QAAmD;AACxF,QAAA,EAAE,MAAMC,GAAc,QAAQC,GAAgB,OAAOC,EAAc,IAAIC,EAAuB,CAAA,CAAE,GAChG,CAACC,GAAaC,CAAc,IAAIC,EAAiBR,CAAG,GAEpDS,IAAc,CAACT,MAAgB;AACjC,IAAAO,EAAeP,CAAG;AAAA,EAAA,GAGhBU,IAAe,CAACC,MAA2C;AACzD,IAAAA,EAAM,QAAQ,WACLC;EACb;AAGJ,EAAAC,EAAU,MAAM;AACR,IAAAb,KAAO,CAACM,KACRC,EAAeP,CAAG;AAAA,EACtB,GACD,CAACA,GAAKM,CAAW,CAAC;AAErB,QAAMM,IAAW,MAAM;AACnB,IAAAX,EAAYK,CAAW,GACTF;EAAA;AAGlB,SACK,gBAAAU,EAAA,OAAA,EAAI,gBAAa,0BAAyB,WAAWJ,GAClD,UAAA;AAAA,IAAA,gBAAAK;AAAA,MAACC;AAAA,MAAA;AAAA,QACG,wBAAOC,GAAS,EAAA;AAAA,QAChB,MAAMC,EAAW;AAAA,QACjB,MAAMC,EAAW;AAAA,QACjB,OAAOC,EAAY;AAAA,QACnB,UAAUC,EAAe;AAAA,QACzB,SAAS,MAAMnB,EAAa;AAAA,QAC/B,UAAA;AAAA,MAAA;AAAA,IAED;AAAA,IACA,gBAAAY,EAACQ,GAAM,EAAA,QAAQ,MAAM,SAAS,MAAMlB,EAAiB,GAAA,QAAQD,GAAgB,eAAa,IACtF,UAAA;AAAA,MAAA,gBAAAY,EAACO,EAAM,QAAN,EAAa,OAAM,uBAAuB,CAAA;AAAA,MAC3C,gBAAAP,EAACO,EAAM,MAAN,EACG,4BAACC,GAAc,EAAA,WAAAxB,GAAsB,aAAAO,GAA0B,aAAAG,EAAA,CAA0B,EAC7F,CAAA;AAAA,MACA,gBAAAM;AAAA,QAACO,EAAM;AAAA,QAAN;AAAA,UACG,SAAS;AAAA,YACL;AAAA,cACI,UAAU;AAAA,cACV,SAAS,MAAMlB,EAAc;AAAA,cAC7B,OAAOgB,EAAY;AAAA,cACnB,UAAUC,EAAe;AAAA,YAC7B;AAAA,YACA;AAAA,cACI,UAAU;AAAA,cACV,SAAS,CAACV,MAAU;AAChB,gBAAAA,KAAA,QAAAA,EAAO,kBACEC;cACb;AAAA,cACA,OAAOQ,EAAY;AAAA,cACnB,UAAUC,EAAe;AAAA,cACzB,UAAU,CAACf;AAAA,YACf;AAAA,UACJ;AAAA,QAAA;AAAA,MACJ;AAAA,IAAA,GACJ;AAAA,EACJ,EAAA,CAAA;AAER;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PageLink.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/shared/LinkSelector/PageLink.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { AppBridgeBlock, useDocumentSection } from '@frontify/app-bridge';\nimport { merge } from '@frontify/fondue';\nimport { useEffect, useState } from 'react';\nimport { InitiallyExpandedItems } from '../../LinkPlugin/FloatingLink/InsertLinkModal/types';\nimport { SectionLink } from './SectionLink';\n\ntype DocumentLinkProps = {\n page: {\n id: number;\n title: string;\n permanentLink: string;\n };\n selectedUrl: string;\n onSelectUrl: (url: string) => void;\n appBridge: AppBridgeBlock;\n itemsToExpandInitially: InitiallyExpandedItems;\n};\n\nexport const PageLink = ({ page, selectedUrl, onSelectUrl, itemsToExpandInitially, appBridge }: DocumentLinkProps) => {\n const [isExpanded, setIsExpanded] = useState(page.id === itemsToExpandInitially.documentId);\n const isActive = page.permanentLink === selectedUrl;\n const { documentSections } = useDocumentSection(appBridge, page.id);\n const sectionsArray = [...documentSections.values()];\n const hasSections = sectionsArray.length > 0;\n\n useEffect(() => {\n if (page.id === itemsToExpandInitially.pageId) {\n setIsExpanded(true);\n }\n }, [itemsToExpandInitially, page.id]);\n\n return (\n <>\n <div\n tabIndex={0}\n data-test-id=\"internal-link-selector-page-link\"\n className={merge([\n 'tw-py-2 tw-px-2.5 tw-leading-5 tw-cursor-pointer',\n hasSections ? 'tw-pl-7' : 'tw-pl-12',\n isActive\n ? 'tw-bg-box-selected-strong tw-text-box-selected-strong-inverse hover:tw-bg-box-selected-strong-hover:hover hover:tw-text-box-selected-strong-inverse-hover:hover'\n : 'hover:tw-bg-box-neutral-hover hover:tw-text-box-neutral-inverse-hover',\n ])}\n onClick={() => onSelectUrl(page.permanentLink)}\n onFocus={() => onSelectUrl(page.permanentLink)}\n >\n <div key={page.id} className=\"tw-flex tw-flex-1 tw-space-x-1 tw-items-center tw-h-6\">\n {hasSections && (\n <button\n data-test-id=\"tree-item-toggle\"\n className=\"tw-flex tw-items-center tw-justify-center tw-p-1.5 tw-cursor-pointer\"\n onClick={() => setIsExpanded(!isExpanded)}\n onFocus={() => setIsExpanded(!isExpanded)}\n >\n <div\n className={merge([\n 'tw-transition-transform tw-w-0 tw-h-0 tw-font-normal tw-border-t-4 tw-border-t-transparent tw-border-b-4 tw-border-b-transparent tw-border-l-4 tw-border-l-x-strong',\n isExpanded ? 'tw-rotate-90' : '',\n ])}\n ></div>\n </button>\n )}\n <span className=\"tw-text-s\">{page.title}</span>\n <span className=\"tw-flex-auto tw-font-sans tw-text-xs tw-text-right\">Page</span>\n </div>\n </div>\n {isExpanded &&\n sectionsArray.length > 0 &&\n sectionsArray.map((section) => {\n return (\n <SectionLink\n key={section.id}\n section={section}\n selectedUrl={selectedUrl}\n onSelectUrl={onSelectUrl}\n />\n );\n })}\n </>\n );\n};\n"],"names":["PageLink","page","selectedUrl","onSelectUrl","itemsToExpandInitially","appBridge","isExpanded","setIsExpanded","useState","isActive","documentSections","useDocumentSection","sectionsArray","hasSections","useEffect","jsxs","Fragment","jsx","merge","section","SectionLink"],"mappings":";;;;;AAoBa,MAAAA,IAAW,CAAC,EAAE,MAAAC,GAAM,aAAAC,GAAa,aAAAC,GAAa,wBAAAC,GAAwB,WAAAC,QAAmC;AAC5G,QAAA,CAACC,GAAYC,CAAa,IAAIC,EAASP,EAAK,OAAOG,EAAuB,UAAU,GACpFK,IAAWR,EAAK,kBAAkBC,GAClC,EAAE,kBAAAQ,EAAiB,IAAIC,EAAmBN,GAAWJ,EAAK,EAAE,GAC5DW,IAAgB,CAAC,GAAGF,EAAiB,OAAQ,CAAA,GAC7CG,IAAcD,EAAc,SAAS;AAE3C,SAAAE,EAAU,MAAM;AACR,IAAAb,EAAK,OAAOG,EAAuB,UACnCG,EAAc,EAAI;AAAA,EAEvB,GAAA,CAACH,GAAwBH,EAAK,EAAE,CAAC,GAI5B,gBAAAc,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,UAAU;AAAA,QACV,gBAAa;AAAA,QACb,WAAWC,EAAM;AAAA,UACb;AAAA,UACAL,IAAc,YAAY;AAAA,UAC1BJ,IACM,oKACA;AAAA,QAAA,CACT;AAAA,QACD,SAAS,MAAMN,EAAYF,EAAK,aAAa;AAAA,QAC7C,SAAS,MAAME,EAAYF,EAAK,aAAa;AAAA,QAE7C,UAAA,gBAAAc,EAAC,OAAkB,EAAA,WAAU,yDACxB,UAAA;AAAA,UACGF,KAAA,gBAAAI;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,gBAAa;AAAA,cACb,WAAU;AAAA,cACV,SAAS,MAAMV,EAAc,CAACD,CAAU;AAAA,cACxC,SAAS,MAAMC,EAAc,CAACD,CAAU;AAAA,cAExC,UAAA,gBAAAW;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,WAAWC,EAAM;AAAA,oBACb;AAAA,oBACAZ,IAAa,iBAAiB;AAAA,kBAAA,CACjC;AAAA,gBAAA;AAAA,cACJ;AAAA,YAAA;AAAA,UACL;AAAA,UAEH,gBAAAW,EAAA,QAAA,EAAK,WAAU,aAAa,YAAK,OAAM;AAAA,UACvC,gBAAAA,EAAA,QAAA,EAAK,WAAU,sDAAqD,UAAI,QAAA;AAAA,QAAA,EAAA,GAjBnEhB,EAAK,EAkBf;AAAA,MAAA;AAAA,IACJ;AAAA,IACCK,KACGM,EAAc,SAAS,KACvBA,EAAc,IAAI,CAACO,MAEX,gBAAAF;AAAA,MAACG;AAAA,MAAA;AAAA,QAEG,SAAAD;AAAA,QACA,aAAAjB;AAAA,QACA,aAAAC;AAAA,MAAA;AAAA,MAHKgB,EAAQ;AAAA,IAAA,CAMxB;AAAA,EACT,EAAA,CAAA;AAER;"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { jsx as t, Fragment as u } from "react/jsx-runtime";
|
|
2
|
-
import { LoadingCircle as p } from "@frontify/fondue";
|
|
3
|
-
import { useState as o, useEffect as w } from "react";
|
|
4
|
-
import { PageLink as h } from "./PageLink.es.js";
|
|
5
|
-
const k = ({
|
|
6
|
-
appBridge: s,
|
|
7
|
-
documentId: r,
|
|
8
|
-
selectedUrl: i,
|
|
9
|
-
onSelectUrl: c,
|
|
10
|
-
itemsToExpandInitially: m
|
|
11
|
-
}) => {
|
|
12
|
-
const [l, g] = o([]), [n, d] = o(!0), a = [...l.values()], f = !n && a.length > 0;
|
|
13
|
-
return w(() => {
|
|
14
|
-
s.getDocumentPagesByDocumentId(r).then((e) => {
|
|
15
|
-
g(e);
|
|
16
|
-
}).finally(() => {
|
|
17
|
-
d(!1);
|
|
18
|
-
});
|
|
19
|
-
}, []), n ? /* @__PURE__ */ t("div", { className: "tw-flex tw-justify-center tw-p-4", children: /* @__PURE__ */ t(p, {}) }) : f ? /* @__PURE__ */ t(u, { children: a.map((e) => /* @__PURE__ */ t(
|
|
20
|
-
h,
|
|
21
|
-
{
|
|
22
|
-
page: e,
|
|
23
|
-
appBridge: s,
|
|
24
|
-
selectedUrl: i,
|
|
25
|
-
onSelectUrl: c,
|
|
26
|
-
itemsToExpandInitially: m
|
|
27
|
-
},
|
|
28
|
-
e.id
|
|
29
|
-
)) }) : /* @__PURE__ */ t("div", { className: "tw-py-2 tw-px-2.5 tw-pl-7 tw-leading-5 tw-text-s tw-text-text-weak", children: "This document does not contain any pages." });
|
|
30
|
-
};
|
|
31
|
-
export {
|
|
32
|
-
k as PageLinks
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=PageLinks.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PageLinks.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/shared/LinkSelector/PageLinks.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { AppBridgeBlock, DocumentPage } from '@frontify/app-bridge';\nimport { LoadingCircle } from '@frontify/fondue';\nimport { ReactElement, useEffect, useState } from 'react';\nimport { InitiallyExpandedItems } from '../../LinkPlugin/FloatingLink/InsertLinkModal/types';\nimport { PageLink } from './PageLink';\n\ntype PageLinksProps = {\n appBridge: AppBridgeBlock;\n documentId: number;\n selectedUrl: string;\n onSelectUrl: (url: string) => void;\n itemsToExpandInitially: InitiallyExpandedItems;\n};\n\nexport const PageLinks = ({\n appBridge,\n documentId,\n selectedUrl,\n onSelectUrl,\n itemsToExpandInitially,\n}: PageLinksProps): ReactElement => {\n const [pages, setPages] = useState<DocumentPage[]>([]);\n const [isLoading, setIsLoading] = useState(true);\n const pagesArray = [...pages.values()];\n const hasPages = !isLoading && pagesArray.length > 0;\n\n useEffect(() => {\n appBridge\n .getDocumentPagesByDocumentId(documentId)\n .then((_pages) => {\n setPages(_pages);\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n if (isLoading) {\n return (\n <div className=\"tw-flex tw-justify-center tw-p-4\">\n <LoadingCircle />\n </div>\n );\n }\n\n return hasPages ? (\n <>\n {pagesArray.map((page) => {\n return (\n <PageLink\n key={page.id}\n page={page}\n appBridge={appBridge}\n selectedUrl={selectedUrl}\n onSelectUrl={onSelectUrl}\n itemsToExpandInitially={itemsToExpandInitially}\n />\n );\n })}\n </>\n ) : (\n <div className=\"tw-py-2 tw-px-2.5 tw-pl-7 tw-leading-5 tw-text-s tw-text-text-weak\">\n This document does not contain any pages.\n </div>\n );\n};\n"],"names":["PageLinks","appBridge","documentId","selectedUrl","onSelectUrl","itemsToExpandInitially","pages","setPages","useState","isLoading","setIsLoading","pagesArray","hasPages","useEffect","_pages","jsx","LoadingCircle","Fragment","page","PageLink"],"mappings":";;;;AAgBO,MAAMA,IAAY,CAAC;AAAA,EACtB,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,wBAAAC;AACJ,MAAoC;AAChC,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAyB,CAAE,CAAA,GAC/C,CAACC,GAAWC,CAAY,IAAIF,EAAS,EAAI,GACzCG,IAAa,CAAC,GAAGL,EAAM,OAAQ,CAAA,GAC/BM,IAAW,CAACH,KAAaE,EAAW,SAAS;AAanD,SAXAE,EAAU,MAAM;AACZ,IAAAZ,EACK,6BAA6BC,CAAU,EACvC,KAAK,CAACY,MAAW;AACd,MAAAP,EAASO,CAAM;AAAA,IAAA,CAClB,EACA,QAAQ,MAAM;AACX,MAAAJ,EAAa,EAAK;AAAA,IAAA,CACrB;AAAA,EACT,GAAG,CAAE,CAAA,GAEDD,sBAEK,OAAI,EAAA,WAAU,oCACX,UAAA,gBAAAM,EAACC,KAAc,EACnB,CAAA,IAIDJ,IACH,gBAAAG,EAAAE,GAAA,EACK,UAAWN,EAAA,IAAI,CAACO,MAET,gBAAAH;AAAA,IAACI;AAAA,IAAA;AAAA,MAEG,MAAAD;AAAA,MACA,WAAAjB;AAAA,MACA,aAAAE;AAAA,MACA,aAAAC;AAAA,MACA,wBAAAC;AAAA,IAAA;AAAA,IALKa,EAAK;AAAA,EAAA,CAQrB,EACL,CAAA,sBAEC,OAAI,EAAA,WAAU,sEAAqE,UAEpF,4CAAA,CAAA;AAER;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SectionLink.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/shared/LinkSelector/SectionLink.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconDocumentText16, merge } from '@frontify/fondue';\n\ntype SectionLinkProps = {\n section: {\n id: number;\n title: string;\n permanentLink: string;\n };\n selectedUrl: string;\n onSelectUrl: (url: string) => void;\n};\n\nexport const SectionLink = ({ section, selectedUrl, onSelectUrl }: SectionLinkProps) => {\n const isActive = section.permanentLink === selectedUrl;\n\n return (\n <button\n data-test-id=\"internal-link-selector-section-link\"\n className={merge([\n 'tw-py-2 tw-px-2.5 tw-pl-14 tw-leading-5 tw-cursor-pointer tw-w-full',\n isActive\n ? 'tw-bg-box-selected-strong tw-text-box-selected-strong-inverse hover:tw-bg-box-selected-strong-hover:hover hover:tw-text-box-selected-strong-inverse-hover:hover'\n : 'hover:tw-bg-box-neutral-hover hover:tw-text-box-neutral-inverse-hover',\n ])}\n onClick={() => onSelectUrl(section.permanentLink)}\n onFocus={() => onSelectUrl(section.permanentLink)}\n >\n <div className=\"tw-flex tw-flex-1 tw-space-x-2 tw-items-center tw-h-6\">\n <IconDocumentText16 />\n <span className=\"tw-text-s\">{section.title}</span>\n <span className=\"tw-flex-auto tw-font-sans tw-text-xs tw-text-right\">Section</span>\n </div>\n </button>\n );\n};\n"],"names":["SectionLink","section","selectedUrl","onSelectUrl","isActive","jsx","merge","jsxs","IconDocumentText16"],"mappings":";;AAcO,MAAMA,IAAc,CAAC,EAAE,SAAAC,GAAS,aAAAC,GAAa,aAAAC,QAAoC;AAC9E,QAAAC,IAAWH,EAAQ,kBAAkBC;AAGvC,SAAA,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,gBAAa;AAAA,MACb,WAAWC,EAAM;AAAA,QACb;AAAA,QACAF,IACM,oKACA;AAAA,MAAA,CACT;AAAA,MACD,SAAS,MAAMD,EAAYF,EAAQ,aAAa;AAAA,MAChD,SAAS,MAAME,EAAYF,EAAQ,aAAa;AAAA,MAEhD,UAAA,gBAAAM,EAAC,OAAI,EAAA,WAAU,yDACX,UAAA;AAAA,QAAA,gBAAAF,EAACG,GAAmB,EAAA;AAAA,QACnB,gBAAAH,EAAA,QAAA,EAAK,WAAU,aAAa,YAAQ,OAAM;AAAA,QAC1C,gBAAAA,EAAA,QAAA,EAAK,WAAU,sDAAqD,UAAO,WAAA;AAAA,MAAA,GAChF;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
|
/package/dist/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/DocumentLink.es.js
RENAMED
|
File without changes
|
/package/dist/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/DocumentLinks.es.js
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/SectionLink.es.js
RENAMED
|
File without changes
|
/package/dist/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/relativeUrlRegex.es.js
RENAMED
|
File without changes
|
/package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/LinkSelector.spec.ct.tsx
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/relativeUrlRegex.spec.ts
RENAMED
|
File without changes
|
/package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/relativeUrlRegex.ts
RENAMED
|
File without changes
|
|
File without changes
|