blixify-ui-web 1.2.90 → 1.2.92
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/lib/components/advanced/collapse/index.d.ts +1 -0
- package/lib/components/advanced/collapse/index.d.ts.map +1 -1
- package/lib/components/advanced/collapse/index.js +4 -1
- package/lib/components/advanced/collapse/index.js.map +1 -1
- package/lib/components/data/dataTemplate/dataStateModel.d.ts +2 -0
- package/lib/components/data/dataTemplate/dataStateModel.d.ts.map +1 -1
- package/lib/components/data/dataTemplate/dataStateModel.js.map +1 -1
- package/lib/components/data/dataTemplate/index.d.ts.map +1 -1
- package/lib/components/data/dataTemplate/index.js +322 -205
- package/lib/components/data/dataTemplate/index.js.map +1 -1
- package/lib/components/data/dataTemplate/model.d.ts +1 -1
- package/lib/components/data/dataTemplate/model.d.ts.map +1 -1
- package/lib/components/data/dataTemplate/settingsModal.d.ts +8 -1
- package/lib/components/data/dataTemplate/settingsModal.d.ts.map +1 -1
- package/lib/components/data/dataTemplate/settingsModal.js +41 -3
- package/lib/components/data/dataTemplate/settingsModal.js.map +1 -1
- package/lib/components/data/dataTemplate/spaceModel.d.ts +23 -1
- package/lib/components/data/dataTemplate/spaceModel.d.ts.map +1 -1
- package/lib/components/data/listModule.d.ts.map +1 -1
- package/lib/components/data/listModule.js +13 -0
- package/lib/components/data/listModule.js.map +1 -1
- package/lib/components/data/readQuery/index.d.ts +12 -0
- package/lib/components/data/readQuery/index.d.ts.map +1 -1
- package/lib/components/data/readQuery/index.js +2 -0
- package/lib/components/data/readQuery/index.js.map +1 -1
- package/lib/components/data/readQueryHoc/index.d.ts.map +1 -1
- package/lib/components/data/readQueryHoc/index.js +7 -0
- package/lib/components/data/readQueryHoc/index.js.map +1 -1
- package/lib/components/display/filePreview/index.d.ts +54 -0
- package/lib/components/display/filePreview/index.d.ts.map +1 -0
- package/lib/components/display/filePreview/index.js +120 -0
- package/lib/components/display/filePreview/index.js.map +1 -0
- package/lib/components/display/newList/index.d.ts +3 -2
- package/lib/components/display/newList/index.d.ts.map +1 -1
- package/lib/components/display/newList/index.js +1 -1
- package/lib/components/display/newList/index.js.map +1 -1
- package/lib/components/display/newTable/index.d.ts +4 -2
- package/lib/components/display/newTable/index.d.ts.map +1 -1
- package/lib/components/display/newTable/index.js +30 -2
- package/lib/components/display/newTable/index.js.map +1 -1
- package/lib/components/display/tag/index.d.ts +2 -1
- package/lib/components/display/tag/index.d.ts.map +1 -1
- package/lib/components/display/tag/index.js.map +1 -1
- package/lib/components/display/tag/utils.d.ts +5 -0
- package/lib/components/display/tag/utils.d.ts.map +1 -1
- package/lib/components/display/tag/utils.js +5 -0
- package/lib/components/display/tag/utils.js.map +1 -1
- package/lib/components/index.d.ts +2 -0
- package/lib/components/index.d.ts.map +1 -1
- package/lib/components/index.js +7 -2
- package/lib/components/index.js.map +1 -1
- package/lib/components/input/markdown/index.d.ts +9 -0
- package/lib/components/input/markdown/index.d.ts.map +1 -1
- package/lib/components/input/markdown/index.js +198 -3
- package/lib/components/input/markdown/index.js.map +1 -1
- package/lib/components/navigation/tabs/index.d.ts +2 -0
- package/lib/components/navigation/tabs/index.d.ts.map +1 -1
- package/lib/components/navigation/tabs/index.js +11 -2
- package/lib/components/navigation/tabs/index.js.map +1 -1
- package/lib/tail.css +1 -1
- package/package.json +1 -1
package/lib/components/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BlogSection = exports.BannerAction = exports.Banner = exports.ActionSection = exports.WriteQuery = exports.parseWorkspaceSettings = exports.parseSpaceToDataStructure = exports.parseServerId = exports.handleAPIEncryption = exports.ReadQueryHoc = exports.ReadQuery = exports.QueryForm = exports.renderFlexFilterConditions = exports.FlexFilter = exports.DataTemplateWrapper = exports.DataTemplate = exports.DataReference = exports.DataGraph = exports.ChatDashboard = exports.ChatBase = exports.ChatAnchor = exports.TreemapChart = exports.StatsCard = exports.RangeBarChart = exports.RadialBar = exports.RadarChart = exports.PolarAreaChart = exports.PieChart = exports.LineChart = exports.HeatmapChart = exports.GanttChart = exports.Card = exports.BubbleChart = exports.BoxPlotChart = exports.BarChart = exports.AreaChart = exports.SignUpTemplate = exports.SignInTemplate = exports.BareSignUp = exports.BareSignIn = exports.PopUp = exports.InfoWindow = exports.Collapse = exports.Toggle = exports.TextButton = exports.Slider = exports.RadioList = exports.IconButton = exports.ButtonGroup = exports.Button = void 0;
|
|
4
|
-
exports.
|
|
5
|
-
exports.Text = exports.Link = exports.Container = exports.Column = exports.Tabs = exports.LeftNav = exports.Header = exports.Breadcrumb = exports.BottomTab = exports.Bars = exports.UploadInput = exports.TextInput = exports.TextArea = exports.Signature = exports.Select = exports.Rating = void 0;
|
|
4
|
+
exports.InputDatePicker = exports.Checkbox = exports.Address = exports.NewCalendar = exports.NewKanban = exports.NewTable = exports.NewPagination = exports.NewFeeds = exports.NewListRow = exports.NewList = exports.Tag = exports.Table = exports.Stepper = exports.Progress = exports.Notification = exports.Modal = exports.MapView = exports.Loading = exports.List = exports.Grid = exports.FlexTable = exports.Feeds = exports.handleResolveFileLabel = exports.handleResolveFileKind = exports.handleFormatFileSize = exports.FilePreview = exports.EmptyState = exports.Drawer = exports.DetailList = exports.Clipboard = exports.Calendar = exports.Alert = exports.Teams = exports.SectionList = exports.RightContent = exports.Pricing = exports.Onboarding = exports.LogoCloud = exports.LeftContent = exports.ImageZoom = exports.ImageGallery = exports.IconList = exports.HeroSection = exports.GoogleReview = exports.FooterSection = exports.FileViewer = exports.FileGrid = exports.FAQContent = exports.DesignList = exports.CarouselSection = void 0;
|
|
5
|
+
exports.Text = exports.Link = exports.Container = exports.Column = exports.Tabs = exports.LeftNav = exports.Header = exports.Breadcrumb = exports.BottomTab = exports.Bars = exports.UploadInput = exports.TextInput = exports.TextArea = exports.Signature = exports.Select = exports.Rating = exports.NetPromoterScore = exports.MonthYearPicker = exports.MarkdownInput = exports.Form = void 0;
|
|
6
6
|
var button_1 = require("./action/button");
|
|
7
7
|
Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return button_1.Button; } });
|
|
8
8
|
var buttonGroup_1 = require("./action/buttonGroup");
|
|
@@ -147,6 +147,11 @@ var drawer_1 = require("./display/drawer");
|
|
|
147
147
|
Object.defineProperty(exports, "Drawer", { enumerable: true, get: function () { return drawer_1.Drawer; } });
|
|
148
148
|
var emptyState_1 = require("./display/emptyState");
|
|
149
149
|
Object.defineProperty(exports, "EmptyState", { enumerable: true, get: function () { return emptyState_1.EmptyState; } });
|
|
150
|
+
var filePreview_1 = require("./display/filePreview");
|
|
151
|
+
Object.defineProperty(exports, "FilePreview", { enumerable: true, get: function () { return filePreview_1.FilePreview; } });
|
|
152
|
+
Object.defineProperty(exports, "handleFormatFileSize", { enumerable: true, get: function () { return filePreview_1.handleFormatFileSize; } });
|
|
153
|
+
Object.defineProperty(exports, "handleResolveFileKind", { enumerable: true, get: function () { return filePreview_1.handleResolveFileKind; } });
|
|
154
|
+
Object.defineProperty(exports, "handleResolveFileLabel", { enumerable: true, get: function () { return filePreview_1.handleResolveFileLabel; } });
|
|
150
155
|
var feeds_1 = require("./display/feeds");
|
|
151
156
|
Object.defineProperty(exports, "Feeds", { enumerable: true, get: function () { return feeds_1.Feeds; } });
|
|
152
157
|
var flexTable_1 = require("./display/flexTable");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,15 @@ interface Props {
|
|
|
30
30
|
uploadEndpoint?: string;
|
|
31
31
|
enableImageUpload?: boolean;
|
|
32
32
|
enableVideoUpload?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Offer a File entry in the `/` menu for anything that is not media.
|
|
35
|
+
*
|
|
36
|
+
* INFO: off by default and separate from the media flags on purpose. A host
|
|
37
|
+
* that has not decided where files land — and, for a published document,
|
|
38
|
+
* whether a reader may fetch them — should not start accepting them because
|
|
39
|
+
* it happened to allow images.
|
|
40
|
+
*/
|
|
41
|
+
enableFileUpload?: boolean;
|
|
33
42
|
darkMode?: boolean;
|
|
34
43
|
readOnly?: boolean;
|
|
35
44
|
customElement?: ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/input/markdown/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/input/markdown/index.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,EACZ,YAAY,EAQb,MAAM,OAAO,CAAC;AAq7Bf,UAAU,KAAK;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,GAAG,CAAC;KACZ,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;KAAE,KAC9B,YAAY,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAChE;;;OAGG;IACH,cAAc,CAAC,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX;;;;WAIG;QACH,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5E,EAAE,CAAC;CACL;AAikDD,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,8EAQxB,mBAAmB,sBAuDrB,CAAC;AAEF,eAAO,MAAM,aAAa,oFAiBxB,CAAC"}
|
|
@@ -88,6 +88,7 @@ var PhotoIcon_1 = __importDefault(require("@heroicons/react/24/outline/PhotoIcon
|
|
|
88
88
|
var QuestionMarkCircleIcon_1 = __importDefault(require("@heroicons/react/24/solid/QuestionMarkCircleIcon"));
|
|
89
89
|
var TableCellsIcon_1 = __importDefault(require("@heroicons/react/24/solid/TableCellsIcon"));
|
|
90
90
|
var core_1 = require("@tiptap/core");
|
|
91
|
+
var filePreview_1 = require("../../display/filePreview");
|
|
91
92
|
var state_1 = require("@tiptap/pm/state");
|
|
92
93
|
var extension_image_1 = __importDefault(require("@tiptap/extension-image"));
|
|
93
94
|
var extensions_1 = require("@tiptap/extensions");
|
|
@@ -228,6 +229,16 @@ turndownService.addRule("video", {
|
|
|
228
229
|
return "<video src=\"".concat(src, "\" controls style=\"max-width: 100%; height: auto;\"></video>");
|
|
229
230
|
},
|
|
230
231
|
});
|
|
232
|
+
turndownService.addRule("fileAttachment", {
|
|
233
|
+
filter: function (node) {
|
|
234
|
+
return node.nodeName === "DIV" && !!node.getAttribute("data-file-src");
|
|
235
|
+
},
|
|
236
|
+
replacement: function (_content, node) {
|
|
237
|
+
var el = node;
|
|
238
|
+
var attr = function (name) { return el.getAttribute(name) || ""; };
|
|
239
|
+
return "<div data-file-src=\"".concat(attr("data-file-src"), "\" data-file-name=\"").concat(attr("data-file-name"), "\" data-file-size=\"").concat(attr("data-file-size"), "\" data-file-type=\"").concat(attr("data-file-type"), "\"></div>");
|
|
240
|
+
},
|
|
241
|
+
});
|
|
231
242
|
turndownService.addRule("spaceEmbed", {
|
|
232
243
|
filter: function (node) {
|
|
233
244
|
return node.nodeName === "DIV" && !!node.getAttribute("data-space-id");
|
|
@@ -598,6 +609,83 @@ var Video = core_1.Node.create({
|
|
|
598
609
|
};
|
|
599
610
|
},
|
|
600
611
|
});
|
|
612
|
+
var FileAttachmentComponent = function (_a) {
|
|
613
|
+
var node = _a.node;
|
|
614
|
+
var _b = node.attrs, src = _b.src, fileName = _b.fileName, fileSize = _b.fileSize, mimeType = _b.mimeType;
|
|
615
|
+
// INFO: the same card a grid of files draws. The type decision, the label
|
|
616
|
+
// cleanup and the pending state all live in FilePreview, so an attachment in
|
|
617
|
+
// a document and the same file in a table cannot drift apart.
|
|
618
|
+
return (react_2.default.createElement(react_1.NodeViewWrapper, { className: "my-2" },
|
|
619
|
+
react_2.default.createElement(filePreview_1.FilePreview, { file: { fileName: src, label: fileName, mimeType: mimeType, fileSize: fileSize } })));
|
|
620
|
+
};
|
|
621
|
+
/**
|
|
622
|
+
* INFO: a file that is not media. An image previews because an image IS its
|
|
623
|
+
* preview; a pdf or a spreadsheet has no equivalent, so it gets a card — one
|
|
624
|
+
* card for everything non-media rather than a branch per format. An inline pdf
|
|
625
|
+
* viewer can arrive behind this same node later; starting with per-format
|
|
626
|
+
* special cases would mean unpicking them to get there.
|
|
627
|
+
*
|
|
628
|
+
* The card is deliberately shaped like the spaceEmbed one, so a document
|
|
629
|
+
* holding both does not look like two different products.
|
|
630
|
+
*/
|
|
631
|
+
var FileAttachment = core_1.Node.create({
|
|
632
|
+
name: "fileAttachment",
|
|
633
|
+
group: "block",
|
|
634
|
+
atom: true,
|
|
635
|
+
addAttributes: function () {
|
|
636
|
+
return {
|
|
637
|
+
src: { default: null },
|
|
638
|
+
fileName: { default: null },
|
|
639
|
+
fileSize: { default: null },
|
|
640
|
+
mimeType: { default: null },
|
|
641
|
+
};
|
|
642
|
+
},
|
|
643
|
+
parseHTML: function () {
|
|
644
|
+
return [
|
|
645
|
+
{
|
|
646
|
+
tag: "div[data-file-src]",
|
|
647
|
+
getAttrs: function (dom) { return ({
|
|
648
|
+
src: dom.getAttribute("data-file-src"),
|
|
649
|
+
fileName: dom.getAttribute("data-file-name"),
|
|
650
|
+
fileSize: dom.getAttribute("data-file-size")
|
|
651
|
+
? Number(dom.getAttribute("data-file-size"))
|
|
652
|
+
: null,
|
|
653
|
+
mimeType: dom.getAttribute("data-file-type"),
|
|
654
|
+
}); },
|
|
655
|
+
},
|
|
656
|
+
];
|
|
657
|
+
},
|
|
658
|
+
renderHTML: function (_a) {
|
|
659
|
+
var _b, _c, _d, _e;
|
|
660
|
+
var HTMLAttributes = _a.HTMLAttributes;
|
|
661
|
+
// INFO: the same route <video> and the space embed take — markdown-it runs
|
|
662
|
+
// with html:true, so this element survives the trip out to markdown and
|
|
663
|
+
// parseHTML picks it up again on the way back.
|
|
664
|
+
return [
|
|
665
|
+
"div",
|
|
666
|
+
{
|
|
667
|
+
"data-file-src": (_b = HTMLAttributes.src) !== null && _b !== void 0 ? _b : "",
|
|
668
|
+
"data-file-name": (_c = HTMLAttributes.fileName) !== null && _c !== void 0 ? _c : "",
|
|
669
|
+
"data-file-size": (_d = HTMLAttributes.fileSize) !== null && _d !== void 0 ? _d : "",
|
|
670
|
+
"data-file-type": (_e = HTMLAttributes.mimeType) !== null && _e !== void 0 ? _e : "",
|
|
671
|
+
},
|
|
672
|
+
];
|
|
673
|
+
},
|
|
674
|
+
addNodeView: function () {
|
|
675
|
+
return (0, react_1.ReactNodeViewRenderer)(FileAttachmentComponent);
|
|
676
|
+
},
|
|
677
|
+
addCommands: function () {
|
|
678
|
+
var _this = this;
|
|
679
|
+
return {
|
|
680
|
+
setFileAttachment: function (options) {
|
|
681
|
+
return function (_a) {
|
|
682
|
+
var commands = _a.commands;
|
|
683
|
+
return commands.insertContent({ type: _this.name, attrs: options });
|
|
684
|
+
};
|
|
685
|
+
},
|
|
686
|
+
};
|
|
687
|
+
},
|
|
688
|
+
});
|
|
601
689
|
// INFO: an embedded space — a live child page rendered inside the note rather
|
|
602
690
|
// than a link out to it. The node holds only the id; what a "space" actually is
|
|
603
691
|
// stays with the consumer through renderEmbed, so this file never has to import
|
|
@@ -858,7 +946,7 @@ var SlashMenuList = function (_a) {
|
|
|
858
946
|
react_2.default.createElement("span", { className: "text-sm ".concat(darkMode ? "text-gray-200" : "text-gray-700") }, item.label))); })) : (react_2.default.createElement("div", { className: "px-4 py-2 text-sm text-gray-500" }, "No results"))));
|
|
859
947
|
};
|
|
860
948
|
var MarkdownInputContent = function (_a) {
|
|
861
|
-
var innerRef = _a.innerRef, id = _a.id, value = _a.value, label = _a.label, subLabel = _a.subLabel, labelExtra = _a.labelExtra, infoElement = _a.infoElement, placeholder = _a.placeholder, optional = _a.optional, disabled = _a.disabled, containerClassName = _a.containerClassName, heightClassName = _a.heightClassName, borderless = _a.borderless, onChange = _a.onChange, compress = _a.compress, lib = _a.lib, uploadEndpoint = _a.uploadEndpoint, enableImageUpload = _a.enableImageUpload, enableVideoUpload = _a.enableVideoUpload, darkMode = _a.darkMode, readOnly = _a.readOnly, customElement = _a.customElement, renderEmbed = _a.renderEmbed, onRequestRemove = _a.onRequestRemove, customCommands = _a.customCommands;
|
|
949
|
+
var innerRef = _a.innerRef, id = _a.id, value = _a.value, label = _a.label, subLabel = _a.subLabel, labelExtra = _a.labelExtra, infoElement = _a.infoElement, placeholder = _a.placeholder, optional = _a.optional, disabled = _a.disabled, containerClassName = _a.containerClassName, heightClassName = _a.heightClassName, borderless = _a.borderless, onChange = _a.onChange, compress = _a.compress, lib = _a.lib, uploadEndpoint = _a.uploadEndpoint, enableImageUpload = _a.enableImageUpload, enableVideoUpload = _a.enableVideoUpload, enableFileUpload = _a.enableFileUpload, darkMode = _a.darkMode, readOnly = _a.readOnly, customElement = _a.customElement, renderEmbed = _a.renderEmbed, onRequestRemove = _a.onRequestRemove, customCommands = _a.customCommands;
|
|
862
950
|
var _b = (0, react_2.useState)(""), error = _b[0], setError = _b[1];
|
|
863
951
|
var _c = (0, react_2.useState)(false), showTableMenu = _c[0], setShowTableMenu = _c[1];
|
|
864
952
|
var _d = (0, react_2.useState)(3), tableCols = _d[0], setTableCols = _d[1];
|
|
@@ -1022,6 +1110,7 @@ var MarkdownInputContent = function (_a) {
|
|
|
1022
1110
|
getRenderEmbed: function () { return renderEmbedRef.current; },
|
|
1023
1111
|
getOnRequestRemove: function () { return onRequestRemoveRef.current; },
|
|
1024
1112
|
}),
|
|
1113
|
+
FileAttachment,
|
|
1025
1114
|
TrailingParagraph,
|
|
1026
1115
|
extension_table_1.Table.configure({
|
|
1027
1116
|
resizable: !readOnly,
|
|
@@ -1179,6 +1268,60 @@ var MarkdownInputContent = function (_a) {
|
|
|
1179
1268
|
},
|
|
1180
1269
|
},
|
|
1181
1270
|
});
|
|
1271
|
+
/**
|
|
1272
|
+
* INFO: routed to the handlers the toolbar and the drop target already use,
|
|
1273
|
+
* so an image inserted from the slash menu is the same image inserted any
|
|
1274
|
+
* other way — one upload path, not a third.
|
|
1275
|
+
*/
|
|
1276
|
+
var handlePickMedia = (0, react_2.useCallback)(function (commandEditor, accept) {
|
|
1277
|
+
var input = document.createElement("input");
|
|
1278
|
+
input.type = "file";
|
|
1279
|
+
input.accept = accept;
|
|
1280
|
+
input.onchange = function () {
|
|
1281
|
+
var _a, _b, _c;
|
|
1282
|
+
var file = (_a = input.files) === null || _a === void 0 ? void 0 : _a[0];
|
|
1283
|
+
if (!file || !commandEditor || commandEditor.isDestroyed)
|
|
1284
|
+
return;
|
|
1285
|
+
if (file.type.startsWith("video/"))
|
|
1286
|
+
(_b = videoUploadHandlerRef.current) === null || _b === void 0 ? void 0 : _b.call(videoUploadHandlerRef, file);
|
|
1287
|
+
else
|
|
1288
|
+
(_c = uploadHandlerRef.current) === null || _c === void 0 ? void 0 : _c.call(uploadHandlerRef, file);
|
|
1289
|
+
};
|
|
1290
|
+
input.click();
|
|
1291
|
+
}, []);
|
|
1292
|
+
/**
|
|
1293
|
+
* INFO: the file rides the SAME pending mechanism as an image. The blob url
|
|
1294
|
+
* goes into the document and the File into pendingImagesRef, and
|
|
1295
|
+
* uploadPendingImages rewrites any occurrence of that url in the markdown —
|
|
1296
|
+
* it is a string replacement, not image-specific. So a host that already
|
|
1297
|
+
* flushes pending media gets attachments with no second upload path and no
|
|
1298
|
+
* change on its side beyond enabling them.
|
|
1299
|
+
*/
|
|
1300
|
+
var handlePickFile = (0, react_2.useCallback)(function (commandEditor) {
|
|
1301
|
+
var input = document.createElement("input");
|
|
1302
|
+
input.type = "file";
|
|
1303
|
+
input.onchange = function () {
|
|
1304
|
+
var _a;
|
|
1305
|
+
var file = (_a = input.files) === null || _a === void 0 ? void 0 : _a[0];
|
|
1306
|
+
if (!file || !commandEditor || commandEditor.isDestroyed)
|
|
1307
|
+
return;
|
|
1308
|
+
var blobUrl = URL.createObjectURL(file);
|
|
1309
|
+
updatePendingImages(function (map) {
|
|
1310
|
+
map.set(blobUrl, file);
|
|
1311
|
+
});
|
|
1312
|
+
commandEditor
|
|
1313
|
+
.chain()
|
|
1314
|
+
.focus()
|
|
1315
|
+
.setFileAttachment({
|
|
1316
|
+
src: blobUrl,
|
|
1317
|
+
fileName: file.name,
|
|
1318
|
+
fileSize: file.size,
|
|
1319
|
+
mimeType: file.type,
|
|
1320
|
+
})
|
|
1321
|
+
.run();
|
|
1322
|
+
};
|
|
1323
|
+
input.click();
|
|
1324
|
+
}, [updatePendingImages]);
|
|
1182
1325
|
(0, react_2.useEffect)(function () {
|
|
1183
1326
|
if (editor) {
|
|
1184
1327
|
editorRef.current = editor;
|
|
@@ -1356,7 +1499,40 @@ var MarkdownInputContent = function (_a) {
|
|
|
1356
1499
|
var query_1 = currentLine.slice(slashIndex + 1).toLowerCase();
|
|
1357
1500
|
// INFO: the host app's own actions sit after the formatting commands —
|
|
1358
1501
|
// creating a database is not something this component can do itself
|
|
1359
|
-
var availableCommands = __spreadArray(__spreadArray([], slashCommands, true), (
|
|
1502
|
+
var availableCommands = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], slashCommands, true), (enableImageUpload
|
|
1503
|
+
? [
|
|
1504
|
+
{
|
|
1505
|
+
id: "image",
|
|
1506
|
+
label: "Image",
|
|
1507
|
+
icon: "🖼",
|
|
1508
|
+
command: function (commandEditor) {
|
|
1509
|
+
return handlePickMedia(commandEditor, "image/*");
|
|
1510
|
+
},
|
|
1511
|
+
},
|
|
1512
|
+
]
|
|
1513
|
+
: []), true), (enableVideoUpload
|
|
1514
|
+
? [
|
|
1515
|
+
{
|
|
1516
|
+
id: "video",
|
|
1517
|
+
label: "Video",
|
|
1518
|
+
icon: "🎬",
|
|
1519
|
+
command: function (commandEditor) {
|
|
1520
|
+
return handlePickMedia(commandEditor, "video/*");
|
|
1521
|
+
},
|
|
1522
|
+
},
|
|
1523
|
+
]
|
|
1524
|
+
: []), true), (enableFileUpload
|
|
1525
|
+
? [
|
|
1526
|
+
{
|
|
1527
|
+
id: "file",
|
|
1528
|
+
label: "File",
|
|
1529
|
+
icon: "📎",
|
|
1530
|
+
command: function (commandEditor) {
|
|
1531
|
+
return handlePickFile(commandEditor);
|
|
1532
|
+
},
|
|
1533
|
+
},
|
|
1534
|
+
]
|
|
1535
|
+
: []), true), (customCommands !== null && customCommands !== void 0 ? customCommands : []).map(function (eachCommand, index) {
|
|
1360
1536
|
var _a;
|
|
1361
1537
|
return ({
|
|
1362
1538
|
id: "custom-".concat(index),
|
|
@@ -1837,9 +2013,28 @@ var MarkdownStatic = function (_a) {
|
|
|
1837
2013
|
var defaultClassName = "relative z-0";
|
|
1838
2014
|
if (containerClassName)
|
|
1839
2015
|
defaultClassName += " ".concat(containerClassName);
|
|
2016
|
+
/**
|
|
2017
|
+
* INFO: an attachment is stored as an empty `<div data-file-src>`, and this
|
|
2018
|
+
* view sets raw html — so without this it renders as nothing at all, which is
|
|
2019
|
+
* exactly how the space embed used to disappear from a published page. The
|
|
2020
|
+
* div is turned into the same card the editor draws.
|
|
2021
|
+
*/
|
|
2022
|
+
var handleRenderAttachments = function (rendered) {
|
|
2023
|
+
return rendered.replace(/<div data-file-src="([^"]*)" data-file-name="([^"]*)" data-file-size="([^"]*)" data-file-type="[^"]*"><\/div>/g, function (_match, src, name, size) {
|
|
2024
|
+
var label = name || "Attachment";
|
|
2025
|
+
var readable = (0, filePreview_1.handleFormatFileSize)(Number(size));
|
|
2026
|
+
// INFO: a blob url belongs to the session that made it, so a stored one
|
|
2027
|
+
// is a document saved before its upload finished — shown, not linked.
|
|
2028
|
+
if (!src || src.startsWith("blob:"))
|
|
2029
|
+
return "<div class=\"my-2 flex w-full flex-row items-center gap-x-3 rounded-md border border-gray-200 px-3 py-2 not-prose\"><span class=\"truncate text-sm font-medium text-gray-500\">".concat(label, "</span></div>");
|
|
2030
|
+
return "<a href=\"".concat(src, "\" target=\"_blank\" rel=\"noreferrer\" download class=\"my-2 flex w-full flex-row items-center gap-x-3 rounded-md border border-gray-200 px-3 py-2 no-underline hover:bg-gray-50 not-prose\"><span class=\"truncate text-sm font-medium text-gray-900\">").concat(label, "</span><span class=\"grow\"></span><span class=\"shrink-0 text-xs text-gray-400\">").concat(readable, "</span></a>");
|
|
2031
|
+
});
|
|
2032
|
+
};
|
|
1840
2033
|
// INFO: markdown-it is fast (~ms/field); memoize on value so a read view with
|
|
1841
2034
|
// many fields never re-parses on re-render — the source of the repeated freeze.
|
|
1842
|
-
var html = (0, react_2.useMemo)(function () { return (value ? md.render(value) : ""); },
|
|
2035
|
+
var html = (0, react_2.useMemo)(function () { return (value ? handleRenderAttachments(md.render(value)) : ""); },
|
|
2036
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2037
|
+
[value]);
|
|
1843
2038
|
return (react_2.default.createElement("div", { className: defaultClassName },
|
|
1844
2039
|
react_2.default.createElement("div", { className: "flex flex-col" },
|
|
1845
2040
|
react_2.default.createElement("label", { className: "block text-sm font-medium ".concat(labelColor) },
|