@contentful/field-editor-rich-text 2.0.0-next.43 → 2.0.0-next.44
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/dist/field-editor-rich-text.cjs.development.js +168 -384
- package/dist/field-editor-rich-text.cjs.development.js.map +1 -1
- package/dist/field-editor-rich-text.cjs.production.min.js +1 -1
- package/dist/field-editor-rich-text.cjs.production.min.js.map +1 -1
- package/dist/field-editor-rich-text.esm.js +173 -389
- package/dist/field-editor-rich-text.esm.js.map +1 -1
- package/dist/plugins/shared/FetchingWrappedAssetCard.d.ts +0 -10
- package/dist/plugins/shared/FetchingWrappedEntryCard.d.ts +1 -1
- package/dist/plugins/shared/useFetchedEntity.d.ts +8 -0
- package/package.json +4 -3
- package/dist/plugins/shared/EntityStatusIcon.d.ts +0 -7
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import React__default, { createContext, useContext, useMemo,
|
|
2
|
-
import { useEntities,
|
|
3
|
-
import { entityHelpers,
|
|
1
|
+
import React__default, { createContext, useContext, useMemo, useState, useEffect, memo, createElement, Fragment, useCallback } from 'react';
|
|
2
|
+
import { useEntities, MissingEntityCard, WrappedAssetCard, WrappedEntryCard, ScheduledIconWithTooltip, EntityProvider, getScheduleTooltipContent } from '@contentful/field-editor-reference';
|
|
3
|
+
import { entityHelpers, ModalDialogLauncher, FieldConnector } from '@contentful/field-editor-shared';
|
|
4
4
|
import { BLOCKS, INLINES, TEXT_CONTAINERS, HEADINGS, LIST_ITEM_BLOCKS, MARKS, CONTAINERS, TOP_LEVEL_BLOCKS, VOID_BLOCKS, EMPTY_DOCUMENT } from '@contentful/rich-text-types';
|
|
5
5
|
import { usePlateEditorRef, usePlateEditorState, getNodes, toggleNodeType, getText, getAbove, setNodes, isAncestorEmpty, match, getLastChildPath, wrapNodes, getPluginType, unwrapNodes, isCollapsed, isRangeAcrossBlocks, ELEMENT_DEFAULT, findNode, getParent, getBlockAbove, isSelectionAtBlockStart, isSelectionAtBlockEnd, isFirstChild, insertNodes, moveChildren, isBlockAboveEmpty, mockPlugin, deleteFragment, isMarkActive, toggleMark, someHtmlElement, KEY_DESERIALIZE_HTML, hasSingleChild, isLastChild, someNode, getChildren as getChildren$1, queryNode, createDeserializeHtmlPlugin, createDeserializeAstPlugin, createPlateEditor, getPlateSelectors, getPlateActions, Plate } from '@udecode/plate-core';
|
|
6
6
|
import { css, cx } from 'emotion';
|
|
7
|
-
import
|
|
7
|
+
import areEqual from 'fast-deep-equal';
|
|
8
8
|
import noop from 'lodash-es/noop';
|
|
9
9
|
import { createDeserializeDocxPlugin } from '@udecode/plate-serializer-docx';
|
|
10
10
|
import { createSoftBreakPlugin as createSoftBreakPlugin$1, createExitBreakPlugin as createExitBreakPlugin$1 } from '@udecode/plate-break';
|
|
@@ -13,13 +13,12 @@ import isHotkey from 'is-hotkey';
|
|
|
13
13
|
import { Text, Element, Editor, Transforms, Range, Path, Node, Point } from 'slate';
|
|
14
14
|
import { ReactEditor, useSelected, useReadOnly, useFocused } from 'slate-react';
|
|
15
15
|
import constate from 'constate';
|
|
16
|
-
import { AssetCard, Menu,
|
|
17
|
-
import mimetype from '@contentful/mimetype';
|
|
18
|
-
import get from 'lodash-es/get';
|
|
19
|
-
import { ClockIcon, AssetIcon, EmbeddedEntryBlockIcon, EmbeddedEntryInlineIcon, ChevronDownIcon, HorizontalRuleIcon, LinkIcon, ListBulletedIcon, ListNumberedIcon, FormatBoldIcon, CodeIcon, FormatItalicIcon, FormatUnderlinedIcon, QuoteIcon, TableIcon, PlusIcon } from '@contentful/f36-icons';
|
|
20
|
-
import tokens from '@contentful/f36-tokens';
|
|
16
|
+
import { AssetCard, EntryCard, Menu, Flex, Icon, InlineEntryCard, MenuItem, Text as Text$1, Button, Tooltip, ModalContent, Form, FormControl, TextInput, Select, FormLabel, TextLink, ModalControls, Card, IconButton } from '@contentful/f36-components';
|
|
21
17
|
import find from 'lodash-es/find';
|
|
22
18
|
import flow from 'lodash-es/flow';
|
|
19
|
+
import get from 'lodash-es/get';
|
|
20
|
+
import { AssetIcon, EmbeddedEntryBlockIcon, ClockIcon, EmbeddedEntryInlineIcon, ChevronDownIcon, HorizontalRuleIcon, LinkIcon, ListBulletedIcon, ListNumberedIcon, FormatBoldIcon, CodeIcon, FormatItalicIcon, FormatUnderlinedIcon, QuoteIcon, TableIcon, PlusIcon } from '@contentful/f36-icons';
|
|
21
|
+
import tokens from '@contentful/f36-tokens';
|
|
23
22
|
import { getListTypes, ELEMENT_LIC, getListItemEntry, isListNested, moveListItemUp, ELEMENT_LI, unwrapList as unwrapList$1, removeFirstListItem, removeListItem, deleteForwardList, deleteFragmentList, normalizeList, createListPlugin as createListPlugin$1, ELEMENT_UL, ELEMENT_OL } from '@udecode/plate-list';
|
|
24
23
|
import castArray from 'lodash-es/castArray';
|
|
25
24
|
import { createBoldPlugin as createBoldPlugin$1, createCodePlugin as createCodePlugin$1, createItalicPlugin as createItalicPlugin$1, createUnderlinePlugin as createUnderlinePlugin$1 } from '@udecode/plate-basic-marks';
|
|
@@ -623,320 +622,108 @@ var _constate = /*#__PURE__*/constate(useSdk),
|
|
|
623
622
|
SdkProvider = _constate[0],
|
|
624
623
|
useSdkContext = _constate[1];
|
|
625
624
|
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
};
|
|
631
|
-
function EntityStatusIcon(_ref) {
|
|
632
|
-
var entity = _ref.entity,
|
|
633
|
-
entityType = _ref.entityType;
|
|
625
|
+
function useFetchedEntity(_ref) {
|
|
626
|
+
var type = _ref.type,
|
|
627
|
+
id = _ref.id,
|
|
628
|
+
onEntityFetchComplete = _ref.onEntityFetchComplete;
|
|
634
629
|
|
|
635
630
|
var _useEntities = useEntities(),
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
entityType: entityType,
|
|
641
|
-
entityId: entity.sys.id
|
|
642
|
-
}, /*#__PURE__*/createElement(ClockIcon, {
|
|
643
|
-
className: styles.scheduleIcon,
|
|
644
|
-
size: "small",
|
|
645
|
-
color: "muted",
|
|
646
|
-
testId: "schedule-icon"
|
|
647
|
-
}));
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
var styles$1 = {
|
|
651
|
-
assetCard: /*#__PURE__*/css({
|
|
652
|
-
cursor: 'pointer'
|
|
653
|
-
}),
|
|
654
|
-
cardDropdown: /*#__PURE__*/css({
|
|
655
|
-
width: '300px'
|
|
656
|
-
}),
|
|
657
|
-
truncated: /*#__PURE__*/css({
|
|
658
|
-
overflow: 'hidden',
|
|
659
|
-
whiteSpace: 'nowrap',
|
|
660
|
-
textOverflow: 'ellipsis'
|
|
661
|
-
})
|
|
662
|
-
};
|
|
631
|
+
entries = _useEntities.entries,
|
|
632
|
+
assets = _useEntities.assets,
|
|
633
|
+
getOrLoadEntry = _useEntities.getOrLoadEntry,
|
|
634
|
+
getOrLoadAsset = _useEntities.getOrLoadAsset;
|
|
663
635
|
|
|
664
|
-
|
|
665
|
-
// This method won't work if we have CORS disabled(asset not on the contentful server)
|
|
666
|
-
fetch(url, {
|
|
667
|
-
method: 'GET',
|
|
668
|
-
headers: {}
|
|
669
|
-
}).then(function (response) {
|
|
670
|
-
response.arrayBuffer().then(function (buffer) {
|
|
671
|
-
var url = window.URL.createObjectURL(new Blob([buffer]));
|
|
672
|
-
var link = document.createElement('a');
|
|
673
|
-
link.href = url;
|
|
674
|
-
link.setAttribute('download', fileName); //or any other extension
|
|
675
|
-
|
|
676
|
-
document.body.appendChild(link);
|
|
677
|
-
link.click();
|
|
678
|
-
document.body.removeChild(link);
|
|
679
|
-
});
|
|
680
|
-
})["catch"](function (err) {
|
|
681
|
-
Notification.error('Failed to download asset');
|
|
682
|
-
console.log(err);
|
|
683
|
-
});
|
|
684
|
-
}
|
|
636
|
+
var store = type === 'Entry' ? entries : assets;
|
|
685
637
|
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
var mimeType = get(entityFile, 'contentType');
|
|
690
|
-
var fileSize = get(entityFile, 'details.size');
|
|
691
|
-
var image = get(entityFile, 'details.image');
|
|
692
|
-
return [/*#__PURE__*/createElement(Menu.SectionTitle, {
|
|
693
|
-
key: "file-section"
|
|
694
|
-
}, "File info"), fileName && /*#__PURE__*/createElement(Menu.Item, {
|
|
695
|
-
key: "file-name"
|
|
696
|
-
}, /*#__PURE__*/createElement(Text$1, {
|
|
697
|
-
isTruncated: true
|
|
698
|
-
}, fileName)), mimeType && /*#__PURE__*/createElement(Menu.Item, {
|
|
699
|
-
key: "file-type"
|
|
700
|
-
}, /*#__PURE__*/createElement(Text$1, {
|
|
701
|
-
isTruncated: true
|
|
702
|
-
}, mimeType)), fileSize && /*#__PURE__*/createElement(Menu.Item, {
|
|
703
|
-
key: "file-size"
|
|
704
|
-
}, shortenStorageUnit(fileSize, 'B')), image && /*#__PURE__*/createElement(Menu.Item, {
|
|
705
|
-
key: "file-dimentions"
|
|
706
|
-
}, image.width + " \xD7 " + image.height)].filter(function (item) {
|
|
707
|
-
return item;
|
|
708
|
-
});
|
|
709
|
-
}
|
|
710
|
-
function renderActions(props) {
|
|
711
|
-
var entityFile = props.entityFile,
|
|
712
|
-
isDisabled = props.isDisabled,
|
|
713
|
-
onEdit = props.onEdit,
|
|
714
|
-
onRemove = props.onRemove;
|
|
715
|
-
return [/*#__PURE__*/createElement(Menu.SectionTitle, {
|
|
716
|
-
key: "section-title"
|
|
717
|
-
}, "Actions"), onEdit ? /*#__PURE__*/createElement(Menu.Item, {
|
|
718
|
-
key: "edit",
|
|
719
|
-
onClick: onEdit,
|
|
720
|
-
testId: "card-action-edit"
|
|
721
|
-
}, "Edit") : null, entityFile ? /*#__PURE__*/createElement(Menu.Item, {
|
|
722
|
-
key: "download",
|
|
723
|
-
onClick: function onClick() {
|
|
724
|
-
if (typeof entityFile.url === 'string') {
|
|
725
|
-
downloadAsset(entityFile.url, get(entityFile, 'fileName'));
|
|
726
|
-
}
|
|
727
|
-
},
|
|
728
|
-
testId: "card-action-download"
|
|
729
|
-
}, "Download") : null, onRemove ? /*#__PURE__*/createElement(Menu.Item, {
|
|
730
|
-
key: "remove",
|
|
731
|
-
disabled: isDisabled,
|
|
732
|
-
onClick: onRemove,
|
|
733
|
-
testId: "card-action-remove"
|
|
734
|
-
}, "Remove") : null].filter(function (item) {
|
|
735
|
-
return item;
|
|
736
|
-
});
|
|
737
|
-
}
|
|
738
|
-
function FetchingWrappedAssetCard(props) {
|
|
739
|
-
var _asset$fields;
|
|
638
|
+
var _useState = useState(store[id]),
|
|
639
|
+
entity = _useState[0],
|
|
640
|
+
setEntity = _useState[1]; // Deep compare the entity value to keep re-rendering to minimal
|
|
740
641
|
|
|
741
|
-
var _useEntities = useEntities(),
|
|
742
|
-
getOrLoadAsset = _useEntities.getOrLoadAsset,
|
|
743
|
-
assets = _useEntities.assets;
|
|
744
642
|
|
|
745
|
-
var asset = assets[props.assetId];
|
|
746
|
-
var defaultLocaleCode = props.sdk.locales["default"];
|
|
747
|
-
var entityFile = asset != null && (_asset$fields = asset.fields) != null && _asset$fields.file ? asset.fields.file[props.locale] || asset.fields.file[defaultLocaleCode] : undefined;
|
|
748
|
-
var onEntityFetchComplete = props.onEntityFetchComplete;
|
|
749
643
|
useEffect(function () {
|
|
750
|
-
|
|
751
|
-
}, [props.assetId]); // eslint-disable-line
|
|
644
|
+
var newValue = store[id];
|
|
752
645
|
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
return;
|
|
646
|
+
if (!areEqual(entity, newValue)) {
|
|
647
|
+
setEntity(newValue);
|
|
756
648
|
}
|
|
649
|
+
}, [store, entity, id]); // Fetch the entity if needed
|
|
757
650
|
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
}
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
image: 'image',
|
|
769
|
-
video: 'video',
|
|
770
|
-
audio: 'audio',
|
|
771
|
-
richtext: 'richtext',
|
|
772
|
-
presentation: 'presentation',
|
|
773
|
-
spreadsheet: 'spreadsheet',
|
|
774
|
-
pdfdocument: 'pdf',
|
|
775
|
-
archive: 'archive',
|
|
776
|
-
plaintext: 'plaintext',
|
|
777
|
-
code: 'code',
|
|
778
|
-
markup: 'markup'
|
|
779
|
-
};
|
|
780
|
-
var archive = groupToIconMap['archive'];
|
|
781
|
-
|
|
782
|
-
if (!entityFile) {
|
|
783
|
-
return archive;
|
|
651
|
+
useEffect(function () {
|
|
652
|
+
(type === 'Entry' ? getOrLoadEntry : getOrLoadAsset)(id); // "getOrLoadEntry" and "getOrLoadAsset" instances change with every
|
|
653
|
+
// entity store update causing page lag on initial load
|
|
654
|
+
// TODO: consider rewriting useEntities() hook to avoid that happening in
|
|
655
|
+
// first place.
|
|
656
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
657
|
+
}, [type, id]);
|
|
658
|
+
useEffect(function () {
|
|
659
|
+
if (entity) {
|
|
660
|
+
onEntityFetchComplete == null ? void 0 : onEntityFetchComplete();
|
|
784
661
|
}
|
|
662
|
+
}, [onEntityFetchComplete, entity]);
|
|
663
|
+
return entity;
|
|
664
|
+
}
|
|
785
665
|
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
fallbackFileName: entityFile.fileName
|
|
789
|
-
});
|
|
790
|
-
return groupToIconMap[groupName] || archive;
|
|
791
|
-
}
|
|
792
|
-
|
|
793
|
-
if (asset === undefined) {
|
|
666
|
+
var InternalAssetCard = /*#__PURE__*/memo(function (props) {
|
|
667
|
+
if (props.asset === undefined) {
|
|
794
668
|
return /*#__PURE__*/createElement(AssetCard, {
|
|
795
|
-
size: "
|
|
669
|
+
size: "default",
|
|
796
670
|
isLoading: true
|
|
797
671
|
});
|
|
798
672
|
}
|
|
799
673
|
|
|
800
|
-
if (asset === 'failed') {
|
|
801
|
-
return /*#__PURE__*/createElement(MissingEntityCard, {
|
|
802
|
-
entityType: "Asset",
|
|
803
|
-
isDisabled: props.isDisabled,
|
|
804
|
-
onRemove: props.onRemove
|
|
805
|
-
});
|
|
806
|
-
}
|
|
807
|
-
|
|
808
|
-
var status = asset ? entityHelpers.getEntryStatus(asset.sys) : undefined;
|
|
809
|
-
|
|
810
|
-
if (status === 'deleted') {
|
|
674
|
+
if (props.asset === 'failed') {
|
|
811
675
|
return /*#__PURE__*/createElement(MissingEntityCard, {
|
|
812
676
|
entityType: "Asset",
|
|
813
|
-
asSquare: true,
|
|
814
677
|
isDisabled: props.isDisabled,
|
|
815
678
|
onRemove: props.onRemove
|
|
816
679
|
});
|
|
817
680
|
}
|
|
818
681
|
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
localeCode: props.locale,
|
|
822
|
-
defaultLocaleCode: defaultLocaleCode,
|
|
823
|
-
defaultTitle: 'Untitled'
|
|
824
|
-
});
|
|
825
|
-
return /*#__PURE__*/createElement(AssetCard, {
|
|
826
|
-
title: entityTitle,
|
|
827
|
-
isSelected: props.isSelected,
|
|
682
|
+
return /*#__PURE__*/createElement(WrappedAssetCard, {
|
|
683
|
+
getEntityScheduledActions: props.loadEntityScheduledActions,
|
|
828
684
|
size: "small",
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
actions: [renderActions({
|
|
838
|
-
entityFile: entityFile,
|
|
839
|
-
isDisabled: props.isDisabled,
|
|
840
|
-
onEdit: props.onEdit,
|
|
841
|
-
onRemove: props.onRemove
|
|
842
|
-
}), entityFile ? renderAssetInfo({
|
|
843
|
-
entityFile: entityFile
|
|
844
|
-
}) : null].filter(function (item) {
|
|
845
|
-
return item;
|
|
846
|
-
})
|
|
685
|
+
isSelected: props.isSelected,
|
|
686
|
+
isDisabled: props.isDisabled,
|
|
687
|
+
localeCode: props.locale,
|
|
688
|
+
defaultLocaleCode: props.sdk.locales["default"],
|
|
689
|
+
asset: props.asset,
|
|
690
|
+
onEdit: props.onEdit,
|
|
691
|
+
onRemove: props.isDisabled ? undefined : props.onRemove,
|
|
692
|
+
isClickable: false
|
|
847
693
|
});
|
|
848
|
-
}
|
|
694
|
+
}, areEqual);
|
|
695
|
+
InternalAssetCard.displayName = 'InternalAssetCard';
|
|
696
|
+
function FetchingWrappedAssetCard(props) {
|
|
697
|
+
var onEntityFetchComplete = props.onEntityFetchComplete,
|
|
698
|
+
assetId = props.assetId;
|
|
849
699
|
|
|
850
|
-
var
|
|
851
|
-
|
|
852
|
-
cursor: 'pointer'
|
|
853
|
-
})
|
|
854
|
-
};
|
|
700
|
+
var _useEntities = useEntities(),
|
|
701
|
+
loadEntityScheduledActions = _useEntities.loadEntityScheduledActions;
|
|
855
702
|
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
703
|
+
var asset = useFetchedEntity({
|
|
704
|
+
type: 'Asset',
|
|
705
|
+
id: assetId,
|
|
706
|
+
onEntityFetchComplete: onEntityFetchComplete
|
|
707
|
+
});
|
|
708
|
+
return /*#__PURE__*/createElement(InternalAssetCard, {
|
|
709
|
+
asset: asset,
|
|
710
|
+
sdk: props.sdk,
|
|
711
|
+
isDisabled: props.isDisabled,
|
|
712
|
+
isSelected: props.isSelected,
|
|
713
|
+
loadEntityScheduledActions: loadEntityScheduledActions,
|
|
714
|
+
locale: props.locale,
|
|
715
|
+
onEdit: props.onEdit,
|
|
716
|
+
onRemove: props.onRemove
|
|
861
717
|
});
|
|
862
718
|
}
|
|
863
719
|
|
|
864
|
-
function
|
|
865
|
-
var
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
getOrLoadAsset = _useEntities.getOrLoadAsset;
|
|
869
|
-
|
|
870
|
-
var _React$useState = useState(null),
|
|
871
|
-
file = _React$useState[0],
|
|
872
|
-
setFile = _React$useState[1];
|
|
873
|
-
|
|
874
|
-
var entry = entries[props.entryId];
|
|
875
|
-
var contentType = useMemo(function () {
|
|
876
|
-
if (!entry || entry === 'failed') {
|
|
877
|
-
return undefined;
|
|
878
|
-
}
|
|
879
|
-
|
|
880
|
-
return props.sdk.space.getCachedContentTypes().find(function (contentType) {
|
|
881
|
-
return contentType.sys.id === entry.sys.contentType.sys.id;
|
|
882
|
-
});
|
|
883
|
-
}, [props.sdk, entry]);
|
|
884
|
-
var defaultLocaleCode = props.sdk.locales["default"];
|
|
885
|
-
var onEntityFetchComplete = props.onEntityFetchComplete;
|
|
886
|
-
useEffect(function () {
|
|
887
|
-
if (!entry || entry === 'failed') return;
|
|
888
|
-
var subscribed = true;
|
|
889
|
-
entityHelpers.getEntryImage({
|
|
890
|
-
entry: entry,
|
|
891
|
-
contentType: contentType,
|
|
892
|
-
localeCode: props.locale,
|
|
893
|
-
defaultLocaleCode: defaultLocaleCode
|
|
894
|
-
}, getOrLoadAsset)["catch"](function () {
|
|
895
|
-
return null;
|
|
896
|
-
}).then(function (file) {
|
|
897
|
-
if (subscribed) {
|
|
898
|
-
setFile(file);
|
|
899
|
-
}
|
|
900
|
-
});
|
|
901
|
-
return function () {
|
|
902
|
-
subscribed = false;
|
|
903
|
-
};
|
|
904
|
-
}, [entry, contentType, props.locale, defaultLocaleCode, props.sdk, file, getOrLoadAsset]);
|
|
905
|
-
useEffect(function () {
|
|
906
|
-
getOrLoadEntry(props.entryId);
|
|
907
|
-
}, [props.entryId]); // eslint-disable-line
|
|
908
|
-
|
|
909
|
-
useEffect(function () {
|
|
910
|
-
if (!entry) {
|
|
911
|
-
return;
|
|
912
|
-
}
|
|
913
|
-
|
|
914
|
-
onEntityFetchComplete == null ? void 0 : onEntityFetchComplete();
|
|
915
|
-
}, [entry, onEntityFetchComplete]);
|
|
916
|
-
|
|
917
|
-
function renderDropdown() {
|
|
918
|
-
if (!props.onEdit || !props.onRemove) return undefined;
|
|
919
|
-
return [props.onEdit ? /*#__PURE__*/createElement(MenuItem, {
|
|
920
|
-
key: "edit",
|
|
921
|
-
testId: "card-action-edit",
|
|
922
|
-
onClick: function onClick() {
|
|
923
|
-
props.onEdit && props.onEdit();
|
|
924
|
-
}
|
|
925
|
-
}, "Edit") : null, props.onRemove ? /*#__PURE__*/createElement(MenuItem, {
|
|
926
|
-
key: "delete",
|
|
927
|
-
disabled: props.isDisabled,
|
|
928
|
-
testId: "card-action-remove",
|
|
929
|
-
onClick: function onClick() {
|
|
930
|
-
props.onRemove && props.onRemove();
|
|
931
|
-
}
|
|
932
|
-
}, "Remove") : null].filter(function (item) {
|
|
933
|
-
return item;
|
|
934
|
-
});
|
|
935
|
-
}
|
|
720
|
+
var InternalEntryCard = /*#__PURE__*/memo(function (props) {
|
|
721
|
+
var entry = props.entry,
|
|
722
|
+
sdk = props.sdk,
|
|
723
|
+
loadEntityScheduledActions = props.loadEntityScheduledActions;
|
|
936
724
|
|
|
937
725
|
if (entry === undefined) {
|
|
938
726
|
return /*#__PURE__*/createElement(EntryCard, {
|
|
939
|
-
size: "default",
|
|
940
727
|
isLoading: true
|
|
941
728
|
});
|
|
942
729
|
}
|
|
@@ -949,50 +736,50 @@ function FetchingWrappedEntryCard(props) {
|
|
|
949
736
|
});
|
|
950
737
|
}
|
|
951
738
|
|
|
952
|
-
var
|
|
953
|
-
|
|
954
|
-
if (entryStatus === 'deleted') {
|
|
955
|
-
return /*#__PURE__*/createElement(MissingEntityCard, {
|
|
956
|
-
entityType: "Entry",
|
|
957
|
-
isDisabled: props.isDisabled,
|
|
958
|
-
onRemove: props.onRemove
|
|
959
|
-
});
|
|
960
|
-
}
|
|
961
|
-
|
|
962
|
-
var title = entityHelpers.getEntryTitle({
|
|
963
|
-
entry: entry,
|
|
964
|
-
contentType: contentType,
|
|
965
|
-
localeCode: props.locale,
|
|
966
|
-
defaultLocaleCode: defaultLocaleCode,
|
|
967
|
-
defaultTitle: 'Untitled'
|
|
739
|
+
var contentType = sdk.space.getCachedContentTypes().find(function (contentType) {
|
|
740
|
+
return contentType.sys.id === entry.sys.contentType.sys.id;
|
|
968
741
|
});
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
742
|
+
return /*#__PURE__*/createElement(WrappedEntryCard, {
|
|
743
|
+
size: "default",
|
|
744
|
+
getAsset: props.sdk.space.getAsset,
|
|
745
|
+
getEntityScheduledActions: loadEntityScheduledActions,
|
|
746
|
+
isSelected: props.isSelected,
|
|
747
|
+
isDisabled: props.isDisabled,
|
|
972
748
|
localeCode: props.locale,
|
|
973
|
-
defaultLocaleCode:
|
|
749
|
+
defaultLocaleCode: props.sdk.locales["default"],
|
|
750
|
+
contentType: contentType,
|
|
751
|
+
entry: entry,
|
|
752
|
+
onEdit: props.onEdit,
|
|
753
|
+
onRemove: props.isDisabled ? undefined : props.onRemove,
|
|
754
|
+
isClickable: false
|
|
974
755
|
});
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
756
|
+
}, areEqual);
|
|
757
|
+
InternalEntryCard.displayName = 'ReferenceCard';
|
|
758
|
+
var FetchingWrappedEntryCard = function FetchingWrappedEntryCard(props) {
|
|
759
|
+
var entryId = props.entryId,
|
|
760
|
+
onEntityFetchComplete = props.onEntityFetchComplete;
|
|
761
|
+
|
|
762
|
+
var _useEntities = useEntities(),
|
|
763
|
+
loadEntityScheduledActions = _useEntities.loadEntityScheduledActions;
|
|
764
|
+
|
|
765
|
+
var entry = useFetchedEntity({
|
|
766
|
+
type: 'Entry',
|
|
767
|
+
id: entryId,
|
|
768
|
+
onEntityFetchComplete: onEntityFetchComplete
|
|
769
|
+
});
|
|
770
|
+
return /*#__PURE__*/createElement(InternalEntryCard, {
|
|
771
|
+
entry: entry,
|
|
772
|
+
sdk: props.sdk,
|
|
773
|
+
locale: props.locale,
|
|
774
|
+
isDisabled: props.isDisabled,
|
|
980
775
|
isSelected: props.isSelected,
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
file: file
|
|
985
|
-
}) : undefined,
|
|
986
|
-
icon: /*#__PURE__*/createElement(EntityStatusIcon, {
|
|
987
|
-
entityType: "Entry",
|
|
988
|
-
entity: entry
|
|
989
|
-
}),
|
|
990
|
-
withDragHandle: false,
|
|
991
|
-
actions: renderDropdown()
|
|
776
|
+
onEdit: props.onEdit,
|
|
777
|
+
onRemove: props.onRemove,
|
|
778
|
+
loadEntityScheduledActions: loadEntityScheduledActions
|
|
992
779
|
});
|
|
993
|
-
}
|
|
780
|
+
};
|
|
994
781
|
|
|
995
|
-
var styles
|
|
782
|
+
var styles = {
|
|
996
783
|
root: /*#__PURE__*/css({
|
|
997
784
|
marginBottom: '1.25rem !important',
|
|
998
785
|
display: 'block'
|
|
@@ -1017,24 +804,21 @@ function LinkedEntityBlock(props) {
|
|
|
1017
804
|
var _element$data$target$ = element.data.target.sys,
|
|
1018
805
|
entityId = _element$data$target$.id,
|
|
1019
806
|
entityType = _element$data$target$.linkType;
|
|
1020
|
-
|
|
1021
|
-
var handleEditClick = function handleEditClick() {
|
|
807
|
+
var handleEditClick = React__default.useCallback(function () {
|
|
1022
808
|
var openEntity = entityType === 'Asset' ? sdk.navigator.openAsset : sdk.navigator.openEntry;
|
|
1023
809
|
return openEntity(entityId, {
|
|
1024
810
|
slideIn: true
|
|
1025
811
|
});
|
|
1026
|
-
};
|
|
1027
|
-
|
|
1028
|
-
var handleRemoveClick = function handleRemoveClick() {
|
|
812
|
+
}, [sdk, entityId, entityType]);
|
|
813
|
+
var handleRemoveClick = React__default.useCallback(function () {
|
|
1029
814
|
if (!editor) return;
|
|
1030
815
|
var pathToElement = ReactEditor.findPath(editor, element);
|
|
1031
816
|
Transforms.removeNodes(editor, {
|
|
1032
817
|
at: pathToElement
|
|
1033
818
|
});
|
|
1034
|
-
};
|
|
1035
|
-
|
|
819
|
+
}, [editor, element]);
|
|
1036
820
|
return /*#__PURE__*/React__default.createElement("div", Object.assign({}, attributes, {
|
|
1037
|
-
className: styles
|
|
821
|
+
className: styles.root,
|
|
1038
822
|
"data-entity-type": entityType,
|
|
1039
823
|
"data-entity-id": entityId,
|
|
1040
824
|
// COMPAT: This makes copy & paste work for Firefox
|
|
@@ -1044,7 +828,7 @@ function LinkedEntityBlock(props) {
|
|
|
1044
828
|
// COMPAT: This makes copy & paste work for Chromium/Blink browsers and Safari
|
|
1045
829
|
contentEditable: IS_CHROME ? false : undefined,
|
|
1046
830
|
draggable: IS_CHROME ? true : undefined,
|
|
1047
|
-
className: styles
|
|
831
|
+
className: styles.container
|
|
1048
832
|
}, entityType === 'Entry' && /*#__PURE__*/React__default.createElement(FetchingWrappedEntryCard, {
|
|
1049
833
|
sdk: sdk,
|
|
1050
834
|
entryId: entityId,
|
|
@@ -1992,7 +1776,7 @@ function insertBlock(editor, nodeType, entity) {
|
|
|
1992
1776
|
focus(editor);
|
|
1993
1777
|
}
|
|
1994
1778
|
|
|
1995
|
-
var styles$
|
|
1779
|
+
var styles$1 = {
|
|
1996
1780
|
icon: /*#__PURE__*/css({
|
|
1997
1781
|
marginRight: '10px'
|
|
1998
1782
|
})
|
|
@@ -2040,7 +1824,7 @@ function EmbeddedEntityBlockToolbarIcon(_ref) {
|
|
|
2040
1824
|
flexDirection: "row"
|
|
2041
1825
|
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
2042
1826
|
as: type === 'Asset' ? AssetIcon : EmbeddedEntryBlockIcon,
|
|
2043
|
-
className: "rich-text__embedded-entry-list-icon " + styles$
|
|
1827
|
+
className: "rich-text__embedded-entry-list-icon " + styles$1.icon,
|
|
2044
1828
|
variant: "secondary"
|
|
2045
1829
|
}), /*#__PURE__*/React__default.createElement("span", null, type)));
|
|
2046
1830
|
}
|
|
@@ -2139,7 +1923,7 @@ var createEmbeddedAssetBlockPlugin = /*#__PURE__*/createEmbeddedEntityPlugin(BLO
|
|
|
2139
1923
|
|
|
2140
1924
|
var getEntryTitle = entityHelpers.getEntryTitle,
|
|
2141
1925
|
getEntryStatus = entityHelpers.getEntryStatus;
|
|
2142
|
-
var styles$
|
|
1926
|
+
var styles$2 = {
|
|
2143
1927
|
scheduledIcon: /*#__PURE__*/css({
|
|
2144
1928
|
verticalAlign: 'text-bottom',
|
|
2145
1929
|
marginRight: tokens.spacing2Xs
|
|
@@ -2210,7 +1994,7 @@ function FetchingWrappedInlineEntryCard(props) {
|
|
|
2210
1994
|
actions: [/*#__PURE__*/React__default.createElement(MenuItem, {
|
|
2211
1995
|
key: "remove",
|
|
2212
1996
|
onClick: props.onRemove,
|
|
2213
|
-
testId: "
|
|
1997
|
+
testId: "delete"
|
|
2214
1998
|
}, "Remove")]
|
|
2215
1999
|
});
|
|
2216
2000
|
}
|
|
@@ -2227,14 +2011,14 @@ function FetchingWrappedInlineEntryCard(props) {
|
|
|
2227
2011
|
key: "remove",
|
|
2228
2012
|
onClick: props.onRemove,
|
|
2229
2013
|
disabled: props.isDisabled,
|
|
2230
|
-
testId: "
|
|
2014
|
+
testId: "delete"
|
|
2231
2015
|
}, "Remove")]
|
|
2232
2016
|
}, /*#__PURE__*/React__default.createElement(ScheduledIconWithTooltip, {
|
|
2233
2017
|
getEntityScheduledActions: loadEntityScheduledActions,
|
|
2234
2018
|
entityType: "Entry",
|
|
2235
2019
|
entityId: entry.sys.id
|
|
2236
2020
|
}, /*#__PURE__*/React__default.createElement(ClockIcon, {
|
|
2237
|
-
className: styles$
|
|
2021
|
+
className: styles$2.scheduledIcon,
|
|
2238
2022
|
variant: "muted",
|
|
2239
2023
|
testId: "scheduled-icon"
|
|
2240
2024
|
})), /*#__PURE__*/React__default.createElement(Text$1, null, title));
|
|
@@ -2258,7 +2042,7 @@ function createInlineEntryNode(id) {
|
|
|
2258
2042
|
};
|
|
2259
2043
|
}
|
|
2260
2044
|
|
|
2261
|
-
var styles$
|
|
2045
|
+
var styles$3 = {
|
|
2262
2046
|
icon: /*#__PURE__*/css({
|
|
2263
2047
|
marginRight: '10px'
|
|
2264
2048
|
}),
|
|
@@ -2294,7 +2078,7 @@ function EmbeddedEntityInline(props) {
|
|
|
2294
2078
|
}
|
|
2295
2079
|
|
|
2296
2080
|
return /*#__PURE__*/createElement("span", Object.assign({}, props.attributes, {
|
|
2297
|
-
className: styles$
|
|
2081
|
+
className: styles$3.root,
|
|
2298
2082
|
"data-embedded-entity-inline-id": entryId,
|
|
2299
2083
|
// COMPAT: This makes copy & paste work for Firefox
|
|
2300
2084
|
contentEditable: IS_CHROME ? undefined : false,
|
|
@@ -2424,7 +2208,7 @@ function ToolbarEmbeddedEntityInlineButton(props) {
|
|
|
2424
2208
|
flexDirection: "row"
|
|
2425
2209
|
}, /*#__PURE__*/createElement(EmbeddedEntryInlineIcon, {
|
|
2426
2210
|
variant: "secondary",
|
|
2427
|
-
className: "rich-text__embedded-entry-list-icon " + styles$
|
|
2211
|
+
className: "rich-text__embedded-entry-list-icon " + styles$3.icon
|
|
2428
2212
|
}), /*#__PURE__*/createElement("span", null, "Inline entry")));
|
|
2429
2213
|
}
|
|
2430
2214
|
function createEmbeddedEntityInlinePlugin(sdk) {
|
|
@@ -2500,7 +2284,7 @@ var isMarkEnabled = function isMarkEnabled(field, mark) {
|
|
|
2500
2284
|
};
|
|
2501
2285
|
|
|
2502
2286
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _dropdown, _LABELS;
|
|
2503
|
-
var styles$
|
|
2287
|
+
var styles$4 = {
|
|
2504
2288
|
dropdown: (_dropdown = {
|
|
2505
2289
|
root: /*#__PURE__*/css(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-weight: ", ";\n "])), tokens.fontWeightDemiBold)
|
|
2506
2290
|
}, _dropdown[BLOCKS.PARAGRAPH] = /*#__PURE__*/css(_templateObject2 || (_templateObject2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: ", ";\n "])), tokens.fontSizeL), _dropdown[BLOCKS.HEADING_1] = /*#__PURE__*/css(_templateObject3 || (_templateObject3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.625rem;\n "]))), _dropdown[BLOCKS.HEADING_2] = /*#__PURE__*/css(_templateObject4 || (_templateObject4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.4375rem;\n "]))), _dropdown[BLOCKS.HEADING_3] = /*#__PURE__*/css(_templateObject5 || (_templateObject5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.25rem;\n "]))), _dropdown[BLOCKS.HEADING_4] = /*#__PURE__*/css(_templateObject6 || (_templateObject6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.125rem;\n "]))), _dropdown[BLOCKS.HEADING_5] = /*#__PURE__*/css(_templateObject7 || (_templateObject7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1rem;\n "]))), _dropdown[BLOCKS.HEADING_6] = /*#__PURE__*/css(_templateObject8 || (_templateObject8 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 0.875rem;\n "]))), _dropdown)
|
|
@@ -2595,7 +2379,7 @@ function ToolbarHeadingButton(props) {
|
|
|
2595
2379
|
testId: "dropdown-option-" + nodeType,
|
|
2596
2380
|
disabled: props.isDisabled
|
|
2597
2381
|
}, /*#__PURE__*/createElement("span", {
|
|
2598
|
-
className: cx(styles$
|
|
2382
|
+
className: cx(styles$4.dropdown.root, styles$4.dropdown[nodeType])
|
|
2599
2383
|
}, LABELS[nodeType]));
|
|
2600
2384
|
}).filter(Boolean)));
|
|
2601
2385
|
}
|
|
@@ -2665,7 +2449,7 @@ var transformLift = function transformLift(editor, _ref4) {
|
|
|
2665
2449
|
};
|
|
2666
2450
|
|
|
2667
2451
|
var _templateObject$1, _templateObject2$1, _templateObject3$1, _templateObject4$1, _templateObject5$1, _templateObject6$1, _templateObject7$1, _templateObject8$1, _dropdown$1, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _headings, _HeadingComponents;
|
|
2668
|
-
var styles$
|
|
2452
|
+
var styles$5 = {
|
|
2669
2453
|
dropdown: (_dropdown$1 = {
|
|
2670
2454
|
root: /*#__PURE__*/css(_templateObject$1 || (_templateObject$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-weight: ", ";\n "])), tokens.fontWeightDemiBold)
|
|
2671
2455
|
}, _dropdown$1[BLOCKS.PARAGRAPH] = /*#__PURE__*/css(_templateObject2$1 || (_templateObject2$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: ", ";\n "])), tokens.fontSizeL), _dropdown$1[BLOCKS.HEADING_1] = /*#__PURE__*/css(_templateObject3$1 || (_templateObject3$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.625rem;\n "]))), _dropdown$1[BLOCKS.HEADING_2] = /*#__PURE__*/css(_templateObject4$1 || (_templateObject4$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.4375rem;\n "]))), _dropdown$1[BLOCKS.HEADING_3] = /*#__PURE__*/css(_templateObject5$1 || (_templateObject5$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.25rem;\n "]))), _dropdown$1[BLOCKS.HEADING_4] = /*#__PURE__*/css(_templateObject6$1 || (_templateObject6$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.125rem;\n "]))), _dropdown$1[BLOCKS.HEADING_5] = /*#__PURE__*/css(_templateObject7$1 || (_templateObject7$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1rem;\n "]))), _dropdown$1[BLOCKS.HEADING_6] = /*#__PURE__*/css(_templateObject8$1 || (_templateObject8$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 0.875rem;\n "]))), _dropdown$1),
|
|
@@ -2677,7 +2461,7 @@ var styles$8 = {
|
|
|
2677
2461
|
function createHeading(Tag, block) {
|
|
2678
2462
|
return function Heading(props) {
|
|
2679
2463
|
return /*#__PURE__*/createElement(Tag, Object.assign({}, props.attributes, {
|
|
2680
|
-
className: cx(styles$
|
|
2464
|
+
className: cx(styles$5.headings.root, styles$5.headings[block])
|
|
2681
2465
|
}), props.children);
|
|
2682
2466
|
};
|
|
2683
2467
|
}
|
|
@@ -2773,7 +2557,7 @@ var createHeadingPlugin = function createHeadingPlugin() {
|
|
|
2773
2557
|
};
|
|
2774
2558
|
};
|
|
2775
2559
|
|
|
2776
|
-
var styles$
|
|
2560
|
+
var styles$6 = {
|
|
2777
2561
|
button: /*#__PURE__*/css({
|
|
2778
2562
|
height: '30px',
|
|
2779
2563
|
width: '30px',
|
|
@@ -2799,7 +2583,7 @@ function ToolbarButton(props) {
|
|
|
2799
2583
|
};
|
|
2800
2584
|
|
|
2801
2585
|
var button = /*#__PURE__*/React__default.createElement(Button, {
|
|
2802
|
-
className: cx(styles$
|
|
2586
|
+
className: cx(styles$6.button, className),
|
|
2803
2587
|
isDisabled: isDisabled,
|
|
2804
2588
|
startIcon: children,
|
|
2805
2589
|
onClick: handleClick,
|
|
@@ -2810,7 +2594,7 @@ function ToolbarButton(props) {
|
|
|
2810
2594
|
|
|
2811
2595
|
if (title) {
|
|
2812
2596
|
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2813
|
-
className: styles$
|
|
2597
|
+
className: styles$6.tooltip,
|
|
2814
2598
|
placement: "bottom",
|
|
2815
2599
|
content: title
|
|
2816
2600
|
}, button);
|
|
@@ -2820,7 +2604,7 @@ function ToolbarButton(props) {
|
|
|
2820
2604
|
}
|
|
2821
2605
|
|
|
2822
2606
|
var _templateObject$2, _templateObject2$2, _templateObject3$2;
|
|
2823
|
-
var styles$
|
|
2607
|
+
var styles$7 = {
|
|
2824
2608
|
container: /*#__PURE__*/css(_templateObject$2 || (_templateObject$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin: 0 0 ", ";\n "])), tokens.spacingL),
|
|
2825
2609
|
hr: /*#__PURE__*/css(_templateObject2$2 || (_templateObject2$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin: 0;\n height: ", ";\n background: transparent;\n position: relative;\n border: 0;\n user-select: none;\n &:hover {\n cursor: pointer;\n }\n &::after {\n content: '';\n position: absolute;\n width: 100%;\n height: 1px;\n background: ", ";\n top: 50%;\n }\n "])), tokens.spacingM, tokens.gray300),
|
|
2826
2610
|
hrSelected: /*#__PURE__*/css(_templateObject3$2 || (_templateObject3$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n &::after {\n background: ", ";\n -webkit-box-shadow: 0px 0px 5px ", ";\n box-shadow: 0px 0px 5px ", ";\n }\n "])), tokens.colorPrimary, tokens.colorPrimary, tokens.colorPrimary)
|
|
@@ -2878,14 +2662,14 @@ function Hr(props) {
|
|
|
2878
2662
|
var isSelected = useSelected();
|
|
2879
2663
|
var isFocused = useFocused();
|
|
2880
2664
|
return /*#__PURE__*/createElement("div", Object.assign({}, props.attributes, {
|
|
2881
|
-
className: styles$
|
|
2665
|
+
className: styles$7.container,
|
|
2882
2666
|
"data-void-element": BLOCKS.HR
|
|
2883
2667
|
}), /*#__PURE__*/createElement("div", {
|
|
2884
2668
|
draggable: true,
|
|
2885
2669
|
// Moving `contentEditable` to this div makes it to be selectable when being the first void element, e.g pressing ctrl + a to select everything
|
|
2886
2670
|
contentEditable: false
|
|
2887
2671
|
}, /*#__PURE__*/createElement("hr", {
|
|
2888
|
-
className: cx(styles$
|
|
2672
|
+
className: cx(styles$7.hr, isSelected && isFocused ? styles$7.hrSelected : undefined)
|
|
2889
2673
|
})), props.children);
|
|
2890
2674
|
}
|
|
2891
2675
|
var createHrPlugin = function createHrPlugin() {
|
|
@@ -2912,7 +2696,7 @@ var createHrPlugin = function createHrPlugin() {
|
|
|
2912
2696
|
};
|
|
2913
2697
|
|
|
2914
2698
|
var _templateObject$3, _SYS_LINK_TYPES, _LINK_TYPE_SELECTION_;
|
|
2915
|
-
var styles$
|
|
2699
|
+
var styles$8 = {
|
|
2916
2700
|
removeSelectionLabel: /*#__PURE__*/css(_templateObject$3 || (_templateObject$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-left: ", ";\n "])), tokens.spacingS)
|
|
2917
2701
|
};
|
|
2918
2702
|
var SYS_LINK_TYPES = (_SYS_LINK_TYPES = {}, _SYS_LINK_TYPES[INLINES.ENTRY_HYPERLINK] = 'Entry', _SYS_LINK_TYPES[INLINES.ASSET_HYPERLINK] = 'Asset', _SYS_LINK_TYPES);
|
|
@@ -3095,7 +2879,7 @@ function HyperlinkModal(props) {
|
|
|
3095
2879
|
}, "Link target", ' '), linkEntity && linkEntity.sys.linkType === SYS_LINK_TYPES[linkType] ? /*#__PURE__*/createElement(Fragment, null, !props.readonly && /*#__PURE__*/createElement(TextLink, {
|
|
3096
2880
|
testId: "entity-selection-link",
|
|
3097
2881
|
onClick: resetLinkEntity,
|
|
3098
|
-
className: styles$
|
|
2882
|
+
className: styles$8.removeSelectionLabel
|
|
3099
2883
|
}, "Remove selection"), /*#__PURE__*/createElement("div", null, linkType === INLINES.ENTRY_HYPERLINK && /*#__PURE__*/createElement(FetchingWrappedEntryCard, {
|
|
3100
2884
|
sdk: props.sdk,
|
|
3101
2885
|
locale: props.sdk.field.locale,
|
|
@@ -3436,7 +3220,7 @@ function useEntityInfo(props) {
|
|
|
3436
3220
|
return getEntityInfo(status.data);
|
|
3437
3221
|
}
|
|
3438
3222
|
|
|
3439
|
-
var styles$
|
|
3223
|
+
var styles$9 = {
|
|
3440
3224
|
hyperlinkWrapper: /*#__PURE__*/css({
|
|
3441
3225
|
display: 'inline',
|
|
3442
3226
|
position: 'static',
|
|
@@ -3481,13 +3265,13 @@ function EntityHyperlink(props) {
|
|
|
3481
3265
|
|
|
3482
3266
|
return /*#__PURE__*/createElement(Tooltip, {
|
|
3483
3267
|
content: tooltipContent,
|
|
3484
|
-
targetWrapperClassName: styles$
|
|
3268
|
+
targetWrapperClassName: styles$9.hyperlinkWrapper,
|
|
3485
3269
|
placement: "bottom",
|
|
3486
3270
|
maxWidth: "auto"
|
|
3487
3271
|
}, /*#__PURE__*/createElement(TextLink, {
|
|
3488
3272
|
as: "a",
|
|
3489
3273
|
onClick: handleClick,
|
|
3490
|
-
className: styles$
|
|
3274
|
+
className: styles$9.hyperlink,
|
|
3491
3275
|
"data-link-type": target.sys.linkType,
|
|
3492
3276
|
"data-link-id": target.sys.id
|
|
3493
3277
|
}, props.children));
|
|
@@ -3511,7 +3295,7 @@ function UrlHyperlink(props) {
|
|
|
3511
3295
|
|
|
3512
3296
|
return /*#__PURE__*/createElement(Tooltip, {
|
|
3513
3297
|
content: uri,
|
|
3514
|
-
targetWrapperClassName: styles$
|
|
3298
|
+
targetWrapperClassName: styles$9.hyperlinkWrapper,
|
|
3515
3299
|
placement: "bottom",
|
|
3516
3300
|
maxWidth: "auto"
|
|
3517
3301
|
}, /*#__PURE__*/createElement(TextLink, {
|
|
@@ -3519,7 +3303,7 @@ function UrlHyperlink(props) {
|
|
|
3519
3303
|
href: uri,
|
|
3520
3304
|
rel: "noopener noreferrer",
|
|
3521
3305
|
onClick: handleClick,
|
|
3522
|
-
className: styles$
|
|
3306
|
+
className: styles$9.hyperlink
|
|
3523
3307
|
}, props.children));
|
|
3524
3308
|
}
|
|
3525
3309
|
|
|
@@ -3645,12 +3429,12 @@ var createHyperlinkPlugin = function createHyperlinkPlugin(sdk) {
|
|
|
3645
3429
|
|
|
3646
3430
|
var _templateObject$4, _templateObject2$3, _templateObject3$3, _styles;
|
|
3647
3431
|
var baseStyle = /*#__PURE__*/css(_templateObject$4 || (_templateObject$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding: 0;\n margin: 0 0 1.25rem 1.25rem;\n\n div:first-child {\n margin: 0;\n line-height: ", ";\n }\n"])), tokens.lineHeightDefault);
|
|
3648
|
-
var styles$
|
|
3432
|
+
var styles$a = (_styles = {}, _styles[BLOCKS.UL_LIST] = /*#__PURE__*/css(_templateObject2$3 || (_templateObject2$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n list-style-type: disc;\n ul {\n list-style-type: circle;\n ul {\n list-style-type: square;\n }\n }\n "]))), _styles[BLOCKS.OL_LIST] = /*#__PURE__*/css(_templateObject3$3 || (_templateObject3$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n list-style-type: decimal;\n ol {\n list-style-type: upper-alpha;\n ol {\n list-style-type: lower-roman;\n ol {\n list-style-type: lower-alpha;\n }\n }\n }\n "]))), _styles);
|
|
3649
3433
|
|
|
3650
3434
|
function createList(Tag, block) {
|
|
3651
3435
|
return function List(props) {
|
|
3652
3436
|
return /*#__PURE__*/createElement(Tag, Object.assign({}, props.attributes, {
|
|
3653
|
-
className: cx(baseStyle, styles$
|
|
3437
|
+
className: cx(baseStyle, styles$a[block])
|
|
3654
3438
|
}), props.children);
|
|
3655
3439
|
};
|
|
3656
3440
|
}
|
|
@@ -4631,14 +4415,14 @@ var ToolbarBoldButton = /*#__PURE__*/createMarkToolbarButton({
|
|
|
4631
4415
|
mark: MARKS.BOLD,
|
|
4632
4416
|
icon: /*#__PURE__*/createElement(FormatBoldIcon, null)
|
|
4633
4417
|
});
|
|
4634
|
-
var styles$
|
|
4418
|
+
var styles$b = {
|
|
4635
4419
|
bold: /*#__PURE__*/css({
|
|
4636
4420
|
fontWeight: 600
|
|
4637
4421
|
})
|
|
4638
4422
|
};
|
|
4639
4423
|
function Bold(props) {
|
|
4640
4424
|
return /*#__PURE__*/createElement("strong", Object.assign({}, props.attributes, {
|
|
4641
|
-
className: styles$
|
|
4425
|
+
className: styles$b.bold
|
|
4642
4426
|
}), props.children);
|
|
4643
4427
|
}
|
|
4644
4428
|
|
|
@@ -4678,7 +4462,7 @@ var ToolbarCodeButton = /*#__PURE__*/createMarkToolbarButton({
|
|
|
4678
4462
|
mark: MARKS.CODE,
|
|
4679
4463
|
icon: /*#__PURE__*/createElement(CodeIcon, null)
|
|
4680
4464
|
});
|
|
4681
|
-
var styles$
|
|
4465
|
+
var styles$c = {
|
|
4682
4466
|
code: /*#__PURE__*/css({
|
|
4683
4467
|
fontFamily: 'monospace',
|
|
4684
4468
|
fontSize: '.9em'
|
|
@@ -4686,7 +4470,7 @@ var styles$f = {
|
|
|
4686
4470
|
};
|
|
4687
4471
|
function Code(props) {
|
|
4688
4472
|
return /*#__PURE__*/createElement("code", Object.assign({}, props.attributes, {
|
|
4689
|
-
className: styles$
|
|
4473
|
+
className: styles$c.code
|
|
4690
4474
|
}), props.children);
|
|
4691
4475
|
}
|
|
4692
4476
|
var createCodePlugin = function createCodePlugin() {
|
|
@@ -4716,14 +4500,14 @@ var ToolbarItalicButton = /*#__PURE__*/createMarkToolbarButton({
|
|
|
4716
4500
|
mark: MARKS.ITALIC,
|
|
4717
4501
|
icon: /*#__PURE__*/createElement(FormatItalicIcon, null)
|
|
4718
4502
|
});
|
|
4719
|
-
var styles$
|
|
4503
|
+
var styles$d = {
|
|
4720
4504
|
italic: /*#__PURE__*/css({
|
|
4721
4505
|
fontStyle: 'italic'
|
|
4722
4506
|
})
|
|
4723
4507
|
};
|
|
4724
4508
|
function Italic(props) {
|
|
4725
4509
|
return /*#__PURE__*/createElement("em", Object.assign({}, props.attributes, {
|
|
4726
|
-
className: styles$
|
|
4510
|
+
className: styles$d.italic
|
|
4727
4511
|
}), props.children);
|
|
4728
4512
|
}
|
|
4729
4513
|
var createItalicPlugin = function createItalicPlugin() {
|
|
@@ -4999,10 +4783,10 @@ var createNormalizerPlugin = function createNormalizerPlugin() {
|
|
|
4999
4783
|
};
|
|
5000
4784
|
|
|
5001
4785
|
var _templateObject$6, _styles$1;
|
|
5002
|
-
var styles$
|
|
4786
|
+
var styles$e = (_styles$1 = {}, _styles$1[BLOCKS.PARAGRAPH] = /*#__PURE__*/css(_templateObject$6 || (_templateObject$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n line-height: ", ";\n margin-bottom: 1.5em;\n "])), tokens.lineHeightDefault), _styles$1);
|
|
5003
4787
|
function Paragraph(props) {
|
|
5004
4788
|
return /*#__PURE__*/createElement("div", Object.assign({}, props.attributes, {
|
|
5005
|
-
className: styles$
|
|
4789
|
+
className: styles$e[BLOCKS.PARAGRAPH]
|
|
5006
4790
|
}), props.children);
|
|
5007
4791
|
}
|
|
5008
4792
|
|
|
@@ -5823,7 +5607,7 @@ var isTable = function isTable(node) {
|
|
|
5823
5607
|
return Element.isElement(node) && node.type === BLOCKS.TABLE;
|
|
5824
5608
|
};
|
|
5825
5609
|
|
|
5826
|
-
var styles$
|
|
5610
|
+
var styles$f = {
|
|
5827
5611
|
topRight: /*#__PURE__*/css({
|
|
5828
5612
|
position: 'absolute',
|
|
5829
5613
|
top: '6px',
|
|
@@ -5912,7 +5696,7 @@ var TableActions = function TableActions() {
|
|
|
5912
5696
|
size: "small",
|
|
5913
5697
|
variant: "transparent",
|
|
5914
5698
|
tabIndex: -1,
|
|
5915
|
-
className: styles$
|
|
5699
|
+
className: styles$f.topRight,
|
|
5916
5700
|
icon: /*#__PURE__*/React__default.createElement(ChevronDownIcon, null),
|
|
5917
5701
|
"aria-label": "Open table menu",
|
|
5918
5702
|
testId: "cf-table-actions-button"
|
|
@@ -6846,7 +6630,7 @@ var normalizeEditorValue = function normalizeEditorValue(value, options) {
|
|
|
6846
6630
|
};
|
|
6847
6631
|
|
|
6848
6632
|
var STYLE_EDITOR_BORDER = "1px solid " + tokens.gray400;
|
|
6849
|
-
var styles$
|
|
6633
|
+
var styles$g = {
|
|
6850
6634
|
root: /*#__PURE__*/css({
|
|
6851
6635
|
position: 'relative'
|
|
6852
6636
|
}),
|
|
@@ -6962,7 +6746,7 @@ var EmbedEntityWidget = function EmbedEntityWidget(_ref) {
|
|
|
6962
6746
|
}, actions);
|
|
6963
6747
|
};
|
|
6964
6748
|
|
|
6965
|
-
var styles$
|
|
6749
|
+
var styles$h = {
|
|
6966
6750
|
toolbar: /*#__PURE__*/css({
|
|
6967
6751
|
border: "1px solid " + tokens.gray400,
|
|
6968
6752
|
backgroundColor: tokens.gray100,
|
|
@@ -7007,14 +6791,14 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
7007
6791
|
var shouldDisableTables = isDisabled || !canInsertBlocks || isListSelected || isBlockquoteSelected;
|
|
7008
6792
|
return /*#__PURE__*/React__default.createElement(Flex, {
|
|
7009
6793
|
testId: "toolbar",
|
|
7010
|
-
className: styles$
|
|
6794
|
+
className: styles$h.toolbar,
|
|
7011
6795
|
alignItems: "center"
|
|
7012
6796
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
7013
|
-
className: styles$
|
|
6797
|
+
className: styles$h.formattingOptionsWrapper
|
|
7014
6798
|
}, /*#__PURE__*/React__default.createElement(ToolbarHeadingButton, {
|
|
7015
6799
|
isDisabled: isDisabled || !canInsertBlocks
|
|
7016
6800
|
}), validationInfo.isAnyMarkEnabled && /*#__PURE__*/React__default.createElement("span", {
|
|
7017
|
-
className: styles$
|
|
6801
|
+
className: styles$h.divider
|
|
7018
6802
|
}), isMarkEnabled(sdk.field, MARKS.BOLD) && /*#__PURE__*/React__default.createElement(ToolbarBoldButton, {
|
|
7019
6803
|
isDisabled: isDisabled
|
|
7020
6804
|
}), isMarkEnabled(sdk.field, MARKS.ITALIC) && /*#__PURE__*/React__default.createElement(ToolbarItalicButton, {
|
|
@@ -7024,11 +6808,11 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
7024
6808
|
}), isMarkEnabled(sdk.field, MARKS.CODE) && /*#__PURE__*/React__default.createElement(ToolbarCodeButton, {
|
|
7025
6809
|
isDisabled: isDisabled
|
|
7026
6810
|
}), validationInfo.isAnyHyperlinkEnabled && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("span", {
|
|
7027
|
-
className: styles$
|
|
6811
|
+
className: styles$h.divider
|
|
7028
6812
|
}), /*#__PURE__*/React__default.createElement(ToolbarHyperlinkButton, {
|
|
7029
6813
|
isDisabled: isDisabled
|
|
7030
6814
|
})), validationInfo.isAnyBlockFormattingEnabled && /*#__PURE__*/React__default.createElement("span", {
|
|
7031
|
-
className: styles$
|
|
6815
|
+
className: styles$h.divider
|
|
7032
6816
|
}), /*#__PURE__*/React__default.createElement(ToolbarListButton, {
|
|
7033
6817
|
isDisabled: isDisabled || !canInsertBlocks
|
|
7034
6818
|
}), isNodeTypeEnabled(sdk.field, BLOCKS.QUOTE) && /*#__PURE__*/React__default.createElement(ToolbarQuoteButton, {
|
|
@@ -7038,7 +6822,7 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
7038
6822
|
}), isNodeTypeEnabled(sdk.field, BLOCKS.TABLE) && /*#__PURE__*/React__default.createElement(ToolbarTableButton, {
|
|
7039
6823
|
isDisabled: shouldDisableTables
|
|
7040
6824
|
})), /*#__PURE__*/React__default.createElement("div", {
|
|
7041
|
-
className: styles$
|
|
6825
|
+
className: styles$h.embedActionsWrapper
|
|
7042
6826
|
}, /*#__PURE__*/React__default.createElement(EmbedEntityWidget, {
|
|
7043
6827
|
isDisabled: isDisabled,
|
|
7044
6828
|
canInsertBlocks: canInsertBlocks
|
|
@@ -7063,7 +6847,7 @@ function getValidationInfo(field) {
|
|
|
7063
6847
|
}
|
|
7064
6848
|
|
|
7065
6849
|
var _templateObject$b;
|
|
7066
|
-
var styles$
|
|
6850
|
+
var styles$i = {
|
|
7067
6851
|
nativeSticky: /*#__PURE__*/css(_templateObject$b || (_templateObject$b = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: -webkit-sticky;\n position: sticky;\n top: -1px;\n z-index: 2;\n "])))
|
|
7068
6852
|
};
|
|
7069
6853
|
|
|
@@ -7071,7 +6855,7 @@ var StickyToolbarWrapper = function StickyToolbarWrapper(_ref) {
|
|
|
7071
6855
|
var isDisabled = _ref.isDisabled,
|
|
7072
6856
|
children = _ref.children;
|
|
7073
6857
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
7074
|
-
className: isDisabled ? '' : styles$
|
|
6858
|
+
className: isDisabled ? '' : styles$i.nativeSticky
|
|
7075
6859
|
}, children);
|
|
7076
6860
|
};
|
|
7077
6861
|
|
|
@@ -7166,9 +6950,9 @@ var ConnectedRichTextEditor = function ConnectedRichTextEditor(props) {
|
|
|
7166
6950
|
setPendingExternalUpdate(true);
|
|
7167
6951
|
setEditorContent(editor, documentToEditorValue(props.value));
|
|
7168
6952
|
}, [props.value, id]);
|
|
7169
|
-
var classNames = cx(styles$
|
|
6953
|
+
var classNames = cx(styles$g.editor, props.minHeight !== undefined ? css({
|
|
7170
6954
|
minHeight: props.minHeight
|
|
7171
|
-
}) : undefined, props.isDisabled ? styles$
|
|
6955
|
+
}) : undefined, props.isDisabled ? styles$g.disabled : styles$g.enabled, props.isToolbarHidden && styles$g.hiddenToolbar);
|
|
7172
6956
|
useEffect(function () {
|
|
7173
6957
|
if (!isFirstRender) {
|
|
7174
6958
|
return;
|
|
@@ -7184,7 +6968,7 @@ var ConnectedRichTextEditor = function ConnectedRichTextEditor(props) {
|
|
|
7184
6968
|
}, /*#__PURE__*/React__default.createElement(ContentfulEditorIdProvider, {
|
|
7185
6969
|
value: id
|
|
7186
6970
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
7187
|
-
className: styles$
|
|
6971
|
+
className: styles$g.root,
|
|
7188
6972
|
"data-test-id": "rich-text-editor"
|
|
7189
6973
|
}, /*#__PURE__*/React__default.createElement(Plate, {
|
|
7190
6974
|
id: id,
|
|
@@ -7211,7 +6995,7 @@ var RichTextEditor = function RichTextEditor(props) {
|
|
|
7211
6995
|
otherProps = _objectWithoutPropertiesLoose(props, _excluded);
|
|
7212
6996
|
|
|
7213
6997
|
var isEmptyValue = useCallback(function (value) {
|
|
7214
|
-
return !value ||
|
|
6998
|
+
return !value || areEqual(value, EMPTY_DOCUMENT);
|
|
7215
6999
|
}, []);
|
|
7216
7000
|
var id = getContentfulEditorId(props.sdk);
|
|
7217
7001
|
return /*#__PURE__*/React__default.createElement(EntityProvider, {
|
|
@@ -7221,7 +7005,7 @@ var RichTextEditor = function RichTextEditor(props) {
|
|
|
7221
7005
|
field: sdk.field,
|
|
7222
7006
|
isInitiallyDisabled: isInitiallyDisabled,
|
|
7223
7007
|
isEmptyValue: isEmptyValue,
|
|
7224
|
-
isEqualValues:
|
|
7008
|
+
isEqualValues: areEqual
|
|
7225
7009
|
}, function (_ref) {
|
|
7226
7010
|
var lastRemoteValue = _ref.lastRemoteValue,
|
|
7227
7011
|
disabled = _ref.disabled,
|