@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
|
@@ -11,7 +11,7 @@ var fieldEditorShared = require('@contentful/field-editor-shared');
|
|
|
11
11
|
var Contentful = require('@contentful/rich-text-types');
|
|
12
12
|
var plateCore = require('@udecode/plate-core');
|
|
13
13
|
var emotion = require('emotion');
|
|
14
|
-
var
|
|
14
|
+
var areEqual = _interopDefault(require('fast-deep-equal'));
|
|
15
15
|
var noop = _interopDefault(require('lodash/noop'));
|
|
16
16
|
var plateSerializerDocx = require('@udecode/plate-serializer-docx');
|
|
17
17
|
var plateBreak = require('@udecode/plate-break');
|
|
@@ -21,12 +21,11 @@ var slate = require('slate');
|
|
|
21
21
|
var Slate = require('slate-react');
|
|
22
22
|
var constate = _interopDefault(require('constate'));
|
|
23
23
|
var f36Components = require('@contentful/f36-components');
|
|
24
|
-
var
|
|
24
|
+
var find = _interopDefault(require('lodash/find'));
|
|
25
|
+
var flow = _interopDefault(require('lodash/flow'));
|
|
25
26
|
var get = _interopDefault(require('lodash/get'));
|
|
26
27
|
var f36Icons = require('@contentful/f36-icons');
|
|
27
28
|
var tokens = _interopDefault(require('@contentful/f36-tokens'));
|
|
28
|
-
var find = _interopDefault(require('lodash/find'));
|
|
29
|
-
var flow = _interopDefault(require('lodash/flow'));
|
|
30
29
|
var plateList = require('@udecode/plate-list');
|
|
31
30
|
var castArray = _interopDefault(require('lodash/castArray'));
|
|
32
31
|
var plateBasicMarks = require('@udecode/plate-basic-marks');
|
|
@@ -630,320 +629,108 @@ var _constate = /*#__PURE__*/constate(useSdk),
|
|
|
630
629
|
SdkProvider = _constate[0],
|
|
631
630
|
useSdkContext = _constate[1];
|
|
632
631
|
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
};
|
|
638
|
-
function EntityStatusIcon(_ref) {
|
|
639
|
-
var entity = _ref.entity,
|
|
640
|
-
entityType = _ref.entityType;
|
|
632
|
+
function useFetchedEntity(_ref) {
|
|
633
|
+
var type = _ref.type,
|
|
634
|
+
id = _ref.id,
|
|
635
|
+
onEntityFetchComplete = _ref.onEntityFetchComplete;
|
|
641
636
|
|
|
642
637
|
var _useEntities = fieldEditorReference.useEntities(),
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
entityType: entityType,
|
|
648
|
-
entityId: entity.sys.id
|
|
649
|
-
}, /*#__PURE__*/React.createElement(f36Icons.ClockIcon, {
|
|
650
|
-
className: styles.scheduleIcon,
|
|
651
|
-
size: "small",
|
|
652
|
-
color: "muted",
|
|
653
|
-
testId: "schedule-icon"
|
|
654
|
-
}));
|
|
655
|
-
}
|
|
656
|
-
|
|
657
|
-
var styles$1 = {
|
|
658
|
-
assetCard: /*#__PURE__*/emotion.css({
|
|
659
|
-
cursor: 'pointer'
|
|
660
|
-
}),
|
|
661
|
-
cardDropdown: /*#__PURE__*/emotion.css({
|
|
662
|
-
width: '300px'
|
|
663
|
-
}),
|
|
664
|
-
truncated: /*#__PURE__*/emotion.css({
|
|
665
|
-
overflow: 'hidden',
|
|
666
|
-
whiteSpace: 'nowrap',
|
|
667
|
-
textOverflow: 'ellipsis'
|
|
668
|
-
})
|
|
669
|
-
};
|
|
638
|
+
entries = _useEntities.entries,
|
|
639
|
+
assets = _useEntities.assets,
|
|
640
|
+
getOrLoadEntry = _useEntities.getOrLoadEntry,
|
|
641
|
+
getOrLoadAsset = _useEntities.getOrLoadAsset;
|
|
670
642
|
|
|
671
|
-
|
|
672
|
-
// This method won't work if we have CORS disabled(asset not on the contentful server)
|
|
673
|
-
fetch(url, {
|
|
674
|
-
method: 'GET',
|
|
675
|
-
headers: {}
|
|
676
|
-
}).then(function (response) {
|
|
677
|
-
response.arrayBuffer().then(function (buffer) {
|
|
678
|
-
var url = window.URL.createObjectURL(new Blob([buffer]));
|
|
679
|
-
var link = document.createElement('a');
|
|
680
|
-
link.href = url;
|
|
681
|
-
link.setAttribute('download', fileName); //or any other extension
|
|
682
|
-
|
|
683
|
-
document.body.appendChild(link);
|
|
684
|
-
link.click();
|
|
685
|
-
document.body.removeChild(link);
|
|
686
|
-
});
|
|
687
|
-
})["catch"](function (err) {
|
|
688
|
-
f36Components.Notification.error('Failed to download asset');
|
|
689
|
-
console.log(err);
|
|
690
|
-
});
|
|
691
|
-
}
|
|
643
|
+
var store = type === 'Entry' ? entries : assets;
|
|
692
644
|
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
var mimeType = get(entityFile, 'contentType');
|
|
697
|
-
var fileSize = get(entityFile, 'details.size');
|
|
698
|
-
var image = get(entityFile, 'details.image');
|
|
699
|
-
return [/*#__PURE__*/React.createElement(f36Components.Menu.SectionTitle, {
|
|
700
|
-
key: "file-section"
|
|
701
|
-
}, "File info"), fileName && /*#__PURE__*/React.createElement(f36Components.Menu.Item, {
|
|
702
|
-
key: "file-name"
|
|
703
|
-
}, /*#__PURE__*/React.createElement(f36Components.Text, {
|
|
704
|
-
isTruncated: true
|
|
705
|
-
}, fileName)), mimeType && /*#__PURE__*/React.createElement(f36Components.Menu.Item, {
|
|
706
|
-
key: "file-type"
|
|
707
|
-
}, /*#__PURE__*/React.createElement(f36Components.Text, {
|
|
708
|
-
isTruncated: true
|
|
709
|
-
}, mimeType)), fileSize && /*#__PURE__*/React.createElement(f36Components.Menu.Item, {
|
|
710
|
-
key: "file-size"
|
|
711
|
-
}, fieldEditorShared.shortenStorageUnit(fileSize, 'B')), image && /*#__PURE__*/React.createElement(f36Components.Menu.Item, {
|
|
712
|
-
key: "file-dimentions"
|
|
713
|
-
}, image.width + " \xD7 " + image.height)].filter(function (item) {
|
|
714
|
-
return item;
|
|
715
|
-
});
|
|
716
|
-
}
|
|
717
|
-
function renderActions(props) {
|
|
718
|
-
var entityFile = props.entityFile,
|
|
719
|
-
isDisabled = props.isDisabled,
|
|
720
|
-
onEdit = props.onEdit,
|
|
721
|
-
onRemove = props.onRemove;
|
|
722
|
-
return [/*#__PURE__*/React.createElement(f36Components.Menu.SectionTitle, {
|
|
723
|
-
key: "section-title"
|
|
724
|
-
}, "Actions"), onEdit ? /*#__PURE__*/React.createElement(f36Components.Menu.Item, {
|
|
725
|
-
key: "edit",
|
|
726
|
-
onClick: onEdit,
|
|
727
|
-
testId: "card-action-edit"
|
|
728
|
-
}, "Edit") : null, entityFile ? /*#__PURE__*/React.createElement(f36Components.Menu.Item, {
|
|
729
|
-
key: "download",
|
|
730
|
-
onClick: function onClick() {
|
|
731
|
-
if (typeof entityFile.url === 'string') {
|
|
732
|
-
downloadAsset(entityFile.url, get(entityFile, 'fileName'));
|
|
733
|
-
}
|
|
734
|
-
},
|
|
735
|
-
testId: "card-action-download"
|
|
736
|
-
}, "Download") : null, onRemove ? /*#__PURE__*/React.createElement(f36Components.Menu.Item, {
|
|
737
|
-
key: "remove",
|
|
738
|
-
disabled: isDisabled,
|
|
739
|
-
onClick: onRemove,
|
|
740
|
-
testId: "card-action-remove"
|
|
741
|
-
}, "Remove") : null].filter(function (item) {
|
|
742
|
-
return item;
|
|
743
|
-
});
|
|
744
|
-
}
|
|
745
|
-
function FetchingWrappedAssetCard(props) {
|
|
746
|
-
var _asset$fields;
|
|
645
|
+
var _useState = React.useState(store[id]),
|
|
646
|
+
entity = _useState[0],
|
|
647
|
+
setEntity = _useState[1]; // Deep compare the entity value to keep re-rendering to minimal
|
|
747
648
|
|
|
748
|
-
var _useEntities = fieldEditorReference.useEntities(),
|
|
749
|
-
getOrLoadAsset = _useEntities.getOrLoadAsset,
|
|
750
|
-
assets = _useEntities.assets;
|
|
751
649
|
|
|
752
|
-
var asset = assets[props.assetId];
|
|
753
|
-
var defaultLocaleCode = props.sdk.locales["default"];
|
|
754
|
-
var entityFile = asset != null && (_asset$fields = asset.fields) != null && _asset$fields.file ? asset.fields.file[props.locale] || asset.fields.file[defaultLocaleCode] : undefined;
|
|
755
|
-
var onEntityFetchComplete = props.onEntityFetchComplete;
|
|
756
650
|
React.useEffect(function () {
|
|
757
|
-
|
|
758
|
-
}, [props.assetId]); // eslint-disable-line
|
|
651
|
+
var newValue = store[id];
|
|
759
652
|
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
return;
|
|
653
|
+
if (!areEqual(entity, newValue)) {
|
|
654
|
+
setEntity(newValue);
|
|
763
655
|
}
|
|
656
|
+
}, [store, entity, id]); // Fetch the entity if needed
|
|
764
657
|
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
}
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
image: 'image',
|
|
776
|
-
video: 'video',
|
|
777
|
-
audio: 'audio',
|
|
778
|
-
richtext: 'richtext',
|
|
779
|
-
presentation: 'presentation',
|
|
780
|
-
spreadsheet: 'spreadsheet',
|
|
781
|
-
pdfdocument: 'pdf',
|
|
782
|
-
archive: 'archive',
|
|
783
|
-
plaintext: 'plaintext',
|
|
784
|
-
code: 'code',
|
|
785
|
-
markup: 'markup'
|
|
786
|
-
};
|
|
787
|
-
var archive = groupToIconMap['archive'];
|
|
788
|
-
|
|
789
|
-
if (!entityFile) {
|
|
790
|
-
return archive;
|
|
658
|
+
React.useEffect(function () {
|
|
659
|
+
(type === 'Entry' ? getOrLoadEntry : getOrLoadAsset)(id); // "getOrLoadEntry" and "getOrLoadAsset" instances change with every
|
|
660
|
+
// entity store update causing page lag on initial load
|
|
661
|
+
// TODO: consider rewriting useEntities() hook to avoid that happening in
|
|
662
|
+
// first place.
|
|
663
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
664
|
+
}, [type, id]);
|
|
665
|
+
React.useEffect(function () {
|
|
666
|
+
if (entity) {
|
|
667
|
+
onEntityFetchComplete == null ? void 0 : onEntityFetchComplete();
|
|
791
668
|
}
|
|
669
|
+
}, [onEntityFetchComplete, entity]);
|
|
670
|
+
return entity;
|
|
671
|
+
}
|
|
792
672
|
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
fallbackFileName: entityFile.fileName
|
|
796
|
-
});
|
|
797
|
-
return groupToIconMap[groupName] || archive;
|
|
798
|
-
}
|
|
799
|
-
|
|
800
|
-
if (asset === undefined) {
|
|
673
|
+
var InternalAssetCard = /*#__PURE__*/React.memo(function (props) {
|
|
674
|
+
if (props.asset === undefined) {
|
|
801
675
|
return /*#__PURE__*/React.createElement(f36Components.AssetCard, {
|
|
802
|
-
size: "
|
|
676
|
+
size: "default",
|
|
803
677
|
isLoading: true
|
|
804
678
|
});
|
|
805
679
|
}
|
|
806
680
|
|
|
807
|
-
if (asset === 'failed') {
|
|
808
|
-
return /*#__PURE__*/React.createElement(fieldEditorReference.MissingEntityCard, {
|
|
809
|
-
entityType: "Asset",
|
|
810
|
-
isDisabled: props.isDisabled,
|
|
811
|
-
onRemove: props.onRemove
|
|
812
|
-
});
|
|
813
|
-
}
|
|
814
|
-
|
|
815
|
-
var status = asset ? fieldEditorShared.entityHelpers.getEntryStatus(asset.sys) : undefined;
|
|
816
|
-
|
|
817
|
-
if (status === 'deleted') {
|
|
681
|
+
if (props.asset === 'failed') {
|
|
818
682
|
return /*#__PURE__*/React.createElement(fieldEditorReference.MissingEntityCard, {
|
|
819
683
|
entityType: "Asset",
|
|
820
|
-
asSquare: true,
|
|
821
684
|
isDisabled: props.isDisabled,
|
|
822
685
|
onRemove: props.onRemove
|
|
823
686
|
});
|
|
824
687
|
}
|
|
825
688
|
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
localeCode: props.locale,
|
|
829
|
-
defaultLocaleCode: defaultLocaleCode,
|
|
830
|
-
defaultTitle: 'Untitled'
|
|
831
|
-
});
|
|
832
|
-
return /*#__PURE__*/React.createElement(f36Components.AssetCard, {
|
|
833
|
-
title: entityTitle,
|
|
834
|
-
isSelected: props.isSelected,
|
|
689
|
+
return /*#__PURE__*/React.createElement(fieldEditorReference.WrappedAssetCard, {
|
|
690
|
+
getEntityScheduledActions: props.loadEntityScheduledActions,
|
|
835
691
|
size: "small",
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
actions: [renderActions({
|
|
845
|
-
entityFile: entityFile,
|
|
846
|
-
isDisabled: props.isDisabled,
|
|
847
|
-
onEdit: props.onEdit,
|
|
848
|
-
onRemove: props.onRemove
|
|
849
|
-
}), entityFile ? renderAssetInfo({
|
|
850
|
-
entityFile: entityFile
|
|
851
|
-
}) : null].filter(function (item) {
|
|
852
|
-
return item;
|
|
853
|
-
})
|
|
692
|
+
isSelected: props.isSelected,
|
|
693
|
+
isDisabled: props.isDisabled,
|
|
694
|
+
localeCode: props.locale,
|
|
695
|
+
defaultLocaleCode: props.sdk.locales["default"],
|
|
696
|
+
asset: props.asset,
|
|
697
|
+
onEdit: props.onEdit,
|
|
698
|
+
onRemove: props.isDisabled ? undefined : props.onRemove,
|
|
699
|
+
isClickable: false
|
|
854
700
|
});
|
|
855
|
-
}
|
|
701
|
+
}, areEqual);
|
|
702
|
+
InternalAssetCard.displayName = 'InternalAssetCard';
|
|
703
|
+
function FetchingWrappedAssetCard(props) {
|
|
704
|
+
var onEntityFetchComplete = props.onEntityFetchComplete,
|
|
705
|
+
assetId = props.assetId;
|
|
856
706
|
|
|
857
|
-
var
|
|
858
|
-
|
|
859
|
-
cursor: 'pointer'
|
|
860
|
-
})
|
|
861
|
-
};
|
|
707
|
+
var _useEntities = fieldEditorReference.useEntities(),
|
|
708
|
+
loadEntityScheduledActions = _useEntities.loadEntityScheduledActions;
|
|
862
709
|
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
710
|
+
var asset = useFetchedEntity({
|
|
711
|
+
type: 'Asset',
|
|
712
|
+
id: assetId,
|
|
713
|
+
onEntityFetchComplete: onEntityFetchComplete
|
|
714
|
+
});
|
|
715
|
+
return /*#__PURE__*/React.createElement(InternalAssetCard, {
|
|
716
|
+
asset: asset,
|
|
717
|
+
sdk: props.sdk,
|
|
718
|
+
isDisabled: props.isDisabled,
|
|
719
|
+
isSelected: props.isSelected,
|
|
720
|
+
loadEntityScheduledActions: loadEntityScheduledActions,
|
|
721
|
+
locale: props.locale,
|
|
722
|
+
onEdit: props.onEdit,
|
|
723
|
+
onRemove: props.onRemove
|
|
868
724
|
});
|
|
869
725
|
}
|
|
870
726
|
|
|
871
|
-
function
|
|
872
|
-
var
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
getOrLoadAsset = _useEntities.getOrLoadAsset;
|
|
876
|
-
|
|
877
|
-
var _React$useState = React.useState(null),
|
|
878
|
-
file = _React$useState[0],
|
|
879
|
-
setFile = _React$useState[1];
|
|
880
|
-
|
|
881
|
-
var entry = entries[props.entryId];
|
|
882
|
-
var contentType = React.useMemo(function () {
|
|
883
|
-
if (!entry || entry === 'failed') {
|
|
884
|
-
return undefined;
|
|
885
|
-
}
|
|
886
|
-
|
|
887
|
-
return props.sdk.space.getCachedContentTypes().find(function (contentType) {
|
|
888
|
-
return contentType.sys.id === entry.sys.contentType.sys.id;
|
|
889
|
-
});
|
|
890
|
-
}, [props.sdk, entry]);
|
|
891
|
-
var defaultLocaleCode = props.sdk.locales["default"];
|
|
892
|
-
var onEntityFetchComplete = props.onEntityFetchComplete;
|
|
893
|
-
React.useEffect(function () {
|
|
894
|
-
if (!entry || entry === 'failed') return;
|
|
895
|
-
var subscribed = true;
|
|
896
|
-
fieldEditorShared.entityHelpers.getEntryImage({
|
|
897
|
-
entry: entry,
|
|
898
|
-
contentType: contentType,
|
|
899
|
-
localeCode: props.locale,
|
|
900
|
-
defaultLocaleCode: defaultLocaleCode
|
|
901
|
-
}, getOrLoadAsset)["catch"](function () {
|
|
902
|
-
return null;
|
|
903
|
-
}).then(function (file) {
|
|
904
|
-
if (subscribed) {
|
|
905
|
-
setFile(file);
|
|
906
|
-
}
|
|
907
|
-
});
|
|
908
|
-
return function () {
|
|
909
|
-
subscribed = false;
|
|
910
|
-
};
|
|
911
|
-
}, [entry, contentType, props.locale, defaultLocaleCode, props.sdk, file, getOrLoadAsset]);
|
|
912
|
-
React.useEffect(function () {
|
|
913
|
-
getOrLoadEntry(props.entryId);
|
|
914
|
-
}, [props.entryId]); // eslint-disable-line
|
|
915
|
-
|
|
916
|
-
React.useEffect(function () {
|
|
917
|
-
if (!entry) {
|
|
918
|
-
return;
|
|
919
|
-
}
|
|
920
|
-
|
|
921
|
-
onEntityFetchComplete == null ? void 0 : onEntityFetchComplete();
|
|
922
|
-
}, [entry, onEntityFetchComplete]);
|
|
923
|
-
|
|
924
|
-
function renderDropdown() {
|
|
925
|
-
if (!props.onEdit || !props.onRemove) return undefined;
|
|
926
|
-
return [props.onEdit ? /*#__PURE__*/React.createElement(f36Components.MenuItem, {
|
|
927
|
-
key: "edit",
|
|
928
|
-
testId: "card-action-edit",
|
|
929
|
-
onClick: function onClick() {
|
|
930
|
-
props.onEdit && props.onEdit();
|
|
931
|
-
}
|
|
932
|
-
}, "Edit") : null, props.onRemove ? /*#__PURE__*/React.createElement(f36Components.MenuItem, {
|
|
933
|
-
key: "delete",
|
|
934
|
-
disabled: props.isDisabled,
|
|
935
|
-
testId: "card-action-remove",
|
|
936
|
-
onClick: function onClick() {
|
|
937
|
-
props.onRemove && props.onRemove();
|
|
938
|
-
}
|
|
939
|
-
}, "Remove") : null].filter(function (item) {
|
|
940
|
-
return item;
|
|
941
|
-
});
|
|
942
|
-
}
|
|
727
|
+
var InternalEntryCard = /*#__PURE__*/React.memo(function (props) {
|
|
728
|
+
var entry = props.entry,
|
|
729
|
+
sdk = props.sdk,
|
|
730
|
+
loadEntityScheduledActions = props.loadEntityScheduledActions;
|
|
943
731
|
|
|
944
732
|
if (entry === undefined) {
|
|
945
733
|
return /*#__PURE__*/React.createElement(f36Components.EntryCard, {
|
|
946
|
-
size: "default",
|
|
947
734
|
isLoading: true
|
|
948
735
|
});
|
|
949
736
|
}
|
|
@@ -956,50 +743,50 @@ function FetchingWrappedEntryCard(props) {
|
|
|
956
743
|
});
|
|
957
744
|
}
|
|
958
745
|
|
|
959
|
-
var
|
|
960
|
-
|
|
961
|
-
if (entryStatus === 'deleted') {
|
|
962
|
-
return /*#__PURE__*/React.createElement(fieldEditorReference.MissingEntityCard, {
|
|
963
|
-
entityType: "Entry",
|
|
964
|
-
isDisabled: props.isDisabled,
|
|
965
|
-
onRemove: props.onRemove
|
|
966
|
-
});
|
|
967
|
-
}
|
|
968
|
-
|
|
969
|
-
var title = fieldEditorShared.entityHelpers.getEntryTitle({
|
|
970
|
-
entry: entry,
|
|
971
|
-
contentType: contentType,
|
|
972
|
-
localeCode: props.locale,
|
|
973
|
-
defaultLocaleCode: defaultLocaleCode,
|
|
974
|
-
defaultTitle: 'Untitled'
|
|
746
|
+
var contentType = sdk.space.getCachedContentTypes().find(function (contentType) {
|
|
747
|
+
return contentType.sys.id === entry.sys.contentType.sys.id;
|
|
975
748
|
});
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
749
|
+
return /*#__PURE__*/React.createElement(fieldEditorReference.WrappedEntryCard, {
|
|
750
|
+
size: "default",
|
|
751
|
+
getAsset: props.sdk.space.getAsset,
|
|
752
|
+
getEntityScheduledActions: loadEntityScheduledActions,
|
|
753
|
+
isSelected: props.isSelected,
|
|
754
|
+
isDisabled: props.isDisabled,
|
|
979
755
|
localeCode: props.locale,
|
|
980
|
-
defaultLocaleCode:
|
|
756
|
+
defaultLocaleCode: props.sdk.locales["default"],
|
|
757
|
+
contentType: contentType,
|
|
758
|
+
entry: entry,
|
|
759
|
+
onEdit: props.onEdit,
|
|
760
|
+
onRemove: props.isDisabled ? undefined : props.onRemove,
|
|
761
|
+
isClickable: false
|
|
981
762
|
});
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
763
|
+
}, areEqual);
|
|
764
|
+
InternalEntryCard.displayName = 'ReferenceCard';
|
|
765
|
+
var FetchingWrappedEntryCard = function FetchingWrappedEntryCard(props) {
|
|
766
|
+
var entryId = props.entryId,
|
|
767
|
+
onEntityFetchComplete = props.onEntityFetchComplete;
|
|
768
|
+
|
|
769
|
+
var _useEntities = fieldEditorReference.useEntities(),
|
|
770
|
+
loadEntityScheduledActions = _useEntities.loadEntityScheduledActions;
|
|
771
|
+
|
|
772
|
+
var entry = useFetchedEntity({
|
|
773
|
+
type: 'Entry',
|
|
774
|
+
id: entryId,
|
|
775
|
+
onEntityFetchComplete: onEntityFetchComplete
|
|
776
|
+
});
|
|
777
|
+
return /*#__PURE__*/React.createElement(InternalEntryCard, {
|
|
778
|
+
entry: entry,
|
|
779
|
+
sdk: props.sdk,
|
|
780
|
+
locale: props.locale,
|
|
781
|
+
isDisabled: props.isDisabled,
|
|
987
782
|
isSelected: props.isSelected,
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
file: file
|
|
992
|
-
}) : undefined,
|
|
993
|
-
icon: /*#__PURE__*/React.createElement(EntityStatusIcon, {
|
|
994
|
-
entityType: "Entry",
|
|
995
|
-
entity: entry
|
|
996
|
-
}),
|
|
997
|
-
withDragHandle: false,
|
|
998
|
-
actions: renderDropdown()
|
|
783
|
+
onEdit: props.onEdit,
|
|
784
|
+
onRemove: props.onRemove,
|
|
785
|
+
loadEntityScheduledActions: loadEntityScheduledActions
|
|
999
786
|
});
|
|
1000
|
-
}
|
|
787
|
+
};
|
|
1001
788
|
|
|
1002
|
-
var styles
|
|
789
|
+
var styles = {
|
|
1003
790
|
root: /*#__PURE__*/emotion.css({
|
|
1004
791
|
marginBottom: '1.25rem !important',
|
|
1005
792
|
display: 'block'
|
|
@@ -1024,24 +811,21 @@ function LinkedEntityBlock(props) {
|
|
|
1024
811
|
var _element$data$target$ = element.data.target.sys,
|
|
1025
812
|
entityId = _element$data$target$.id,
|
|
1026
813
|
entityType = _element$data$target$.linkType;
|
|
1027
|
-
|
|
1028
|
-
var handleEditClick = function handleEditClick() {
|
|
814
|
+
var handleEditClick = React__default.useCallback(function () {
|
|
1029
815
|
var openEntity = entityType === 'Asset' ? sdk.navigator.openAsset : sdk.navigator.openEntry;
|
|
1030
816
|
return openEntity(entityId, {
|
|
1031
817
|
slideIn: true
|
|
1032
818
|
});
|
|
1033
|
-
};
|
|
1034
|
-
|
|
1035
|
-
var handleRemoveClick = function handleRemoveClick() {
|
|
819
|
+
}, [sdk, entityId, entityType]);
|
|
820
|
+
var handleRemoveClick = React__default.useCallback(function () {
|
|
1036
821
|
if (!editor) return;
|
|
1037
822
|
var pathToElement = Slate.ReactEditor.findPath(editor, element);
|
|
1038
823
|
slate.Transforms.removeNodes(editor, {
|
|
1039
824
|
at: pathToElement
|
|
1040
825
|
});
|
|
1041
|
-
};
|
|
1042
|
-
|
|
826
|
+
}, [editor, element]);
|
|
1043
827
|
return /*#__PURE__*/React__default.createElement("div", Object.assign({}, attributes, {
|
|
1044
|
-
className: styles
|
|
828
|
+
className: styles.root,
|
|
1045
829
|
"data-entity-type": entityType,
|
|
1046
830
|
"data-entity-id": entityId,
|
|
1047
831
|
// COMPAT: This makes copy & paste work for Firefox
|
|
@@ -1051,7 +835,7 @@ function LinkedEntityBlock(props) {
|
|
|
1051
835
|
// COMPAT: This makes copy & paste work for Chromium/Blink browsers and Safari
|
|
1052
836
|
contentEditable: IS_CHROME ? false : undefined,
|
|
1053
837
|
draggable: IS_CHROME ? true : undefined,
|
|
1054
|
-
className: styles
|
|
838
|
+
className: styles.container
|
|
1055
839
|
}, entityType === 'Entry' && /*#__PURE__*/React__default.createElement(FetchingWrappedEntryCard, {
|
|
1056
840
|
sdk: sdk,
|
|
1057
841
|
entryId: entityId,
|
|
@@ -1999,7 +1783,7 @@ function insertBlock(editor, nodeType, entity) {
|
|
|
1999
1783
|
focus(editor);
|
|
2000
1784
|
}
|
|
2001
1785
|
|
|
2002
|
-
var styles$
|
|
1786
|
+
var styles$1 = {
|
|
2003
1787
|
icon: /*#__PURE__*/emotion.css({
|
|
2004
1788
|
marginRight: '10px'
|
|
2005
1789
|
})
|
|
@@ -2047,7 +1831,7 @@ function EmbeddedEntityBlockToolbarIcon(_ref) {
|
|
|
2047
1831
|
flexDirection: "row"
|
|
2048
1832
|
}, /*#__PURE__*/React__default.createElement(f36Components.Icon, {
|
|
2049
1833
|
as: type === 'Asset' ? f36Icons.AssetIcon : f36Icons.EmbeddedEntryBlockIcon,
|
|
2050
|
-
className: "rich-text__embedded-entry-list-icon " + styles$
|
|
1834
|
+
className: "rich-text__embedded-entry-list-icon " + styles$1.icon,
|
|
2051
1835
|
variant: "secondary"
|
|
2052
1836
|
}), /*#__PURE__*/React__default.createElement("span", null, type)));
|
|
2053
1837
|
}
|
|
@@ -2146,7 +1930,7 @@ var createEmbeddedAssetBlockPlugin = /*#__PURE__*/createEmbeddedEntityPlugin(Con
|
|
|
2146
1930
|
|
|
2147
1931
|
var getEntryTitle = fieldEditorShared.entityHelpers.getEntryTitle,
|
|
2148
1932
|
getEntryStatus = fieldEditorShared.entityHelpers.getEntryStatus;
|
|
2149
|
-
var styles$
|
|
1933
|
+
var styles$2 = {
|
|
2150
1934
|
scheduledIcon: /*#__PURE__*/emotion.css({
|
|
2151
1935
|
verticalAlign: 'text-bottom',
|
|
2152
1936
|
marginRight: tokens.spacing2Xs
|
|
@@ -2217,7 +2001,7 @@ function FetchingWrappedInlineEntryCard(props) {
|
|
|
2217
2001
|
actions: [/*#__PURE__*/React__default.createElement(f36Components.MenuItem, {
|
|
2218
2002
|
key: "remove",
|
|
2219
2003
|
onClick: props.onRemove,
|
|
2220
|
-
testId: "
|
|
2004
|
+
testId: "delete"
|
|
2221
2005
|
}, "Remove")]
|
|
2222
2006
|
});
|
|
2223
2007
|
}
|
|
@@ -2234,14 +2018,14 @@ function FetchingWrappedInlineEntryCard(props) {
|
|
|
2234
2018
|
key: "remove",
|
|
2235
2019
|
onClick: props.onRemove,
|
|
2236
2020
|
disabled: props.isDisabled,
|
|
2237
|
-
testId: "
|
|
2021
|
+
testId: "delete"
|
|
2238
2022
|
}, "Remove")]
|
|
2239
2023
|
}, /*#__PURE__*/React__default.createElement(fieldEditorReference.ScheduledIconWithTooltip, {
|
|
2240
2024
|
getEntityScheduledActions: loadEntityScheduledActions,
|
|
2241
2025
|
entityType: "Entry",
|
|
2242
2026
|
entityId: entry.sys.id
|
|
2243
2027
|
}, /*#__PURE__*/React__default.createElement(f36Icons.ClockIcon, {
|
|
2244
|
-
className: styles$
|
|
2028
|
+
className: styles$2.scheduledIcon,
|
|
2245
2029
|
variant: "muted",
|
|
2246
2030
|
testId: "scheduled-icon"
|
|
2247
2031
|
})), /*#__PURE__*/React__default.createElement(f36Components.Text, null, title));
|
|
@@ -2265,7 +2049,7 @@ function createInlineEntryNode(id) {
|
|
|
2265
2049
|
};
|
|
2266
2050
|
}
|
|
2267
2051
|
|
|
2268
|
-
var styles$
|
|
2052
|
+
var styles$3 = {
|
|
2269
2053
|
icon: /*#__PURE__*/emotion.css({
|
|
2270
2054
|
marginRight: '10px'
|
|
2271
2055
|
}),
|
|
@@ -2301,7 +2085,7 @@ function EmbeddedEntityInline(props) {
|
|
|
2301
2085
|
}
|
|
2302
2086
|
|
|
2303
2087
|
return /*#__PURE__*/React.createElement("span", Object.assign({}, props.attributes, {
|
|
2304
|
-
className: styles$
|
|
2088
|
+
className: styles$3.root,
|
|
2305
2089
|
"data-embedded-entity-inline-id": entryId,
|
|
2306
2090
|
// COMPAT: This makes copy & paste work for Firefox
|
|
2307
2091
|
contentEditable: IS_CHROME ? undefined : false,
|
|
@@ -2431,7 +2215,7 @@ function ToolbarEmbeddedEntityInlineButton(props) {
|
|
|
2431
2215
|
flexDirection: "row"
|
|
2432
2216
|
}, /*#__PURE__*/React.createElement(f36Icons.EmbeddedEntryInlineIcon, {
|
|
2433
2217
|
variant: "secondary",
|
|
2434
|
-
className: "rich-text__embedded-entry-list-icon " + styles$
|
|
2218
|
+
className: "rich-text__embedded-entry-list-icon " + styles$3.icon
|
|
2435
2219
|
}), /*#__PURE__*/React.createElement("span", null, "Inline entry")));
|
|
2436
2220
|
}
|
|
2437
2221
|
function createEmbeddedEntityInlinePlugin(sdk) {
|
|
@@ -2507,7 +2291,7 @@ var isMarkEnabled = function isMarkEnabled(field, mark) {
|
|
|
2507
2291
|
};
|
|
2508
2292
|
|
|
2509
2293
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _dropdown, _LABELS;
|
|
2510
|
-
var styles$
|
|
2294
|
+
var styles$4 = {
|
|
2511
2295
|
dropdown: (_dropdown = {
|
|
2512
2296
|
root: /*#__PURE__*/emotion.css(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-weight: ", ";\n "])), tokens.fontWeightDemiBold)
|
|
2513
2297
|
}, _dropdown[Contentful.BLOCKS.PARAGRAPH] = /*#__PURE__*/emotion.css(_templateObject2 || (_templateObject2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: ", ";\n "])), tokens.fontSizeL), _dropdown[Contentful.BLOCKS.HEADING_1] = /*#__PURE__*/emotion.css(_templateObject3 || (_templateObject3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.625rem;\n "]))), _dropdown[Contentful.BLOCKS.HEADING_2] = /*#__PURE__*/emotion.css(_templateObject4 || (_templateObject4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.4375rem;\n "]))), _dropdown[Contentful.BLOCKS.HEADING_3] = /*#__PURE__*/emotion.css(_templateObject5 || (_templateObject5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.25rem;\n "]))), _dropdown[Contentful.BLOCKS.HEADING_4] = /*#__PURE__*/emotion.css(_templateObject6 || (_templateObject6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.125rem;\n "]))), _dropdown[Contentful.BLOCKS.HEADING_5] = /*#__PURE__*/emotion.css(_templateObject7 || (_templateObject7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1rem;\n "]))), _dropdown[Contentful.BLOCKS.HEADING_6] = /*#__PURE__*/emotion.css(_templateObject8 || (_templateObject8 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 0.875rem;\n "]))), _dropdown)
|
|
@@ -2602,7 +2386,7 @@ function ToolbarHeadingButton(props) {
|
|
|
2602
2386
|
testId: "dropdown-option-" + nodeType,
|
|
2603
2387
|
disabled: props.isDisabled
|
|
2604
2388
|
}, /*#__PURE__*/React.createElement("span", {
|
|
2605
|
-
className: emotion.cx(styles$
|
|
2389
|
+
className: emotion.cx(styles$4.dropdown.root, styles$4.dropdown[nodeType])
|
|
2606
2390
|
}, LABELS[nodeType]));
|
|
2607
2391
|
}).filter(Boolean)));
|
|
2608
2392
|
}
|
|
@@ -2672,7 +2456,7 @@ var transformLift = function transformLift(editor, _ref4) {
|
|
|
2672
2456
|
};
|
|
2673
2457
|
|
|
2674
2458
|
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;
|
|
2675
|
-
var styles$
|
|
2459
|
+
var styles$5 = {
|
|
2676
2460
|
dropdown: (_dropdown$1 = {
|
|
2677
2461
|
root: /*#__PURE__*/emotion.css(_templateObject$1 || (_templateObject$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-weight: ", ";\n "])), tokens.fontWeightDemiBold)
|
|
2678
2462
|
}, _dropdown$1[Contentful.BLOCKS.PARAGRAPH] = /*#__PURE__*/emotion.css(_templateObject2$1 || (_templateObject2$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: ", ";\n "])), tokens.fontSizeL), _dropdown$1[Contentful.BLOCKS.HEADING_1] = /*#__PURE__*/emotion.css(_templateObject3$1 || (_templateObject3$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.625rem;\n "]))), _dropdown$1[Contentful.BLOCKS.HEADING_2] = /*#__PURE__*/emotion.css(_templateObject4$1 || (_templateObject4$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.4375rem;\n "]))), _dropdown$1[Contentful.BLOCKS.HEADING_3] = /*#__PURE__*/emotion.css(_templateObject5$1 || (_templateObject5$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.25rem;\n "]))), _dropdown$1[Contentful.BLOCKS.HEADING_4] = /*#__PURE__*/emotion.css(_templateObject6$1 || (_templateObject6$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1.125rem;\n "]))), _dropdown$1[Contentful.BLOCKS.HEADING_5] = /*#__PURE__*/emotion.css(_templateObject7$1 || (_templateObject7$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 1rem;\n "]))), _dropdown$1[Contentful.BLOCKS.HEADING_6] = /*#__PURE__*/emotion.css(_templateObject8$1 || (_templateObject8$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 0.875rem;\n "]))), _dropdown$1),
|
|
@@ -2684,7 +2468,7 @@ var styles$8 = {
|
|
|
2684
2468
|
function createHeading(Tag, block) {
|
|
2685
2469
|
return function Heading(props) {
|
|
2686
2470
|
return /*#__PURE__*/React.createElement(Tag, Object.assign({}, props.attributes, {
|
|
2687
|
-
className: emotion.cx(styles$
|
|
2471
|
+
className: emotion.cx(styles$5.headings.root, styles$5.headings[block])
|
|
2688
2472
|
}), props.children);
|
|
2689
2473
|
};
|
|
2690
2474
|
}
|
|
@@ -2780,7 +2564,7 @@ var createHeadingPlugin = function createHeadingPlugin() {
|
|
|
2780
2564
|
};
|
|
2781
2565
|
};
|
|
2782
2566
|
|
|
2783
|
-
var styles$
|
|
2567
|
+
var styles$6 = {
|
|
2784
2568
|
button: /*#__PURE__*/emotion.css({
|
|
2785
2569
|
height: '30px',
|
|
2786
2570
|
width: '30px',
|
|
@@ -2806,7 +2590,7 @@ function ToolbarButton(props) {
|
|
|
2806
2590
|
};
|
|
2807
2591
|
|
|
2808
2592
|
var button = /*#__PURE__*/React__default.createElement(f36Components.Button, {
|
|
2809
|
-
className: emotion.cx(styles$
|
|
2593
|
+
className: emotion.cx(styles$6.button, className),
|
|
2810
2594
|
isDisabled: isDisabled,
|
|
2811
2595
|
startIcon: children,
|
|
2812
2596
|
onClick: handleClick,
|
|
@@ -2817,7 +2601,7 @@ function ToolbarButton(props) {
|
|
|
2817
2601
|
|
|
2818
2602
|
if (title) {
|
|
2819
2603
|
return /*#__PURE__*/React__default.createElement(f36Components.Tooltip, {
|
|
2820
|
-
className: styles$
|
|
2604
|
+
className: styles$6.tooltip,
|
|
2821
2605
|
placement: "bottom",
|
|
2822
2606
|
content: title
|
|
2823
2607
|
}, button);
|
|
@@ -2827,7 +2611,7 @@ function ToolbarButton(props) {
|
|
|
2827
2611
|
}
|
|
2828
2612
|
|
|
2829
2613
|
var _templateObject$2, _templateObject2$2, _templateObject3$2;
|
|
2830
|
-
var styles$
|
|
2614
|
+
var styles$7 = {
|
|
2831
2615
|
container: /*#__PURE__*/emotion.css(_templateObject$2 || (_templateObject$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin: 0 0 ", ";\n "])), tokens.spacingL),
|
|
2832
2616
|
hr: /*#__PURE__*/emotion.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),
|
|
2833
2617
|
hrSelected: /*#__PURE__*/emotion.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)
|
|
@@ -2885,14 +2669,14 @@ function Hr(props) {
|
|
|
2885
2669
|
var isSelected = Slate.useSelected();
|
|
2886
2670
|
var isFocused = Slate.useFocused();
|
|
2887
2671
|
return /*#__PURE__*/React.createElement("div", Object.assign({}, props.attributes, {
|
|
2888
|
-
className: styles$
|
|
2672
|
+
className: styles$7.container,
|
|
2889
2673
|
"data-void-element": Contentful.BLOCKS.HR
|
|
2890
2674
|
}), /*#__PURE__*/React.createElement("div", {
|
|
2891
2675
|
draggable: true,
|
|
2892
2676
|
// Moving `contentEditable` to this div makes it to be selectable when being the first void element, e.g pressing ctrl + a to select everything
|
|
2893
2677
|
contentEditable: false
|
|
2894
2678
|
}, /*#__PURE__*/React.createElement("hr", {
|
|
2895
|
-
className: emotion.cx(styles$
|
|
2679
|
+
className: emotion.cx(styles$7.hr, isSelected && isFocused ? styles$7.hrSelected : undefined)
|
|
2896
2680
|
})), props.children);
|
|
2897
2681
|
}
|
|
2898
2682
|
var createHrPlugin = function createHrPlugin() {
|
|
@@ -2919,7 +2703,7 @@ var createHrPlugin = function createHrPlugin() {
|
|
|
2919
2703
|
};
|
|
2920
2704
|
|
|
2921
2705
|
var _templateObject$3, _SYS_LINK_TYPES, _LINK_TYPE_SELECTION_;
|
|
2922
|
-
var styles$
|
|
2706
|
+
var styles$8 = {
|
|
2923
2707
|
removeSelectionLabel: /*#__PURE__*/emotion.css(_templateObject$3 || (_templateObject$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-left: ", ";\n "])), tokens.spacingS)
|
|
2924
2708
|
};
|
|
2925
2709
|
var SYS_LINK_TYPES = (_SYS_LINK_TYPES = {}, _SYS_LINK_TYPES[Contentful.INLINES.ENTRY_HYPERLINK] = 'Entry', _SYS_LINK_TYPES[Contentful.INLINES.ASSET_HYPERLINK] = 'Asset', _SYS_LINK_TYPES);
|
|
@@ -3102,7 +2886,7 @@ function HyperlinkModal(props) {
|
|
|
3102
2886
|
}, "Link target", ' '), linkEntity && linkEntity.sys.linkType === SYS_LINK_TYPES[linkType] ? /*#__PURE__*/React.createElement(React.Fragment, null, !props.readonly && /*#__PURE__*/React.createElement(f36Components.TextLink, {
|
|
3103
2887
|
testId: "entity-selection-link",
|
|
3104
2888
|
onClick: resetLinkEntity,
|
|
3105
|
-
className: styles$
|
|
2889
|
+
className: styles$8.removeSelectionLabel
|
|
3106
2890
|
}, "Remove selection"), /*#__PURE__*/React.createElement("div", null, linkType === Contentful.INLINES.ENTRY_HYPERLINK && /*#__PURE__*/React.createElement(FetchingWrappedEntryCard, {
|
|
3107
2891
|
sdk: props.sdk,
|
|
3108
2892
|
locale: props.sdk.field.locale,
|
|
@@ -3443,7 +3227,7 @@ function useEntityInfo(props) {
|
|
|
3443
3227
|
return getEntityInfo(status.data);
|
|
3444
3228
|
}
|
|
3445
3229
|
|
|
3446
|
-
var styles$
|
|
3230
|
+
var styles$9 = {
|
|
3447
3231
|
hyperlinkWrapper: /*#__PURE__*/emotion.css({
|
|
3448
3232
|
display: 'inline',
|
|
3449
3233
|
position: 'static',
|
|
@@ -3488,13 +3272,13 @@ function EntityHyperlink(props) {
|
|
|
3488
3272
|
|
|
3489
3273
|
return /*#__PURE__*/React.createElement(f36Components.Tooltip, {
|
|
3490
3274
|
content: tooltipContent,
|
|
3491
|
-
targetWrapperClassName: styles$
|
|
3275
|
+
targetWrapperClassName: styles$9.hyperlinkWrapper,
|
|
3492
3276
|
placement: "bottom",
|
|
3493
3277
|
maxWidth: "auto"
|
|
3494
3278
|
}, /*#__PURE__*/React.createElement(f36Components.TextLink, {
|
|
3495
3279
|
as: "a",
|
|
3496
3280
|
onClick: handleClick,
|
|
3497
|
-
className: styles$
|
|
3281
|
+
className: styles$9.hyperlink,
|
|
3498
3282
|
"data-link-type": target.sys.linkType,
|
|
3499
3283
|
"data-link-id": target.sys.id
|
|
3500
3284
|
}, props.children));
|
|
@@ -3518,7 +3302,7 @@ function UrlHyperlink(props) {
|
|
|
3518
3302
|
|
|
3519
3303
|
return /*#__PURE__*/React.createElement(f36Components.Tooltip, {
|
|
3520
3304
|
content: uri,
|
|
3521
|
-
targetWrapperClassName: styles$
|
|
3305
|
+
targetWrapperClassName: styles$9.hyperlinkWrapper,
|
|
3522
3306
|
placement: "bottom",
|
|
3523
3307
|
maxWidth: "auto"
|
|
3524
3308
|
}, /*#__PURE__*/React.createElement(f36Components.TextLink, {
|
|
@@ -3526,7 +3310,7 @@ function UrlHyperlink(props) {
|
|
|
3526
3310
|
href: uri,
|
|
3527
3311
|
rel: "noopener noreferrer",
|
|
3528
3312
|
onClick: handleClick,
|
|
3529
|
-
className: styles$
|
|
3313
|
+
className: styles$9.hyperlink
|
|
3530
3314
|
}, props.children));
|
|
3531
3315
|
}
|
|
3532
3316
|
|
|
@@ -3652,12 +3436,12 @@ var createHyperlinkPlugin = function createHyperlinkPlugin(sdk) {
|
|
|
3652
3436
|
|
|
3653
3437
|
var _templateObject$4, _templateObject2$3, _templateObject3$3, _styles;
|
|
3654
3438
|
var baseStyle = /*#__PURE__*/emotion.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);
|
|
3655
|
-
var styles$
|
|
3439
|
+
var styles$a = (_styles = {}, _styles[Contentful.BLOCKS.UL_LIST] = /*#__PURE__*/emotion.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[Contentful.BLOCKS.OL_LIST] = /*#__PURE__*/emotion.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);
|
|
3656
3440
|
|
|
3657
3441
|
function createList(Tag, block) {
|
|
3658
3442
|
return function List(props) {
|
|
3659
3443
|
return /*#__PURE__*/React.createElement(Tag, Object.assign({}, props.attributes, {
|
|
3660
|
-
className: emotion.cx(baseStyle, styles$
|
|
3444
|
+
className: emotion.cx(baseStyle, styles$a[block])
|
|
3661
3445
|
}), props.children);
|
|
3662
3446
|
};
|
|
3663
3447
|
}
|
|
@@ -4638,14 +4422,14 @@ var ToolbarBoldButton = /*#__PURE__*/createMarkToolbarButton({
|
|
|
4638
4422
|
mark: Contentful.MARKS.BOLD,
|
|
4639
4423
|
icon: /*#__PURE__*/React.createElement(f36Icons.FormatBoldIcon, null)
|
|
4640
4424
|
});
|
|
4641
|
-
var styles$
|
|
4425
|
+
var styles$b = {
|
|
4642
4426
|
bold: /*#__PURE__*/emotion.css({
|
|
4643
4427
|
fontWeight: 600
|
|
4644
4428
|
})
|
|
4645
4429
|
};
|
|
4646
4430
|
function Bold(props) {
|
|
4647
4431
|
return /*#__PURE__*/React.createElement("strong", Object.assign({}, props.attributes, {
|
|
4648
|
-
className: styles$
|
|
4432
|
+
className: styles$b.bold
|
|
4649
4433
|
}), props.children);
|
|
4650
4434
|
}
|
|
4651
4435
|
|
|
@@ -4685,7 +4469,7 @@ var ToolbarCodeButton = /*#__PURE__*/createMarkToolbarButton({
|
|
|
4685
4469
|
mark: Contentful.MARKS.CODE,
|
|
4686
4470
|
icon: /*#__PURE__*/React.createElement(f36Icons.CodeIcon, null)
|
|
4687
4471
|
});
|
|
4688
|
-
var styles$
|
|
4472
|
+
var styles$c = {
|
|
4689
4473
|
code: /*#__PURE__*/emotion.css({
|
|
4690
4474
|
fontFamily: 'monospace',
|
|
4691
4475
|
fontSize: '.9em'
|
|
@@ -4693,7 +4477,7 @@ var styles$f = {
|
|
|
4693
4477
|
};
|
|
4694
4478
|
function Code(props) {
|
|
4695
4479
|
return /*#__PURE__*/React.createElement("code", Object.assign({}, props.attributes, {
|
|
4696
|
-
className: styles$
|
|
4480
|
+
className: styles$c.code
|
|
4697
4481
|
}), props.children);
|
|
4698
4482
|
}
|
|
4699
4483
|
var createCodePlugin = function createCodePlugin() {
|
|
@@ -4723,14 +4507,14 @@ var ToolbarItalicButton = /*#__PURE__*/createMarkToolbarButton({
|
|
|
4723
4507
|
mark: Contentful.MARKS.ITALIC,
|
|
4724
4508
|
icon: /*#__PURE__*/React.createElement(f36Icons.FormatItalicIcon, null)
|
|
4725
4509
|
});
|
|
4726
|
-
var styles$
|
|
4510
|
+
var styles$d = {
|
|
4727
4511
|
italic: /*#__PURE__*/emotion.css({
|
|
4728
4512
|
fontStyle: 'italic'
|
|
4729
4513
|
})
|
|
4730
4514
|
};
|
|
4731
4515
|
function Italic(props) {
|
|
4732
4516
|
return /*#__PURE__*/React.createElement("em", Object.assign({}, props.attributes, {
|
|
4733
|
-
className: styles$
|
|
4517
|
+
className: styles$d.italic
|
|
4734
4518
|
}), props.children);
|
|
4735
4519
|
}
|
|
4736
4520
|
var createItalicPlugin = function createItalicPlugin() {
|
|
@@ -5006,10 +4790,10 @@ var createNormalizerPlugin = function createNormalizerPlugin() {
|
|
|
5006
4790
|
};
|
|
5007
4791
|
|
|
5008
4792
|
var _templateObject$6, _styles$1;
|
|
5009
|
-
var styles$
|
|
4793
|
+
var styles$e = (_styles$1 = {}, _styles$1[Contentful.BLOCKS.PARAGRAPH] = /*#__PURE__*/emotion.css(_templateObject$6 || (_templateObject$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n line-height: ", ";\n margin-bottom: 1.5em;\n "])), tokens.lineHeightDefault), _styles$1);
|
|
5010
4794
|
function Paragraph(props) {
|
|
5011
4795
|
return /*#__PURE__*/React.createElement("div", Object.assign({}, props.attributes, {
|
|
5012
|
-
className: styles$
|
|
4796
|
+
className: styles$e[Contentful.BLOCKS.PARAGRAPH]
|
|
5013
4797
|
}), props.children);
|
|
5014
4798
|
}
|
|
5015
4799
|
|
|
@@ -5830,7 +5614,7 @@ var isTable = function isTable(node) {
|
|
|
5830
5614
|
return slate.Element.isElement(node) && node.type === Contentful.BLOCKS.TABLE;
|
|
5831
5615
|
};
|
|
5832
5616
|
|
|
5833
|
-
var styles$
|
|
5617
|
+
var styles$f = {
|
|
5834
5618
|
topRight: /*#__PURE__*/emotion.css({
|
|
5835
5619
|
position: 'absolute',
|
|
5836
5620
|
top: '6px',
|
|
@@ -5919,7 +5703,7 @@ var TableActions = function TableActions() {
|
|
|
5919
5703
|
size: "small",
|
|
5920
5704
|
variant: "transparent",
|
|
5921
5705
|
tabIndex: -1,
|
|
5922
|
-
className: styles$
|
|
5706
|
+
className: styles$f.topRight,
|
|
5923
5707
|
icon: /*#__PURE__*/React__default.createElement(f36Icons.ChevronDownIcon, null),
|
|
5924
5708
|
"aria-label": "Open table menu",
|
|
5925
5709
|
testId: "cf-table-actions-button"
|
|
@@ -6853,7 +6637,7 @@ var normalizeEditorValue = function normalizeEditorValue(value, options) {
|
|
|
6853
6637
|
};
|
|
6854
6638
|
|
|
6855
6639
|
var STYLE_EDITOR_BORDER = "1px solid " + tokens.gray400;
|
|
6856
|
-
var styles$
|
|
6640
|
+
var styles$g = {
|
|
6857
6641
|
root: /*#__PURE__*/emotion.css({
|
|
6858
6642
|
position: 'relative'
|
|
6859
6643
|
}),
|
|
@@ -6969,7 +6753,7 @@ var EmbedEntityWidget = function EmbedEntityWidget(_ref) {
|
|
|
6969
6753
|
}, actions);
|
|
6970
6754
|
};
|
|
6971
6755
|
|
|
6972
|
-
var styles$
|
|
6756
|
+
var styles$h = {
|
|
6973
6757
|
toolbar: /*#__PURE__*/emotion.css({
|
|
6974
6758
|
border: "1px solid " + tokens.gray400,
|
|
6975
6759
|
backgroundColor: tokens.gray100,
|
|
@@ -7014,14 +6798,14 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
7014
6798
|
var shouldDisableTables = isDisabled || !canInsertBlocks || isListSelected || isBlockquoteSelected;
|
|
7015
6799
|
return /*#__PURE__*/React__default.createElement(f36Components.Flex, {
|
|
7016
6800
|
testId: "toolbar",
|
|
7017
|
-
className: styles$
|
|
6801
|
+
className: styles$h.toolbar,
|
|
7018
6802
|
alignItems: "center"
|
|
7019
6803
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
7020
|
-
className: styles$
|
|
6804
|
+
className: styles$h.formattingOptionsWrapper
|
|
7021
6805
|
}, /*#__PURE__*/React__default.createElement(ToolbarHeadingButton, {
|
|
7022
6806
|
isDisabled: isDisabled || !canInsertBlocks
|
|
7023
6807
|
}), validationInfo.isAnyMarkEnabled && /*#__PURE__*/React__default.createElement("span", {
|
|
7024
|
-
className: styles$
|
|
6808
|
+
className: styles$h.divider
|
|
7025
6809
|
}), isMarkEnabled(sdk.field, Contentful.MARKS.BOLD) && /*#__PURE__*/React__default.createElement(ToolbarBoldButton, {
|
|
7026
6810
|
isDisabled: isDisabled
|
|
7027
6811
|
}), isMarkEnabled(sdk.field, Contentful.MARKS.ITALIC) && /*#__PURE__*/React__default.createElement(ToolbarItalicButton, {
|
|
@@ -7031,11 +6815,11 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
7031
6815
|
}), isMarkEnabled(sdk.field, Contentful.MARKS.CODE) && /*#__PURE__*/React__default.createElement(ToolbarCodeButton, {
|
|
7032
6816
|
isDisabled: isDisabled
|
|
7033
6817
|
}), validationInfo.isAnyHyperlinkEnabled && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("span", {
|
|
7034
|
-
className: styles$
|
|
6818
|
+
className: styles$h.divider
|
|
7035
6819
|
}), /*#__PURE__*/React__default.createElement(ToolbarHyperlinkButton, {
|
|
7036
6820
|
isDisabled: isDisabled
|
|
7037
6821
|
})), validationInfo.isAnyBlockFormattingEnabled && /*#__PURE__*/React__default.createElement("span", {
|
|
7038
|
-
className: styles$
|
|
6822
|
+
className: styles$h.divider
|
|
7039
6823
|
}), /*#__PURE__*/React__default.createElement(ToolbarListButton, {
|
|
7040
6824
|
isDisabled: isDisabled || !canInsertBlocks
|
|
7041
6825
|
}), isNodeTypeEnabled(sdk.field, Contentful.BLOCKS.QUOTE) && /*#__PURE__*/React__default.createElement(ToolbarQuoteButton, {
|
|
@@ -7045,7 +6829,7 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
7045
6829
|
}), isNodeTypeEnabled(sdk.field, Contentful.BLOCKS.TABLE) && /*#__PURE__*/React__default.createElement(ToolbarTableButton, {
|
|
7046
6830
|
isDisabled: shouldDisableTables
|
|
7047
6831
|
})), /*#__PURE__*/React__default.createElement("div", {
|
|
7048
|
-
className: styles$
|
|
6832
|
+
className: styles$h.embedActionsWrapper
|
|
7049
6833
|
}, /*#__PURE__*/React__default.createElement(EmbedEntityWidget, {
|
|
7050
6834
|
isDisabled: isDisabled,
|
|
7051
6835
|
canInsertBlocks: canInsertBlocks
|
|
@@ -7070,7 +6854,7 @@ function getValidationInfo(field) {
|
|
|
7070
6854
|
}
|
|
7071
6855
|
|
|
7072
6856
|
var _templateObject$b;
|
|
7073
|
-
var styles$
|
|
6857
|
+
var styles$i = {
|
|
7074
6858
|
nativeSticky: /*#__PURE__*/emotion.css(_templateObject$b || (_templateObject$b = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: -webkit-sticky;\n position: sticky;\n top: -1px;\n z-index: 2;\n "])))
|
|
7075
6859
|
};
|
|
7076
6860
|
|
|
@@ -7078,7 +6862,7 @@ var StickyToolbarWrapper = function StickyToolbarWrapper(_ref) {
|
|
|
7078
6862
|
var isDisabled = _ref.isDisabled,
|
|
7079
6863
|
children = _ref.children;
|
|
7080
6864
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
7081
|
-
className: isDisabled ? '' : styles$
|
|
6865
|
+
className: isDisabled ? '' : styles$i.nativeSticky
|
|
7082
6866
|
}, children);
|
|
7083
6867
|
};
|
|
7084
6868
|
|
|
@@ -7173,9 +6957,9 @@ var ConnectedRichTextEditor = function ConnectedRichTextEditor(props) {
|
|
|
7173
6957
|
setPendingExternalUpdate(true);
|
|
7174
6958
|
setEditorContent(editor, documentToEditorValue(props.value));
|
|
7175
6959
|
}, [props.value, id]);
|
|
7176
|
-
var classNames = emotion.cx(styles$
|
|
6960
|
+
var classNames = emotion.cx(styles$g.editor, props.minHeight !== undefined ? emotion.css({
|
|
7177
6961
|
minHeight: props.minHeight
|
|
7178
|
-
}) : undefined, props.isDisabled ? styles$
|
|
6962
|
+
}) : undefined, props.isDisabled ? styles$g.disabled : styles$g.enabled, props.isToolbarHidden && styles$g.hiddenToolbar);
|
|
7179
6963
|
React.useEffect(function () {
|
|
7180
6964
|
if (!isFirstRender) {
|
|
7181
6965
|
return;
|
|
@@ -7191,7 +6975,7 @@ var ConnectedRichTextEditor = function ConnectedRichTextEditor(props) {
|
|
|
7191
6975
|
}, /*#__PURE__*/React__default.createElement(ContentfulEditorIdProvider, {
|
|
7192
6976
|
value: id
|
|
7193
6977
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
7194
|
-
className: styles$
|
|
6978
|
+
className: styles$g.root,
|
|
7195
6979
|
"data-test-id": "rich-text-editor"
|
|
7196
6980
|
}, /*#__PURE__*/React__default.createElement(plateCore.Plate, {
|
|
7197
6981
|
id: id,
|
|
@@ -7218,7 +7002,7 @@ var RichTextEditor = function RichTextEditor(props) {
|
|
|
7218
7002
|
otherProps = _objectWithoutPropertiesLoose(props, _excluded);
|
|
7219
7003
|
|
|
7220
7004
|
var isEmptyValue = React.useCallback(function (value) {
|
|
7221
|
-
return !value ||
|
|
7005
|
+
return !value || areEqual(value, Contentful.EMPTY_DOCUMENT);
|
|
7222
7006
|
}, []);
|
|
7223
7007
|
var id = getContentfulEditorId(props.sdk);
|
|
7224
7008
|
return /*#__PURE__*/React__default.createElement(fieldEditorReference.EntityProvider, {
|
|
@@ -7228,7 +7012,7 @@ var RichTextEditor = function RichTextEditor(props) {
|
|
|
7228
7012
|
field: sdk.field,
|
|
7229
7013
|
isInitiallyDisabled: isInitiallyDisabled,
|
|
7230
7014
|
isEmptyValue: isEmptyValue,
|
|
7231
|
-
isEqualValues:
|
|
7015
|
+
isEqualValues: areEqual
|
|
7232
7016
|
}, function (_ref) {
|
|
7233
7017
|
var lastRemoteValue = _ref.lastRemoteValue,
|
|
7234
7018
|
disabled = _ref.disabled,
|