@modusoperandi/licit 1.4.3 → 1.4.7
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/BlockquoteInsertNewLineCommand.js.flow +70 -70
- package/BlockquoteNodeSpec.js.flow +29 -29
- package/BlockquoteToggleCommand.js.flow +56 -56
- package/BookmarkNodeSpec.js.flow +39 -39
- package/BulletListNodeSpec.js.flow +61 -61
- package/CZIProseMirror.js.flow +90 -90
- package/CodeBlockCommand.js.flow +65 -65
- package/CodeBlockNodeSpec.js.flow +24 -24
- package/CodeMarkSpec.js.flow +14 -14
- package/ContentPlaceholderPlugin.js.flow +183 -183
- package/CursorPlaceholderPlugin.js.flow +113 -113
- package/DocLayoutCommand.js.flow +97 -97
- package/DocNodeSpec.js.flow +62 -62
- package/EMMarkSpec.js.flow +39 -39
- package/EditorCommands.js.flow +124 -124
- package/EditorKeyMap.js.flow +173 -173
- package/EditorMarks.js +4 -2
- package/EditorMarks.js.flow +77 -74
- package/EditorNodes.js.flow +55 -55
- package/EditorPageLayoutPlugin.js.flow +67 -67
- package/EditorPlugins.js.flow +8 -8
- package/EditorSchema.js.flow +12 -12
- package/EditorState.js.flow +7 -7
- package/FontSizeMarkSpec.js.flow +54 -54
- package/FontTypeMarkSpec.js.flow +89 -89
- package/HTMLMutator.js.flow +58 -58
- package/HangingIndentMarkSpec.js +34 -0
- package/HangingIndentMarkSpec.js.flow +30 -0
- package/HardBreakNodeSpec.js.flow +15 -15
- package/HeadingNodeSpec.js.flow +42 -42
- package/HistoryRedoCommand.js.flow +41 -41
- package/HistoryUndoCommand.js.flow +41 -41
- package/HorizontalRuleCommand.js.flow +71 -71
- package/HorizontalRuleNodeSpec.js.flow +39 -39
- package/ImageUploadPlaceholderPlugin.js.flow +187 -187
- package/LICENSE +22 -22
- package/LinkMarkSpec.js +13 -3
- package/LinkMarkSpec.js.flow +41 -37
- package/LinkSetURLCommand.js.flow +129 -129
- package/LinkTooltipPlugin.js +34 -37
- package/LinkTooltipPlugin.js.flow +207 -217
- package/ListItemInsertNewLineCommand.js.flow +76 -76
- package/ListItemMergeCommand.js.flow +197 -197
- package/ListItemNodeSpec.js.flow +52 -52
- package/ListSplitCommand.js.flow +54 -54
- package/ListToggleCommand.js.flow +99 -99
- package/MarkNames.js +2 -1
- package/MarkNames.js.flow +20 -19
- package/MarksClearCommand.js.flow +66 -66
- package/NodeNames.js.flow +23 -23
- package/OrderedListNodeSpec.js.flow +131 -131
- package/OverrideMarkSpec.js.flow +49 -49
- package/ParagraphNodeSpec.js +21 -2
- package/ParagraphNodeSpec.js.flow +233 -215
- package/ParagraphSpacingCommand.js.flow +139 -139
- package/PrintCommand.js.flow +53 -53
- package/SelectionPlaceholderPlugin.js.flow +129 -129
- package/SpacerMarkSpec.js.flow +47 -47
- package/StrikeMarkSpec.js.flow +24 -24
- package/StrongMarkSpec.js.flow +39 -39
- package/StyleView.js.flow +18 -18
- package/TableBackgroundColorCommand.js.flow +79 -79
- package/TableBorderColorCommand.js +5 -3
- package/TableBorderColorCommand.js.flow +108 -106
- package/TableCellColorCommand.js.flow +73 -73
- package/TableCellMenuPlugin.js.flow +129 -129
- package/TableInsertCommand.js.flow +117 -117
- package/TableMergeCellsCommand.js.flow +113 -113
- package/TableNodesSpecs.js.flow +144 -144
- package/TablePlugins.js.flow +14 -14
- package/TableResizePlugin.js.flow +636 -636
- package/TextColorMarkSpec.js.flow +40 -40
- package/TextHighlightMarkSpec.js.flow +47 -47
- package/TextInsertTabSpaceCommand.js +0 -3
- package/TextInsertTabSpaceCommand.js.flow +103 -106
- package/TextNoWrapMarkSpec.js.flow +14 -14
- package/TextNodeSpec.js.flow +7 -7
- package/TextSelectionMarkSpec.js.flow +24 -24
- package/TextSubMarkSpec.js.flow +28 -28
- package/TextSuperMarkSpec.js.flow +28 -28
- package/TextUnderlineMarkSpec.js.flow +24 -24
- package/Types.js.flow +77 -77
- package/WebFontLoader.js.flow +22 -22
- package/blockQuoteInputRule.js.flow +36 -36
- package/bom.xml +9555 -9683
- package/browser.js.flow +7 -7
- package/buildEditorPlugins.js.flow +48 -48
- package/buildInputRules.js.flow +85 -85
- package/client/CollabConnector.js.flow +90 -90
- package/client/EditorConnection.js.flow +324 -324
- package/client/Licit.js +39 -39
- package/client/Licit.js.flow +649 -649
- package/client/Licit.test.js.flow +104 -104
- package/client/Reporter.js.flow +35 -35
- package/client/SimpleConnector.js.flow +61 -61
- package/client/http.js.flow +60 -60
- package/client/licit.css +12 -12
- package/client/throttle.js.flow +27 -27
- package/convertFromDOMElement.js.flow +33 -33
- package/convertFromHTML.js.flow +15 -15
- package/convertFromJSON.js.flow +53 -53
- package/convertToCSSPTValue.js.flow +19 -19
- package/convertToJSON.js.flow +7 -7
- package/createCommand.js.flow +62 -62
- package/createEditorKeyMap.js.flow +87 -87
- package/createEmptyEditorState.js.flow +29 -29
- package/createTableResizingPlugin.js.flow +86 -86
- package/findActionableCell.js.flow +74 -74
- package/findActiveMark.js.flow +32 -32
- package/hyphenize.js.flow +17 -17
- package/index.d.ts +167 -167
- package/index.js.flow +10 -10
- package/insertTable.js.flow +54 -54
- package/isEditorStateEmpty.js.flow +32 -32
- package/isTableNode.js.flow +15 -15
- package/joinDown.js.flow +25 -25
- package/joinListNode.js.flow +55 -55
- package/joinUp.js.flow +37 -37
- package/keymaps.js.flow +175 -175
- package/lookUpElement.js.flow +14 -14
- package/nodeAt.js.flow +12 -12
- package/normalizeHTML.js.flow +80 -80
- package/package.json +152 -152
- package/patchAnchorElements.js.flow +38 -38
- package/patchBreakElements.js.flow +22 -22
- package/patchElementInlineStyles.js.flow +92 -92
- package/patchListElements.js.flow +275 -275
- package/patchMathElements.js.flow +58 -58
- package/patchParagraphElements.js.flow +20 -20
- package/patchStyleElements.js.flow +197 -197
- package/patchTableElements.js.flow +88 -88
- package/rebaseDocWithSteps.js.flow +42 -42
- package/sanitizeURL.js.flow +13 -13
- package/splitListItem.js.flow +191 -191
- package/styles.css +46 -46
- package/toClosestFontPtSize.js.flow +22 -22
- package/toSafeHTMLDocument.js.flow +9 -9
- package/toggleBlockquote.js.flow +101 -101
- package/toggleCodeBlock.js.flow +102 -102
- package/ui/AlertInfo.js.flow +63 -63
- package/ui/BookmarkNodeView.js.flow +64 -64
- package/ui/CommandButton.js.flow +68 -68
- package/ui/CommandMenu.js.flow +74 -74
- package/ui/CommandMenuButton.js.flow +128 -128
- package/ui/CustomEditorView.js.flow +29 -29
- package/ui/CustomMenu.js.flow +14 -14
- package/ui/CustomMenuItem.js.flow +35 -35
- package/ui/CustomNodeView.js.flow +207 -207
- package/ui/CustomRadioButton.js.flow +63 -63
- package/ui/DocLayoutEditor.js.flow +130 -130
- package/ui/Editor.js.flow +281 -281
- package/ui/EditorFrameset.js.flow +79 -79
- package/ui/EditorToolbar.js.flow +197 -197
- package/ui/EditorToolbarConfig.js.flow +162 -162
- package/ui/FontSizeCommandMenuButton.js.flow +66 -66
- package/ui/FontTypeCommandMenuButton.js.flow +60 -60
- package/ui/Frag.js.flow +11 -11
- package/ui/Icon.js.flow +82 -82
- package/ui/ImageInlineEditor.js.flow +66 -66
- package/ui/KeyCodes.js.flow +12 -12
- package/ui/LinkTooltip.js.flow +51 -51
- package/ui/LinkURLEditor.js.flow +227 -227
- package/ui/ListItemNodeView.js.flow +101 -101
- package/ui/ListTypeButton.js.flow +121 -121
- package/ui/ListTypeCommandButton.js.flow +85 -85
- package/ui/ListTypeMenu.js.flow +78 -78
- package/ui/LoadingIndicator.js.flow +19 -19
- package/ui/PasteMenu.js.flow +52 -52
- package/ui/ResizeObserver.js.flow +105 -105
- package/ui/RichTextEditor.js.flow +133 -133
- package/ui/SelectionObserver.js.flow +134 -134
- package/ui/TableCellMenu.js.flow +49 -49
- package/ui/TableGridSizeEditor.js.flow +185 -185
- package/ui/TableNodeView.js.flow +36 -36
- package/ui/bindScrollHandler.js.flow +46 -46
- package/ui/canUseCSSFont.js.flow +42 -42
- package/ui/czi-body-layout-editor.css +16 -16
- package/ui/czi-bookmark-view.css +10 -10
- package/ui/czi-cursor-placeholder.css +36 -36
- package/ui/czi-custom-menu-button.css +18 -18
- package/ui/czi-custom-menu-item.css +30 -30
- package/ui/czi-custom-menu.css +8 -8
- package/ui/czi-custom-radio-button.css +80 -80
- package/ui/czi-custom-scrollbar.css +21 -21
- package/ui/czi-editor-frameset.css +81 -81
- package/ui/czi-editor-toolbar.css +122 -122
- package/ui/czi-editor.css +239 -216
- package/ui/czi-form.css +201 -201
- package/ui/czi-frag.css +3 -3
- package/ui/czi-heading.css +40 -40
- package/ui/czi-icon.css +72 -72
- package/ui/czi-image-resize-box.css +165 -165
- package/ui/czi-image-upload-editor.css +57 -57
- package/ui/czi-image-upload-placeholder.css +50 -50
- package/ui/czi-image-url-editor.css +38 -38
- package/ui/czi-image-view.css +121 -121
- package/ui/czi-indent.css +137 -137
- package/ui/czi-inline-editor.css +20 -20
- package/ui/czi-link-tooltip.css +112 -112
- package/ui/czi-list.css +406 -406
- package/ui/czi-loading-indicator.css +66 -66
- package/ui/czi-math-view.css +62 -62
- package/ui/czi-selection-placeholder.css +24 -24
- package/ui/czi-table-cell-menu.css +16 -16
- package/ui/czi-table-grid-size-editor.css +37 -37
- package/ui/czi-table.css +89 -89
- package/ui/czi-vars.css +47 -45
- package/ui/findActiveFontSize.js.flow +55 -55
- package/ui/findActiveFontType.js.flow +35 -35
- package/ui/fonts.css +460 -460
- package/ui/handleEditorDrop.js.flow +28 -28
- package/ui/handleEditorKeyDown.js.flow +39 -39
- package/ui/handleEditorPaste.js.flow +33 -33
- package/ui/htmlElementToRect.js.flow +18 -18
- package/ui/icon-font.css +9 -9
- package/ui/injectStyleSheet.js.flow +40 -40
- package/ui/isElementFullyVisible.js.flow +14 -14
- package/ui/isOffline.js.flow +8 -8
- package/ui/isReactClass.js.flow +12 -12
- package/ui/listType.css +21 -21
- package/ui/resolveImage.js.flow +121 -121
- package/ui/toCSSColor.js.flow +51 -51
- package/ui/toCSSLineSpacing.js.flow +53 -53
- package/ui/toHexColor.js.flow +26 -26
- package/ui/uuid.js.flow +9 -9
- package/uuid.js.flow +9 -9
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { EditorView } from 'prosemirror-view';
|
|
4
|
-
|
|
5
|
-
import { uploadImageFiles } from '../ImageUploadPlaceholderPlugin.js';
|
|
6
|
-
|
|
7
|
-
// https://prosemirror.net/examples/upload/
|
|
8
|
-
export default function handleEditorDrop(
|
|
9
|
-
view: EditorView,
|
|
10
|
-
event: DragEvent
|
|
11
|
-
): boolean {
|
|
12
|
-
const { dataTransfer } = event;
|
|
13
|
-
if (!dataTransfer) {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
const { files } = dataTransfer;
|
|
17
|
-
if (!files?.length) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const filesList = Array.from(files);
|
|
22
|
-
const coords = { x: event.clientX, y: event.clientY };
|
|
23
|
-
if (uploadImageFiles(view, filesList, coords)) {
|
|
24
|
-
event.preventDefault();
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { EditorView } from 'prosemirror-view';
|
|
4
|
+
|
|
5
|
+
import { uploadImageFiles } from '../ImageUploadPlaceholderPlugin.js';
|
|
6
|
+
|
|
7
|
+
// https://prosemirror.net/examples/upload/
|
|
8
|
+
export default function handleEditorDrop(
|
|
9
|
+
view: EditorView,
|
|
10
|
+
event: DragEvent
|
|
11
|
+
): boolean {
|
|
12
|
+
const { dataTransfer } = event;
|
|
13
|
+
if (!dataTransfer) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
const { files } = dataTransfer;
|
|
17
|
+
if (!files?.length) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const filesList = Array.from(files);
|
|
22
|
+
const coords = { x: event.clientX, y: event.clientY };
|
|
23
|
+
if (uploadImageFiles(view, filesList, coords)) {
|
|
24
|
+
event.preventDefault();
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { EditorView } from 'prosemirror-view';
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
BACKSPACE,
|
|
7
|
-
DELETE,
|
|
8
|
-
DOWN_ARROW,
|
|
9
|
-
LEFT_ARROW,
|
|
10
|
-
RIGHT_ARROW,
|
|
11
|
-
UP_ARROW,
|
|
12
|
-
} from './KeyCodes.js';
|
|
13
|
-
|
|
14
|
-
const AtomicNodeKeyCodes = new Set([
|
|
15
|
-
BACKSPACE,
|
|
16
|
-
DELETE,
|
|
17
|
-
DOWN_ARROW,
|
|
18
|
-
LEFT_ARROW,
|
|
19
|
-
RIGHT_ARROW,
|
|
20
|
-
UP_ARROW,
|
|
21
|
-
]);
|
|
22
|
-
|
|
23
|
-
export default function handleEditorKeyDown(
|
|
24
|
-
view: EditorView,
|
|
25
|
-
event: KeyboardEvent
|
|
26
|
-
): boolean {
|
|
27
|
-
const { selection, tr } = view.state;
|
|
28
|
-
const { from, to } = selection;
|
|
29
|
-
if (from === to - 1) {
|
|
30
|
-
const node = tr.doc.nodeAt(from);
|
|
31
|
-
if (node.isAtom && !node.isText && node.isLeaf) {
|
|
32
|
-
// An atomic node (e.g. Image) is selected.
|
|
33
|
-
// Only whitelisted keyCode should be allowed, which prevents user
|
|
34
|
-
// from typing letter after the atomic node selected.
|
|
35
|
-
return !AtomicNodeKeyCodes.has(event.key);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { EditorView } from 'prosemirror-view';
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
BACKSPACE,
|
|
7
|
+
DELETE,
|
|
8
|
+
DOWN_ARROW,
|
|
9
|
+
LEFT_ARROW,
|
|
10
|
+
RIGHT_ARROW,
|
|
11
|
+
UP_ARROW,
|
|
12
|
+
} from './KeyCodes.js';
|
|
13
|
+
|
|
14
|
+
const AtomicNodeKeyCodes = new Set([
|
|
15
|
+
BACKSPACE,
|
|
16
|
+
DELETE,
|
|
17
|
+
DOWN_ARROW,
|
|
18
|
+
LEFT_ARROW,
|
|
19
|
+
RIGHT_ARROW,
|
|
20
|
+
UP_ARROW,
|
|
21
|
+
]);
|
|
22
|
+
|
|
23
|
+
export default function handleEditorKeyDown(
|
|
24
|
+
view: EditorView,
|
|
25
|
+
event: KeyboardEvent
|
|
26
|
+
): boolean {
|
|
27
|
+
const { selection, tr } = view.state;
|
|
28
|
+
const { from, to } = selection;
|
|
29
|
+
if (from === to - 1) {
|
|
30
|
+
const node = tr.doc.nodeAt(from);
|
|
31
|
+
if (node.isAtom && !node.isText && node.isLeaf) {
|
|
32
|
+
// An atomic node (e.g. Image) is selected.
|
|
33
|
+
// Only whitelisted keyCode should be allowed, which prevents user
|
|
34
|
+
// from typing letter after the atomic node selected.
|
|
35
|
+
return !AtomicNodeKeyCodes.has(event.key);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { EditorView } from 'prosemirror-view';
|
|
4
|
-
|
|
5
|
-
import { uploadImageFiles } from '../ImageUploadPlaceholderPlugin.js';
|
|
6
|
-
|
|
7
|
-
// workaround to support ClipboardEvent as a valid type.
|
|
8
|
-
// https://github.com/facebook/flow/issues/1856
|
|
9
|
-
declare class ClipboardEvent extends Event {
|
|
10
|
-
clipboardData: DataTransfer;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export default function handleEditorPaste(
|
|
14
|
-
view: EditorView,
|
|
15
|
-
event: ClipboardEvent
|
|
16
|
-
): boolean {
|
|
17
|
-
const { clipboardData } = event;
|
|
18
|
-
if (!clipboardData) {
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const { files } = clipboardData;
|
|
23
|
-
if (!files?.length) {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
const filesList = Array.from(files);
|
|
27
|
-
|
|
28
|
-
if (uploadImageFiles(view, filesList)) {
|
|
29
|
-
event.preventDefault();
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { EditorView } from 'prosemirror-view';
|
|
4
|
+
|
|
5
|
+
import { uploadImageFiles } from '../ImageUploadPlaceholderPlugin.js';
|
|
6
|
+
|
|
7
|
+
// workaround to support ClipboardEvent as a valid type.
|
|
8
|
+
// https://github.com/facebook/flow/issues/1856
|
|
9
|
+
declare class ClipboardEvent extends Event {
|
|
10
|
+
clipboardData: DataTransfer;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default function handleEditorPaste(
|
|
14
|
+
view: EditorView,
|
|
15
|
+
event: ClipboardEvent
|
|
16
|
+
): boolean {
|
|
17
|
+
const { clipboardData } = event;
|
|
18
|
+
if (!clipboardData) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const { files } = clipboardData;
|
|
23
|
+
if (!files?.length) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
const filesList = Array.from(files);
|
|
27
|
+
|
|
28
|
+
if (uploadImageFiles(view, filesList)) {
|
|
29
|
+
event.preventDefault();
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
export type Rect = {
|
|
4
|
-
h: number,
|
|
5
|
-
w: number,
|
|
6
|
-
x: number,
|
|
7
|
-
y: number,
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export default function htmlElementToRect(el: HTMLElement): Rect {
|
|
11
|
-
const rect = el.getBoundingClientRect();
|
|
12
|
-
return {
|
|
13
|
-
x: rect.left,
|
|
14
|
-
y: rect.top,
|
|
15
|
-
w: rect.width,
|
|
16
|
-
h: rect.height,
|
|
17
|
-
};
|
|
18
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
export type Rect = {
|
|
4
|
+
h: number,
|
|
5
|
+
w: number,
|
|
6
|
+
x: number,
|
|
7
|
+
y: number,
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export default function htmlElementToRect(el: HTMLElement): Rect {
|
|
11
|
+
const rect = el.getBoundingClientRect();
|
|
12
|
+
return {
|
|
13
|
+
x: rect.left,
|
|
14
|
+
y: rect.top,
|
|
15
|
+
w: rect.width,
|
|
16
|
+
h: rect.height,
|
|
17
|
+
};
|
|
18
|
+
}
|
package/ui/icon-font.css
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/* [FS] IRAD-1061 2020-09-19
|
|
2
|
-
Now loaded locally, so that it work in closed network as well. */
|
|
3
|
-
@font-face {
|
|
4
|
-
font-family: 'Material Icons';
|
|
5
|
-
font-style: normal;
|
|
6
|
-
font-weight: 400;
|
|
7
|
-
src: local('Material Icons'), local('MaterialIcons-Regular'),
|
|
8
|
-
url('../fonts/material-icons/MaterialIcons-Regular.ttf') format('truetype');
|
|
9
|
-
}
|
|
1
|
+
/* [FS] IRAD-1061 2020-09-19
|
|
2
|
+
Now loaded locally, so that it work in closed network as well. */
|
|
3
|
+
@font-face {
|
|
4
|
+
font-family: 'Material Icons';
|
|
5
|
+
font-style: normal;
|
|
6
|
+
font-weight: 400;
|
|
7
|
+
src: local('Material Icons'), local('MaterialIcons-Regular'),
|
|
8
|
+
url('../fonts/material-icons/MaterialIcons-Regular.ttf') format('truetype');
|
|
9
|
+
}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
import url from 'url';
|
|
3
|
-
const addedElements = new Map();
|
|
4
|
-
|
|
5
|
-
function createElement(tag: string, attrs: Object): Element {
|
|
6
|
-
const el: any = document.createElement(tag);
|
|
7
|
-
Object.keys(attrs).forEach((key) => {
|
|
8
|
-
if (key === 'className') {
|
|
9
|
-
el[key] = attrs[key];
|
|
10
|
-
} else {
|
|
11
|
-
el.setAttribute(key, attrs[key]);
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
return el;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export default function injectStyleSheet(urlStr: string): void {
|
|
18
|
-
const parsedURL = new URL(urlStr);
|
|
19
|
-
const { protocol } = parsedURL;
|
|
20
|
-
const protocolPattern = /^(http:|https:)/;
|
|
21
|
-
if (!protocolPattern.test(protocol || '')) {
|
|
22
|
-
if (protocolPattern.test(window.location.protocol)) {
|
|
23
|
-
parsedURL.protocol = window.location.protocol;
|
|
24
|
-
} else {
|
|
25
|
-
parsedURL.protocol = 'http:';
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
const href = url.format(parsedURL);
|
|
29
|
-
if (addedElements.has(href)) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
const el = createElement('link', {
|
|
33
|
-
crossorigin: 'anonymous',
|
|
34
|
-
href,
|
|
35
|
-
rel: 'stylesheet',
|
|
36
|
-
});
|
|
37
|
-
addedElements.set(href, el);
|
|
38
|
-
const root = document.head || document.documentElement || document.body;
|
|
39
|
-
root?.appendChild(el);
|
|
40
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
import url from 'url';
|
|
3
|
+
const addedElements = new Map();
|
|
4
|
+
|
|
5
|
+
function createElement(tag: string, attrs: Object): Element {
|
|
6
|
+
const el: any = document.createElement(tag);
|
|
7
|
+
Object.keys(attrs).forEach((key) => {
|
|
8
|
+
if (key === 'className') {
|
|
9
|
+
el[key] = attrs[key];
|
|
10
|
+
} else {
|
|
11
|
+
el.setAttribute(key, attrs[key]);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
return el;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default function injectStyleSheet(urlStr: string): void {
|
|
18
|
+
const parsedURL = new URL(urlStr);
|
|
19
|
+
const { protocol } = parsedURL;
|
|
20
|
+
const protocolPattern = /^(http:|https:)/;
|
|
21
|
+
if (!protocolPattern.test(protocol || '')) {
|
|
22
|
+
if (protocolPattern.test(window.location.protocol)) {
|
|
23
|
+
parsedURL.protocol = window.location.protocol;
|
|
24
|
+
} else {
|
|
25
|
+
parsedURL.protocol = 'http:';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const href = url.format(parsedURL);
|
|
29
|
+
if (addedElements.has(href)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const el = createElement('link', {
|
|
33
|
+
crossorigin: 'anonymous',
|
|
34
|
+
href,
|
|
35
|
+
rel: 'stylesheet',
|
|
36
|
+
});
|
|
37
|
+
addedElements.set(href, el);
|
|
38
|
+
const root = document.head || document.documentElement || document.body;
|
|
39
|
+
root?.appendChild(el);
|
|
40
|
+
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { fromHTMlElement } from '@modusoperandi/licit-ui-commands';
|
|
4
|
-
|
|
5
|
-
export default function isElementFullyVisible(el: HTMLElement): boolean {
|
|
6
|
-
const { x, y, w, h } = fromHTMlElement(el);
|
|
7
|
-
// to handle the rounded border scenario.
|
|
8
|
-
const factor = '10px' === el.style.borderRadius ? 3 : 1;
|
|
9
|
-
// Only checks the top-left point.
|
|
10
|
-
const nwEl =
|
|
11
|
-
w && h ? el.ownerDocument.elementFromPoint(x + factor, y + factor) : null;
|
|
12
|
-
|
|
13
|
-
return !nwEl ? false : nwEl === el || el.contains(nwEl);
|
|
14
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { fromHTMlElement } from '@modusoperandi/licit-ui-commands';
|
|
4
|
+
|
|
5
|
+
export default function isElementFullyVisible(el: HTMLElement): boolean {
|
|
6
|
+
const { x, y, w, h } = fromHTMlElement(el);
|
|
7
|
+
// to handle the rounded border scenario.
|
|
8
|
+
const factor = '10px' === el.style.borderRadius ? 3 : 1;
|
|
9
|
+
// Only checks the top-left point.
|
|
10
|
+
const nwEl =
|
|
11
|
+
w && h ? el.ownerDocument.elementFromPoint(x + factor, y + factor) : null;
|
|
12
|
+
|
|
13
|
+
return !nwEl ? false : nwEl === el || el.contains(nwEl);
|
|
14
|
+
}
|
package/ui/isOffline.js.flow
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
export default function isOffline(): boolean {
|
|
4
|
-
if (window.navigator.hasOwnProperty('onLine')) {
|
|
5
|
-
return !window.navigator.onLine;
|
|
6
|
-
}
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
export default function isOffline(): boolean {
|
|
4
|
+
if (window.navigator.hasOwnProperty('onLine')) {
|
|
5
|
+
return !window.navigator.onLine;
|
|
6
|
+
}
|
|
7
|
+
return false;
|
|
8
|
+
}
|
package/ui/isReactClass.js.flow
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
export default function isReactClass(maybe: any): boolean {
|
|
4
|
-
if (typeof maybe !== 'function') {
|
|
5
|
-
return false;
|
|
6
|
-
}
|
|
7
|
-
const proto = maybe.prototype;
|
|
8
|
-
if (!proto) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
return !!proto.isReactComponent;
|
|
12
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
export default function isReactClass(maybe: any): boolean {
|
|
4
|
+
if (typeof maybe !== 'function') {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
const proto = maybe.prototype;
|
|
8
|
+
if (!proto) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
return !!proto.isReactComponent;
|
|
12
|
+
}
|
package/ui/listType.css
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
.container {
|
|
2
|
-
background: #fffefe;
|
|
3
|
-
border: 1px solid #bdb5b5;
|
|
4
|
-
display: grid;
|
|
5
|
-
grid-gap: 10px;
|
|
6
|
-
grid-template-columns: auto auto auto;
|
|
7
|
-
padding: 5px;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.buttonsize {
|
|
11
|
-
height: 50px;
|
|
12
|
-
width: 50px;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/* [FS] IRAD-1076 2020-10-15
|
|
16
|
-
Style for paste popup menu */
|
|
17
|
-
|
|
18
|
-
.pastemenu {
|
|
19
|
-
height: 35px;
|
|
20
|
-
width: 72px;
|
|
21
|
-
}
|
|
1
|
+
.container {
|
|
2
|
+
background: #fffefe;
|
|
3
|
+
border: 1px solid #bdb5b5;
|
|
4
|
+
display: grid;
|
|
5
|
+
grid-gap: 10px;
|
|
6
|
+
grid-template-columns: auto auto auto;
|
|
7
|
+
padding: 5px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.buttonsize {
|
|
11
|
+
height: 50px;
|
|
12
|
+
width: 50px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* [FS] IRAD-1076 2020-10-15
|
|
16
|
+
Style for paste popup menu */
|
|
17
|
+
|
|
18
|
+
.pastemenu {
|
|
19
|
+
height: 35px;
|
|
20
|
+
width: 72px;
|
|
21
|
+
}
|