tinacms 0.0.0-b4c6a60-20241010070518 → 0.0.0-b551232-20250318064010
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/admin/api.d.ts +1 -0
- package/dist/admin/components/GetCollection.d.ts +2 -2
- package/dist/admin/types.d.ts +3 -0
- package/dist/auth/TinaCloudProvider.d.ts +1 -1
- package/dist/cache/node-cache.d.ts +1 -0
- package/dist/client.js +90 -61
- package/dist/client.mjs +49 -35
- package/dist/hooks/create-page-plugin.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1875 -643
- package/dist/index.mjs +1892 -660
- package/dist/node-cache-5e8db9f0.mjs +63 -0
- package/dist/react.d.ts +1 -0
- package/dist/react.js +10 -1
- package/dist/react.mjs +10 -1
- package/dist/toolkit/fields/components/reference/reference-select.d.ts +2 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/index.d.ts +4 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/indent-list-toolbar-button.d.ts +17 -5
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mark-toolbar-button.d.ts +4 -18
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/index.d.ts +1 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/components.d.ts +6 -11
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-overrides.d.ts +5 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-provider.d.ts +2 -2
- package/dist/toolkit/fields/plugins/wrap-field-with-meta.d.ts +8 -0
- package/dist/unifiedClient/index.d.ts +8 -1
- package/package.json +41 -41
- package/dist/__vite-browser-external-d06ac358.mjs +0 -4
- package/dist/node-cache-7fa2452c.mjs +0 -43
package/dist/index.mjs
CHANGED
|
@@ -6,21 +6,21 @@ var __publicField = (obj, key, value) => {
|
|
|
6
6
|
};
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import * as React from "react";
|
|
9
|
-
import React__default, { useState, useCallback, useEffect, useRef, createContext, forwardRef, useContext, useMemo, startTransition
|
|
10
|
-
import { createPortal
|
|
9
|
+
import React__default, { useState, useCallback, useEffect, useRef, createContext, forwardRef, useContext, useMemo, startTransition } from "react";
|
|
10
|
+
import { createPortal } from "react-dom";
|
|
11
11
|
import { withRef, cn as cn$1, withVariants, withProps, withCn, createPrimitiveElement } from "@udecode/cn";
|
|
12
|
-
import { toggleList, ELEMENT_UL, ELEMENT_OL, ELEMENT_H1 as ELEMENT_H1$1, ELEMENT_H2 as ELEMENT_H2$1, ELEMENT_H3 as ELEMENT_H3$1, ELEMENT_H4, ELEMENT_H5, ELEMENT_H6, ELEMENT_PARAGRAPH, ELEMENT_BLOCKQUOTE, ELEMENT_CODE_BLOCK, ELEMENT_CODE_LINE, ELEMENT_CODE_SYNTAX, ELEMENT_LI, ELEMENT_LINK, MARK_CODE, MARK_UNDERLINE, MARK_STRIKETHROUGH, MARK_ITALIC, MARK_BOLD, ELEMENT_HR, ELEMENT_TABLE, ELEMENT_TR, ELEMENT_TD, ELEMENT_TH, unwrapList, ELEMENT_TODO_LI, createTrailingBlockPlugin, createAutoformatPlugin, createExitBreakPlugin, KEYS_HEADING, createResetNodePlugin, createHeadingPlugin, createParagraphPlugin, createBlockquotePlugin,
|
|
13
|
-
import { PlateElement, isCollapsed, findNodePath, getPointAfter, insertNodes, ELEMENT_DEFAULT, focusEditor, getPointBefore, setNodes, isElement, PlateLeaf, createPluginFactory, useComposedRef, useEditorRef, createPointRef, insertText, moveSelection, toggleNodeType, useElement, useRemoveNodeButton, useEditorSelector, isSelectionExpanded, withHOC, normalizeEditor, getBlockAbove, queryNode, getParentNode, isType, someNode, isSelectionAtBlockStart, setElements, insertNode, getPluginType, isBlock, isBlockAboveEmpty, findNode, PlateContent, getNodeEntries, useEditorState, collapseSelection, useMarkToolbarButtonState, useMarkToolbarButton,
|
|
12
|
+
import { toggleList, ELEMENT_UL, ELEMENT_OL, ELEMENT_H1 as ELEMENT_H1$1, ELEMENT_H2 as ELEMENT_H2$1, ELEMENT_H3 as ELEMENT_H3$1, ELEMENT_H4, ELEMENT_H5, ELEMENT_H6, ELEMENT_PARAGRAPH, ELEMENT_BLOCKQUOTE, ELEMENT_CODE_BLOCK, ELEMENT_CODE_LINE, ELEMENT_CODE_SYNTAX, ELEMENT_LI, ELEMENT_LINK, MARK_CODE, MARK_UNDERLINE, MARK_STRIKETHROUGH, MARK_ITALIC, MARK_BOLD, ELEMENT_HR, ELEMENT_TABLE, ELEMENT_TR, ELEMENT_TD, ELEMENT_TH, unwrapList, ELEMENT_TODO_LI, createTrailingBlockPlugin, createAutoformatPlugin, createExitBreakPlugin, KEYS_HEADING, createResetNodePlugin, createBasicMarksPlugin, createHeadingPlugin, createParagraphPlugin, createBlockquotePlugin, createUnderlinePlugin, createListPlugin, createIndentListPlugin, createHorizontalRulePlugin, createNodeIdPlugin, createTablePlugin, getListItemEntry, useListToolbarButtonState, useListToolbarButton } from "@udecode/plate";
|
|
13
|
+
import { PlateElement, isCollapsed, findNodePath, getPointAfter, insertNodes, ELEMENT_DEFAULT, focusEditor, getPointBefore, setNodes, isElement, PlateLeaf, createPluginFactory, useComposedRef, useEditorRef, createPointRef, insertText, moveSelection, toggleNodeType, useElement, useRemoveNodeButton, useEditorSelector, isSelectionExpanded, withHOC, normalizeEditor, getBlockAbove, queryNode, getParentNode, isType, someNode, isSelectionAtBlockStart, setElements, insertNode, getPluginType, isBlock, isBlockAboveEmpty, findNode, PlateContent, getNodeEntries, useEditorState, collapseSelection, insertEmptyElement, useMarkToolbarButtonState, useMarkToolbarButton, usePlateSelectors, useEventEditorSelectors, PortalBody, useFormInputProps, createPlugins, Plate } from "@udecode/plate-common";
|
|
14
14
|
import { ELEMENT_SLASH_INPUT, createSlashPlugin } from "@udecode/plate-slash-command";
|
|
15
15
|
import { useSelected, useReadOnly, ReactEditor } from "slate-react";
|
|
16
16
|
import { useCodeBlockElementState, useCodeSyntaxLeaf, ELEMENT_CODE_BLOCK as ELEMENT_CODE_BLOCK$1 } from "@udecode/plate-code-block";
|
|
17
17
|
import MonacoEditor, { loader, useMonaco } from "@monaco-editor/react";
|
|
18
|
-
import { Combobox, ComboboxInput, ComboboxButton, Transition, ComboboxOptions, ComboboxOption, Popover as Popover$3, PopoverButton, PopoverPanel, TransitionChild, Disclosure, DisclosureButton, DisclosurePanel, Menu, MenuButton, MenuItems, MenuItem } from "@headlessui/react";
|
|
18
|
+
import { Combobox as Combobox$1, ComboboxInput, ComboboxButton, Transition, ComboboxOptions, ComboboxOption, Popover as Popover$3, PopoverButton, PopoverPanel, TransitionChild, Disclosure, DisclosureButton, DisclosurePanel, Menu, MenuButton, MenuItems, MenuItem } from "@headlessui/react";
|
|
19
19
|
import { cva } from "class-variance-authority";
|
|
20
20
|
import { Eye, SquarePen, Plus, AlignCenter as AlignCenter$1, AlignJustify, AlignLeft as AlignLeft$1, AlignRight as AlignRight$1, ChevronDown, PaintBucket, Quote, Check, ChevronRight, ChevronsUpDown, X, FileCode, Baseline, RectangleVertical, Combine, Ungroup, MessageSquare, MessageSquarePlus, Trash, GripVertical, Edit2, Smile, ExternalLink, Heading1, Heading2, Heading3, Heading4, Heading5, Heading6, Indent, Keyboard, WrapText, Minus, MoreHorizontal, Outdent, Pilcrow, RotateCcw, RectangleHorizontal, Search, Settings, Strikethrough, Subscript, Superscript, Table, Text, Underline, Link2Off, Moon, SunMedium, Twitter } from "lucide-react";
|
|
21
21
|
import mermaid from "mermaid";
|
|
22
22
|
import { ELEMENT_H1, ELEMENT_H2, ELEMENT_H3, ELEMENT_H4 as ELEMENT_H4$1, ELEMENT_H5 as ELEMENT_H5$1, ELEMENT_H6 as ELEMENT_H6$1 } from "@udecode/plate-heading";
|
|
23
|
-
import { useComboboxContext, Combobox as Combobox$
|
|
23
|
+
import { useComboboxContext, Combobox as Combobox$2, useComboboxStore, ComboboxProvider, Portal, ComboboxPopover, ComboboxItem } from "@ariakit/react";
|
|
24
24
|
import { useHTMLInputCursorState, useComboboxInput, filterWords } from "@udecode/plate-combobox";
|
|
25
25
|
import { useTableCellElementState, useTableCellElement, useTableCellElementResizableState, useTableCellElementResizable, useTableBordersDropdownMenuContentState, useTableMergeState, TableProvider, useTableElementState, useTableElement, mergeTableCells, unmergeTableCells, ELEMENT_TABLE as ELEMENT_TABLE$1, getTableColumnCount, insertTable, deleteTable, insertTableColumn, deleteColumn, insertTableRow, deleteRow } from "@udecode/plate-table";
|
|
26
26
|
import { ResizeHandle as ResizeHandle$1 } from "@udecode/plate-resizable";
|
|
@@ -57,8 +57,8 @@ import { getIntrospectionQuery, buildClientSchema, print, parse as parse$3, buil
|
|
|
57
57
|
import gql from "graphql-tag";
|
|
58
58
|
import { TinaSchema, addNamespaceToSchema, parseURL, resolveForm, normalizePath, validateSchema } from "@tinacms/schema-tools";
|
|
59
59
|
import { NAMER, resolveField } from "@tinacms/schema-tools";
|
|
60
|
-
import * as yup from "yup";
|
|
61
60
|
import { diff } from "@graphql-inspector/core";
|
|
61
|
+
import * as yup from "yup";
|
|
62
62
|
import { NavLink, useNavigate, useLocation, useParams, Link, useSearchParams, HashRouter, Routes, Route } from "react-router-dom";
|
|
63
63
|
import { stringifyMDX } from "@tinacms/mdx";
|
|
64
64
|
const ModalProvider = ({ children }) => {
|
|
@@ -801,6 +801,22 @@ function wrapFieldsWithMeta(Field2) {
|
|
|
801
801
|
);
|
|
802
802
|
};
|
|
803
803
|
}
|
|
804
|
+
function wrapFieldWithNoHeader(Field2) {
|
|
805
|
+
return (props) => {
|
|
806
|
+
return /* @__PURE__ */ React.createElement(
|
|
807
|
+
FieldMeta,
|
|
808
|
+
{
|
|
809
|
+
name: props.input.name,
|
|
810
|
+
label: false,
|
|
811
|
+
description: "",
|
|
812
|
+
error: props.meta.error,
|
|
813
|
+
index: props.index,
|
|
814
|
+
tinaForm: props.tinaForm
|
|
815
|
+
},
|
|
816
|
+
/* @__PURE__ */ React.createElement(Field2, { ...props })
|
|
817
|
+
);
|
|
818
|
+
};
|
|
819
|
+
}
|
|
804
820
|
function wrapFieldWithError(Field2) {
|
|
805
821
|
return (props) => {
|
|
806
822
|
return /* @__PURE__ */ React.createElement(
|
|
@@ -873,6 +889,16 @@ const FieldDescription = ({
|
|
|
873
889
|
className,
|
|
874
890
|
...props
|
|
875
891
|
}) => {
|
|
892
|
+
if (typeof children === "string") {
|
|
893
|
+
return /* @__PURE__ */ React.createElement(
|
|
894
|
+
"span",
|
|
895
|
+
{
|
|
896
|
+
className: `block font-sans text-xs italic font-light text-gray-400 pt-0.5 whitespace-normal m-0 ${className}`,
|
|
897
|
+
...props,
|
|
898
|
+
dangerouslySetInnerHTML: { __html: children }
|
|
899
|
+
}
|
|
900
|
+
);
|
|
901
|
+
}
|
|
876
902
|
return /* @__PURE__ */ React.createElement(
|
|
877
903
|
"span",
|
|
878
904
|
{
|
|
@@ -966,7 +992,7 @@ const Autocomplete = ({
|
|
|
966
992
|
}
|
|
967
993
|
}, [items2, query]);
|
|
968
994
|
return /* @__PURE__ */ React__default.createElement(
|
|
969
|
-
Combobox,
|
|
995
|
+
Combobox$1,
|
|
970
996
|
{
|
|
971
997
|
value,
|
|
972
998
|
onChange,
|
|
@@ -1332,8 +1358,8 @@ const ListElementVariants = withVariants(PlateElement, listVariants, [
|
|
|
1332
1358
|
]);
|
|
1333
1359
|
const ListElement = withRef(
|
|
1334
1360
|
({ children, variant = "ul", ...props }, ref) => {
|
|
1335
|
-
const
|
|
1336
|
-
return /* @__PURE__ */ React__default.createElement(ListElementVariants, { asChild: true, ref, variant, ...props }, /* @__PURE__ */ React__default.createElement(
|
|
1361
|
+
const Component = variant;
|
|
1362
|
+
return /* @__PURE__ */ React__default.createElement(ListElementVariants, { asChild: true, ref, variant, ...props }, /* @__PURE__ */ React__default.createElement(Component, null, children));
|
|
1337
1363
|
}
|
|
1338
1364
|
);
|
|
1339
1365
|
const ELEMENT_MERMAID = "mermaid";
|
|
@@ -1348,7 +1374,7 @@ const MermaidElementWithRef = ({ config }) => {
|
|
|
1348
1374
|
useEffect(() => {
|
|
1349
1375
|
if (mermaidRef.current) {
|
|
1350
1376
|
mermaid.initialize({ startOnLoad: true });
|
|
1351
|
-
mermaid.
|
|
1377
|
+
mermaid.init();
|
|
1352
1378
|
}
|
|
1353
1379
|
}, [config]);
|
|
1354
1380
|
return /* @__PURE__ */ React__default.createElement("div", { contentEditable: false, className: "border-border border-b" }, /* @__PURE__ */ React__default.createElement("div", { ref: mermaidRef }, /* @__PURE__ */ React__default.createElement("pre", { className: "mermaid not-tina-prose" }, config)));
|
|
@@ -1375,7 +1401,7 @@ flowchart TD
|
|
|
1375
1401
|
--> id2(modify me to see changes!)
|
|
1376
1402
|
id2
|
|
1377
1403
|
--> id3(Click the top button to preview the changes)
|
|
1378
|
-
--> id4(Learn about mermaid diagrams
|
|
1404
|
+
--> id4(Learn about mermaid diagrams - mermaid.js.org)`;
|
|
1379
1405
|
const MermaidElement = withRef(
|
|
1380
1406
|
({ children, nodeProps, element, ...props }, ref) => {
|
|
1381
1407
|
const [mermaidConfig, setMermaidConfig] = useState(
|
|
@@ -1391,7 +1417,7 @@ const MermaidElement = withRef(
|
|
|
1391
1417
|
children: [{ type: "text", text: "" }]
|
|
1392
1418
|
};
|
|
1393
1419
|
useEffect(() => {
|
|
1394
|
-
if (mermaid.parse(mermaidConfig
|
|
1420
|
+
if (mermaid.parse(mermaidConfig)) {
|
|
1395
1421
|
setMermaidError(null);
|
|
1396
1422
|
}
|
|
1397
1423
|
}, [mermaidConfig]);
|
|
@@ -2147,7 +2173,7 @@ const InlineComboboxInput = forwardRef(({ className, ...props }, propRef) => {
|
|
|
2147
2173
|
},
|
|
2148
2174
|
value || ""
|
|
2149
2175
|
), /* @__PURE__ */ React__default.createElement(
|
|
2150
|
-
Combobox$
|
|
2176
|
+
Combobox$2,
|
|
2151
2177
|
{
|
|
2152
2178
|
autoSelect: true,
|
|
2153
2179
|
className: cn$1(
|
|
@@ -2944,7 +2970,7 @@ const Components = () => {
|
|
|
2944
2970
|
),
|
|
2945
2971
|
[MARK_CODE]: CodeLeaf,
|
|
2946
2972
|
[MARK_UNDERLINE]: withProps(PlateLeaf, { as: "u" }),
|
|
2947
|
-
[MARK_STRIKETHROUGH]:
|
|
2973
|
+
[MARK_STRIKETHROUGH]: ({ editor, leaf, text, ...props }) => /* @__PURE__ */ React__default.createElement("s", { ...props.attributes, ...props }),
|
|
2948
2974
|
[MARK_ITALIC]: withProps(PlateLeaf, { as: "em" }),
|
|
2949
2975
|
[MARK_BOLD]: ({ editor, leaf, text, ...props }) => /* @__PURE__ */ React__default.createElement("strong", { ...props.attributes, ...props }),
|
|
2950
2976
|
[ELEMENT_HR]: ({
|
|
@@ -3653,7 +3679,7 @@ function TinaForm({ form, children }) {
|
|
|
3653
3679
|
}));
|
|
3654
3680
|
}
|
|
3655
3681
|
function TinaField({
|
|
3656
|
-
Component
|
|
3682
|
+
Component,
|
|
3657
3683
|
children,
|
|
3658
3684
|
...fieldProps
|
|
3659
3685
|
}) {
|
|
@@ -3661,7 +3687,7 @@ function TinaField({
|
|
|
3661
3687
|
if (!isEditing)
|
|
3662
3688
|
return children || null;
|
|
3663
3689
|
return /* @__PURE__ */ React.createElement(Field, { ...fieldProps }, ({ input, meta }) => {
|
|
3664
|
-
return /* @__PURE__ */ React.createElement(
|
|
3690
|
+
return /* @__PURE__ */ React.createElement(Component, { input, meta, ...fieldProps });
|
|
3665
3691
|
});
|
|
3666
3692
|
}
|
|
3667
3693
|
TinaField.propTypes = {
|
|
@@ -3703,7 +3729,7 @@ const Button$1 = ({
|
|
|
3703
3729
|
};
|
|
3704
3730
|
const sizeClasses = {
|
|
3705
3731
|
small: `text-xs h-8 px-3`,
|
|
3706
|
-
medium: `text-sm h-10 px-
|
|
3732
|
+
medium: `text-sm h-10 px-8`,
|
|
3707
3733
|
custom: ``
|
|
3708
3734
|
};
|
|
3709
3735
|
return /* @__PURE__ */ React.createElement(
|
|
@@ -3831,7 +3857,7 @@ var _excluded = ["attr", "size", "title"];
|
|
|
3831
3857
|
function _objectWithoutProperties(source, excluded) {
|
|
3832
3858
|
if (source == null)
|
|
3833
3859
|
return {};
|
|
3834
|
-
var target = _objectWithoutPropertiesLoose
|
|
3860
|
+
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
3835
3861
|
var key, i;
|
|
3836
3862
|
if (Object.getOwnPropertySymbols) {
|
|
3837
3863
|
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
@@ -3846,7 +3872,7 @@ function _objectWithoutProperties(source, excluded) {
|
|
|
3846
3872
|
}
|
|
3847
3873
|
return target;
|
|
3848
3874
|
}
|
|
3849
|
-
function _objectWithoutPropertiesLoose
|
|
3875
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
3850
3876
|
if (source == null)
|
|
3851
3877
|
return {};
|
|
3852
3878
|
var target = {};
|
|
@@ -4936,7 +4962,28 @@ const NumberInput = ({
|
|
|
4936
4962
|
onChange,
|
|
4937
4963
|
value,
|
|
4938
4964
|
step
|
|
4939
|
-
}) => /* @__PURE__ */ React.createElement(
|
|
4965
|
+
}) => /* @__PURE__ */ React.createElement(
|
|
4966
|
+
Input,
|
|
4967
|
+
{
|
|
4968
|
+
type: "number",
|
|
4969
|
+
step,
|
|
4970
|
+
value,
|
|
4971
|
+
onChange: (event) => {
|
|
4972
|
+
const inputValue = event.target.value;
|
|
4973
|
+
const newValue = inputValue === "" ? void 0 : inputValue;
|
|
4974
|
+
if (onChange) {
|
|
4975
|
+
const syntheticEvent = {
|
|
4976
|
+
...event,
|
|
4977
|
+
target: {
|
|
4978
|
+
...event.target,
|
|
4979
|
+
value: newValue
|
|
4980
|
+
}
|
|
4981
|
+
};
|
|
4982
|
+
onChange(syntheticEvent);
|
|
4983
|
+
}
|
|
4984
|
+
}
|
|
4985
|
+
}
|
|
4986
|
+
);
|
|
4940
4987
|
function useCMS() {
|
|
4941
4988
|
return useCMS$1();
|
|
4942
4989
|
}
|
|
@@ -5177,7 +5224,7 @@ const PopoverContent = React.forwardRef(({ className, align = "center", sideOffs
|
|
|
5177
5224
|
side: "bottom",
|
|
5178
5225
|
className: cn(
|
|
5179
5226
|
"rounded-md border bg-white p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
5180
|
-
"max-h-[30vh] max-w-[
|
|
5227
|
+
"max-h-[30vh] max-w-[30vw] overflow-y-auto",
|
|
5181
5228
|
className
|
|
5182
5229
|
),
|
|
5183
5230
|
...props
|
|
@@ -5269,11 +5316,7 @@ const getFilename = (optionSets, value) => {
|
|
|
5269
5316
|
const node = nodes.find((node2) => node2.id === value);
|
|
5270
5317
|
return node ? node._internalSys.filename : null;
|
|
5271
5318
|
};
|
|
5272
|
-
const
|
|
5273
|
-
cms,
|
|
5274
|
-
input,
|
|
5275
|
-
field
|
|
5276
|
-
}) => {
|
|
5319
|
+
const Combobox = ({ cms, input, field }) => {
|
|
5277
5320
|
const [open2, setOpen] = React.useState(false);
|
|
5278
5321
|
const [value, setValue] = React.useState(input.value);
|
|
5279
5322
|
const [displayText, setDisplayText] = React.useState(null);
|
|
@@ -5289,7 +5332,9 @@ const ComboboxDemo = ({
|
|
|
5289
5332
|
}, [value, input, optionSets]);
|
|
5290
5333
|
React.useEffect(() => {
|
|
5291
5334
|
if (field.experimental___filter && optionSets.length > 0) {
|
|
5292
|
-
setFilteredOptionsList(
|
|
5335
|
+
setFilteredOptionsList(
|
|
5336
|
+
field.experimental___filter(optionSets, void 0)
|
|
5337
|
+
);
|
|
5293
5338
|
} else {
|
|
5294
5339
|
setFilteredOptionsList(optionSets);
|
|
5295
5340
|
}
|
|
@@ -5297,17 +5342,17 @@ const ComboboxDemo = ({
|
|
|
5297
5342
|
if (loading === true) {
|
|
5298
5343
|
return /* @__PURE__ */ React.createElement(LoadingDots, { color: "var(--tina-color-primary)" });
|
|
5299
5344
|
}
|
|
5300
|
-
return /* @__PURE__ */ React.createElement(
|
|
5345
|
+
return /* @__PURE__ */ React.createElement(Popover, { open: open2, onOpenChange: setOpen }, /* @__PURE__ */ React.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(
|
|
5301
5346
|
Button,
|
|
5302
5347
|
{
|
|
5303
5348
|
variant: "outline",
|
|
5304
5349
|
role: "combobox",
|
|
5305
5350
|
"aria-expanded": open2,
|
|
5306
|
-
className: "w-
|
|
5351
|
+
className: "w-full justify-between"
|
|
5307
5352
|
},
|
|
5308
5353
|
/* @__PURE__ */ React.createElement("p", { className: "truncate" }, displayText ?? "Choose an option..."),
|
|
5309
5354
|
open2 ? /* @__PURE__ */ React.createElement(IoMdArrowDropup, { size: 20 }) : /* @__PURE__ */ React.createElement(IoMdArrowDropdown, { size: 20 })
|
|
5310
|
-
)), /* @__PURE__ */ React.createElement(PopoverContent, { className: "p-0 relative" }, /* @__PURE__ */ React.createElement(
|
|
5355
|
+
)), /* @__PURE__ */ React.createElement(PopoverContent, { className: "p-0 relative min-w-[var(--radix-popover-trigger-width)]" }, /* @__PURE__ */ React.createElement(
|
|
5311
5356
|
Command,
|
|
5312
5357
|
{
|
|
5313
5358
|
shouldFilter: !field.experimental___filter,
|
|
@@ -5331,32 +5376,25 @@ const ComboboxDemo = ({
|
|
|
5331
5376
|
}
|
|
5332
5377
|
),
|
|
5333
5378
|
/* @__PURE__ */ React.createElement(CommandEmpty, null, "No reference found"),
|
|
5334
|
-
/* @__PURE__ */ React.createElement(CommandList, null, filteredOptionsList.length > 0 && (filteredOptionsList == null ? void 0 : filteredOptionsList.map(({ collection, edges }) => /* @__PURE__ */ React.createElement(
|
|
5335
|
-
|
|
5336
|
-
|
|
5337
|
-
|
|
5338
|
-
|
|
5339
|
-
|
|
5340
|
-
|
|
5341
|
-
|
|
5342
|
-
|
|
5343
|
-
|
|
5344
|
-
|
|
5345
|
-
|
|
5346
|
-
|
|
5347
|
-
|
|
5348
|
-
field,
|
|
5349
|
-
_values,
|
|
5350
|
-
node,
|
|
5351
|
-
onSelect: (currentValue) => {
|
|
5352
|
-
setValue(currentValue);
|
|
5353
|
-
setOpen(false);
|
|
5354
|
-
}
|
|
5379
|
+
/* @__PURE__ */ React.createElement(CommandList, null, filteredOptionsList.length > 0 && (filteredOptionsList == null ? void 0 : filteredOptionsList.map(({ collection, edges }) => /* @__PURE__ */ React.createElement(CommandGroup, { key: `${collection}-group`, heading: collection }, /* @__PURE__ */ React.createElement(CommandList, null, edges == null ? void 0 : edges.map(({ node }) => {
|
|
5380
|
+
const { id, _values } = node;
|
|
5381
|
+
return /* @__PURE__ */ React.createElement(
|
|
5382
|
+
OptionComponent,
|
|
5383
|
+
{
|
|
5384
|
+
id,
|
|
5385
|
+
key: id,
|
|
5386
|
+
value,
|
|
5387
|
+
field,
|
|
5388
|
+
_values,
|
|
5389
|
+
node,
|
|
5390
|
+
onSelect: (currentValue) => {
|
|
5391
|
+
setValue(currentValue);
|
|
5392
|
+
setOpen(false);
|
|
5355
5393
|
}
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
))))
|
|
5359
|
-
)))
|
|
5394
|
+
}
|
|
5395
|
+
);
|
|
5396
|
+
}))))))
|
|
5397
|
+
)));
|
|
5360
5398
|
};
|
|
5361
5399
|
const useGetNode = (cms, id) => {
|
|
5362
5400
|
const [document2, setDocument] = React.useState(
|
|
@@ -5429,7 +5467,7 @@ const ReferenceLink = ({ cms, input }) => {
|
|
|
5429
5467
|
};
|
|
5430
5468
|
const Reference = ({ input, field }) => {
|
|
5431
5469
|
const cms = useCMS();
|
|
5432
|
-
return /* @__PURE__ */ React.createElement(
|
|
5470
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: "relative group" }, /* @__PURE__ */ React.createElement(Combobox, { cms, input, field })), /* @__PURE__ */ React.createElement(ReferenceLink, { cms, input }));
|
|
5433
5471
|
};
|
|
5434
5472
|
const ButtonToggle = ({
|
|
5435
5473
|
input,
|
|
@@ -5666,7 +5704,9 @@ const Item$2 = ({
|
|
|
5666
5704
|
onClick: () => {
|
|
5667
5705
|
const state = tinaForm.finalForm.getState();
|
|
5668
5706
|
if (state.invalid === true) {
|
|
5669
|
-
cms.alerts.error(
|
|
5707
|
+
cms.alerts.error(
|
|
5708
|
+
"Cannot navigate away from an invalid form."
|
|
5709
|
+
);
|
|
5670
5710
|
return;
|
|
5671
5711
|
}
|
|
5672
5712
|
cms.dispatch({
|
|
@@ -5737,10 +5777,11 @@ const ItemDeleteButton = ({ onClick, disabled = false }) => {
|
|
|
5737
5777
|
return /* @__PURE__ */ React__default.createElement(
|
|
5738
5778
|
"button",
|
|
5739
5779
|
{
|
|
5740
|
-
|
|
5780
|
+
type: "button",
|
|
5781
|
+
className: `w-8 px-1 py-2.5 flex items-center justify-center text-gray-200 hover:opacity-100 opacity-30 hover:bg-gray-50 ${disabled && "pointer-events-none opacity-30 cursor-not-allowed"}`,
|
|
5741
5782
|
onClick
|
|
5742
5783
|
},
|
|
5743
|
-
/* @__PURE__ */ React__default.createElement(TrashIcon, { className: "fill-current transition-colors ease-out
|
|
5784
|
+
/* @__PURE__ */ React__default.createElement(TrashIcon, { className: "h-5 w-auto fill-current text-red-500 transition-colors duration-150 ease-out" })
|
|
5744
5785
|
);
|
|
5745
5786
|
};
|
|
5746
5787
|
const DragHandle = ({ isDragging }) => {
|
|
@@ -5818,27 +5859,35 @@ const BlockSelector = ({
|
|
|
5818
5859
|
))))
|
|
5819
5860
|
))));
|
|
5820
5861
|
};
|
|
5821
|
-
const Group =
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
|
|
5825
|
-
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
|
|
5829
|
-
|
|
5830
|
-
|
|
5831
|
-
|
|
5862
|
+
const Group = wrapFieldWithNoHeader(
|
|
5863
|
+
({ tinaForm, field }) => {
|
|
5864
|
+
const cms = useCMS$1();
|
|
5865
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
5866
|
+
Header,
|
|
5867
|
+
{
|
|
5868
|
+
onClick: () => {
|
|
5869
|
+
const state = tinaForm.finalForm.getState();
|
|
5870
|
+
if (state.invalid === true) {
|
|
5871
|
+
cms.alerts.error("Cannot navigate away from an invalid form.");
|
|
5872
|
+
return;
|
|
5873
|
+
}
|
|
5874
|
+
cms.dispatch({
|
|
5875
|
+
type: "forms:set-active-field-name",
|
|
5876
|
+
value: { formId: tinaForm.id, fieldName: field.name }
|
|
5877
|
+
});
|
|
5832
5878
|
}
|
|
5833
|
-
|
|
5834
|
-
|
|
5835
|
-
|
|
5836
|
-
|
|
5837
|
-
|
|
5838
|
-
|
|
5839
|
-
|
|
5840
|
-
|
|
5841
|
-
|
|
5879
|
+
},
|
|
5880
|
+
field.label || field.name,
|
|
5881
|
+
field.description && /* @__PURE__ */ React.createElement(
|
|
5882
|
+
"span",
|
|
5883
|
+
{
|
|
5884
|
+
className: `block font-sans text-xs italic font-light text-gray-400 pt-0.5 whitespace-normal m-0`,
|
|
5885
|
+
dangerouslySetInnerHTML: { __html: field.description }
|
|
5886
|
+
}
|
|
5887
|
+
)
|
|
5888
|
+
));
|
|
5889
|
+
}
|
|
5890
|
+
);
|
|
5842
5891
|
const Header = ({ onClick, children }) => {
|
|
5843
5892
|
return /* @__PURE__ */ React.createElement("div", { className: "pt-1 mb-5" }, /* @__PURE__ */ React.createElement(
|
|
5844
5893
|
"button",
|
|
@@ -6241,7 +6290,9 @@ const BlockListItem = ({
|
|
|
6241
6290
|
onClick: () => {
|
|
6242
6291
|
const state = tinaForm.finalForm.getState();
|
|
6243
6292
|
if (state.invalid === true) {
|
|
6244
|
-
cms.alerts.error(
|
|
6293
|
+
cms.alerts.error(
|
|
6294
|
+
"Cannot navigate away from an invalid form."
|
|
6295
|
+
);
|
|
6245
6296
|
return;
|
|
6246
6297
|
}
|
|
6247
6298
|
cms.dispatch({
|
|
@@ -6723,28 +6774,28 @@ class DaysView extends React__default.Component {
|
|
|
6723
6774
|
}
|
|
6724
6775
|
renderDayHeaders() {
|
|
6725
6776
|
const locale = this.props.viewDate.localeData();
|
|
6726
|
-
|
|
6777
|
+
const dayItems = getDaysOfWeek(locale).map((day, index) => /* @__PURE__ */ React__default.createElement("th", { key: day + index, className: "dow" }, day));
|
|
6727
6778
|
return /* @__PURE__ */ React__default.createElement("tr", null, dayItems);
|
|
6728
6779
|
}
|
|
6729
6780
|
renderDays() {
|
|
6730
6781
|
const date = this.props.viewDate;
|
|
6731
6782
|
const startOfMonth = date.clone().startOf("month");
|
|
6732
6783
|
const endOfMonth = date.clone().endOf("month");
|
|
6733
|
-
|
|
6734
|
-
|
|
6784
|
+
const rows = [[], [], [], [], [], []];
|
|
6785
|
+
const startDate = date.clone().subtract(1, "months");
|
|
6735
6786
|
startDate.date(startDate.daysInMonth()).startOf("week");
|
|
6736
|
-
|
|
6787
|
+
const endDate = startDate.clone().add(42, "d");
|
|
6737
6788
|
let i = 0;
|
|
6738
6789
|
while (startDate.isBefore(endDate)) {
|
|
6739
|
-
|
|
6790
|
+
const row = getRow$2(rows, i++);
|
|
6740
6791
|
row.push(this.renderDay(startDate, startOfMonth, endOfMonth));
|
|
6741
6792
|
startDate.add(1, "d");
|
|
6742
6793
|
}
|
|
6743
6794
|
return rows.map((r, i2) => /* @__PURE__ */ React__default.createElement("tr", { key: `${endDate.month()}_${i2}` }, r));
|
|
6744
6795
|
}
|
|
6745
6796
|
renderDay(date, startOfMonth, endOfMonth) {
|
|
6746
|
-
|
|
6747
|
-
|
|
6797
|
+
const selectedDate = this.props.selectedDate;
|
|
6798
|
+
const dayProps = {
|
|
6748
6799
|
key: date.format("M_D"),
|
|
6749
6800
|
"data-value": date.date(),
|
|
6750
6801
|
"data-month": date.month(),
|
|
@@ -6798,7 +6849,7 @@ function getRow$2(rows, day) {
|
|
|
6798
6849
|
}
|
|
6799
6850
|
function getDaysOfWeek(locale) {
|
|
6800
6851
|
const first = locale.firstDayOfWeek();
|
|
6801
|
-
|
|
6852
|
+
const dow = [];
|
|
6802
6853
|
let i = 0;
|
|
6803
6854
|
locale._weekdaysMin.forEach(function(day) {
|
|
6804
6855
|
dow[(7 + i++ - first) % 7] = day;
|
|
@@ -6816,7 +6867,7 @@ class MonthsView extends React__default.Component {
|
|
|
6816
6867
|
return /* @__PURE__ */ React__default.createElement("div", { className: "rdtMonths" }, /* @__PURE__ */ React__default.createElement("table", null, /* @__PURE__ */ React__default.createElement("thead", null, this.renderNavigation())), /* @__PURE__ */ React__default.createElement("table", null, /* @__PURE__ */ React__default.createElement("tbody", null, this.renderMonths())));
|
|
6817
6868
|
}
|
|
6818
6869
|
renderNavigation() {
|
|
6819
|
-
|
|
6870
|
+
const year = this.props.viewDate.year();
|
|
6820
6871
|
return /* @__PURE__ */ React__default.createElement(
|
|
6821
6872
|
ViewNavigation,
|
|
6822
6873
|
{
|
|
@@ -6829,9 +6880,9 @@ class MonthsView extends React__default.Component {
|
|
|
6829
6880
|
);
|
|
6830
6881
|
}
|
|
6831
6882
|
renderMonths() {
|
|
6832
|
-
|
|
6883
|
+
const rows = [[], [], []];
|
|
6833
6884
|
for (let month = 0; month < 12; month++) {
|
|
6834
|
-
|
|
6885
|
+
const row = getRow$1(rows, month);
|
|
6835
6886
|
row.push(this.renderMonth(month));
|
|
6836
6887
|
}
|
|
6837
6888
|
return rows.map((months, i) => /* @__PURE__ */ React__default.createElement("tr", { key: i }, months));
|
|
@@ -6848,7 +6899,7 @@ class MonthsView extends React__default.Component {
|
|
|
6848
6899
|
if (selectedDate && selectedDate.year() === this.props.viewDate.year() && selectedDate.month() === month) {
|
|
6849
6900
|
className += " rdtActive";
|
|
6850
6901
|
}
|
|
6851
|
-
|
|
6902
|
+
const props = { key: month, className, "data-value": month, onClick };
|
|
6852
6903
|
if (this.props.renderMonth) {
|
|
6853
6904
|
return this.props.renderMonth(
|
|
6854
6905
|
props,
|
|
@@ -6860,11 +6911,11 @@ class MonthsView extends React__default.Component {
|
|
|
6860
6911
|
return /* @__PURE__ */ React__default.createElement("td", { ...props }, this.getMonthText(month));
|
|
6861
6912
|
}
|
|
6862
6913
|
isDisabledMonth(month) {
|
|
6863
|
-
|
|
6914
|
+
const isValidDate = this.props.isValidDate;
|
|
6864
6915
|
if (!isValidDate) {
|
|
6865
6916
|
return false;
|
|
6866
6917
|
}
|
|
6867
|
-
|
|
6918
|
+
const date = this.props.viewDate.clone().set({ month });
|
|
6868
6919
|
let day = date.endOf("month").date() + 1;
|
|
6869
6920
|
while (day-- > 1) {
|
|
6870
6921
|
if (isValidDate(date.date(day))) {
|
|
@@ -6916,9 +6967,9 @@ class YearsView extends React__default.Component {
|
|
|
6916
6967
|
}
|
|
6917
6968
|
renderYears() {
|
|
6918
6969
|
const viewYear = this.getViewYear();
|
|
6919
|
-
|
|
6970
|
+
const rows = [[], [], []];
|
|
6920
6971
|
for (let year = viewYear - 1; year < viewYear + 11; year++) {
|
|
6921
|
-
|
|
6972
|
+
const row = getRow(rows, year - viewYear);
|
|
6922
6973
|
row.push(this.renderYear(year));
|
|
6923
6974
|
}
|
|
6924
6975
|
return rows.map((years, i) => /* @__PURE__ */ React__default.createElement("tr", { key: i }, years));
|
|
@@ -6935,7 +6986,7 @@ class YearsView extends React__default.Component {
|
|
|
6935
6986
|
if (selectedYear === year) {
|
|
6936
6987
|
className += " rdtActive";
|
|
6937
6988
|
}
|
|
6938
|
-
|
|
6989
|
+
const props = { key: year, className, "data-value": year, onClick };
|
|
6939
6990
|
return this.props.renderYear(
|
|
6940
6991
|
props,
|
|
6941
6992
|
year,
|
|
@@ -6949,15 +7000,15 @@ class YearsView extends React__default.Component {
|
|
|
6949
7000
|
return this.props.selectedDate && this.props.selectedDate.year();
|
|
6950
7001
|
}
|
|
6951
7002
|
isDisabledYear(year) {
|
|
6952
|
-
|
|
7003
|
+
const cache = this.disabledYearsCache;
|
|
6953
7004
|
if (cache[year] !== void 0) {
|
|
6954
7005
|
return cache[year];
|
|
6955
7006
|
}
|
|
6956
|
-
|
|
7007
|
+
const isValidDate = this.props.isValidDate;
|
|
6957
7008
|
if (!isValidDate) {
|
|
6958
7009
|
return false;
|
|
6959
7010
|
}
|
|
6960
|
-
|
|
7011
|
+
const date = this.props.viewDate.clone().set({ year });
|
|
6961
7012
|
let day = date.endOf("year").dayOfYear() + 1;
|
|
6962
7013
|
while (day-- > 1) {
|
|
6963
7014
|
if (isValidDate(date.dayOfYear(day))) {
|
|
@@ -7004,7 +7055,7 @@ const timeConstraints = {
|
|
|
7004
7055
|
}
|
|
7005
7056
|
};
|
|
7006
7057
|
function createConstraints(overrideTimeConstraints) {
|
|
7007
|
-
|
|
7058
|
+
const constraints = {};
|
|
7008
7059
|
Object.keys(timeConstraints).forEach((type) => {
|
|
7009
7060
|
constraints[type] = {
|
|
7010
7061
|
...timeConstraints[type],
|
|
@@ -7020,7 +7071,7 @@ class TimeView extends React__default.Component {
|
|
|
7020
7071
|
this.state = this.getTimeParts(props.selectedDate || props.viewDate);
|
|
7021
7072
|
}
|
|
7022
7073
|
render() {
|
|
7023
|
-
|
|
7074
|
+
const items2 = [];
|
|
7024
7075
|
const timeParts = this.state;
|
|
7025
7076
|
this.getCounters().forEach((c, i) => {
|
|
7026
7077
|
if (i && c !== "ampm") {
|
|
@@ -7082,8 +7133,8 @@ class TimeView extends React__default.Component {
|
|
|
7082
7133
|
}
|
|
7083
7134
|
if (type === "ampm")
|
|
7084
7135
|
return this.toggleDayPart();
|
|
7085
|
-
|
|
7086
|
-
|
|
7136
|
+
const update = {};
|
|
7137
|
+
const body = document.body;
|
|
7087
7138
|
update[type] = this[action](type);
|
|
7088
7139
|
this.setState(update);
|
|
7089
7140
|
this.timer = setTimeout(() => {
|
|
@@ -7126,8 +7177,8 @@ class TimeView extends React__default.Component {
|
|
|
7126
7177
|
return pad(type, value);
|
|
7127
7178
|
}
|
|
7128
7179
|
getCounters() {
|
|
7129
|
-
|
|
7130
|
-
|
|
7180
|
+
const counters = [];
|
|
7181
|
+
const format2 = this.props.timeFormat;
|
|
7131
7182
|
if (format2.toLowerCase().indexOf("h") !== -1) {
|
|
7132
7183
|
counters.push("hours");
|
|
7133
7184
|
if (format2.indexOf("m") !== -1) {
|
|
@@ -7180,244 +7231,65 @@ function pad(type, value) {
|
|
|
7180
7231
|
str = "0" + str;
|
|
7181
7232
|
return str;
|
|
7182
7233
|
}
|
|
7183
|
-
|
|
7184
|
-
|
|
7185
|
-
|
|
7186
|
-
|
|
7187
|
-
|
|
7188
|
-
|
|
7189
|
-
|
|
7190
|
-
|
|
7191
|
-
|
|
7192
|
-
|
|
7193
|
-
|
|
7194
|
-
}
|
|
7195
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
7196
|
-
if (source == null)
|
|
7197
|
-
return {};
|
|
7198
|
-
var target = {};
|
|
7199
|
-
var sourceKeys = Object.keys(source);
|
|
7200
|
-
var key, i;
|
|
7201
|
-
for (i = 0; i < sourceKeys.length; i++) {
|
|
7202
|
-
key = sourceKeys[i];
|
|
7203
|
-
if (excluded.indexOf(key) >= 0)
|
|
7204
|
-
continue;
|
|
7205
|
-
target[key] = source[key];
|
|
7206
|
-
}
|
|
7207
|
-
return target;
|
|
7208
|
-
}
|
|
7209
|
-
function _assertThisInitialized(self) {
|
|
7210
|
-
if (self === void 0) {
|
|
7211
|
-
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
7212
|
-
}
|
|
7213
|
-
return self;
|
|
7214
|
-
}
|
|
7215
|
-
function isNodeFound(current, componentNode, ignoreClass) {
|
|
7216
|
-
if (current === componentNode) {
|
|
7217
|
-
return true;
|
|
7218
|
-
}
|
|
7219
|
-
if (current.correspondingElement) {
|
|
7220
|
-
return current.correspondingElement.classList.contains(ignoreClass);
|
|
7221
|
-
}
|
|
7222
|
-
return current.classList.contains(ignoreClass);
|
|
7223
|
-
}
|
|
7224
|
-
function findHighest(current, componentNode, ignoreClass) {
|
|
7225
|
-
if (current === componentNode) {
|
|
7226
|
-
return true;
|
|
7234
|
+
var useClickAway$1 = {};
|
|
7235
|
+
var util = {};
|
|
7236
|
+
Object.defineProperty(util, "__esModule", { value: true });
|
|
7237
|
+
util.isNavigator = util.isBrowser = util.off = util.on = util.noop = void 0;
|
|
7238
|
+
var noop = function() {
|
|
7239
|
+
};
|
|
7240
|
+
util.noop = noop;
|
|
7241
|
+
function on(obj) {
|
|
7242
|
+
var args = [];
|
|
7243
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
7244
|
+
args[_i - 1] = arguments[_i];
|
|
7227
7245
|
}
|
|
7228
|
-
|
|
7229
|
-
|
|
7230
|
-
return true;
|
|
7231
|
-
}
|
|
7232
|
-
current = current.parentNode || current.host;
|
|
7246
|
+
if (obj && obj.addEventListener) {
|
|
7247
|
+
obj.addEventListener.apply(obj, args);
|
|
7233
7248
|
}
|
|
7234
|
-
return current;
|
|
7235
|
-
}
|
|
7236
|
-
function clickedScrollbar(evt) {
|
|
7237
|
-
return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;
|
|
7238
7249
|
}
|
|
7239
|
-
|
|
7240
|
-
|
|
7241
|
-
|
|
7250
|
+
util.on = on;
|
|
7251
|
+
function off(obj) {
|
|
7252
|
+
var args = [];
|
|
7253
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
7254
|
+
args[_i - 1] = arguments[_i];
|
|
7242
7255
|
}
|
|
7243
|
-
|
|
7244
|
-
|
|
7245
|
-
get: function get2() {
|
|
7246
|
-
passive = true;
|
|
7247
|
-
}
|
|
7248
|
-
});
|
|
7249
|
-
var noop = function noop2() {
|
|
7250
|
-
};
|
|
7251
|
-
window.addEventListener("testPassiveEventSupport", noop, options);
|
|
7252
|
-
window.removeEventListener("testPassiveEventSupport", noop, options);
|
|
7253
|
-
return passive;
|
|
7254
|
-
};
|
|
7255
|
-
function autoInc(seed) {
|
|
7256
|
-
if (seed === void 0) {
|
|
7257
|
-
seed = 0;
|
|
7256
|
+
if (obj && obj.removeEventListener) {
|
|
7257
|
+
obj.removeEventListener.apply(obj, args);
|
|
7258
7258
|
}
|
|
7259
|
-
return function() {
|
|
7260
|
-
return ++seed;
|
|
7261
|
-
};
|
|
7262
7259
|
}
|
|
7263
|
-
|
|
7264
|
-
|
|
7265
|
-
|
|
7266
|
-
|
|
7267
|
-
var
|
|
7268
|
-
var
|
|
7269
|
-
|
|
7270
|
-
|
|
7271
|
-
|
|
7272
|
-
|
|
7273
|
-
|
|
7274
|
-
|
|
7275
|
-
|
|
7276
|
-
|
|
7277
|
-
|
|
7278
|
-
|
|
7279
|
-
|
|
7280
|
-
|
|
7281
|
-
|
|
7282
|
-
function onClickOutside(props) {
|
|
7283
|
-
var _this;
|
|
7284
|
-
_this = _Component.call(this, props) || this;
|
|
7285
|
-
_this.__outsideClickHandler = function(event) {
|
|
7286
|
-
if (typeof _this.__clickOutsideHandlerProp === "function") {
|
|
7287
|
-
_this.__clickOutsideHandlerProp(event);
|
|
7288
|
-
return;
|
|
7289
|
-
}
|
|
7290
|
-
var instance = _this.getInstance();
|
|
7291
|
-
if (typeof instance.props.handleClickOutside === "function") {
|
|
7292
|
-
instance.props.handleClickOutside(event);
|
|
7293
|
-
return;
|
|
7294
|
-
}
|
|
7295
|
-
if (typeof instance.handleClickOutside === "function") {
|
|
7296
|
-
instance.handleClickOutside(event);
|
|
7297
|
-
return;
|
|
7298
|
-
}
|
|
7299
|
-
throw new Error("WrappedComponent: " + componentName + " lacks a handleClickOutside(event) function for processing outside click events.");
|
|
7300
|
-
};
|
|
7301
|
-
_this.__getComponentNode = function() {
|
|
7302
|
-
var instance = _this.getInstance();
|
|
7303
|
-
if (config && typeof config.setClickOutsideRef === "function") {
|
|
7304
|
-
return config.setClickOutsideRef()(instance);
|
|
7305
|
-
}
|
|
7306
|
-
if (typeof instance.setClickOutsideRef === "function") {
|
|
7307
|
-
return instance.setClickOutsideRef();
|
|
7308
|
-
}
|
|
7309
|
-
return findDOMNode(instance);
|
|
7310
|
-
};
|
|
7311
|
-
_this.enableOnClickOutside = function() {
|
|
7312
|
-
if (typeof document === "undefined" || enabledInstances[_this._uid]) {
|
|
7313
|
-
return;
|
|
7314
|
-
}
|
|
7315
|
-
if (typeof passiveEventSupport === "undefined") {
|
|
7316
|
-
passiveEventSupport = testPassiveEventSupport();
|
|
7317
|
-
}
|
|
7318
|
-
enabledInstances[_this._uid] = true;
|
|
7319
|
-
var events = _this.props.eventTypes;
|
|
7320
|
-
if (!events.forEach) {
|
|
7321
|
-
events = [events];
|
|
7322
|
-
}
|
|
7323
|
-
handlersMap[_this._uid] = function(event) {
|
|
7324
|
-
if (_this.componentNode === null)
|
|
7325
|
-
return;
|
|
7326
|
-
if (_this.initTimeStamp > event.timeStamp)
|
|
7327
|
-
return;
|
|
7328
|
-
if (_this.props.preventDefault) {
|
|
7329
|
-
event.preventDefault();
|
|
7330
|
-
}
|
|
7331
|
-
if (_this.props.stopPropagation) {
|
|
7332
|
-
event.stopPropagation();
|
|
7333
|
-
}
|
|
7334
|
-
if (_this.props.excludeScrollbar && clickedScrollbar(event))
|
|
7335
|
-
return;
|
|
7336
|
-
var current = event.composed && event.composedPath && event.composedPath().shift() || event.target;
|
|
7337
|
-
if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {
|
|
7338
|
-
return;
|
|
7339
|
-
}
|
|
7340
|
-
_this.__outsideClickHandler(event);
|
|
7341
|
-
};
|
|
7342
|
-
events.forEach(function(eventName) {
|
|
7343
|
-
document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_assertThisInitialized(_this), eventName));
|
|
7344
|
-
});
|
|
7345
|
-
};
|
|
7346
|
-
_this.disableOnClickOutside = function() {
|
|
7347
|
-
delete enabledInstances[_this._uid];
|
|
7348
|
-
var fn = handlersMap[_this._uid];
|
|
7349
|
-
if (fn && typeof document !== "undefined") {
|
|
7350
|
-
var events = _this.props.eventTypes;
|
|
7351
|
-
if (!events.forEach) {
|
|
7352
|
-
events = [events];
|
|
7353
|
-
}
|
|
7354
|
-
events.forEach(function(eventName) {
|
|
7355
|
-
return document.removeEventListener(eventName, fn, getEventHandlerOptions(_assertThisInitialized(_this), eventName));
|
|
7356
|
-
});
|
|
7357
|
-
delete handlersMap[_this._uid];
|
|
7358
|
-
}
|
|
7359
|
-
};
|
|
7360
|
-
_this.getRef = function(ref) {
|
|
7361
|
-
return _this.instanceRef = ref;
|
|
7362
|
-
};
|
|
7363
|
-
_this._uid = uid();
|
|
7364
|
-
_this.initTimeStamp = performance.now();
|
|
7365
|
-
return _this;
|
|
7366
|
-
}
|
|
7367
|
-
var _proto = onClickOutside.prototype;
|
|
7368
|
-
_proto.getInstance = function getInstance() {
|
|
7369
|
-
if (WrappedComponent.prototype && !WrappedComponent.prototype.isReactComponent) {
|
|
7370
|
-
return this;
|
|
7371
|
-
}
|
|
7372
|
-
var ref = this.instanceRef;
|
|
7373
|
-
return ref.getInstance ? ref.getInstance() : ref;
|
|
7374
|
-
};
|
|
7375
|
-
_proto.componentDidMount = function componentDidMount() {
|
|
7376
|
-
if (typeof document === "undefined" || !document.createElement) {
|
|
7377
|
-
return;
|
|
7378
|
-
}
|
|
7379
|
-
var instance = this.getInstance();
|
|
7380
|
-
if (config && typeof config.handleClickOutside === "function") {
|
|
7381
|
-
this.__clickOutsideHandlerProp = config.handleClickOutside(instance);
|
|
7382
|
-
if (typeof this.__clickOutsideHandlerProp !== "function") {
|
|
7383
|
-
throw new Error("WrappedComponent: " + componentName + " lacks a function for processing outside click events specified by the handleClickOutside config option.");
|
|
7384
|
-
}
|
|
7385
|
-
}
|
|
7386
|
-
this.componentNode = this.__getComponentNode();
|
|
7387
|
-
if (this.props.disableOnClickOutside)
|
|
7388
|
-
return;
|
|
7389
|
-
this.enableOnClickOutside();
|
|
7260
|
+
util.off = off;
|
|
7261
|
+
util.isBrowser = typeof window !== "undefined";
|
|
7262
|
+
util.isNavigator = typeof navigator !== "undefined";
|
|
7263
|
+
Object.defineProperty(useClickAway$1, "__esModule", { value: true });
|
|
7264
|
+
var react_1 = React__default;
|
|
7265
|
+
var util_1 = util;
|
|
7266
|
+
var defaultEvents = ["mousedown", "touchstart"];
|
|
7267
|
+
var useClickAway = function(ref, onClickAway, events) {
|
|
7268
|
+
if (events === void 0) {
|
|
7269
|
+
events = defaultEvents;
|
|
7270
|
+
}
|
|
7271
|
+
var savedCallback = react_1.useRef(onClickAway);
|
|
7272
|
+
react_1.useEffect(function() {
|
|
7273
|
+
savedCallback.current = onClickAway;
|
|
7274
|
+
}, [onClickAway]);
|
|
7275
|
+
react_1.useEffect(function() {
|
|
7276
|
+
var handler = function(event) {
|
|
7277
|
+
var el = ref.current;
|
|
7278
|
+
el && !el.contains(event.target) && savedCallback.current(event);
|
|
7390
7279
|
};
|
|
7391
|
-
|
|
7392
|
-
|
|
7393
|
-
|
|
7394
|
-
|
|
7395
|
-
|
|
7396
|
-
|
|
7397
|
-
|
|
7398
|
-
|
|
7399
|
-
_this$props.excludeScrollbar;
|
|
7400
|
-
var props = _objectWithoutPropertiesLoose(_this$props, ["excludeScrollbar"]);
|
|
7401
|
-
if (WrappedComponent.prototype && WrappedComponent.prototype.isReactComponent) {
|
|
7402
|
-
props.ref = this.getRef;
|
|
7403
|
-
} else {
|
|
7404
|
-
props.wrappedRef = this.getRef;
|
|
7280
|
+
for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {
|
|
7281
|
+
var eventName = events_1[_i];
|
|
7282
|
+
util_1.on(document, eventName, handler);
|
|
7283
|
+
}
|
|
7284
|
+
return function() {
|
|
7285
|
+
for (var _i2 = 0, events_2 = events; _i2 < events_2.length; _i2++) {
|
|
7286
|
+
var eventName2 = events_2[_i2];
|
|
7287
|
+
util_1.off(document, eventName2, handler);
|
|
7405
7288
|
}
|
|
7406
|
-
props.disableOnClickOutside = this.disableOnClickOutside;
|
|
7407
|
-
props.enableOnClickOutside = this.enableOnClickOutside;
|
|
7408
|
-
return createElement(WrappedComponent, props);
|
|
7409
7289
|
};
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
|
|
7413
|
-
excludeScrollbar: config && config.excludeScrollbar || false,
|
|
7414
|
-
outsideClickIgnoreClass: IGNORE_CLASS_NAME,
|
|
7415
|
-
preventDefault: false,
|
|
7416
|
-
stopPropagation: false
|
|
7417
|
-
}, _class.getClass = function() {
|
|
7418
|
-
return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;
|
|
7419
|
-
}, _temp;
|
|
7420
|
-
}
|
|
7290
|
+
}, [events, ref]);
|
|
7291
|
+
};
|
|
7292
|
+
var _default = useClickAway$1.default = useClickAway;
|
|
7421
7293
|
const viewModes = {
|
|
7422
7294
|
YEARS: "years",
|
|
7423
7295
|
MONTHS: "months",
|
|
@@ -7438,7 +7310,7 @@ class Datetime extends React__default.Component {
|
|
|
7438
7310
|
__publicField(this, "_renderCalendar", () => {
|
|
7439
7311
|
const props = this.props;
|
|
7440
7312
|
const state = this.state;
|
|
7441
|
-
|
|
7313
|
+
const viewProps = {
|
|
7442
7314
|
viewDate: state.viewDate.clone(),
|
|
7443
7315
|
selectedDate: this.getSelectedDate(),
|
|
7444
7316
|
isValidDate: props.isValidDate,
|
|
@@ -7481,10 +7353,10 @@ class Datetime extends React__default.Component {
|
|
|
7481
7353
|
__publicField(this, "viewToMethod", { days: "date", months: "month", years: "year" });
|
|
7482
7354
|
__publicField(this, "nextView", { days: "time", months: "days", years: "months" });
|
|
7483
7355
|
__publicField(this, "_updateDate", (e) => {
|
|
7484
|
-
|
|
7485
|
-
|
|
7486
|
-
|
|
7487
|
-
|
|
7356
|
+
const state = this.state;
|
|
7357
|
+
const currentView = state.currentView;
|
|
7358
|
+
const updateOnView = this.getUpdateOn(this.getFormat("date"));
|
|
7359
|
+
const viewDate = this.state.viewDate.clone();
|
|
7488
7360
|
viewDate[this.viewToMethod[currentView]](
|
|
7489
7361
|
parseInt(e.target.getAttribute("data-value"), 10)
|
|
7490
7362
|
);
|
|
@@ -7492,7 +7364,7 @@ class Datetime extends React__default.Component {
|
|
|
7492
7364
|
viewDate.month(parseInt(e.target.getAttribute("data-month"), 10));
|
|
7493
7365
|
viewDate.year(parseInt(e.target.getAttribute("data-year"), 10));
|
|
7494
7366
|
}
|
|
7495
|
-
|
|
7367
|
+
const update = { viewDate };
|
|
7496
7368
|
if (currentView === updateOnView) {
|
|
7497
7369
|
update.selectedDate = viewDate.clone();
|
|
7498
7370
|
update.inputValue = viewDate.format(this.getFormat("datetime"));
|
|
@@ -7506,7 +7378,7 @@ class Datetime extends React__default.Component {
|
|
|
7506
7378
|
this.setState(update);
|
|
7507
7379
|
});
|
|
7508
7380
|
__publicField(this, "_viewNavigate", (modifier, unit) => {
|
|
7509
|
-
|
|
7381
|
+
const viewDate = this.state.viewDate.clone();
|
|
7510
7382
|
viewDate.add(modifier, unit);
|
|
7511
7383
|
if (modifier > 0) {
|
|
7512
7384
|
this.props.onNavigateForward(modifier, unit);
|
|
@@ -7516,7 +7388,7 @@ class Datetime extends React__default.Component {
|
|
|
7516
7388
|
this.setState({ viewDate });
|
|
7517
7389
|
});
|
|
7518
7390
|
__publicField(this, "_setTime", (type, value) => {
|
|
7519
|
-
|
|
7391
|
+
const date = (this.getSelectedDate() || this.state.viewDate).clone();
|
|
7520
7392
|
date[type](value);
|
|
7521
7393
|
if (!this.props.value) {
|
|
7522
7394
|
this.setState({
|
|
@@ -7540,7 +7412,7 @@ class Datetime extends React__default.Component {
|
|
|
7540
7412
|
});
|
|
7541
7413
|
});
|
|
7542
7414
|
__publicField(this, "_handleClickOutside", () => {
|
|
7543
|
-
|
|
7415
|
+
const props = this.props;
|
|
7544
7416
|
if (props.input && this.state.open && props.open === void 0 && props.closeOnClickOutside) {
|
|
7545
7417
|
this._closeCalendar();
|
|
7546
7418
|
}
|
|
@@ -7555,7 +7427,7 @@ class Datetime extends React__default.Component {
|
|
|
7555
7427
|
return;
|
|
7556
7428
|
const value = e.target ? e.target.value : e;
|
|
7557
7429
|
const localMoment = this.localMoment(value, this.getFormat("datetime"));
|
|
7558
|
-
|
|
7430
|
+
const update = { inputValue: value };
|
|
7559
7431
|
if (localMoment.isValid()) {
|
|
7560
7432
|
update.selectedDate = localMoment;
|
|
7561
7433
|
update.viewDate = localMoment.clone().startOf("month");
|
|
@@ -7619,9 +7491,9 @@ class Datetime extends React__default.Component {
|
|
|
7619
7491
|
return this.props.renderView(this.state.currentView, this._renderCalendar);
|
|
7620
7492
|
}
|
|
7621
7493
|
getInitialState() {
|
|
7622
|
-
|
|
7623
|
-
|
|
7624
|
-
|
|
7494
|
+
const props = this.props;
|
|
7495
|
+
const inputFormat = this.getFormat("datetime");
|
|
7496
|
+
const selectedDate = this.parseDate(
|
|
7625
7497
|
props.value || props.initialValue,
|
|
7626
7498
|
inputFormat
|
|
7627
7499
|
);
|
|
@@ -7652,7 +7524,7 @@ class Datetime extends React__default.Component {
|
|
|
7652
7524
|
return this.getInitialDate();
|
|
7653
7525
|
}
|
|
7654
7526
|
getInitialDate() {
|
|
7655
|
-
|
|
7527
|
+
const m = this.localMoment();
|
|
7656
7528
|
m.hour(0).minute(0).second(0).millisecond(0);
|
|
7657
7529
|
return m;
|
|
7658
7530
|
}
|
|
@@ -7672,8 +7544,8 @@ class Datetime extends React__default.Component {
|
|
|
7672
7544
|
}
|
|
7673
7545
|
getClassName() {
|
|
7674
7546
|
let cn2 = "rdt";
|
|
7675
|
-
|
|
7676
|
-
|
|
7547
|
+
const props = this.props;
|
|
7548
|
+
const propCn = props.className;
|
|
7677
7549
|
if (Array.isArray(propCn)) {
|
|
7678
7550
|
cn2 += " " + propCn.join(" ");
|
|
7679
7551
|
} else if (propCn) {
|
|
@@ -7706,14 +7578,14 @@ class Datetime extends React__default.Component {
|
|
|
7706
7578
|
return viewModes.DAYS;
|
|
7707
7579
|
}
|
|
7708
7580
|
getLocaleData() {
|
|
7709
|
-
|
|
7581
|
+
const p = this.props;
|
|
7710
7582
|
return this.localMoment(
|
|
7711
7583
|
p.value || p.defaultValue || /* @__PURE__ */ new Date()
|
|
7712
7584
|
).localeData();
|
|
7713
7585
|
}
|
|
7714
7586
|
getDateFormat() {
|
|
7715
7587
|
const locale = this.getLocaleData();
|
|
7716
|
-
|
|
7588
|
+
const format2 = this.props.dateFormat;
|
|
7717
7589
|
if (format2 === true)
|
|
7718
7590
|
return locale.longDateFormat("L");
|
|
7719
7591
|
if (format2)
|
|
@@ -7722,7 +7594,7 @@ class Datetime extends React__default.Component {
|
|
|
7722
7594
|
}
|
|
7723
7595
|
getTimeFormat() {
|
|
7724
7596
|
const locale = this.getLocaleData();
|
|
7725
|
-
|
|
7597
|
+
const format2 = this.props.timeFormat;
|
|
7726
7598
|
if (format2 === true) {
|
|
7727
7599
|
return locale.longDateFormat("LT");
|
|
7728
7600
|
}
|
|
@@ -7734,12 +7606,12 @@ class Datetime extends React__default.Component {
|
|
|
7734
7606
|
} else if (type === "time") {
|
|
7735
7607
|
return this.getTimeFormat();
|
|
7736
7608
|
}
|
|
7737
|
-
|
|
7738
|
-
|
|
7609
|
+
const dateFormat = this.getDateFormat();
|
|
7610
|
+
const timeFormat = this.getTimeFormat();
|
|
7739
7611
|
return dateFormat && timeFormat ? dateFormat + " " + timeFormat : dateFormat || timeFormat;
|
|
7740
7612
|
}
|
|
7741
7613
|
updateTime(op, amount, type, toSelected) {
|
|
7742
|
-
|
|
7614
|
+
const update = {};
|
|
7743
7615
|
const date = toSelected ? "selectedDate" : "viewDate";
|
|
7744
7616
|
update[date] = this.state[date].clone()[op](amount, type);
|
|
7745
7617
|
this.setState(update);
|
|
@@ -7772,7 +7644,7 @@ class Datetime extends React__default.Component {
|
|
|
7772
7644
|
if (prevProps === this.props)
|
|
7773
7645
|
return;
|
|
7774
7646
|
let needsUpdate = false;
|
|
7775
|
-
|
|
7647
|
+
const thisProps = this.props;
|
|
7776
7648
|
["locale", "utc", "displayZone", "dateFormat", "timeFormat"].forEach(
|
|
7777
7649
|
function(p) {
|
|
7778
7650
|
prevProps[p] !== thisProps[p] && (needsUpdate = true);
|
|
@@ -7788,8 +7660,8 @@ class Datetime extends React__default.Component {
|
|
|
7788
7660
|
}
|
|
7789
7661
|
regenerateDates() {
|
|
7790
7662
|
const props = this.props;
|
|
7791
|
-
|
|
7792
|
-
|
|
7663
|
+
const viewDate = this.state.viewDate.clone();
|
|
7664
|
+
const selectedDate = this.state.selectedDate && this.state.selectedDate.clone();
|
|
7793
7665
|
if (props.locale) {
|
|
7794
7666
|
viewDate.locale(props.locale);
|
|
7795
7667
|
selectedDate && selectedDate.locale(props.locale);
|
|
@@ -7804,7 +7676,7 @@ class Datetime extends React__default.Component {
|
|
|
7804
7676
|
viewDate.locale();
|
|
7805
7677
|
selectedDate && selectedDate.locale();
|
|
7806
7678
|
}
|
|
7807
|
-
|
|
7679
|
+
const update = { viewDate, selectedDate };
|
|
7808
7680
|
if (selectedDate && selectedDate.isValid()) {
|
|
7809
7681
|
update.inputValue = selectedDate.format(this.getFormat("datetime"));
|
|
7810
7682
|
}
|
|
@@ -7813,7 +7685,7 @@ class Datetime extends React__default.Component {
|
|
|
7813
7685
|
getSelectedDate() {
|
|
7814
7686
|
if (this.props.value === void 0)
|
|
7815
7687
|
return this.state.selectedDate;
|
|
7816
|
-
|
|
7688
|
+
const selectedDate = this.parseDate(
|
|
7817
7689
|
this.props.value,
|
|
7818
7690
|
this.getFormat("datetime")
|
|
7819
7691
|
);
|
|
@@ -7832,7 +7704,7 @@ class Datetime extends React__default.Component {
|
|
|
7832
7704
|
return "";
|
|
7833
7705
|
}
|
|
7834
7706
|
getInputValue() {
|
|
7835
|
-
|
|
7707
|
+
const selectedDate = this.getSelectedDate();
|
|
7836
7708
|
return selectedDate ? selectedDate.format(this.getFormat("datetime")) : this.state.inputValue;
|
|
7837
7709
|
}
|
|
7838
7710
|
/**
|
|
@@ -7842,7 +7714,7 @@ class Datetime extends React__default.Component {
|
|
|
7842
7714
|
* @public
|
|
7843
7715
|
*/
|
|
7844
7716
|
setViewDate(date) {
|
|
7845
|
-
|
|
7717
|
+
const logError = function() {
|
|
7846
7718
|
return log("Invalid date passed to the `setViewDate` method: " + date);
|
|
7847
7719
|
};
|
|
7848
7720
|
if (!date)
|
|
@@ -7938,7 +7810,7 @@ __publicField(Datetime, "defaultProps", {
|
|
|
7938
7810
|
// Make moment accessible through the Datetime class
|
|
7939
7811
|
__publicField(Datetime, "moment", moment);
|
|
7940
7812
|
function log(message, method) {
|
|
7941
|
-
|
|
7813
|
+
const con = typeof window !== "undefined" && window.console;
|
|
7942
7814
|
if (!con)
|
|
7943
7815
|
return;
|
|
7944
7816
|
if (!method) {
|
|
@@ -7946,22 +7818,13 @@ function log(message, method) {
|
|
|
7946
7818
|
}
|
|
7947
7819
|
con[method]("***react-datetime:" + message);
|
|
7948
7820
|
}
|
|
7949
|
-
|
|
7950
|
-
|
|
7951
|
-
|
|
7952
|
-
|
|
7953
|
-
}
|
|
7954
|
-
|
|
7955
|
-
return /* @__PURE__ */ React__default.createElement("div", { className: this.props.className, ref: this.container }, this.props.children);
|
|
7956
|
-
}
|
|
7957
|
-
handleClickOutside(e) {
|
|
7958
|
-
this.props.onClickOut(e);
|
|
7959
|
-
}
|
|
7960
|
-
setClickOutsideRef() {
|
|
7961
|
-
return this.container.current;
|
|
7962
|
-
}
|
|
7821
|
+
function ClickableWrapper({ className, onClickOut, children }) {
|
|
7822
|
+
const containerRef = useRef(null);
|
|
7823
|
+
_default(containerRef, (event) => {
|
|
7824
|
+
onClickOut(event);
|
|
7825
|
+
});
|
|
7826
|
+
return /* @__PURE__ */ React__default.createElement("div", { className, ref: containerRef }, children);
|
|
7963
7827
|
}
|
|
7964
|
-
const ClickableWrapper = onClickOutsideHOC(ClickOutBase);
|
|
7965
7828
|
const DEFAULT_DATE_DISPLAY_FORMAT = "MMM DD, YYYY";
|
|
7966
7829
|
const DEFAULT_TIME_DISPLAY_FORMAT = "h:mm A";
|
|
7967
7830
|
const format$1 = (val, _name, field) => {
|
|
@@ -8004,7 +7867,10 @@ const DateField = wrapFieldsWithMeta(
|
|
|
8004
7867
|
ReactDateTimeWithStyles,
|
|
8005
7868
|
{
|
|
8006
7869
|
value: input.value,
|
|
8007
|
-
onChange:
|
|
7870
|
+
onChange: (value) => {
|
|
7871
|
+
const newValue = value === "" ? void 0 : value;
|
|
7872
|
+
input.onChange(newValue);
|
|
7873
|
+
},
|
|
8008
7874
|
dateFormat: dateFormat || DEFAULT_DATE_DISPLAY_FORMAT,
|
|
8009
7875
|
timeFormat: timeFormat || false,
|
|
8010
7876
|
inputProps: { className: textFieldClasses },
|
|
@@ -8767,7 +8633,10 @@ const BranchSelector = ({
|
|
|
8767
8633
|
label: "View in GitHub",
|
|
8768
8634
|
Icon: /* @__PURE__ */ React.createElement(BiLinkExternal, { className: "w-5 h-auto text-blue-500 opacity-70" }),
|
|
8769
8635
|
onMouseDown: () => {
|
|
8770
|
-
window.open(
|
|
8636
|
+
window.open(
|
|
8637
|
+
branch.githubPullRequestUrl,
|
|
8638
|
+
"_blank"
|
|
8639
|
+
);
|
|
8771
8640
|
}
|
|
8772
8641
|
},
|
|
8773
8642
|
typeof previewFunction === "function" && ((_b2 = previewFunction({ branch: branch.name })) == null ? void 0 : _b2.url) && {
|
|
@@ -9073,7 +8942,9 @@ class EventBus {
|
|
|
9073
8942
|
} else {
|
|
9074
8943
|
events = event;
|
|
9075
8944
|
}
|
|
9076
|
-
const newListeners = events.map(
|
|
8945
|
+
const newListeners = events.map(
|
|
8946
|
+
(event2) => new Listener(event2, callback)
|
|
8947
|
+
);
|
|
9077
8948
|
newListeners.forEach((newListener) => this.listeners.add(newListener));
|
|
9078
8949
|
return () => {
|
|
9079
8950
|
newListeners.forEach((listener) => this.listeners.delete(listener));
|
|
@@ -9429,9 +9300,7 @@ class TinaMediaStore {
|
|
|
9429
9300
|
const deleteStartTime = Date.now();
|
|
9430
9301
|
while (true) {
|
|
9431
9302
|
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
9432
|
-
const { error, message } = await this.api.getRequestStatus(
|
|
9433
|
-
requestId
|
|
9434
|
-
);
|
|
9303
|
+
const { error, message } = await this.api.getRequestStatus(requestId);
|
|
9435
9304
|
if (error !== void 0) {
|
|
9436
9305
|
if (error) {
|
|
9437
9306
|
throw new Error(message);
|
|
@@ -9456,6 +9325,17 @@ class TinaMediaStore {
|
|
|
9456
9325
|
}
|
|
9457
9326
|
}
|
|
9458
9327
|
}
|
|
9328
|
+
const encodeUrlIfNeeded = (url) => {
|
|
9329
|
+
if (url) {
|
|
9330
|
+
try {
|
|
9331
|
+
return new URL(url).toString();
|
|
9332
|
+
} catch (e) {
|
|
9333
|
+
return url;
|
|
9334
|
+
}
|
|
9335
|
+
} else {
|
|
9336
|
+
return url;
|
|
9337
|
+
}
|
|
9338
|
+
};
|
|
9459
9339
|
let MediaManager$1 = class MediaManager {
|
|
9460
9340
|
constructor(store, events) {
|
|
9461
9341
|
this.store = store;
|
|
@@ -9528,6 +9408,20 @@ let MediaManager$1 = class MediaManager {
|
|
|
9528
9408
|
try {
|
|
9529
9409
|
this.events.dispatch({ type: "media:list:start", ...options });
|
|
9530
9410
|
const media = await this.store.list(options);
|
|
9411
|
+
media.items = media.items.map((item) => {
|
|
9412
|
+
if (item.type === "dir") {
|
|
9413
|
+
return item;
|
|
9414
|
+
}
|
|
9415
|
+
if (item.thumbnails) {
|
|
9416
|
+
for (const [size, src] of Object.entries(item.thumbnails)) {
|
|
9417
|
+
item.thumbnails[size] = encodeUrlIfNeeded(src);
|
|
9418
|
+
}
|
|
9419
|
+
}
|
|
9420
|
+
return {
|
|
9421
|
+
...item,
|
|
9422
|
+
src: encodeUrlIfNeeded(item.src)
|
|
9423
|
+
};
|
|
9424
|
+
});
|
|
9531
9425
|
this.events.dispatch({ type: "media:list:success", ...options, media });
|
|
9532
9426
|
return media;
|
|
9533
9427
|
} catch (error) {
|
|
@@ -9815,7 +9709,7 @@ class SidebarState {
|
|
|
9815
9709
|
}
|
|
9816
9710
|
}
|
|
9817
9711
|
function createScreen({
|
|
9818
|
-
Component
|
|
9712
|
+
Component,
|
|
9819
9713
|
props,
|
|
9820
9714
|
...options
|
|
9821
9715
|
}) {
|
|
@@ -9824,7 +9718,7 @@ function createScreen({
|
|
|
9824
9718
|
layout: "popup",
|
|
9825
9719
|
...options,
|
|
9826
9720
|
Component(screenProps) {
|
|
9827
|
-
return /* @__PURE__ */ React__default.createElement(
|
|
9721
|
+
return /* @__PURE__ */ React__default.createElement(Component, { ...screenProps, ...props });
|
|
9828
9722
|
}
|
|
9829
9723
|
};
|
|
9830
9724
|
}
|
|
@@ -10335,7 +10229,7 @@ const SyncStatus = ({ cms, setEventsOpen }) => {
|
|
|
10335
10229
|
"Event Log"
|
|
10336
10230
|
));
|
|
10337
10231
|
};
|
|
10338
|
-
const version = "2.
|
|
10232
|
+
const version = "2.7.3";
|
|
10339
10233
|
const Nav = ({
|
|
10340
10234
|
isLocalMode,
|
|
10341
10235
|
className = "",
|
|
@@ -10971,7 +10865,7 @@ const SidebarHeader = ({
|
|
|
10971
10865
|
className: "h-5 w-auto -mx-1 text-blue-500",
|
|
10972
10866
|
stroke: "currentColor",
|
|
10973
10867
|
fill: "currentColor",
|
|
10974
|
-
|
|
10868
|
+
strokeWidth: "0",
|
|
10975
10869
|
viewBox: "0 0 24 24",
|
|
10976
10870
|
xmlns: "http://www.w3.org/2000/svg"
|
|
10977
10871
|
},
|
|
@@ -11561,7 +11455,10 @@ function MediaPicker({
|
|
|
11561
11455
|
const observer = new IntersectionObserver((entries) => {
|
|
11562
11456
|
const target = entries[0];
|
|
11563
11457
|
if (target.isIntersecting && list.nextOffset) {
|
|
11564
|
-
setOffsetHistory((offsetHistory2) => [
|
|
11458
|
+
setOffsetHistory((offsetHistory2) => [
|
|
11459
|
+
...offsetHistory2,
|
|
11460
|
+
list.nextOffset
|
|
11461
|
+
]);
|
|
11565
11462
|
}
|
|
11566
11463
|
});
|
|
11567
11464
|
if (loaderRef.current) {
|
|
@@ -12525,7 +12422,9 @@ const ActiveFieldIndicator = () => {
|
|
|
12525
12422
|
if (activeEle) {
|
|
12526
12423
|
setDisplay(true);
|
|
12527
12424
|
setPosition(activeEle.getBoundingClientRect());
|
|
12528
|
-
const iframe = document.getElementById(
|
|
12425
|
+
const iframe = document.getElementById(
|
|
12426
|
+
"tina-iframe"
|
|
12427
|
+
);
|
|
12529
12428
|
if (iframe) {
|
|
12530
12429
|
setIframePosition(iframe.getBoundingClientRect());
|
|
12531
12430
|
}
|
|
@@ -12866,15 +12765,14 @@ const FormBuilder = ({
|
|
|
12866
12765
|
fields: fieldGroup.fields
|
|
12867
12766
|
}
|
|
12868
12767
|
) : /* @__PURE__ */ React.createElement(NoFieldsPlaceholder, null)
|
|
12869
|
-
)), !hideFooter && /* @__PURE__ */ React.createElement("div", { className: "relative flex-none w-full h-16 px-
|
|
12768
|
+
)), !hideFooter && /* @__PURE__ */ React.createElement("div", { className: "relative flex-none w-full h-16 px-12 bg-white border-t border-gray-100 flex items-center justify-end" }, /* @__PURE__ */ React.createElement("div", { className: "flex-1 w-full justify-end gap-2 flex items-center max-w-form" }, tinaForm.reset && /* @__PURE__ */ React.createElement(
|
|
12870
12769
|
ResetForm,
|
|
12871
12770
|
{
|
|
12872
12771
|
pristine,
|
|
12873
12772
|
reset: async () => {
|
|
12874
12773
|
finalForm.reset();
|
|
12875
12774
|
await tinaForm.reset();
|
|
12876
|
-
}
|
|
12877
|
-
style: { flexGrow: 1 }
|
|
12775
|
+
}
|
|
12878
12776
|
},
|
|
12879
12777
|
tinaForm.buttons.reset
|
|
12880
12778
|
), /* @__PURE__ */ React.createElement(
|
|
@@ -12883,8 +12781,7 @@ const FormBuilder = ({
|
|
|
12883
12781
|
onClick: safeHandleSubmit,
|
|
12884
12782
|
disabled: !canSubmit,
|
|
12885
12783
|
busy: submitting,
|
|
12886
|
-
variant: "primary"
|
|
12887
|
-
style: { flexGrow: 3 }
|
|
12784
|
+
variant: "primary"
|
|
12888
12785
|
},
|
|
12889
12786
|
submitting && /* @__PURE__ */ React.createElement(LoadingDots, null),
|
|
12890
12787
|
!submitting && tinaForm.buttons.save
|
|
@@ -12969,7 +12866,6 @@ const CreateBranchModel = ({
|
|
|
12969
12866
|
}) => {
|
|
12970
12867
|
const cms = useCMS$1();
|
|
12971
12868
|
const tinaApi = cms.api.tina;
|
|
12972
|
-
tinaApi.branch;
|
|
12973
12869
|
const [disabled, setDisabled] = React.useState(false);
|
|
12974
12870
|
const [newBranchName, setNewBranchName] = React.useState("");
|
|
12975
12871
|
const [error, setError] = React.useState("");
|
|
@@ -12995,10 +12891,10 @@ const CreateBranchModel = ({
|
|
|
12995
12891
|
const newUrl = window.location.href.replace(hash, newHash);
|
|
12996
12892
|
window.location.href = newUrl;
|
|
12997
12893
|
};
|
|
12998
|
-
return /* @__PURE__ */ React.createElement(Modal, null, /* @__PURE__ */ React.createElement(PopupModal, null, /* @__PURE__ */ React.createElement(ModalHeader, { close: close2 }, /* @__PURE__ */ React.createElement(BiGitBranch, { className: "w-6 h-auto mr-1 text-blue-500 opacity-70" }), " ", "Create Branch"), /* @__PURE__ */ React.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React.createElement("p", { className: "text-
|
|
12894
|
+
return /* @__PURE__ */ React.createElement(Modal, null, /* @__PURE__ */ React.createElement(PopupModal, null, /* @__PURE__ */ React.createElement(ModalHeader, { close: close2 }, /* @__PURE__ */ React.createElement(BiGitBranch, { className: "w-6 h-auto mr-1 text-blue-500 opacity-70" }), " ", "Create Branch"), /* @__PURE__ */ React.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React.createElement("p", { className: "text-lg text-gray-700 font-bold mb-2" }, "This content is protected 🚧"), /* @__PURE__ */ React.createElement("p", { className: "text-sm text-gray-700 mb-4" }, "To make changes, you need to create a copy then get it approved and merged for it to go live."), /* @__PURE__ */ React.createElement(
|
|
12999
12895
|
PrefixedTextField,
|
|
13000
12896
|
{
|
|
13001
|
-
placeholder: "
|
|
12897
|
+
placeholder: "e.g. {{PAGE-NAME}}-updates",
|
|
13002
12898
|
value: newBranchName,
|
|
13003
12899
|
onChange: (e) => {
|
|
13004
12900
|
setError("");
|
|
@@ -13145,7 +13041,9 @@ const ImgEmbed = ({
|
|
|
13145
13041
|
const { fieldName } = useTemplates();
|
|
13146
13042
|
const { handleClose, handleRemove, handleSelect, isExpanded } = useEmbedHandles(editor, element, fieldName);
|
|
13147
13043
|
useHotkey("enter", () => {
|
|
13148
|
-
insertNodes(editor, [
|
|
13044
|
+
insertNodes(editor, [
|
|
13045
|
+
{ type: ELEMENT_PARAGRAPH, children: [{ text: "" }] }
|
|
13046
|
+
]);
|
|
13149
13047
|
});
|
|
13150
13048
|
return /* @__PURE__ */ React__default.createElement("span", { ...attributes, className: "" }, children, element.url ? /* @__PURE__ */ React__default.createElement(
|
|
13151
13049
|
"div",
|
|
@@ -13266,9 +13164,9 @@ const EllipsisIcon = ({ title }) => {
|
|
|
13266
13164
|
));
|
|
13267
13165
|
};
|
|
13268
13166
|
const Wrapper$1 = ({ inline, children }) => {
|
|
13269
|
-
const
|
|
13167
|
+
const Component = inline ? "span" : "div";
|
|
13270
13168
|
return /* @__PURE__ */ React__default.createElement(
|
|
13271
|
-
|
|
13169
|
+
Component,
|
|
13272
13170
|
{
|
|
13273
13171
|
contentEditable: false,
|
|
13274
13172
|
style: { userSelect: "none" },
|
|
@@ -13288,7 +13186,9 @@ const InlineEmbed = ({
|
|
|
13288
13186
|
const { templates, fieldName } = useTemplates();
|
|
13289
13187
|
const { handleClose, handleRemove, handleSelect, isExpanded } = useEmbedHandles(editor, element, fieldName);
|
|
13290
13188
|
useHotkey("enter", () => {
|
|
13291
|
-
insertNodes(editor, [
|
|
13189
|
+
insertNodes(editor, [
|
|
13190
|
+
{ type: ELEMENT_PARAGRAPH, children: [{ text: "" }] }
|
|
13191
|
+
]);
|
|
13292
13192
|
});
|
|
13293
13193
|
useHotkey("space", () => {
|
|
13294
13194
|
insertNodes(editor, [{ text: " " }], {
|
|
@@ -13344,7 +13244,9 @@ const BlockEmbed = ({
|
|
|
13344
13244
|
const { templates, fieldName } = useTemplates();
|
|
13345
13245
|
const { handleClose, handleRemove, handleSelect, isExpanded } = useEmbedHandles(editor, element, fieldName);
|
|
13346
13246
|
useHotkey("enter", () => {
|
|
13347
|
-
insertNodes(editor, [
|
|
13247
|
+
insertNodes(editor, [
|
|
13248
|
+
{ type: ELEMENT_PARAGRAPH, children: [{ text: "" }] }
|
|
13249
|
+
]);
|
|
13348
13250
|
});
|
|
13349
13251
|
const activeTemplate = templates.find(
|
|
13350
13252
|
(template) => template.name === element.name
|
|
@@ -13690,6 +13592,11 @@ const autoformatMarks = [
|
|
|
13690
13592
|
mode: "mark",
|
|
13691
13593
|
type: MARK_CODE,
|
|
13692
13594
|
match: "`"
|
|
13595
|
+
},
|
|
13596
|
+
{
|
|
13597
|
+
mode: "mark",
|
|
13598
|
+
type: MARK_STRIKETHROUGH,
|
|
13599
|
+
match: ["~~", "~"]
|
|
13693
13600
|
}
|
|
13694
13601
|
];
|
|
13695
13602
|
const autoformatRules = [
|
|
@@ -13831,16 +13738,14 @@ const plugins$1 = [
|
|
|
13831
13738
|
})
|
|
13832
13739
|
];
|
|
13833
13740
|
const plugins = [
|
|
13741
|
+
createBasicMarksPlugin(),
|
|
13834
13742
|
createHeadingPlugin(),
|
|
13835
13743
|
createParagraphPlugin(),
|
|
13836
13744
|
createCodeBlockPlugin(),
|
|
13837
13745
|
createHTMLBlockPlugin(),
|
|
13838
13746
|
createHTMLInlinePlugin(),
|
|
13839
13747
|
createBlockquotePlugin(),
|
|
13840
|
-
createBoldPlugin(),
|
|
13841
|
-
createItalicPlugin(),
|
|
13842
13748
|
createUnderlinePlugin(),
|
|
13843
|
-
createCodePlugin(),
|
|
13844
13749
|
createListPlugin(),
|
|
13845
13750
|
createIndentListPlugin(),
|
|
13846
13751
|
createHorizontalRulePlugin(),
|
|
@@ -13854,6 +13759,7 @@ const unsupportedItemsInTable = /* @__PURE__ */ new Set([
|
|
|
13854
13759
|
"Unordered List",
|
|
13855
13760
|
"Ordered List",
|
|
13856
13761
|
"Quote",
|
|
13762
|
+
"Mermaid",
|
|
13857
13763
|
"Heading 1",
|
|
13858
13764
|
"Heading 2",
|
|
13859
13765
|
"Heading 3",
|
|
@@ -14055,13 +13961,13 @@ const TooltipContent = withCn(
|
|
|
14055
13961
|
}),
|
|
14056
13962
|
"z-[9999] overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md"
|
|
14057
13963
|
);
|
|
14058
|
-
function withTooltip(
|
|
13964
|
+
function withTooltip(Component) {
|
|
14059
13965
|
return React__default.forwardRef(function ExtendComponent({ tooltip, tooltipContentProps, tooltipProps, ...props }, ref) {
|
|
14060
13966
|
const [mounted, setMounted] = React__default.useState(false);
|
|
14061
13967
|
React__default.useEffect(() => {
|
|
14062
13968
|
setMounted(true);
|
|
14063
13969
|
}, []);
|
|
14064
|
-
const component = /* @__PURE__ */ React__default.createElement(
|
|
13970
|
+
const component = /* @__PURE__ */ React__default.createElement(Component, { ref, ...props });
|
|
14065
13971
|
if (tooltip && mounted) {
|
|
14066
13972
|
return /* @__PURE__ */ React__default.createElement(Tooltip, { ...tooltipProps }, /* @__PURE__ */ React__default.createElement(TooltipTrigger, { asChild: true }, component), /* @__PURE__ */ React__default.createElement(TooltipPortal, null, /* @__PURE__ */ React__default.createElement(TooltipContent, { ...tooltipContentProps }, tooltip)));
|
|
14067
13973
|
}
|
|
@@ -14199,7 +14105,9 @@ const EMBED_ICON_WIDTH = 78;
|
|
|
14199
14105
|
const CONTAINER_MD_BREAKPOINT = 448;
|
|
14200
14106
|
const FLOAT_BUTTON_WIDTH = 25;
|
|
14201
14107
|
const HEADING_LABEL = "Headings";
|
|
14202
|
-
const ToolbarContext = createContext(
|
|
14108
|
+
const ToolbarContext = createContext(
|
|
14109
|
+
void 0
|
|
14110
|
+
);
|
|
14203
14111
|
const ToolbarProvider = ({
|
|
14204
14112
|
tinaForm,
|
|
14205
14113
|
templates,
|
|
@@ -14349,7 +14257,7 @@ const useCodeBlockToolbarButton = (state) => {
|
|
|
14349
14257
|
const CodeBlockToolbarButton = withRef(({ clear, ...rest }, ref) => {
|
|
14350
14258
|
const state = useCodeBlockToolbarButtonState();
|
|
14351
14259
|
const { props } = useCodeBlockToolbarButton(state);
|
|
14352
|
-
return /* @__PURE__ */ React__default.createElement(ToolbarButton, { ref, tooltip: "
|
|
14260
|
+
return /* @__PURE__ */ React__default.createElement(ToolbarButton, { ref, tooltip: "Code Block", ...rest, ...props }, /* @__PURE__ */ React__default.createElement(Icons.codeBlock, null));
|
|
14353
14261
|
});
|
|
14354
14262
|
const useImageToolbarButtonState = () => {
|
|
14355
14263
|
const editor = useEditorState();
|
|
@@ -14381,36 +14289,54 @@ const useImageToolbarButton = (state) => {
|
|
|
14381
14289
|
const ImageToolbarButton = withRef(({ clear, ...rest }, ref) => {
|
|
14382
14290
|
const state = useImageToolbarButtonState();
|
|
14383
14291
|
const { props } = useImageToolbarButton(state);
|
|
14384
|
-
return /* @__PURE__ */ React__default.createElement(ToolbarButton, { ref, tooltip: "
|
|
14385
|
-
});
|
|
14386
|
-
const IndentListToolbarButton = withRef(({ nodeType = ELEMENT_UL }, ref) => {
|
|
14387
|
-
const editor = useEditorState();
|
|
14388
|
-
const state = useListToolbarButtonState({ nodeType });
|
|
14389
|
-
const { props } = useListToolbarButton(state);
|
|
14390
|
-
return /* @__PURE__ */ React__default.createElement(
|
|
14391
|
-
ToolbarButton,
|
|
14392
|
-
{
|
|
14393
|
-
ref,
|
|
14394
|
-
tooltip: nodeType === ELEMENT_UL ? "Bulleted List" : "Numbered List",
|
|
14395
|
-
...props,
|
|
14396
|
-
onClick: (e) => {
|
|
14397
|
-
e.preventDefault();
|
|
14398
|
-
e.stopPropagation();
|
|
14399
|
-
toggleList(editor, { type: nodeType });
|
|
14400
|
-
}
|
|
14401
|
-
},
|
|
14402
|
-
nodeType === ELEMENT_UL ? /* @__PURE__ */ React__default.createElement(Icons.ul, null) : /* @__PURE__ */ React__default.createElement(Icons.ol, null)
|
|
14403
|
-
);
|
|
14292
|
+
return /* @__PURE__ */ React__default.createElement(ToolbarButton, { ref, tooltip: "Image", ...rest, ...props }, /* @__PURE__ */ React__default.createElement(Icons.image, null));
|
|
14404
14293
|
});
|
|
14294
|
+
const UnorderedListToolbarButton = withRef(
|
|
14295
|
+
(props, ref) => {
|
|
14296
|
+
const editor = useEditorState();
|
|
14297
|
+
const state = useListToolbarButtonState({ nodeType: ELEMENT_UL });
|
|
14298
|
+
const { props: buttonProps } = useListToolbarButton(state);
|
|
14299
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
14300
|
+
ToolbarButton,
|
|
14301
|
+
{
|
|
14302
|
+
ref,
|
|
14303
|
+
tooltip: "Bulleted List",
|
|
14304
|
+
...buttonProps,
|
|
14305
|
+
onClick: (e) => {
|
|
14306
|
+
e.preventDefault();
|
|
14307
|
+
e.stopPropagation();
|
|
14308
|
+
toggleList(editor, { type: ELEMENT_UL });
|
|
14309
|
+
}
|
|
14310
|
+
},
|
|
14311
|
+
/* @__PURE__ */ React__default.createElement(Icons.ul, null)
|
|
14312
|
+
);
|
|
14313
|
+
}
|
|
14314
|
+
);
|
|
14315
|
+
const OrderedListToolbarButton = withRef(
|
|
14316
|
+
(props, ref) => {
|
|
14317
|
+
const editor = useEditorState();
|
|
14318
|
+
const state = useListToolbarButtonState({ nodeType: ELEMENT_OL });
|
|
14319
|
+
const { props: buttonProps } = useListToolbarButton(state);
|
|
14320
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
14321
|
+
ToolbarButton,
|
|
14322
|
+
{
|
|
14323
|
+
ref,
|
|
14324
|
+
tooltip: "Numbered List",
|
|
14325
|
+
...buttonProps,
|
|
14326
|
+
onClick: (e) => {
|
|
14327
|
+
e.preventDefault();
|
|
14328
|
+
e.stopPropagation();
|
|
14329
|
+
toggleList(editor, { type: ELEMENT_OL });
|
|
14330
|
+
}
|
|
14331
|
+
},
|
|
14332
|
+
/* @__PURE__ */ React__default.createElement(Icons.ol, null)
|
|
14333
|
+
);
|
|
14334
|
+
}
|
|
14335
|
+
);
|
|
14405
14336
|
const LinkToolbarButton = withRef((rest, ref) => {
|
|
14406
14337
|
const state = useLinkToolbarButtonState();
|
|
14407
14338
|
const { props } = useLinkToolbarButton(state);
|
|
14408
|
-
return /* @__PURE__ */ React__default.createElement(ToolbarButton, { ref, tooltip: "Link"
|
|
14409
|
-
});
|
|
14410
|
-
const MarkToolbarButton = withRef(({ clear, nodeType, ...rest }, ref) => {
|
|
14411
|
-
const state = useMarkToolbarButtonState({ clear, nodeType });
|
|
14412
|
-
const { props } = useMarkToolbarButton(state);
|
|
14413
|
-
return /* @__PURE__ */ React__default.createElement(ToolbarButton, { ref, ...props, ...rest });
|
|
14339
|
+
return /* @__PURE__ */ React__default.createElement(ToolbarButton, { ref, ...props, ...rest, tooltip: "Link" }, /* @__PURE__ */ React__default.createElement(Icons.link, null));
|
|
14414
14340
|
});
|
|
14415
14341
|
const useMermaidToolbarButtonState = () => {
|
|
14416
14342
|
const editor = useEditorState();
|
|
@@ -14453,6 +14379,7 @@ function OverflowMenu({
|
|
|
14453
14379
|
ToolbarButton,
|
|
14454
14380
|
{
|
|
14455
14381
|
showArrow: false,
|
|
14382
|
+
"data-testid": "rich-text-editor-overflow-menu-button",
|
|
14456
14383
|
className: "lg:min-w-[130px]",
|
|
14457
14384
|
isDropdown: true,
|
|
14458
14385
|
pressed: openState.open,
|
|
@@ -14490,7 +14417,7 @@ const useBlockQuoteToolbarButton = (state) => {
|
|
|
14490
14417
|
const QuoteToolbarButton = withRef(({ clear, ...rest }, ref) => {
|
|
14491
14418
|
const state = useBlockQuoteToolbarButtonState();
|
|
14492
14419
|
const { props } = useBlockQuoteToolbarButton(state);
|
|
14493
|
-
return /* @__PURE__ */ React__default.createElement(ToolbarButton, { ref, tooltip: "
|
|
14420
|
+
return /* @__PURE__ */ React__default.createElement(ToolbarButton, { ref, tooltip: "Quote (⌘+⇧+.)", ...rest, ...props }, /* @__PURE__ */ React__default.createElement(Icons.quote, null));
|
|
14494
14421
|
});
|
|
14495
14422
|
const useRawMarkdownToolbarButton = () => {
|
|
14496
14423
|
const { setRawMode } = useEditorContext();
|
|
@@ -14506,7 +14433,17 @@ const useRawMarkdownToolbarButton = () => {
|
|
|
14506
14433
|
};
|
|
14507
14434
|
const RawMarkdownToolbarButton = withRef(({ clear, ...rest }, ref) => {
|
|
14508
14435
|
const { props } = useRawMarkdownToolbarButton();
|
|
14509
|
-
return /* @__PURE__ */ React__default.createElement(
|
|
14436
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
14437
|
+
ToolbarButton,
|
|
14438
|
+
{
|
|
14439
|
+
ref,
|
|
14440
|
+
tooltip: "Raw Markdown",
|
|
14441
|
+
...rest,
|
|
14442
|
+
...props,
|
|
14443
|
+
"data-testid": "markdown-button"
|
|
14444
|
+
},
|
|
14445
|
+
/* @__PURE__ */ React__default.createElement(Icons.raw, null)
|
|
14446
|
+
);
|
|
14510
14447
|
});
|
|
14511
14448
|
function TableDropdownMenu(props) {
|
|
14512
14449
|
const tableSelected = useEditorSelector(
|
|
@@ -14645,7 +14582,7 @@ const EmbedButton = ({ editor, templates }) => {
|
|
|
14645
14582
|
key: template.name,
|
|
14646
14583
|
onMouseDown: (e) => {
|
|
14647
14584
|
e.preventDefault();
|
|
14648
|
-
|
|
14585
|
+
setOpen(false);
|
|
14649
14586
|
insertMDX(editor, template);
|
|
14650
14587
|
},
|
|
14651
14588
|
className: ""
|
|
@@ -14653,6 +14590,15 @@ const EmbedButton = ({ editor, templates }) => {
|
|
|
14653
14590
|
template.label || template.name
|
|
14654
14591
|
))));
|
|
14655
14592
|
};
|
|
14593
|
+
const MarkToolbarButton = withRef(({ clear, nodeType, ...rest }, ref) => {
|
|
14594
|
+
const state = useMarkToolbarButtonState({ clear, nodeType });
|
|
14595
|
+
const { props } = useMarkToolbarButton(state);
|
|
14596
|
+
return /* @__PURE__ */ React__default.createElement(ToolbarButton, { ref, ...props, ...rest });
|
|
14597
|
+
});
|
|
14598
|
+
const BoldToolbarButton = () => /* @__PURE__ */ React__default.createElement(MarkToolbarButton, { tooltip: "Bold (⌘+B)", nodeType: MARK_BOLD }, /* @__PURE__ */ React__default.createElement(Icons.bold, null));
|
|
14599
|
+
const StrikethroughToolbarButton = () => /* @__PURE__ */ React__default.createElement(MarkToolbarButton, { tooltip: "Strikethrough", nodeType: MARK_STRIKETHROUGH }, /* @__PURE__ */ React__default.createElement(Icons.strikethrough, null));
|
|
14600
|
+
const ItalicToolbarButton = () => /* @__PURE__ */ React__default.createElement(MarkToolbarButton, { tooltip: "Italic (⌘+I)", nodeType: MARK_ITALIC }, /* @__PURE__ */ React__default.createElement(Icons.italic, null));
|
|
14601
|
+
const CodeToolbarButton = () => /* @__PURE__ */ React__default.createElement(MarkToolbarButton, { tooltip: "Code (⌘+E)", nodeType: MARK_CODE }, /* @__PURE__ */ React__default.createElement(Icons.code, null));
|
|
14656
14602
|
const toolbarItems = {
|
|
14657
14603
|
heading: {
|
|
14658
14604
|
label: HEADING_LABEL,
|
|
@@ -14673,32 +14619,37 @@ const toolbarItems = {
|
|
|
14673
14619
|
quote: {
|
|
14674
14620
|
label: "Quote",
|
|
14675
14621
|
width: () => STANDARD_ICON_WIDTH,
|
|
14676
|
-
Component: /* @__PURE__ */ React__default.createElement(QuoteToolbarButton,
|
|
14622
|
+
Component: /* @__PURE__ */ React__default.createElement(QuoteToolbarButton, null)
|
|
14677
14623
|
},
|
|
14678
14624
|
ul: {
|
|
14679
14625
|
label: "Unordered List",
|
|
14680
14626
|
width: () => STANDARD_ICON_WIDTH,
|
|
14681
|
-
Component: /* @__PURE__ */ React__default.createElement(
|
|
14627
|
+
Component: /* @__PURE__ */ React__default.createElement(UnorderedListToolbarButton, null)
|
|
14682
14628
|
},
|
|
14683
14629
|
ol: {
|
|
14684
14630
|
label: "Ordered List",
|
|
14685
14631
|
width: () => STANDARD_ICON_WIDTH,
|
|
14686
|
-
Component: /* @__PURE__ */ React__default.createElement(
|
|
14632
|
+
Component: /* @__PURE__ */ React__default.createElement(OrderedListToolbarButton, null)
|
|
14687
14633
|
},
|
|
14688
14634
|
bold: {
|
|
14689
14635
|
label: "Bold",
|
|
14690
14636
|
width: () => STANDARD_ICON_WIDTH,
|
|
14691
|
-
Component: /* @__PURE__ */ React__default.createElement(
|
|
14637
|
+
Component: /* @__PURE__ */ React__default.createElement(BoldToolbarButton, null)
|
|
14638
|
+
},
|
|
14639
|
+
strikethrough: {
|
|
14640
|
+
label: "Strikethrough",
|
|
14641
|
+
width: () => STANDARD_ICON_WIDTH,
|
|
14642
|
+
Component: /* @__PURE__ */ React__default.createElement(StrikethroughToolbarButton, null)
|
|
14692
14643
|
},
|
|
14693
14644
|
italic: {
|
|
14694
14645
|
label: "Italic",
|
|
14695
14646
|
width: () => STANDARD_ICON_WIDTH,
|
|
14696
|
-
Component: /* @__PURE__ */ React__default.createElement(
|
|
14647
|
+
Component: /* @__PURE__ */ React__default.createElement(ItalicToolbarButton, null)
|
|
14697
14648
|
},
|
|
14698
14649
|
code: {
|
|
14699
14650
|
label: "Code",
|
|
14700
14651
|
width: () => STANDARD_ICON_WIDTH,
|
|
14701
|
-
Component: /* @__PURE__ */ React__default.createElement(
|
|
14652
|
+
Component: /* @__PURE__ */ React__default.createElement(CodeToolbarButton, null)
|
|
14702
14653
|
},
|
|
14703
14654
|
codeBlock: {
|
|
14704
14655
|
label: "Code Block",
|
|
@@ -14731,7 +14682,12 @@ function FixedToolbarButtons() {
|
|
|
14731
14682
|
const [itemsShown, setItemsShown] = React__default.useState(11);
|
|
14732
14683
|
const { overrides, templates } = useToolbarContext();
|
|
14733
14684
|
const showEmbedButton = templates.length > 0;
|
|
14734
|
-
let items2 =
|
|
14685
|
+
let items2 = [];
|
|
14686
|
+
if (Array.isArray(overrides)) {
|
|
14687
|
+
items2 = overrides === void 0 ? Object.values(toolbarItems) : overrides.map((item) => toolbarItems[item]).filter((item) => item !== void 0);
|
|
14688
|
+
} else {
|
|
14689
|
+
items2 = (overrides == null ? void 0 : overrides.toolbar) === void 0 ? Object.values(toolbarItems) : overrides.toolbar.map((item) => toolbarItems[item]).filter((item) => item !== void 0);
|
|
14690
|
+
}
|
|
14735
14691
|
if (!showEmbedButton) {
|
|
14736
14692
|
items2 = items2.filter((item) => item.label !== toolbarItems.embed.label);
|
|
14737
14693
|
}
|
|
@@ -15059,6 +15015,9 @@ const isUrl = (string) => {
|
|
|
15059
15015
|
if (typeof string !== "string") {
|
|
15060
15016
|
return false;
|
|
15061
15017
|
}
|
|
15018
|
+
if (string.startsWith("#")) {
|
|
15019
|
+
return true;
|
|
15020
|
+
}
|
|
15062
15021
|
const generalMatch = string.match(protocolAndDomainRE);
|
|
15063
15022
|
const emailLinkMatch = string.match(emailLintRE);
|
|
15064
15023
|
const localUrlMatch = string.match(localUrlRE);
|
|
@@ -15080,12 +15039,12 @@ const isUrl = (string) => {
|
|
|
15080
15039
|
}
|
|
15081
15040
|
return localhostDomainRE.test(everythingAfterProtocol) || nonLocalhostDomainRE.test(everythingAfterProtocol);
|
|
15082
15041
|
};
|
|
15083
|
-
const RichEditor = (
|
|
15042
|
+
const RichEditor = ({ input, tinaForm, field }) => {
|
|
15084
15043
|
var _a;
|
|
15085
15044
|
const initialValue = React__default.useMemo(
|
|
15086
15045
|
() => {
|
|
15087
15046
|
var _a2, _b;
|
|
15088
|
-
return ((_b = (_a2 =
|
|
15047
|
+
return ((_b = (_a2 = input.value) == null ? void 0 : _a2.children) == null ? void 0 : _b.length) ? input.value.children.map(helpers.normalize) : [{ type: "p", children: [{ type: "text", text: "" }] }];
|
|
15089
15048
|
},
|
|
15090
15049
|
[]
|
|
15091
15050
|
);
|
|
@@ -15113,7 +15072,7 @@ const RichEditor = (props) => {
|
|
|
15113
15072
|
),
|
|
15114
15073
|
[]
|
|
15115
15074
|
);
|
|
15116
|
-
const tempId = [
|
|
15075
|
+
const tempId = [tinaForm.id, input.name].join(".");
|
|
15117
15076
|
const id = React__default.useMemo(() => uuid() + tempId, [tempId]);
|
|
15118
15077
|
const ref = React__default.useRef(null);
|
|
15119
15078
|
React__default.useEffect(() => {
|
|
@@ -15123,13 +15082,13 @@ const RichEditor = (props) => {
|
|
|
15123
15082
|
const plateElement = (_a2 = ref.current) == null ? void 0 : _a2.querySelector(
|
|
15124
15083
|
'[role="textbox"]'
|
|
15125
15084
|
);
|
|
15126
|
-
if (
|
|
15085
|
+
if (field.experimental_focusIntent && plateElement) {
|
|
15127
15086
|
if (plateElement)
|
|
15128
15087
|
plateElement.focus();
|
|
15129
15088
|
}
|
|
15130
15089
|
}, 100);
|
|
15131
15090
|
}
|
|
15132
|
-
}, [
|
|
15091
|
+
}, [field.experimental_focusIntent, ref]);
|
|
15133
15092
|
return /* @__PURE__ */ React__default.createElement("div", { ref }, /* @__PURE__ */ React__default.createElement(
|
|
15134
15093
|
Plate,
|
|
15135
15094
|
{
|
|
@@ -15137,7 +15096,7 @@ const RichEditor = (props) => {
|
|
|
15137
15096
|
initialValue,
|
|
15138
15097
|
plugins: plugins$2,
|
|
15139
15098
|
onChange: (value) => {
|
|
15140
|
-
|
|
15099
|
+
input.onChange({
|
|
15141
15100
|
type: "root",
|
|
15142
15101
|
children: value
|
|
15143
15102
|
});
|
|
@@ -15146,12 +15105,12 @@ const RichEditor = (props) => {
|
|
|
15146
15105
|
/* @__PURE__ */ React__default.createElement(TooltipProvider, null, /* @__PURE__ */ React__default.createElement(
|
|
15147
15106
|
ToolbarProvider,
|
|
15148
15107
|
{
|
|
15149
|
-
tinaForm
|
|
15150
|
-
templates:
|
|
15151
|
-
overrides: (
|
|
15108
|
+
tinaForm,
|
|
15109
|
+
templates: field.templates,
|
|
15110
|
+
overrides: (field == null ? void 0 : field.toolbarOverride) ? field.toolbarOverride : field.overrides
|
|
15152
15111
|
},
|
|
15153
15112
|
/* @__PURE__ */ React__default.createElement(FixedToolbar, null, /* @__PURE__ */ React__default.createElement(FixedToolbarButtons, null)),
|
|
15154
|
-
/* @__PURE__ */ React__default.createElement(FloatingToolbar, null, /* @__PURE__ */ React__default.createElement(FloatingToolbarButtons, null))
|
|
15113
|
+
((_a = field == null ? void 0 : field.overrides) == null ? void 0 : _a.showFloatingToolbar) !== false ? /* @__PURE__ */ React__default.createElement(FloatingToolbar, null, /* @__PURE__ */ React__default.createElement(FloatingToolbarButtons, null)) : null
|
|
15155
15114
|
), /* @__PURE__ */ React__default.createElement(Editor, null))
|
|
15156
15115
|
));
|
|
15157
15116
|
};
|
|
@@ -16339,132 +16298,1209 @@ const ben = [
|
|
|
16339
16298
|
"হয়"
|
|
16340
16299
|
];
|
|
16341
16300
|
const bre = [
|
|
16301
|
+
"'blam",
|
|
16302
|
+
"'d",
|
|
16303
|
+
"'m",
|
|
16304
|
+
"'r",
|
|
16305
|
+
"'ta",
|
|
16306
|
+
"'vat",
|
|
16307
|
+
"'z",
|
|
16308
|
+
"'zo",
|
|
16342
16309
|
"a",
|
|
16343
|
-
"
|
|
16344
|
-
"
|
|
16345
|
-
"
|
|
16346
|
-
"
|
|
16347
|
-
"
|
|
16348
|
-
"
|
|
16349
|
-
"
|
|
16350
|
-
"
|
|
16351
|
-
"
|
|
16352
|
-
"
|
|
16353
|
-
"
|
|
16354
|
-
"
|
|
16355
|
-
"
|
|
16356
|
-
"
|
|
16357
|
-
"
|
|
16358
|
-
"
|
|
16359
|
-
"
|
|
16360
|
-
"
|
|
16361
|
-
"
|
|
16362
|
-
"
|
|
16363
|
-
"
|
|
16310
|
+
"a:",
|
|
16311
|
+
"aba",
|
|
16312
|
+
"abalamour",
|
|
16313
|
+
"abaoe",
|
|
16314
|
+
"ac'hane",
|
|
16315
|
+
"ac'hanoc'h",
|
|
16316
|
+
"ac'hanomp",
|
|
16317
|
+
"ac'hanon",
|
|
16318
|
+
"ac'hanout",
|
|
16319
|
+
"adal",
|
|
16320
|
+
"adalek",
|
|
16321
|
+
"adarre",
|
|
16322
|
+
"ae",
|
|
16323
|
+
"aec'h",
|
|
16324
|
+
"aed",
|
|
16325
|
+
"aemp",
|
|
16326
|
+
"aen",
|
|
16327
|
+
"aent",
|
|
16328
|
+
"aes",
|
|
16329
|
+
"afe",
|
|
16330
|
+
"afec'h",
|
|
16331
|
+
"afed",
|
|
16332
|
+
"afemp",
|
|
16333
|
+
"afen",
|
|
16334
|
+
"afent",
|
|
16335
|
+
"afes",
|
|
16336
|
+
"ag",
|
|
16337
|
+
"ah",
|
|
16338
|
+
"aimp",
|
|
16339
|
+
"aint",
|
|
16340
|
+
"aio",
|
|
16341
|
+
"aiou",
|
|
16342
|
+
"aje",
|
|
16343
|
+
"ajec'h",
|
|
16344
|
+
"ajed",
|
|
16345
|
+
"ajemp",
|
|
16346
|
+
"ajen",
|
|
16347
|
+
"ajent",
|
|
16348
|
+
"ajes",
|
|
16349
|
+
"al",
|
|
16350
|
+
"alato",
|
|
16351
|
+
"alies",
|
|
16352
|
+
"aliesañ",
|
|
16353
|
+
"alkent",
|
|
16354
|
+
"all",
|
|
16355
|
+
"allas",
|
|
16356
|
+
"allo",
|
|
16357
|
+
"allô",
|
|
16358
|
+
"am",
|
|
16359
|
+
"amañ",
|
|
16360
|
+
"amzer",
|
|
16361
|
+
"an",
|
|
16362
|
+
"anezhañ",
|
|
16363
|
+
"anezhe",
|
|
16364
|
+
"anezhi",
|
|
16365
|
+
"anezho",
|
|
16366
|
+
"anvet",
|
|
16367
|
+
"aon",
|
|
16368
|
+
"aotren",
|
|
16369
|
+
"ar",
|
|
16370
|
+
"arall",
|
|
16371
|
+
"araok",
|
|
16372
|
+
"araoki",
|
|
16373
|
+
"araozañ",
|
|
16374
|
+
"araozo",
|
|
16375
|
+
"araozoc'h",
|
|
16376
|
+
"araozomp",
|
|
16377
|
+
"araozon",
|
|
16378
|
+
"araozor",
|
|
16379
|
+
"araozout",
|
|
16380
|
+
"arbenn",
|
|
16381
|
+
"arre",
|
|
16382
|
+
"atalek",
|
|
16383
|
+
"atav",
|
|
16384
|
+
"az",
|
|
16385
|
+
"azalek",
|
|
16386
|
+
"azirazañ",
|
|
16387
|
+
"azirazi",
|
|
16388
|
+
"azirazo",
|
|
16389
|
+
"azirazoc'h",
|
|
16390
|
+
"azirazomp",
|
|
16391
|
+
"azirazon",
|
|
16392
|
+
"azirazor",
|
|
16393
|
+
"azirazout",
|
|
16394
|
+
"b:",
|
|
16395
|
+
"ba",
|
|
16396
|
+
"ba'l",
|
|
16397
|
+
"ba'n",
|
|
16398
|
+
"ba'r",
|
|
16399
|
+
"bad",
|
|
16400
|
+
"bah",
|
|
16401
|
+
"bal",
|
|
16402
|
+
"ban",
|
|
16403
|
+
"bar",
|
|
16404
|
+
"bastañ",
|
|
16405
|
+
"befe",
|
|
16406
|
+
"bell",
|
|
16407
|
+
"benaos",
|
|
16408
|
+
"benn",
|
|
16409
|
+
"bennag",
|
|
16410
|
+
"bennak",
|
|
16411
|
+
"bennozh",
|
|
16412
|
+
"bep",
|
|
16413
|
+
"bepred",
|
|
16414
|
+
"berr",
|
|
16415
|
+
"berzh",
|
|
16416
|
+
"bet",
|
|
16417
|
+
"betek",
|
|
16418
|
+
"betra",
|
|
16419
|
+
"bev",
|
|
16420
|
+
"bevet",
|
|
16421
|
+
"bez",
|
|
16422
|
+
"bezañ",
|
|
16423
|
+
"beze",
|
|
16424
|
+
"bezent",
|
|
16425
|
+
"bezet",
|
|
16426
|
+
"bezh",
|
|
16427
|
+
"bezit",
|
|
16428
|
+
"bezomp",
|
|
16429
|
+
"bihan",
|
|
16430
|
+
"bije",
|
|
16431
|
+
"biou",
|
|
16432
|
+
"biskoazh",
|
|
16433
|
+
"blam",
|
|
16434
|
+
"bo",
|
|
16435
|
+
"boa",
|
|
16436
|
+
"bominapl",
|
|
16437
|
+
"boudoudom",
|
|
16438
|
+
"bouez",
|
|
16439
|
+
"boull",
|
|
16440
|
+
"boum",
|
|
16441
|
+
"bout",
|
|
16442
|
+
"bras",
|
|
16443
|
+
"brasañ",
|
|
16444
|
+
"brav",
|
|
16445
|
+
"bravo",
|
|
16446
|
+
"bremañ",
|
|
16447
|
+
"bres",
|
|
16448
|
+
"brokenn",
|
|
16449
|
+
"bronn",
|
|
16450
|
+
"brrr",
|
|
16451
|
+
"brutal",
|
|
16452
|
+
"buhezek",
|
|
16453
|
+
"c'h:",
|
|
16454
|
+
"c'haout",
|
|
16455
|
+
"c'he",
|
|
16456
|
+
"c'hem",
|
|
16457
|
+
"c'herz",
|
|
16458
|
+
"c'heñver",
|
|
16459
|
+
"c'hichen",
|
|
16460
|
+
"c'hiz",
|
|
16461
|
+
"c'hoazh",
|
|
16462
|
+
"c'horre",
|
|
16463
|
+
"c'houde",
|
|
16464
|
+
"c'houst",
|
|
16465
|
+
"c'hreiz",
|
|
16466
|
+
"c'hwec'h",
|
|
16467
|
+
"c'hwec'hvet",
|
|
16468
|
+
"c'hwezek",
|
|
16469
|
+
"c'hwi",
|
|
16470
|
+
"ch:",
|
|
16471
|
+
"chaous",
|
|
16472
|
+
"chik",
|
|
16473
|
+
"chit",
|
|
16474
|
+
"chom",
|
|
16475
|
+
"chut",
|
|
16476
|
+
"d'",
|
|
16477
|
+
"d'al",
|
|
16478
|
+
"d'an",
|
|
16479
|
+
"d'ar",
|
|
16480
|
+
"d'az",
|
|
16481
|
+
"d'e",
|
|
16482
|
+
"d'he",
|
|
16483
|
+
"d'ho",
|
|
16484
|
+
"d'hol",
|
|
16485
|
+
"d'hon",
|
|
16486
|
+
"d'hor",
|
|
16487
|
+
"d'o",
|
|
16488
|
+
"d'ober",
|
|
16489
|
+
"d'ul",
|
|
16490
|
+
"d'un",
|
|
16491
|
+
"d'ur",
|
|
16492
|
+
"d:",
|
|
16364
16493
|
"da",
|
|
16365
|
-
"
|
|
16366
|
-
"
|
|
16367
|
-
"
|
|
16368
|
-
"
|
|
16369
|
-
"
|
|
16370
|
-
"
|
|
16371
|
-
"
|
|
16372
|
-
"
|
|
16373
|
-
"
|
|
16374
|
-
"
|
|
16375
|
-
"
|
|
16376
|
-
"
|
|
16377
|
-
"
|
|
16378
|
-
"
|
|
16379
|
-
"
|
|
16494
|
+
"dak",
|
|
16495
|
+
"daka",
|
|
16496
|
+
"dal",
|
|
16497
|
+
"dalbezh",
|
|
16498
|
+
"dalc'hmat",
|
|
16499
|
+
"dalit",
|
|
16500
|
+
"damdost",
|
|
16501
|
+
"damheñvel",
|
|
16502
|
+
"damm",
|
|
16503
|
+
"dan",
|
|
16504
|
+
"danvez",
|
|
16505
|
+
"dao",
|
|
16506
|
+
"daol",
|
|
16507
|
+
"daonet",
|
|
16508
|
+
"daou",
|
|
16509
|
+
"daoust",
|
|
16510
|
+
"daouzek",
|
|
16511
|
+
"daouzekvet",
|
|
16512
|
+
"darn",
|
|
16513
|
+
"dastrewiñ",
|
|
16514
|
+
"dav",
|
|
16515
|
+
"davedoc'h",
|
|
16516
|
+
"davedomp",
|
|
16517
|
+
"davedon",
|
|
16518
|
+
"davedor",
|
|
16519
|
+
"davedout",
|
|
16520
|
+
"davet",
|
|
16521
|
+
"davetañ",
|
|
16522
|
+
"davete",
|
|
16523
|
+
"daveti",
|
|
16524
|
+
"daveto",
|
|
16525
|
+
"defe",
|
|
16526
|
+
"dehou",
|
|
16527
|
+
"dek",
|
|
16528
|
+
"dekvet",
|
|
16529
|
+
"den",
|
|
16530
|
+
"deoc'h",
|
|
16531
|
+
"deomp",
|
|
16532
|
+
"deor",
|
|
16533
|
+
"derc'hel",
|
|
16534
|
+
"deus",
|
|
16535
|
+
"dez",
|
|
16536
|
+
"deze",
|
|
16537
|
+
"dezhañ",
|
|
16538
|
+
"dezhe",
|
|
16539
|
+
"dezhi",
|
|
16540
|
+
"dezho",
|
|
16541
|
+
"di",
|
|
16542
|
+
"diabarzh",
|
|
16543
|
+
"diagent",
|
|
16544
|
+
"diar",
|
|
16545
|
+
"diaraok",
|
|
16546
|
+
"diavaez",
|
|
16547
|
+
"dibaoe",
|
|
16548
|
+
"dibaot",
|
|
16549
|
+
"dibar",
|
|
16550
|
+
"dic'halañ",
|
|
16551
|
+
"didiac'h",
|
|
16552
|
+
"dienn",
|
|
16553
|
+
"difer",
|
|
16554
|
+
"diganeoc'h",
|
|
16555
|
+
"diganeomp",
|
|
16556
|
+
"diganeor",
|
|
16557
|
+
"diganimp",
|
|
16558
|
+
"diganin",
|
|
16559
|
+
"diganit",
|
|
16560
|
+
"digant",
|
|
16561
|
+
"digantañ",
|
|
16562
|
+
"digante",
|
|
16563
|
+
"diganti",
|
|
16564
|
+
"diganto",
|
|
16565
|
+
"digemmesk",
|
|
16566
|
+
"diget",
|
|
16567
|
+
"digor",
|
|
16568
|
+
"digoret",
|
|
16569
|
+
"dija",
|
|
16570
|
+
"dije",
|
|
16571
|
+
"dimp",
|
|
16572
|
+
"din",
|
|
16573
|
+
"dinaou",
|
|
16574
|
+
"dindan",
|
|
16575
|
+
"dindanañ",
|
|
16576
|
+
"dindani",
|
|
16577
|
+
"dindano",
|
|
16578
|
+
"dindanoc'h",
|
|
16579
|
+
"dindanomp",
|
|
16580
|
+
"dindanon",
|
|
16581
|
+
"dindanor",
|
|
16582
|
+
"dindanout",
|
|
16583
|
+
"dioutañ",
|
|
16584
|
+
"dioute",
|
|
16585
|
+
"diouti",
|
|
16586
|
+
"diouto",
|
|
16587
|
+
"diouzh",
|
|
16588
|
+
"diouzhin",
|
|
16589
|
+
"diouzhit",
|
|
16590
|
+
"diouzhoc'h",
|
|
16591
|
+
"diouzhomp",
|
|
16592
|
+
"diouzhor",
|
|
16593
|
+
"dirak",
|
|
16594
|
+
"dirazañ",
|
|
16595
|
+
"dirazi",
|
|
16596
|
+
"dirazo",
|
|
16597
|
+
"dirazoc'h",
|
|
16598
|
+
"dirazomp",
|
|
16599
|
+
"dirazon",
|
|
16600
|
+
"dirazor",
|
|
16601
|
+
"dirazout",
|
|
16602
|
+
"disheñvel",
|
|
16603
|
+
"dispar",
|
|
16604
|
+
"distank",
|
|
16605
|
+
"dister",
|
|
16606
|
+
"disterañ",
|
|
16607
|
+
"disterig",
|
|
16608
|
+
"distro",
|
|
16609
|
+
"dit",
|
|
16610
|
+
"divaez",
|
|
16611
|
+
"diwar",
|
|
16612
|
+
"diwezhat",
|
|
16613
|
+
"diwezhañ",
|
|
16380
16614
|
"do",
|
|
16381
|
-
"
|
|
16382
|
-
"
|
|
16615
|
+
"doa",
|
|
16616
|
+
"doare",
|
|
16617
|
+
"dont",
|
|
16618
|
+
"dost",
|
|
16619
|
+
"doue",
|
|
16620
|
+
"douetus",
|
|
16621
|
+
"douez",
|
|
16622
|
+
"doug",
|
|
16623
|
+
"draou",
|
|
16624
|
+
"draoñ",
|
|
16625
|
+
"dre",
|
|
16626
|
+
"drede",
|
|
16627
|
+
"dreist",
|
|
16628
|
+
"dreistañ",
|
|
16629
|
+
"dreisti",
|
|
16630
|
+
"dreisto",
|
|
16631
|
+
"dreistoc'h",
|
|
16632
|
+
"dreistomp",
|
|
16633
|
+
"dreiston",
|
|
16634
|
+
"dreistor",
|
|
16635
|
+
"dreistout",
|
|
16636
|
+
"drek",
|
|
16637
|
+
"dreñv",
|
|
16638
|
+
"dring",
|
|
16639
|
+
"dro",
|
|
16640
|
+
"du",
|
|
16383
16641
|
"e",
|
|
16384
|
-
"
|
|
16385
|
-
"
|
|
16386
|
-
"
|
|
16387
|
-
"
|
|
16642
|
+
"e:",
|
|
16643
|
+
"eas",
|
|
16644
|
+
"ebet",
|
|
16645
|
+
"ec'h",
|
|
16646
|
+
"edo",
|
|
16647
|
+
"edoc'h",
|
|
16648
|
+
"edod",
|
|
16649
|
+
"edomp",
|
|
16650
|
+
"edon",
|
|
16651
|
+
"edont",
|
|
16652
|
+
"edos",
|
|
16653
|
+
"eer",
|
|
16654
|
+
"eeun",
|
|
16655
|
+
"efed",
|
|
16656
|
+
"egedoc'h",
|
|
16657
|
+
"egedomp",
|
|
16658
|
+
"egedon",
|
|
16659
|
+
"egedor",
|
|
16660
|
+
"egedout",
|
|
16661
|
+
"eget",
|
|
16662
|
+
"egetañ",
|
|
16663
|
+
"egete",
|
|
16664
|
+
"egeti",
|
|
16665
|
+
"egeto",
|
|
16666
|
+
"eh",
|
|
16667
|
+
"eil",
|
|
16668
|
+
"eilvet",
|
|
16669
|
+
"eizh",
|
|
16670
|
+
"eizhvet",
|
|
16671
|
+
"ejoc'h",
|
|
16672
|
+
"ejod",
|
|
16673
|
+
"ejomp",
|
|
16674
|
+
"ejont",
|
|
16675
|
+
"ejout",
|
|
16676
|
+
"el",
|
|
16388
16677
|
"em",
|
|
16389
|
-
"
|
|
16390
|
-
"
|
|
16391
|
-
"
|
|
16392
|
-
"
|
|
16393
|
-
"
|
|
16394
|
-
"
|
|
16395
|
-
"
|
|
16396
|
-
"
|
|
16397
|
-
"
|
|
16398
|
-
"
|
|
16678
|
+
"emaint",
|
|
16679
|
+
"emaoc'h",
|
|
16680
|
+
"emaomp",
|
|
16681
|
+
"emaon",
|
|
16682
|
+
"emaout",
|
|
16683
|
+
"emañ",
|
|
16684
|
+
"eme",
|
|
16685
|
+
"emeur",
|
|
16686
|
+
"emezañ",
|
|
16687
|
+
"emezi",
|
|
16688
|
+
"emezo",
|
|
16689
|
+
"emezoc'h",
|
|
16690
|
+
"emezomp",
|
|
16691
|
+
"emezon",
|
|
16692
|
+
"emezout",
|
|
16693
|
+
"emporzhiañ",
|
|
16694
|
+
"en",
|
|
16695
|
+
"end",
|
|
16696
|
+
"endan",
|
|
16697
|
+
"endra",
|
|
16698
|
+
"enep",
|
|
16699
|
+
"ennañ",
|
|
16700
|
+
"enni",
|
|
16701
|
+
"enno",
|
|
16702
|
+
"ennoc'h",
|
|
16703
|
+
"ennomp",
|
|
16704
|
+
"ennon",
|
|
16705
|
+
"ennor",
|
|
16706
|
+
"ennout",
|
|
16707
|
+
"enta",
|
|
16708
|
+
"eo",
|
|
16709
|
+
"eomp",
|
|
16710
|
+
"eont",
|
|
16711
|
+
"eor",
|
|
16712
|
+
"eot",
|
|
16713
|
+
"er",
|
|
16714
|
+
"erbet",
|
|
16715
|
+
"erfin",
|
|
16716
|
+
"esa",
|
|
16717
|
+
"esae",
|
|
16718
|
+
"espar",
|
|
16719
|
+
"estlamm",
|
|
16720
|
+
"estrañj",
|
|
16721
|
+
"eta",
|
|
16722
|
+
"etre",
|
|
16723
|
+
"etreoc'h",
|
|
16724
|
+
"etrezo",
|
|
16725
|
+
"etrezoc'h",
|
|
16726
|
+
"etrezomp",
|
|
16727
|
+
"etrezor",
|
|
16728
|
+
"euh",
|
|
16729
|
+
"eur",
|
|
16730
|
+
"eus",
|
|
16731
|
+
"evel",
|
|
16732
|
+
"evelato",
|
|
16733
|
+
"eveldoc'h",
|
|
16734
|
+
"eveldomp",
|
|
16735
|
+
"eveldon",
|
|
16736
|
+
"eveldor",
|
|
16737
|
+
"eveldout",
|
|
16738
|
+
"evelkent",
|
|
16739
|
+
"eveltañ",
|
|
16740
|
+
"evelte",
|
|
16741
|
+
"evelti",
|
|
16742
|
+
"evelto",
|
|
16743
|
+
"evidoc'h",
|
|
16744
|
+
"evidomp",
|
|
16745
|
+
"evidon",
|
|
16746
|
+
"evidor",
|
|
16747
|
+
"evidout",
|
|
16748
|
+
"evit",
|
|
16749
|
+
"evitañ",
|
|
16750
|
+
"evite",
|
|
16751
|
+
"eviti",
|
|
16752
|
+
"evito",
|
|
16753
|
+
"ez",
|
|
16754
|
+
"eñ",
|
|
16755
|
+
"f:",
|
|
16756
|
+
"fac'h",
|
|
16757
|
+
"fall",
|
|
16758
|
+
"fed",
|
|
16759
|
+
"feiz",
|
|
16760
|
+
"fenn",
|
|
16761
|
+
"fezh",
|
|
16762
|
+
"fin",
|
|
16763
|
+
"finsalvet",
|
|
16764
|
+
"foei",
|
|
16765
|
+
"fouilhezañ",
|
|
16766
|
+
"g:",
|
|
16767
|
+
"gallout",
|
|
16768
|
+
"ganeoc'h",
|
|
16769
|
+
"ganeomp",
|
|
16770
|
+
"ganin",
|
|
16771
|
+
"ganit",
|
|
16772
|
+
"gant",
|
|
16773
|
+
"gantañ",
|
|
16774
|
+
"ganti",
|
|
16775
|
+
"ganto",
|
|
16776
|
+
"gaout",
|
|
16777
|
+
"gast",
|
|
16778
|
+
"gein",
|
|
16779
|
+
"gellout",
|
|
16780
|
+
"genndost",
|
|
16781
|
+
"gentañ",
|
|
16782
|
+
"ger",
|
|
16783
|
+
"gerz",
|
|
16784
|
+
"get",
|
|
16785
|
+
"geñver",
|
|
16786
|
+
"gichen",
|
|
16787
|
+
"gin",
|
|
16788
|
+
"giz",
|
|
16789
|
+
"glan",
|
|
16790
|
+
"gloev",
|
|
16791
|
+
"goll",
|
|
16792
|
+
"gorre",
|
|
16793
|
+
"goude",
|
|
16794
|
+
"gouez",
|
|
16795
|
+
"gouezit",
|
|
16796
|
+
"gouezomp",
|
|
16797
|
+
"goulz",
|
|
16798
|
+
"gounnar",
|
|
16799
|
+
"gour",
|
|
16800
|
+
"goust",
|
|
16801
|
+
"gouze",
|
|
16802
|
+
"gouzout",
|
|
16803
|
+
"gra",
|
|
16804
|
+
"grak",
|
|
16805
|
+
"grec'h",
|
|
16806
|
+
"greiz",
|
|
16807
|
+
"grenn",
|
|
16808
|
+
"greomp",
|
|
16809
|
+
"grit",
|
|
16810
|
+
"groñs",
|
|
16811
|
+
"gutez",
|
|
16812
|
+
"gwall",
|
|
16813
|
+
"gwashoc'h",
|
|
16814
|
+
"gwazh",
|
|
16815
|
+
"gwech",
|
|
16816
|
+
"gwechall",
|
|
16817
|
+
"gwechoù",
|
|
16818
|
+
"gwell",
|
|
16819
|
+
"gwezh",
|
|
16820
|
+
"gwezhall",
|
|
16821
|
+
"gwezharall",
|
|
16822
|
+
"gwezhoù",
|
|
16823
|
+
"gwig",
|
|
16824
|
+
"gwirionez",
|
|
16825
|
+
"gwitibunan",
|
|
16826
|
+
"gêr",
|
|
16827
|
+
"h:",
|
|
16399
16828
|
"ha",
|
|
16400
|
-
"
|
|
16401
|
-
"
|
|
16402
|
-
"
|
|
16403
|
-
"
|
|
16404
|
-
"
|
|
16405
|
-
"
|
|
16406
|
-
"
|
|
16407
|
-
"
|
|
16408
|
-
"
|
|
16409
|
-
"
|
|
16410
|
-
"
|
|
16829
|
+
"hag",
|
|
16830
|
+
"han",
|
|
16831
|
+
"hanter",
|
|
16832
|
+
"hanterc'hantad",
|
|
16833
|
+
"hanterkantved",
|
|
16834
|
+
"harz",
|
|
16835
|
+
"hañ",
|
|
16836
|
+
"hañval",
|
|
16837
|
+
"he",
|
|
16838
|
+
"hebioù",
|
|
16839
|
+
"hec'h",
|
|
16840
|
+
"hei",
|
|
16841
|
+
"hein",
|
|
16842
|
+
"hem",
|
|
16843
|
+
"hemañ",
|
|
16844
|
+
"hen",
|
|
16845
|
+
"hend",
|
|
16846
|
+
"henhont",
|
|
16847
|
+
"henn",
|
|
16848
|
+
"hennezh",
|
|
16849
|
+
"hent",
|
|
16850
|
+
"hep",
|
|
16851
|
+
"hervez",
|
|
16852
|
+
"hervezañ",
|
|
16853
|
+
"hervezi",
|
|
16854
|
+
"hervezo",
|
|
16855
|
+
"hervezoc'h",
|
|
16856
|
+
"hervezomp",
|
|
16857
|
+
"hervezon",
|
|
16858
|
+
"hervezor",
|
|
16859
|
+
"hervezout",
|
|
16860
|
+
"heul",
|
|
16861
|
+
"heuliañ",
|
|
16862
|
+
"hevelep",
|
|
16863
|
+
"heverk",
|
|
16864
|
+
"heñvel",
|
|
16865
|
+
"heñvelat",
|
|
16866
|
+
"heñvelañ",
|
|
16867
|
+
"heñveliñ",
|
|
16868
|
+
"heñveloc'h",
|
|
16869
|
+
"heñvelout",
|
|
16870
|
+
"hi",
|
|
16871
|
+
"hilh",
|
|
16872
|
+
"hini",
|
|
16873
|
+
"hirie",
|
|
16874
|
+
"hirio",
|
|
16875
|
+
"hiziv",
|
|
16876
|
+
"hiziviken",
|
|
16877
|
+
"ho",
|
|
16878
|
+
"hoaliñ",
|
|
16879
|
+
"hoc'h",
|
|
16880
|
+
"hogen",
|
|
16881
|
+
"hogos",
|
|
16882
|
+
"hogozik",
|
|
16883
|
+
"hol",
|
|
16884
|
+
"holl",
|
|
16885
|
+
"holà",
|
|
16886
|
+
"homañ",
|
|
16887
|
+
"hon",
|
|
16888
|
+
"honhont",
|
|
16889
|
+
"honnezh",
|
|
16890
|
+
"hont",
|
|
16891
|
+
"hop",
|
|
16892
|
+
"hopala",
|
|
16893
|
+
"hor",
|
|
16894
|
+
"hou",
|
|
16895
|
+
"houp",
|
|
16896
|
+
"hudu",
|
|
16897
|
+
"hue",
|
|
16898
|
+
"hui",
|
|
16899
|
+
"hum",
|
|
16900
|
+
"hurrah",
|
|
16901
|
+
"i",
|
|
16902
|
+
"i:",
|
|
16903
|
+
"in",
|
|
16904
|
+
"int",
|
|
16905
|
+
"is",
|
|
16906
|
+
"ispisial",
|
|
16907
|
+
"isurzhiet",
|
|
16908
|
+
"it",
|
|
16909
|
+
"ivez",
|
|
16910
|
+
"izelañ",
|
|
16911
|
+
"j:",
|
|
16912
|
+
"just",
|
|
16913
|
+
"k:",
|
|
16914
|
+
"kae",
|
|
16915
|
+
"kaer",
|
|
16916
|
+
"kalon",
|
|
16917
|
+
"kalz",
|
|
16918
|
+
"kant",
|
|
16919
|
+
"kaout",
|
|
16920
|
+
"kar",
|
|
16921
|
+
"kazi",
|
|
16922
|
+
"keid",
|
|
16923
|
+
"kein",
|
|
16924
|
+
"keit",
|
|
16925
|
+
"kel",
|
|
16926
|
+
"kellies",
|
|
16927
|
+
"keloù",
|
|
16928
|
+
"kement",
|
|
16929
|
+
"ken",
|
|
16930
|
+
"kenkent",
|
|
16931
|
+
"kenkoulz",
|
|
16932
|
+
"kenment",
|
|
16933
|
+
"kent",
|
|
16934
|
+
"kentañ",
|
|
16935
|
+
"kentizh",
|
|
16936
|
+
"kentoc'h",
|
|
16937
|
+
"kentre",
|
|
16938
|
+
"ker",
|
|
16939
|
+
"kerkent",
|
|
16940
|
+
"kerz",
|
|
16941
|
+
"kerzh",
|
|
16942
|
+
"ket",
|
|
16943
|
+
"keta",
|
|
16944
|
+
"keñver",
|
|
16945
|
+
"keñverel",
|
|
16946
|
+
"keñverius",
|
|
16947
|
+
"kichen",
|
|
16948
|
+
"kichenik",
|
|
16949
|
+
"kit",
|
|
16950
|
+
"kiz",
|
|
16951
|
+
"klak",
|
|
16952
|
+
"klek",
|
|
16953
|
+
"klik",
|
|
16954
|
+
"komprenet",
|
|
16955
|
+
"komz",
|
|
16956
|
+
"kont",
|
|
16957
|
+
"korf",
|
|
16958
|
+
"korre",
|
|
16959
|
+
"koulskoude",
|
|
16960
|
+
"koulz",
|
|
16961
|
+
"koust",
|
|
16962
|
+
"krak",
|
|
16963
|
+
"krampouezh",
|
|
16964
|
+
"krec'h",
|
|
16965
|
+
"kreiz",
|
|
16966
|
+
"kuit",
|
|
16967
|
+
"kwir",
|
|
16968
|
+
"l:",
|
|
16969
|
+
"la",
|
|
16970
|
+
"laez",
|
|
16971
|
+
"laoskel",
|
|
16972
|
+
"laouen",
|
|
16973
|
+
"lavar",
|
|
16974
|
+
"lavaret",
|
|
16975
|
+
"lavarout",
|
|
16976
|
+
"lec'h",
|
|
16977
|
+
"lein",
|
|
16978
|
+
"leizh",
|
|
16979
|
+
"lerc'h",
|
|
16980
|
+
"leun",
|
|
16981
|
+
"leuskel",
|
|
16982
|
+
"lew",
|
|
16983
|
+
"lies",
|
|
16984
|
+
"liesañ",
|
|
16985
|
+
"lod",
|
|
16986
|
+
"lusk",
|
|
16987
|
+
"lâr",
|
|
16988
|
+
"lârout",
|
|
16989
|
+
"m:",
|
|
16990
|
+
"ma",
|
|
16991
|
+
"ma'z",
|
|
16992
|
+
"mac'h",
|
|
16993
|
+
"mac'hat",
|
|
16994
|
+
"mac'hañ",
|
|
16995
|
+
"mac'hoc'h",
|
|
16996
|
+
"mad",
|
|
16997
|
+
"maez",
|
|
16998
|
+
"maksimal",
|
|
16999
|
+
"mann",
|
|
17000
|
+
"mar",
|
|
17001
|
+
"mard",
|
|
17002
|
+
"marg",
|
|
17003
|
+
"marzh",
|
|
17004
|
+
"mat",
|
|
17005
|
+
"mañ",
|
|
17006
|
+
"me",
|
|
17007
|
+
"memes",
|
|
17008
|
+
"memestra",
|
|
17009
|
+
"merkapl",
|
|
17010
|
+
"mersi",
|
|
17011
|
+
"mes",
|
|
17012
|
+
"mesk",
|
|
17013
|
+
"met",
|
|
17014
|
+
"meur",
|
|
17015
|
+
"mil",
|
|
17016
|
+
"minimal",
|
|
17017
|
+
"moan",
|
|
17018
|
+
"moaniaat",
|
|
17019
|
+
"mod",
|
|
17020
|
+
"mont",
|
|
17021
|
+
"mout",
|
|
17022
|
+
"mui",
|
|
17023
|
+
"muiañ",
|
|
17024
|
+
"muioc'h",
|
|
17025
|
+
"n",
|
|
17026
|
+
"n'",
|
|
17027
|
+
"n:",
|
|
16411
17028
|
"na",
|
|
16412
|
-
"
|
|
16413
|
-
"
|
|
16414
|
-
"
|
|
16415
|
-
"
|
|
16416
|
-
"
|
|
16417
|
-
"
|
|
17029
|
+
"nag",
|
|
17030
|
+
"naontek",
|
|
17031
|
+
"naturel",
|
|
17032
|
+
"nav",
|
|
17033
|
+
"navet",
|
|
17034
|
+
"ne",
|
|
17035
|
+
"nebeudig",
|
|
17036
|
+
"nebeut",
|
|
17037
|
+
"nebeutañ",
|
|
17038
|
+
"nebeutoc'h",
|
|
17039
|
+
"neketa",
|
|
17040
|
+
"nemedoc'h",
|
|
17041
|
+
"nemedomp",
|
|
17042
|
+
"nemedon",
|
|
17043
|
+
"nemedor",
|
|
17044
|
+
"nemedout",
|
|
17045
|
+
"nemet",
|
|
17046
|
+
"nemetañ",
|
|
17047
|
+
"nemete",
|
|
17048
|
+
"nemeti",
|
|
17049
|
+
"nemeto",
|
|
17050
|
+
"nemeur",
|
|
17051
|
+
"neoac'h",
|
|
17052
|
+
"nepell",
|
|
17053
|
+
"nerzh",
|
|
17054
|
+
"nes",
|
|
17055
|
+
"neseser",
|
|
17056
|
+
"netra",
|
|
17057
|
+
"neubeudoù",
|
|
17058
|
+
"neuhe",
|
|
17059
|
+
"neuze",
|
|
17060
|
+
"nevez",
|
|
17061
|
+
"newazh",
|
|
17062
|
+
"nez",
|
|
17063
|
+
"ni",
|
|
17064
|
+
"nikun",
|
|
17065
|
+
"niverus",
|
|
17066
|
+
"nul",
|
|
16418
17067
|
"o",
|
|
16419
|
-
"
|
|
16420
|
-
"
|
|
16421
|
-
"
|
|
16422
|
-
"
|
|
16423
|
-
"
|
|
16424
|
-
"
|
|
16425
|
-
"
|
|
16426
|
-
"
|
|
16427
|
-
"
|
|
16428
|
-
"
|
|
16429
|
-
"
|
|
16430
|
-
"
|
|
16431
|
-
"
|
|
16432
|
-
"
|
|
16433
|
-
"
|
|
16434
|
-
"
|
|
16435
|
-
"
|
|
16436
|
-
"
|
|
16437
|
-
"
|
|
16438
|
-
"
|
|
16439
|
-
"
|
|
16440
|
-
"
|
|
16441
|
-
"
|
|
16442
|
-
"
|
|
17068
|
+
"o:",
|
|
17069
|
+
"oa",
|
|
17070
|
+
"oac'h",
|
|
17071
|
+
"oad",
|
|
17072
|
+
"oamp",
|
|
17073
|
+
"oan",
|
|
17074
|
+
"oant",
|
|
17075
|
+
"oar",
|
|
17076
|
+
"oas",
|
|
17077
|
+
"ober",
|
|
17078
|
+
"oc'h",
|
|
17079
|
+
"oc'ho",
|
|
17080
|
+
"oc'hola",
|
|
17081
|
+
"oc'hpenn",
|
|
17082
|
+
"oh",
|
|
17083
|
+
"ohe",
|
|
17084
|
+
"ollé",
|
|
17085
|
+
"olole",
|
|
17086
|
+
"olé",
|
|
17087
|
+
"omp",
|
|
17088
|
+
"on",
|
|
17089
|
+
"ordin",
|
|
17090
|
+
"ordinal",
|
|
17091
|
+
"ouejoc'h",
|
|
17092
|
+
"ouejod",
|
|
17093
|
+
"ouejomp",
|
|
17094
|
+
"ouejont",
|
|
17095
|
+
"ouejout",
|
|
17096
|
+
"ouek",
|
|
17097
|
+
"ouezas",
|
|
17098
|
+
"ouezi",
|
|
17099
|
+
"ouezimp",
|
|
17100
|
+
"ouezin",
|
|
17101
|
+
"ouezint",
|
|
17102
|
+
"ouezis",
|
|
17103
|
+
"ouezo",
|
|
17104
|
+
"ouezoc'h",
|
|
17105
|
+
"ouezor",
|
|
17106
|
+
"ouf",
|
|
17107
|
+
"oufe",
|
|
17108
|
+
"oufec'h",
|
|
17109
|
+
"oufed",
|
|
17110
|
+
"oufemp",
|
|
17111
|
+
"oufen",
|
|
17112
|
+
"oufent",
|
|
17113
|
+
"oufes",
|
|
17114
|
+
"ouie",
|
|
17115
|
+
"ouiec'h",
|
|
17116
|
+
"ouied",
|
|
17117
|
+
"ouiemp",
|
|
17118
|
+
"ouien",
|
|
17119
|
+
"ouient",
|
|
17120
|
+
"ouies",
|
|
17121
|
+
"ouije",
|
|
17122
|
+
"ouijec'h",
|
|
17123
|
+
"ouijed",
|
|
17124
|
+
"ouijemp",
|
|
17125
|
+
"ouijen",
|
|
17126
|
+
"ouijent",
|
|
17127
|
+
"ouijes",
|
|
17128
|
+
"out",
|
|
17129
|
+
"outañ",
|
|
17130
|
+
"outi",
|
|
17131
|
+
"outo",
|
|
17132
|
+
"ouzer",
|
|
17133
|
+
"ouzh",
|
|
17134
|
+
"ouzhin",
|
|
17135
|
+
"ouzhit",
|
|
17136
|
+
"ouzhoc'h",
|
|
17137
|
+
"ouzhomp",
|
|
17138
|
+
"ouzhor",
|
|
17139
|
+
"ouzhpenn",
|
|
17140
|
+
"ouzhpennik",
|
|
17141
|
+
"ouzoc'h",
|
|
17142
|
+
"ouzomp",
|
|
17143
|
+
"ouzon",
|
|
17144
|
+
"ouzont",
|
|
17145
|
+
"ouzout",
|
|
17146
|
+
"p'",
|
|
17147
|
+
"p:",
|
|
17148
|
+
"pa",
|
|
17149
|
+
"pad",
|
|
17150
|
+
"padal",
|
|
17151
|
+
"paf",
|
|
17152
|
+
"pan",
|
|
17153
|
+
"panevedeoc'h",
|
|
17154
|
+
"panevedo",
|
|
17155
|
+
"panevedomp",
|
|
17156
|
+
"panevedon",
|
|
17157
|
+
"panevedout",
|
|
17158
|
+
"panevet",
|
|
17159
|
+
"panevetañ",
|
|
17160
|
+
"paneveti",
|
|
17161
|
+
"pas",
|
|
17162
|
+
"paseet",
|
|
17163
|
+
"pe",
|
|
17164
|
+
"peadra",
|
|
17165
|
+
"peder",
|
|
17166
|
+
"pedervet",
|
|
17167
|
+
"pedervetvet",
|
|
17168
|
+
"pefe",
|
|
17169
|
+
"pegeit",
|
|
17170
|
+
"pegement",
|
|
17171
|
+
"pegen",
|
|
17172
|
+
"pegiz",
|
|
17173
|
+
"pegoulz",
|
|
17174
|
+
"pehini",
|
|
17175
|
+
"pelec'h",
|
|
17176
|
+
"pell",
|
|
17177
|
+
"pemod",
|
|
17178
|
+
"pemp",
|
|
17179
|
+
"pempved",
|
|
17180
|
+
"pemzek",
|
|
17181
|
+
"penaos",
|
|
17182
|
+
"penn",
|
|
17183
|
+
"peogwir",
|
|
17184
|
+
"peotramant",
|
|
17185
|
+
"pep",
|
|
17186
|
+
"perak",
|
|
17187
|
+
"perc'hennañ",
|
|
17188
|
+
"pergen",
|
|
17189
|
+
"permetiñ",
|
|
17190
|
+
"peseurt",
|
|
17191
|
+
"pet",
|
|
17192
|
+
"petiaoul",
|
|
17193
|
+
"petoare",
|
|
17194
|
+
"petra",
|
|
17195
|
+
"peur",
|
|
17196
|
+
"peurgetket",
|
|
17197
|
+
"peurheñvel",
|
|
17198
|
+
"peurliesañ",
|
|
17199
|
+
"peurvuiañ",
|
|
17200
|
+
"peus",
|
|
17201
|
+
"peustost",
|
|
17202
|
+
"peuz",
|
|
17203
|
+
"pevar",
|
|
17204
|
+
"pevare",
|
|
17205
|
+
"pevarevet",
|
|
17206
|
+
"pevarzek",
|
|
17207
|
+
"pez",
|
|
17208
|
+
"peze",
|
|
17209
|
+
"pezh",
|
|
17210
|
+
"pff",
|
|
17211
|
+
"pfft",
|
|
17212
|
+
"pfut",
|
|
17213
|
+
"picher",
|
|
17214
|
+
"pif",
|
|
17215
|
+
"pife",
|
|
17216
|
+
"pign",
|
|
17217
|
+
"pije",
|
|
17218
|
+
"pikol",
|
|
17219
|
+
"pitiaoul",
|
|
17220
|
+
"piv",
|
|
17221
|
+
"plaouf",
|
|
17222
|
+
"plok",
|
|
17223
|
+
"plouf",
|
|
17224
|
+
"po",
|
|
17225
|
+
"poa",
|
|
17226
|
+
"poelladus",
|
|
17227
|
+
"pof",
|
|
17228
|
+
"pok",
|
|
17229
|
+
"posupl",
|
|
17230
|
+
"pouah",
|
|
17231
|
+
"pourc'henn",
|
|
17232
|
+
"prest",
|
|
17233
|
+
"prestik",
|
|
17234
|
+
"prim",
|
|
17235
|
+
"prin",
|
|
17236
|
+
"provostapl",
|
|
17237
|
+
"pst",
|
|
17238
|
+
"pu",
|
|
17239
|
+
"pur",
|
|
17240
|
+
"r:",
|
|
17241
|
+
"ra",
|
|
17242
|
+
"rae",
|
|
17243
|
+
"raec'h",
|
|
17244
|
+
"raed",
|
|
17245
|
+
"raemp",
|
|
17246
|
+
"raen",
|
|
17247
|
+
"raent",
|
|
17248
|
+
"raes",
|
|
17249
|
+
"rafe",
|
|
17250
|
+
"rafec'h",
|
|
17251
|
+
"rafed",
|
|
17252
|
+
"rafemp",
|
|
17253
|
+
"rafen",
|
|
17254
|
+
"rafent",
|
|
17255
|
+
"rafes",
|
|
17256
|
+
"rag",
|
|
17257
|
+
"raimp",
|
|
17258
|
+
"raint",
|
|
17259
|
+
"raio",
|
|
17260
|
+
"raje",
|
|
17261
|
+
"rajec'h",
|
|
17262
|
+
"rajed",
|
|
17263
|
+
"rajemp",
|
|
17264
|
+
"rajen",
|
|
17265
|
+
"rajent",
|
|
17266
|
+
"rajes",
|
|
17267
|
+
"rak",
|
|
17268
|
+
"ral",
|
|
17269
|
+
"ran",
|
|
17270
|
+
"rankout",
|
|
17271
|
+
"raok",
|
|
17272
|
+
"razh",
|
|
17273
|
+
"re",
|
|
17274
|
+
"reas",
|
|
17275
|
+
"reer",
|
|
17276
|
+
"regennoù",
|
|
17277
|
+
"reiñ",
|
|
17278
|
+
"rejoc'h",
|
|
17279
|
+
"rejod",
|
|
17280
|
+
"rejomp",
|
|
17281
|
+
"rejont",
|
|
17282
|
+
"rejout",
|
|
17283
|
+
"rener",
|
|
17284
|
+
"rentañ",
|
|
17285
|
+
"reoc'h",
|
|
17286
|
+
"reomp",
|
|
17287
|
+
"reont",
|
|
17288
|
+
"reor",
|
|
17289
|
+
"reot",
|
|
17290
|
+
"resis",
|
|
17291
|
+
"ret",
|
|
17292
|
+
"reve",
|
|
17293
|
+
"rez",
|
|
17294
|
+
"ri",
|
|
17295
|
+
"rik",
|
|
17296
|
+
"rin",
|
|
17297
|
+
"ris",
|
|
17298
|
+
"rit",
|
|
17299
|
+
"rouez",
|
|
17300
|
+
"s:",
|
|
17301
|
+
"sac'h",
|
|
17302
|
+
"sant",
|
|
17303
|
+
"sav",
|
|
17304
|
+
"sañset",
|
|
16443
17305
|
"se",
|
|
16444
|
-
"
|
|
16445
|
-
"
|
|
16446
|
-
"
|
|
16447
|
-
"
|
|
16448
|
-
"
|
|
16449
|
-
"
|
|
16450
|
-
"
|
|
16451
|
-
"
|
|
16452
|
-
"
|
|
17306
|
+
"sed",
|
|
17307
|
+
"seitek",
|
|
17308
|
+
"seizh",
|
|
17309
|
+
"seizhvet",
|
|
17310
|
+
"sell",
|
|
17311
|
+
"sellit",
|
|
17312
|
+
"ser",
|
|
17313
|
+
"setu",
|
|
17314
|
+
"seul",
|
|
17315
|
+
"seurt",
|
|
17316
|
+
"siwazh",
|
|
17317
|
+
"skignañ",
|
|
17318
|
+
"skoaz",
|
|
17319
|
+
"skouer",
|
|
17320
|
+
"sort",
|
|
17321
|
+
"souden",
|
|
17322
|
+
"souvitañ",
|
|
17323
|
+
"soñj",
|
|
17324
|
+
"speriañ",
|
|
17325
|
+
"spririñ",
|
|
17326
|
+
"stad",
|
|
17327
|
+
"stlabezañ",
|
|
17328
|
+
"stop",
|
|
17329
|
+
"stranañ",
|
|
17330
|
+
"strewiñ",
|
|
17331
|
+
"strishaat",
|
|
17332
|
+
"stumm",
|
|
17333
|
+
"sujed",
|
|
17334
|
+
"surtoud",
|
|
17335
|
+
"t:",
|
|
17336
|
+
"ta",
|
|
17337
|
+
"taer",
|
|
17338
|
+
"tailh",
|
|
17339
|
+
"tak",
|
|
16453
17340
|
"tal",
|
|
16454
|
-
"
|
|
16455
|
-
"
|
|
17341
|
+
"talvoudegezh",
|
|
17342
|
+
"tamm",
|
|
17343
|
+
"tanav",
|
|
17344
|
+
"taol",
|
|
17345
|
+
"te",
|
|
17346
|
+
"techet",
|
|
17347
|
+
"teir",
|
|
17348
|
+
"teirvet",
|
|
17349
|
+
"telt",
|
|
17350
|
+
"teltenn",
|
|
16456
17351
|
"teus",
|
|
16457
|
-
"
|
|
16458
|
-
"
|
|
16459
|
-
"
|
|
16460
|
-
"
|
|
16461
|
-
"
|
|
16462
|
-
"
|
|
16463
|
-
"
|
|
16464
|
-
"
|
|
16465
|
-
"
|
|
16466
|
-
"
|
|
16467
|
-
"
|
|
17352
|
+
"teut",
|
|
17353
|
+
"teuteu",
|
|
17354
|
+
"ti",
|
|
17355
|
+
"tik",
|
|
17356
|
+
"toa",
|
|
17357
|
+
"tok",
|
|
17358
|
+
"tost",
|
|
17359
|
+
"tostig",
|
|
17360
|
+
"toud",
|
|
17361
|
+
"touesk",
|
|
17362
|
+
"touez",
|
|
17363
|
+
"toull",
|
|
17364
|
+
"tra",
|
|
17365
|
+
"trantenn",
|
|
17366
|
+
"traoñ",
|
|
17367
|
+
"trawalc'h",
|
|
17368
|
+
"tre",
|
|
17369
|
+
"trede",
|
|
17370
|
+
"tregont",
|
|
17371
|
+
"tremenet",
|
|
17372
|
+
"tri",
|
|
17373
|
+
"trivet",
|
|
17374
|
+
"triwec'h",
|
|
17375
|
+
"trizek",
|
|
17376
|
+
"tro",
|
|
17377
|
+
"trugarez",
|
|
17378
|
+
"trumm",
|
|
17379
|
+
"tsoin",
|
|
17380
|
+
"tsouin",
|
|
17381
|
+
"tu",
|
|
17382
|
+
"tud",
|
|
17383
|
+
"u:",
|
|
17384
|
+
"ugent",
|
|
17385
|
+
"uhel",
|
|
17386
|
+
"uhelañ",
|
|
17387
|
+
"ul",
|
|
17388
|
+
"un",
|
|
17389
|
+
"unan",
|
|
17390
|
+
"unanez",
|
|
17391
|
+
"unanig",
|
|
17392
|
+
"unnek",
|
|
17393
|
+
"unnekvet",
|
|
17394
|
+
"ur",
|
|
17395
|
+
"urzh",
|
|
17396
|
+
"us",
|
|
17397
|
+
"v:",
|
|
17398
|
+
"va",
|
|
17399
|
+
"vale",
|
|
17400
|
+
"van",
|
|
17401
|
+
"vare",
|
|
17402
|
+
"vat",
|
|
17403
|
+
"vefe",
|
|
17404
|
+
"vefec'h",
|
|
17405
|
+
"vefed",
|
|
17406
|
+
"vefemp",
|
|
17407
|
+
"vefen",
|
|
17408
|
+
"vefent",
|
|
17409
|
+
"vefes",
|
|
17410
|
+
"vesk",
|
|
17411
|
+
"vete",
|
|
17412
|
+
"vez",
|
|
17413
|
+
"vezan",
|
|
17414
|
+
"vezañ",
|
|
17415
|
+
"veze",
|
|
17416
|
+
"vezec'h",
|
|
17417
|
+
"vezed",
|
|
17418
|
+
"vezemp",
|
|
17419
|
+
"vezen",
|
|
17420
|
+
"vezent",
|
|
17421
|
+
"vezer",
|
|
17422
|
+
"vezes",
|
|
17423
|
+
"vezez",
|
|
17424
|
+
"vezit",
|
|
17425
|
+
"vezomp",
|
|
17426
|
+
"vezont",
|
|
17427
|
+
"vi",
|
|
17428
|
+
"vihan",
|
|
17429
|
+
"vihanañ",
|
|
17430
|
+
"vije",
|
|
17431
|
+
"vijec'h",
|
|
17432
|
+
"vijed",
|
|
17433
|
+
"vijemp",
|
|
17434
|
+
"vijen",
|
|
17435
|
+
"vijent",
|
|
17436
|
+
"vijes",
|
|
17437
|
+
"viken",
|
|
17438
|
+
"vimp",
|
|
17439
|
+
"vin",
|
|
17440
|
+
"vint",
|
|
17441
|
+
"vior",
|
|
17442
|
+
"viot",
|
|
17443
|
+
"virviken",
|
|
17444
|
+
"viskoazh",
|
|
17445
|
+
"vlan",
|
|
17446
|
+
"vlaou",
|
|
17447
|
+
"vo",
|
|
17448
|
+
"vod",
|
|
17449
|
+
"voe",
|
|
17450
|
+
"voec'h",
|
|
17451
|
+
"voed",
|
|
17452
|
+
"voemp",
|
|
17453
|
+
"voen",
|
|
17454
|
+
"voent",
|
|
17455
|
+
"voes",
|
|
17456
|
+
"vont",
|
|
17457
|
+
"vostapl",
|
|
17458
|
+
"vrac'h",
|
|
17459
|
+
"vrasañ",
|
|
17460
|
+
"vremañ",
|
|
17461
|
+
"w:",
|
|
17462
|
+
"walc'h",
|
|
17463
|
+
"war",
|
|
17464
|
+
"warnañ",
|
|
17465
|
+
"warni",
|
|
17466
|
+
"warno",
|
|
17467
|
+
"warnoc'h",
|
|
17468
|
+
"warnomp",
|
|
17469
|
+
"warnon",
|
|
17470
|
+
"warnor",
|
|
17471
|
+
"warnout",
|
|
17472
|
+
"wazh",
|
|
17473
|
+
"wech",
|
|
17474
|
+
"wechoù",
|
|
17475
|
+
"well",
|
|
17476
|
+
"y:",
|
|
17477
|
+
"you",
|
|
17478
|
+
"youadenn",
|
|
17479
|
+
"youc'hadenn",
|
|
17480
|
+
"youc'hou",
|
|
17481
|
+
"z:",
|
|
17482
|
+
"za",
|
|
17483
|
+
"zan",
|
|
17484
|
+
"zaw",
|
|
17485
|
+
"zeu",
|
|
17486
|
+
"zi",
|
|
17487
|
+
"ziar",
|
|
17488
|
+
"zigarez",
|
|
17489
|
+
"ziget",
|
|
17490
|
+
"zindan",
|
|
17491
|
+
"zioc'h",
|
|
17492
|
+
"ziouzh",
|
|
17493
|
+
"zirak",
|
|
17494
|
+
"zivout",
|
|
17495
|
+
"ziwar",
|
|
17496
|
+
"ziwezhañ",
|
|
17497
|
+
"zo",
|
|
17498
|
+
"zoken",
|
|
17499
|
+
"zokenoc'h",
|
|
17500
|
+
"zouesk",
|
|
17501
|
+
"zouez",
|
|
17502
|
+
"zro",
|
|
17503
|
+
"zu"
|
|
16468
17504
|
];
|
|
16469
17505
|
const bul = [
|
|
16470
17506
|
"а",
|
|
@@ -28120,22 +29156,32 @@ const tur = [
|
|
|
28120
29156
|
"şöyle"
|
|
28121
29157
|
];
|
|
28122
29158
|
const ukr = [
|
|
29159
|
+
"а",
|
|
29160
|
+
"або",
|
|
28123
29161
|
"авжеж",
|
|
28124
29162
|
"адже",
|
|
29163
|
+
"аж",
|
|
28125
29164
|
"але",
|
|
29165
|
+
"ані",
|
|
28126
29166
|
"б",
|
|
28127
29167
|
"без",
|
|
29168
|
+
"би",
|
|
29169
|
+
"бо",
|
|
28128
29170
|
"був",
|
|
28129
29171
|
"була",
|
|
28130
29172
|
"були",
|
|
28131
29173
|
"було",
|
|
28132
29174
|
"бути",
|
|
28133
29175
|
"більш",
|
|
29176
|
+
"в",
|
|
28134
29177
|
"вам",
|
|
29178
|
+
"вами",
|
|
28135
29179
|
"вас",
|
|
28136
29180
|
"весь",
|
|
29181
|
+
"вже",
|
|
28137
29182
|
"вздовж",
|
|
28138
29183
|
"ви",
|
|
29184
|
+
"від",
|
|
28139
29185
|
"вниз",
|
|
28140
29186
|
"внизу",
|
|
28141
29187
|
"вона",
|
|
@@ -28144,55 +29190,138 @@ const ukr = [
|
|
|
28144
29190
|
"все",
|
|
28145
29191
|
"всередині",
|
|
28146
29192
|
"всіх",
|
|
29193
|
+
"вся",
|
|
28147
29194
|
"від",
|
|
28148
29195
|
"він",
|
|
28149
29196
|
"да",
|
|
28150
29197
|
"давай",
|
|
28151
29198
|
"давати",
|
|
28152
29199
|
"де",
|
|
29200
|
+
"десь",
|
|
28153
29201
|
"дещо",
|
|
28154
29202
|
"для",
|
|
28155
29203
|
"до",
|
|
29204
|
+
"є",
|
|
29205
|
+
"ж",
|
|
29206
|
+
"же",
|
|
28156
29207
|
"з",
|
|
29208
|
+
"за",
|
|
28157
29209
|
"завжди",
|
|
28158
29210
|
"замість",
|
|
29211
|
+
"зі",
|
|
29212
|
+
"і",
|
|
29213
|
+
"із",
|
|
29214
|
+
"інших",
|
|
29215
|
+
"її",
|
|
29216
|
+
"їй",
|
|
29217
|
+
"їм",
|
|
29218
|
+
"їх",
|
|
28159
29219
|
"й",
|
|
29220
|
+
"його",
|
|
29221
|
+
"йому",
|
|
28160
29222
|
"коли",
|
|
28161
29223
|
"ледве",
|
|
29224
|
+
"лиш",
|
|
28162
29225
|
"майже",
|
|
29226
|
+
"мене",
|
|
29227
|
+
"мені",
|
|
28163
29228
|
"ми",
|
|
29229
|
+
"між",
|
|
29230
|
+
"мій",
|
|
29231
|
+
"мною",
|
|
29232
|
+
"мов",
|
|
29233
|
+
"мого",
|
|
29234
|
+
"моєї",
|
|
29235
|
+
"моє",
|
|
29236
|
+
"може",
|
|
29237
|
+
"мої",
|
|
29238
|
+
"моїх",
|
|
29239
|
+
"моя",
|
|
29240
|
+
"на",
|
|
29241
|
+
"над",
|
|
28164
29242
|
"навколо",
|
|
28165
29243
|
"навіть",
|
|
28166
29244
|
"нам",
|
|
29245
|
+
"нами",
|
|
29246
|
+
"нас",
|
|
29247
|
+
"наче",
|
|
29248
|
+
"наш",
|
|
29249
|
+
"не",
|
|
29250
|
+
"нє",
|
|
29251
|
+
"неї",
|
|
29252
|
+
"нема",
|
|
29253
|
+
"немов",
|
|
29254
|
+
"неначе",
|
|
29255
|
+
"нею",
|
|
29256
|
+
"ним",
|
|
29257
|
+
"ними",
|
|
29258
|
+
"них",
|
|
29259
|
+
"ні",
|
|
29260
|
+
"ніби",
|
|
29261
|
+
"ніщо",
|
|
29262
|
+
"нього",
|
|
29263
|
+
"о",
|
|
29264
|
+
"ось",
|
|
28167
29265
|
"от",
|
|
28168
29266
|
"отже",
|
|
28169
29267
|
"отож",
|
|
29268
|
+
"під",
|
|
29269
|
+
"по",
|
|
28170
29270
|
"поза",
|
|
28171
29271
|
"про",
|
|
28172
29272
|
"під",
|
|
29273
|
+
"сам",
|
|
29274
|
+
"сама",
|
|
29275
|
+
"свій",
|
|
29276
|
+
"свої",
|
|
29277
|
+
"своя",
|
|
29278
|
+
"свою",
|
|
29279
|
+
"себе",
|
|
29280
|
+
"собі",
|
|
28173
29281
|
"та",
|
|
29282
|
+
"там",
|
|
28174
29283
|
"так",
|
|
29284
|
+
"така",
|
|
28175
29285
|
"такий",
|
|
28176
29286
|
"також",
|
|
29287
|
+
"твій",
|
|
29288
|
+
"твого",
|
|
29289
|
+
"твоєї",
|
|
29290
|
+
"твої",
|
|
29291
|
+
"твоя",
|
|
28177
29292
|
"те",
|
|
29293
|
+
"тебе",
|
|
28178
29294
|
"ти",
|
|
29295
|
+
"ті",
|
|
29296
|
+
"тільки",
|
|
29297
|
+
"то",
|
|
29298
|
+
"тобі",
|
|
29299
|
+
"тобою",
|
|
28179
29300
|
"тобто",
|
|
29301
|
+
"тоді",
|
|
28180
29302
|
"тож",
|
|
29303
|
+
"той",
|
|
28181
29304
|
"тощо",
|
|
29305
|
+
"тут",
|
|
29306
|
+
"у",
|
|
29307
|
+
"хіба",
|
|
29308
|
+
"хоч",
|
|
28182
29309
|
"хоча",
|
|
28183
29310
|
"це",
|
|
28184
29311
|
"цей",
|
|
29312
|
+
"ці",
|
|
29313
|
+
"ця",
|
|
28185
29314
|
"чи",
|
|
28186
29315
|
"чого",
|
|
29316
|
+
"ще",
|
|
28187
29317
|
"що",
|
|
29318
|
+
"щоб",
|
|
29319
|
+
"щось",
|
|
29320
|
+
"я",
|
|
28188
29321
|
"як",
|
|
29322
|
+
"яка",
|
|
28189
29323
|
"який",
|
|
28190
|
-
"якої"
|
|
28191
|
-
"є",
|
|
28192
|
-
"із",
|
|
28193
|
-
"інших",
|
|
28194
|
-
"їх",
|
|
28195
|
-
"її"
|
|
29324
|
+
"якої"
|
|
28196
29325
|
];
|
|
28197
29326
|
const urd = [
|
|
28198
29327
|
"آئی",
|
|
@@ -29190,7 +30319,14 @@ const TINA_LOGIN_EVENT = "tinaCloudLogin";
|
|
|
29190
30319
|
const AUTH_TOKEN_KEY = "tinacms-auth";
|
|
29191
30320
|
const authenticate = (clientId, frontendUrl) => {
|
|
29192
30321
|
return new Promise((resolve) => {
|
|
29193
|
-
|
|
30322
|
+
const origin = `${window.location.protocol}//${window.location.host}`;
|
|
30323
|
+
const authTab = popupWindow(
|
|
30324
|
+
`${frontendUrl}/signin?clientId=${clientId}&origin=${origin}`,
|
|
30325
|
+
"_blank",
|
|
30326
|
+
window,
|
|
30327
|
+
1e3,
|
|
30328
|
+
700
|
|
30329
|
+
);
|
|
29194
30330
|
window.addEventListener("message", function(e) {
|
|
29195
30331
|
if (e.data.source === TINA_LOGIN_EVENT) {
|
|
29196
30332
|
if (authTab) {
|
|
@@ -29203,14 +30339,6 @@ const authenticate = (clientId, frontendUrl) => {
|
|
|
29203
30339
|
});
|
|
29204
30340
|
}
|
|
29205
30341
|
});
|
|
29206
|
-
const origin = `${window.location.protocol}//${window.location.host}`;
|
|
29207
|
-
authTab = popupWindow(
|
|
29208
|
-
`${frontendUrl}/signin?clientId=${clientId}&origin=${origin}`,
|
|
29209
|
-
"_blank",
|
|
29210
|
-
window,
|
|
29211
|
-
1e3,
|
|
29212
|
-
700
|
|
29213
|
-
);
|
|
29214
30342
|
});
|
|
29215
30343
|
};
|
|
29216
30344
|
const DefaultSessionProvider = ({
|
|
@@ -29916,56 +31044,6 @@ const AsyncButton = ({ name, primary, action }) => {
|
|
|
29916
31044
|
!submitting && name
|
|
29917
31045
|
);
|
|
29918
31046
|
};
|
|
29919
|
-
const TINA_AUTH_CONFIG = "tina_auth_config";
|
|
29920
|
-
const useTinaAuthRedirect = () => {
|
|
29921
|
-
useEffect(() => {
|
|
29922
|
-
const urlParams = new URLSearchParams(window.location.search);
|
|
29923
|
-
const config = {
|
|
29924
|
-
code: urlParams.get("code") || "",
|
|
29925
|
-
scope: urlParams.get("scope") || "email",
|
|
29926
|
-
state: urlParams.get("state")
|
|
29927
|
-
};
|
|
29928
|
-
if (!config.code) {
|
|
29929
|
-
return;
|
|
29930
|
-
}
|
|
29931
|
-
localStorage[TINA_AUTH_CONFIG] = JSON.stringify(config);
|
|
29932
|
-
}, []);
|
|
29933
|
-
};
|
|
29934
|
-
const createClient = ({
|
|
29935
|
-
clientId,
|
|
29936
|
-
isLocalClient = true,
|
|
29937
|
-
branch,
|
|
29938
|
-
tinaioConfig,
|
|
29939
|
-
schema,
|
|
29940
|
-
apiUrl,
|
|
29941
|
-
tinaGraphQLVersion
|
|
29942
|
-
}) => {
|
|
29943
|
-
return isLocalClient ? new LocalClient({ customContentApiUrl: apiUrl, schema }) : new Client({
|
|
29944
|
-
clientId: clientId || "",
|
|
29945
|
-
branch: branch || "main",
|
|
29946
|
-
tokenStorage: "LOCAL_STORAGE",
|
|
29947
|
-
tinaioConfig,
|
|
29948
|
-
schema,
|
|
29949
|
-
tinaGraphQLVersion
|
|
29950
|
-
});
|
|
29951
|
-
};
|
|
29952
|
-
function assertShape(value, yupSchema, errorMessage) {
|
|
29953
|
-
const shape = yupSchema(yup);
|
|
29954
|
-
try {
|
|
29955
|
-
shape.validateSync(value);
|
|
29956
|
-
} catch (e) {
|
|
29957
|
-
const message = errorMessage || `Failed to assertShape - ${e.message}`;
|
|
29958
|
-
throw new Error(message);
|
|
29959
|
-
}
|
|
29960
|
-
}
|
|
29961
|
-
function safeAssertShape(value, yupSchema) {
|
|
29962
|
-
try {
|
|
29963
|
-
assertShape(value, yupSchema);
|
|
29964
|
-
return true;
|
|
29965
|
-
} catch (e) {
|
|
29966
|
-
return false;
|
|
29967
|
-
}
|
|
29968
|
-
}
|
|
29969
31047
|
class TinaAdminApi {
|
|
29970
31048
|
constructor(cms) {
|
|
29971
31049
|
var _a, _b, _c, _d;
|
|
@@ -30105,6 +31183,7 @@ class TinaAdminApi {
|
|
|
30105
31183
|
relativePath
|
|
30106
31184
|
filename
|
|
30107
31185
|
extension
|
|
31186
|
+
hasReferences
|
|
30108
31187
|
}
|
|
30109
31188
|
}
|
|
30110
31189
|
}
|
|
@@ -30196,6 +31275,9 @@ class TinaAdminApi {
|
|
|
30196
31275
|
document(collection:$collection, relativePath:$relativePath) {
|
|
30197
31276
|
... on Document {
|
|
30198
31277
|
_values
|
|
31278
|
+
_sys {
|
|
31279
|
+
hasReferences
|
|
31280
|
+
}
|
|
30199
31281
|
}
|
|
30200
31282
|
}
|
|
30201
31283
|
}`;
|
|
@@ -30308,6 +31390,56 @@ class TinaAdminApi {
|
|
|
30308
31390
|
);
|
|
30309
31391
|
}
|
|
30310
31392
|
}
|
|
31393
|
+
const createClient = ({
|
|
31394
|
+
clientId,
|
|
31395
|
+
isLocalClient = true,
|
|
31396
|
+
branch,
|
|
31397
|
+
tinaioConfig,
|
|
31398
|
+
schema,
|
|
31399
|
+
apiUrl,
|
|
31400
|
+
tinaGraphQLVersion
|
|
31401
|
+
}) => {
|
|
31402
|
+
return isLocalClient ? new LocalClient({ customContentApiUrl: apiUrl, schema }) : new Client({
|
|
31403
|
+
clientId: clientId || "",
|
|
31404
|
+
branch: branch || "main",
|
|
31405
|
+
tokenStorage: "LOCAL_STORAGE",
|
|
31406
|
+
tinaioConfig,
|
|
31407
|
+
schema,
|
|
31408
|
+
tinaGraphQLVersion
|
|
31409
|
+
});
|
|
31410
|
+
};
|
|
31411
|
+
function assertShape(value, yupSchema, errorMessage) {
|
|
31412
|
+
const shape = yupSchema(yup);
|
|
31413
|
+
try {
|
|
31414
|
+
shape.validateSync(value);
|
|
31415
|
+
} catch (e) {
|
|
31416
|
+
const message = errorMessage || `Failed to assertShape - ${e.message}`;
|
|
31417
|
+
throw new Error(message);
|
|
31418
|
+
}
|
|
31419
|
+
}
|
|
31420
|
+
function safeAssertShape(value, yupSchema) {
|
|
31421
|
+
try {
|
|
31422
|
+
assertShape(value, yupSchema);
|
|
31423
|
+
return true;
|
|
31424
|
+
} catch (e) {
|
|
31425
|
+
return false;
|
|
31426
|
+
}
|
|
31427
|
+
}
|
|
31428
|
+
const TINA_AUTH_CONFIG = "tina_auth_config";
|
|
31429
|
+
const useTinaAuthRedirect = () => {
|
|
31430
|
+
useEffect(() => {
|
|
31431
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
31432
|
+
const config = {
|
|
31433
|
+
code: urlParams.get("code") || "",
|
|
31434
|
+
scope: urlParams.get("scope") || "email",
|
|
31435
|
+
state: urlParams.get("state")
|
|
31436
|
+
};
|
|
31437
|
+
if (!config.code) {
|
|
31438
|
+
return;
|
|
31439
|
+
}
|
|
31440
|
+
localStorage[TINA_AUTH_CONFIG] = JSON.stringify(config);
|
|
31441
|
+
}, []);
|
|
31442
|
+
};
|
|
30311
31443
|
function sleep(ms) {
|
|
30312
31444
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
30313
31445
|
}
|
|
@@ -30644,6 +31776,9 @@ const TinaCloudProvider = (props) => {
|
|
|
30644
31776
|
cms.flags.set("branch-switcher", true);
|
|
30645
31777
|
client.usingEditorialWorkflow = true;
|
|
30646
31778
|
client.protectedBranches = project.protectedBranches;
|
|
31779
|
+
if (!project.metadata[currentBranch]) {
|
|
31780
|
+
setCurrentBranch(project.defaultBranch || "main");
|
|
31781
|
+
}
|
|
30647
31782
|
}
|
|
30648
31783
|
});
|
|
30649
31784
|
};
|
|
@@ -30656,7 +31791,7 @@ const TinaCloudProvider = (props) => {
|
|
|
30656
31791
|
}
|
|
30657
31792
|
});
|
|
30658
31793
|
return unsubscribe;
|
|
30659
|
-
}, [isTinaCloud, cms]);
|
|
31794
|
+
}, [currentBranch, isTinaCloud, cms]);
|
|
30660
31795
|
return /* @__PURE__ */ React__default.createElement(SessionProvider, { basePath: "/api/tina/auth" }, /* @__PURE__ */ React__default.createElement(
|
|
30661
31796
|
BranchDataProvider,
|
|
30662
31797
|
{
|
|
@@ -31509,6 +32644,35 @@ const FullscreenError = ({
|
|
|
31509
32644
|
}) => {
|
|
31510
32645
|
return /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-col justify-center items-center h-screen bg-gray-100" }, /* @__PURE__ */ React__default.createElement("div", { className: "text-red-500 text-4xl mb-6 flex items-center" }, /* @__PURE__ */ React__default.createElement(BiError, { className: "w-12 h-auto fill-current text-red-400 opacity-70 mr-1" }), " ", title), /* @__PURE__ */ React__default.createElement("p", { className: "text-gray-700 text-xl mb-8" }, errorMessage), /* @__PURE__ */ React__default.createElement(Button$1, { variant: "danger", onClick: () => window.location.reload() }, /* @__PURE__ */ React__default.createElement(BiSync, { className: "w-7 h-auto fill-current opacity-70 mr-1" }), " Reload"));
|
|
31511
32646
|
};
|
|
32647
|
+
const isValidSortKey = (sortKey, collection) => {
|
|
32648
|
+
if (collection.fields) {
|
|
32649
|
+
const sortKeys = collection.fields.map((x) => x.name);
|
|
32650
|
+
return sortKeys.includes(sortKey);
|
|
32651
|
+
} else if (collection.templates) {
|
|
32652
|
+
const collectionMap = {};
|
|
32653
|
+
const conflictedFields = /* @__PURE__ */ new Set();
|
|
32654
|
+
for (const template of collection.templates) {
|
|
32655
|
+
for (const field of template.fields) {
|
|
32656
|
+
if (collectionMap[field.name]) {
|
|
32657
|
+
if (collectionMap[field.name].type !== field.type) {
|
|
32658
|
+
conflictedFields.add(field.name);
|
|
32659
|
+
}
|
|
32660
|
+
} else {
|
|
32661
|
+
collectionMap[field.name] = field;
|
|
32662
|
+
}
|
|
32663
|
+
}
|
|
32664
|
+
}
|
|
32665
|
+
for (const key in conflictedFields) {
|
|
32666
|
+
delete collectionMap[key];
|
|
32667
|
+
}
|
|
32668
|
+
for (const key in collectionMap) {
|
|
32669
|
+
if (key === sortKey) {
|
|
32670
|
+
return true;
|
|
32671
|
+
}
|
|
32672
|
+
}
|
|
32673
|
+
return false;
|
|
32674
|
+
}
|
|
32675
|
+
};
|
|
31512
32676
|
const useGetCollection = (cms, collectionName, includeDocuments = true, folder, after = "", sortKey, filterArgs) => {
|
|
31513
32677
|
const api = new TinaAdminApi(cms);
|
|
31514
32678
|
const schema = cms.api.tina.schema;
|
|
@@ -31520,10 +32684,9 @@ const useGetCollection = (cms, collectionName, includeDocuments = true, folder,
|
|
|
31520
32684
|
useEffect(() => {
|
|
31521
32685
|
let cancelled = false;
|
|
31522
32686
|
const fetchCollection = async () => {
|
|
31523
|
-
var _a;
|
|
31524
32687
|
if (await api.isAuthenticated() && !folder.loading && !cancelled) {
|
|
31525
32688
|
const { name, order } = JSON.parse(sortKey || "{}");
|
|
31526
|
-
const validSortKey = (
|
|
32689
|
+
const validSortKey = isValidSortKey(name, collectionExtra) ? name : void 0;
|
|
31527
32690
|
try {
|
|
31528
32691
|
const collection2 = await api.fetchCollection(
|
|
31529
32692
|
collectionName,
|
|
@@ -31819,6 +32982,7 @@ const CollectionListPage = () => {
|
|
|
31819
32982
|
const [vars, setVars] = React__default.useState({
|
|
31820
32983
|
collection: collectionName,
|
|
31821
32984
|
relativePath: "",
|
|
32985
|
+
relativePathWithoutExtension: "",
|
|
31822
32986
|
newRelativePath: "",
|
|
31823
32987
|
filterField: "",
|
|
31824
32988
|
folderName: "",
|
|
@@ -31860,6 +33024,7 @@ const CollectionListPage = () => {
|
|
|
31860
33024
|
...old,
|
|
31861
33025
|
collection: collectionName,
|
|
31862
33026
|
relativePath: "",
|
|
33027
|
+
relativePathWithoutExtension: "",
|
|
31863
33028
|
newRelativePath: "",
|
|
31864
33029
|
filterField: "",
|
|
31865
33030
|
startsWith: "",
|
|
@@ -31885,6 +33050,7 @@ const CollectionListPage = () => {
|
|
|
31885
33050
|
collectionName === vars.collection ? vars : {
|
|
31886
33051
|
collection: collectionName,
|
|
31887
33052
|
relativePath: "",
|
|
33053
|
+
relativePathWithoutExtension: "",
|
|
31888
33054
|
newRelativePath: "",
|
|
31889
33055
|
filterField: "",
|
|
31890
33056
|
startsWith: "",
|
|
@@ -31922,6 +33088,23 @@ const CollectionListPage = () => {
|
|
|
31922
33088
|
DeleteModal,
|
|
31923
33089
|
{
|
|
31924
33090
|
filename: vars.relativePath,
|
|
33091
|
+
checkRefsFunc: async () => {
|
|
33092
|
+
var _a2, _b2;
|
|
33093
|
+
try {
|
|
33094
|
+
const doc = await admin.fetchDocument(
|
|
33095
|
+
collection.name,
|
|
33096
|
+
vars.relativePath,
|
|
33097
|
+
true
|
|
33098
|
+
);
|
|
33099
|
+
return (_b2 = (_a2 = doc == null ? void 0 : doc.document) == null ? void 0 : _a2._sys) == null ? void 0 : _b2.hasReferences;
|
|
33100
|
+
} catch (error) {
|
|
33101
|
+
cms.alerts.error(
|
|
33102
|
+
"Document was not found, ask a developer for help or check the console for an error message"
|
|
33103
|
+
);
|
|
33104
|
+
console.error(error);
|
|
33105
|
+
throw error;
|
|
33106
|
+
}
|
|
33107
|
+
},
|
|
31925
33108
|
deleteFunc: async () => {
|
|
31926
33109
|
try {
|
|
31927
33110
|
await admin.deleteDocument(vars);
|
|
@@ -31930,6 +33113,12 @@ const CollectionListPage = () => {
|
|
|
31930
33113
|
);
|
|
31931
33114
|
reFetchCollection();
|
|
31932
33115
|
} catch (error) {
|
|
33116
|
+
if (error.message.indexOf("has references")) {
|
|
33117
|
+
cms.alerts.error(
|
|
33118
|
+
error.message.split("\n ").filter(Boolean)[1]
|
|
33119
|
+
);
|
|
33120
|
+
return;
|
|
33121
|
+
}
|
|
31933
33122
|
cms.alerts.warn(
|
|
31934
33123
|
"Document was not deleted, ask a developer for help or check the console for an error message"
|
|
31935
33124
|
);
|
|
@@ -31949,7 +33138,9 @@ const CollectionListPage = () => {
|
|
|
31949
33138
|
safeSubmit: async () => {
|
|
31950
33139
|
try {
|
|
31951
33140
|
await admin.deleteDocument(vars);
|
|
31952
|
-
cms.alerts.info(
|
|
33141
|
+
cms.alerts.info(
|
|
33142
|
+
"Document was successfully deleted"
|
|
33143
|
+
);
|
|
31953
33144
|
reFetchCollection();
|
|
31954
33145
|
} catch (error) {
|
|
31955
33146
|
cms.alerts.warn(
|
|
@@ -31963,7 +33154,7 @@ const CollectionListPage = () => {
|
|
|
31963
33154
|
), renameModalOpen && /* @__PURE__ */ React__default.createElement(
|
|
31964
33155
|
RenameModal,
|
|
31965
33156
|
{
|
|
31966
|
-
filename: vars.
|
|
33157
|
+
filename: vars.relativePathWithoutExtension,
|
|
31967
33158
|
newRelativePath: vars.newRelativePath,
|
|
31968
33159
|
setNewRelativePath: (newRelativePath) => {
|
|
31969
33160
|
setVars((vars2) => {
|
|
@@ -31978,9 +33169,17 @@ const CollectionListPage = () => {
|
|
|
31978
33169
|
relativePath: vars.relativePath,
|
|
31979
33170
|
newRelativePath
|
|
31980
33171
|
});
|
|
31981
|
-
cms.alerts.info(
|
|
33172
|
+
cms.alerts.info(
|
|
33173
|
+
"Document was successfully renamed"
|
|
33174
|
+
);
|
|
31982
33175
|
reFetchCollection();
|
|
31983
33176
|
} catch (error) {
|
|
33177
|
+
if (error.message.indexOf("has references")) {
|
|
33178
|
+
cms.alerts.error(
|
|
33179
|
+
error.message.split("\n ").filter(Boolean)[1]
|
|
33180
|
+
);
|
|
33181
|
+
return;
|
|
33182
|
+
}
|
|
31984
33183
|
cms.alerts.warn(
|
|
31985
33184
|
"Document was not renamed, ask a developer for help or check the console for an error message"
|
|
31986
33185
|
);
|
|
@@ -32072,7 +33271,9 @@ const CollectionListPage = () => {
|
|
|
32072
33271
|
name: "sort",
|
|
32073
33272
|
value: sortKey,
|
|
32074
33273
|
onChange: (e) => {
|
|
32075
|
-
const val = JSON.parse(
|
|
33274
|
+
const val = JSON.parse(
|
|
33275
|
+
e.target.value
|
|
33276
|
+
);
|
|
32076
33277
|
setEndCursor("");
|
|
32077
33278
|
setPrevCursors([]);
|
|
32078
33279
|
window == null ? void 0 : window.localStorage.setItem(
|
|
@@ -32278,6 +33479,9 @@ const CollectionListPage = () => {
|
|
|
32278
33479
|
setVars((old) => ({
|
|
32279
33480
|
...old,
|
|
32280
33481
|
collection: collectionName,
|
|
33482
|
+
relativePathWithoutExtension: document2.node._sys.breadcrumbs.join(
|
|
33483
|
+
"/"
|
|
33484
|
+
),
|
|
32281
33485
|
relativePath: document2.node._sys.breadcrumbs.join(
|
|
32282
33486
|
"/"
|
|
32283
33487
|
) + document2.node._sys.extension,
|
|
@@ -32300,6 +33504,9 @@ const CollectionListPage = () => {
|
|
|
32300
33504
|
setVars((old) => ({
|
|
32301
33505
|
...old,
|
|
32302
33506
|
collection: collectionName,
|
|
33507
|
+
relativePathWithoutExtension: document2.node._sys.breadcrumbs.join(
|
|
33508
|
+
"/"
|
|
33509
|
+
),
|
|
32303
33510
|
relativePath: document2.node._sys.breadcrumbs.join(
|
|
32304
33511
|
"/"
|
|
32305
33512
|
) + document2.node._sys.extension,
|
|
@@ -32454,8 +33661,19 @@ const Breadcrumb = ({ folder, navigate, collectionName }) => {
|
|
|
32454
33661
|
const NoDocumentsPlaceholder = () => {
|
|
32455
33662
|
return /* @__PURE__ */ React__default.createElement("div", { className: "text-center px-5 py-3 flex flex-col items-center justify-center shadow border border-gray-100 bg-gray-50 border-b border-gray-200 w-full max-w-full rounded-lg" }, /* @__PURE__ */ React__default.createElement("p", { className: "text-base italic font-medium text-gray-300" }, "No documents found."));
|
|
32456
33663
|
};
|
|
32457
|
-
const DeleteModal = ({
|
|
32458
|
-
|
|
33664
|
+
const DeleteModal = ({
|
|
33665
|
+
close: close2,
|
|
33666
|
+
deleteFunc,
|
|
33667
|
+
checkRefsFunc,
|
|
33668
|
+
filename
|
|
33669
|
+
}) => {
|
|
33670
|
+
const [hasRefs, setHasRefs] = React__default.useState();
|
|
33671
|
+
useEffect(() => {
|
|
33672
|
+
checkRefsFunc().then((result) => {
|
|
33673
|
+
setHasRefs(result);
|
|
33674
|
+
});
|
|
33675
|
+
}, [filename, checkRefsFunc]);
|
|
33676
|
+
return /* @__PURE__ */ React__default.createElement(Modal, null, /* @__PURE__ */ React__default.createElement(PopupModal, null, /* @__PURE__ */ React__default.createElement(ModalHeader, { close: close2 }, "Delete ", filename), /* @__PURE__ */ React__default.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React__default.createElement("p", null, `Are you sure you want to delete ${filename}?${hasRefs ? " References to this document will also be deleted." : ""}`)), /* @__PURE__ */ React__default.createElement(ModalActions, null, /* @__PURE__ */ React__default.createElement(Button$1, { style: { flexGrow: 2 }, onClick: close2 }, "Cancel"), /* @__PURE__ */ React__default.createElement(
|
|
32459
33677
|
Button$1,
|
|
32460
33678
|
{
|
|
32461
33679
|
style: { flexGrow: 3 },
|
|
@@ -32501,7 +33719,7 @@ const RenameModal = ({
|
|
|
32501
33719
|
newRelativePath,
|
|
32502
33720
|
setNewRelativePath
|
|
32503
33721
|
}) => {
|
|
32504
|
-
return /* @__PURE__ */ React__default.createElement(Modal, null, /* @__PURE__ */ React__default.createElement(PopupModal, null, /* @__PURE__ */ React__default.createElement(ModalHeader, { close: close2 }, "Rename ", filename), /* @__PURE__ */ React__default.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("p", { className: "mb-4" }, "Are you sure you want to rename ", /* @__PURE__ */ React__default.createElement("strong", null, filename), "?
|
|
33722
|
+
return /* @__PURE__ */ React__default.createElement(Modal, null, /* @__PURE__ */ React__default.createElement(PopupModal, null, /* @__PURE__ */ React__default.createElement(ModalHeader, { close: close2 }, "Rename ", filename), /* @__PURE__ */ React__default.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("p", { className: "mb-4" }, "Are you sure you want to rename ", /* @__PURE__ */ React__default.createElement("strong", null, filename), "?"), /* @__PURE__ */ React__default.createElement(
|
|
32505
33723
|
BaseTextField,
|
|
32506
33724
|
{
|
|
32507
33725
|
placeholder: "Enter a new name for the document's file",
|
|
@@ -32516,7 +33734,8 @@ const RenameModal = ({
|
|
|
32516
33734
|
onClick: async () => {
|
|
32517
33735
|
await renameFunc();
|
|
32518
33736
|
close2();
|
|
32519
|
-
}
|
|
33737
|
+
},
|
|
33738
|
+
disabled: !newRelativePath || newRelativePath === filename
|
|
32520
33739
|
},
|
|
32521
33740
|
"Rename"
|
|
32522
33741
|
))));
|
|
@@ -32843,7 +34062,10 @@ const useGetDocument = (cms, collectionName, relativePath2) => {
|
|
|
32843
34062
|
const fetchDocument = async () => {
|
|
32844
34063
|
if (api.isAuthenticated()) {
|
|
32845
34064
|
try {
|
|
32846
|
-
const response = await api.fetchDocument(
|
|
34065
|
+
const response = await api.fetchDocument(
|
|
34066
|
+
collectionName,
|
|
34067
|
+
relativePath2
|
|
34068
|
+
);
|
|
32847
34069
|
setDocument(response.document);
|
|
32848
34070
|
} catch (error2) {
|
|
32849
34071
|
cms.alerts.error(
|
|
@@ -33187,15 +34409,24 @@ const IndexingPage = () => {
|
|
|
33187
34409
|
}
|
|
33188
34410
|
}
|
|
33189
34411
|
if (state === "creatingPR") {
|
|
33190
|
-
|
|
33191
|
-
|
|
33192
|
-
|
|
33193
|
-
|
|
33194
|
-
|
|
33195
|
-
|
|
33196
|
-
|
|
33197
|
-
|
|
33198
|
-
|
|
34412
|
+
try {
|
|
34413
|
+
const foo = await tinaApi.createPullRequest({
|
|
34414
|
+
baseBranch,
|
|
34415
|
+
branch,
|
|
34416
|
+
title: `${branch.replace("tina/", "").replace("-", " ")} (PR from TinaCMS)`
|
|
34417
|
+
});
|
|
34418
|
+
console.log("PR created", foo);
|
|
34419
|
+
cms.alerts.success("Pull request created.");
|
|
34420
|
+
localStorage.setItem("tina.createBranchState", "done");
|
|
34421
|
+
setState("done");
|
|
34422
|
+
} catch (e) {
|
|
34423
|
+
console.error(e);
|
|
34424
|
+
cms.alerts.error("Failed to create PR");
|
|
34425
|
+
setErrorMessage(
|
|
34426
|
+
"Failed to create PR, please try again. If the problem persists please contact support."
|
|
34427
|
+
);
|
|
34428
|
+
setState("error");
|
|
34429
|
+
}
|
|
33199
34430
|
}
|
|
33200
34431
|
if (state === "done") {
|
|
33201
34432
|
window.location.href = back;
|
|
@@ -33817,5 +35048,6 @@ export {
|
|
|
33817
35048
|
useScreenPlugin,
|
|
33818
35049
|
useTinaAuthRedirect,
|
|
33819
35050
|
wrapFieldWithError,
|
|
35051
|
+
wrapFieldWithNoHeader,
|
|
33820
35052
|
wrapFieldsWithMeta
|
|
33821
35053
|
};
|