@humandialog/forms.svelte 1.3.9 → 1.3.11
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/README.md +0 -0
- package/components/Fab.svelte.d.ts +17 -17
- package/components/Floating_container.svelte.d.ts +21 -21
- package/components/Grid.menu.svelte.d.ts +25 -25
- package/components/button.svelte.d.ts +26 -26
- package/components/checkbox.svelte.d.ts +26 -26
- package/components/combo/combo.d.ts +19 -19
- package/components/combo/combo.item.svelte.d.ts +20 -20
- package/components/combo/combo.js +19 -19
- package/components/combo/combo.source.svelte.d.ts +23 -23
- package/components/combo/combo.svelte +18 -3
- package/components/combo/combo.svelte.d.ts +44 -44
- package/components/contextmenu.svelte.d.ts +26 -26
- package/components/date.svelte +13 -3
- package/components/date.svelte.d.ts +33 -33
- package/components/delayed.spinner.svelte.d.ts +19 -19
- package/components/document/editor.svelte.d.ts +35 -35
- package/components/document/internal/Document_command.d.ts +11 -11
- package/components/document/internal/Document_command.js +11 -11
- package/components/document/internal/Selection_helper.d.ts +7 -7
- package/components/document/internal/Selection_helper.js +133 -133
- package/components/document/internal/Selection_range.d.ts +26 -26
- package/components/document/internal/Selection_range.js +58 -58
- package/components/document/internal/findSuggestionMatch.d.ts +16 -16
- package/components/document/internal/findSuggestionMatch.js +51 -51
- package/components/document/internal/h1.icon.svelte.d.ts +23 -23
- package/components/document/internal/h2.icon.svelte.d.ts +23 -23
- package/components/document/internal/h3.icon.svelte.d.ts +23 -23
- package/components/document/internal/h4.icon.svelte.d.ts +23 -23
- package/components/document/internal/palette.row.big.svelte.d.ts +46 -46
- package/components/document/internal/palette.row.svelte.d.ts +46 -46
- package/components/document/internal/palette.svelte.d.ts +82 -82
- package/components/document/internal/suggestion.d.ts +158 -158
- package/components/document/internal/suggestion.js +194 -194
- package/components/document/rich.edit.svelte.d.ts +34 -34
- package/components/edit.field.svelte.d.ts +31 -31
- package/components/file.loader.svelte.d.ts +25 -25
- package/components/icon.ex.svelte +114 -0
- package/components/icon.ex.svelte.d.ts +62 -0
- package/components/icon.svelte.d.ts +62 -62
- package/components/input.text.svelte.d.ts +29 -29
- package/components/inputbox.ltop.svelte.d.ts +59 -59
- package/components/kanban/Kanban.d.ts +47 -47
- package/components/kanban/Kanban.js +105 -105
- package/components/kanban/internal/kanban.card.svelte +9 -10
- package/components/kanban/internal/kanban.card.svelte.d.ts +32 -32
- package/components/kanban/internal/kanban.column.svelte +1 -1
- package/components/kanban/internal/kanban.column.svelte.d.ts +53 -53
- package/components/kanban/internal/kanban.inserter.svelte.d.ts +18 -18
- package/components/kanban/internal/kanban.move.menu.svelte +135 -135
- package/components/kanban/internal/kanban.move.menu.svelte.d.ts +22 -22
- package/components/kanban/internal/kanban.props.svelte +6 -6
- package/components/kanban/internal/kanban.props.svelte.d.ts +19 -19
- package/components/kanban/kanban.callbacks.svelte +1 -1
- package/components/kanban/kanban.callbacks.svelte.d.ts +18 -18
- package/components/kanban/kanban.column.svelte.d.ts +21 -21
- package/components/kanban/kanban.combo.svelte.d.ts +25 -25
- package/components/kanban/kanban.date.svelte +1 -1
- package/components/kanban/kanban.date.svelte.d.ts +21 -21
- package/components/kanban/kanban.source.svelte.d.ts +23 -23
- package/components/kanban/kanban.static.svelte.d.ts +20 -20
- package/components/kanban/kanban.summary.svelte.d.ts +18 -18
- package/components/kanban/kanban.svelte.d.ts +65 -65
- package/components/kanban/kanban.tags.svelte.d.ts +24 -24
- package/components/kanban/kanban.title.svelte.d.ts +21 -21
- package/components/list/List.d.ts +46 -46
- package/components/list/List.js +54 -54
- package/components/list/internal/list.element.props.svelte +4 -4
- package/components/list/internal/list.element.props.svelte.d.ts +21 -21
- package/components/list/internal/list.element.summary.svelte +46 -46
- package/components/list/internal/list.element.summary.svelte.d.ts +24 -24
- package/components/list/internal/list.element.svelte +13 -27
- package/components/list/internal/list.element.svelte.d.ts +31 -31
- package/components/list/internal/list.inserter.svelte.d.ts +19 -19
- package/components/list/list.combo.svelte.d.ts +22 -22
- package/components/list/list.date.svelte.d.ts +18 -18
- package/components/list/list.inserter.svelte.d.ts +17 -17
- package/components/list/list.static.svelte.d.ts +17 -17
- package/components/list/list.summary.svelte.d.ts +19 -19
- package/components/list/list.svelte.d.ts +59 -59
- package/components/list/list.title.svelte.d.ts +22 -22
- package/components/menu.d.ts +5 -5
- package/components/menu.js +57 -57
- package/components/radio.svelte.d.ts +26 -26
- package/components/sidebar/sidebar.brand.svelte.d.ts +33 -33
- package/components/sidebar/sidebar.group.svelte.d.ts +33 -33
- package/components/sidebar/sidebar.item.svelte +4 -4
- package/components/sidebar/sidebar.item.svelte.d.ts +32 -32
- package/components/sidebar/sidebar.list.svelte.d.ts +38 -38
- package/components/sidebar/sidebar.svelte.d.ts +27 -27
- package/components/simple.table.svelte.d.ts +41 -41
- package/components/table/_template.table.svelte.d.ts +57 -57
- package/components/table/column.svelte.d.ts +19 -19
- package/components/table/item.svelte.d.ts +17 -17
- package/components/table/table.d.ts +11 -11
- package/components/table/table.js +11 -11
- package/components/table/table.svelte.d.ts +75 -75
- package/components/tag.colors.svelte.d.ts +17 -17
- package/components/tag.svelte +2 -2
- package/components/tag.svelte.d.ts +20 -20
- package/components/tags.svelte.d.ts +32 -32
- package/components/textarea.ltop.svelte.d.ts +35 -35
- package/components/tile.title.svelte.d.ts +29 -29
- package/console.svelte.d.ts +23 -23
- package/desk.svelte.d.ts +23 -23
- package/form.box.svelte.d.ts +35 -35
- package/horizontal.toolbar.svelte.d.ts +25 -25
- package/index.d.ts +63 -62
- package/index.js +69 -68
- package/internal/configurable.content.svelte.d.ts +29 -29
- package/internal/loading.svelte.d.ts +23 -23
- package/modal.svelte.d.ts +39 -39
- package/operations.svelte.d.ts +16 -16
- package/package.json +10 -9
- package/page.row.svelte.d.ts +31 -31
- package/page.svelte.d.ts +47 -47
- package/stores.d.ts +44 -44
- package/tenant.members.svelte.d.ts +33 -33
- package/tile.svelte.d.ts +33 -33
- package/tiles.row.svelte.d.ts +31 -31
- package/tiles.vertical.row.svelte.d.ts +29 -29
- package/updates.d.ts +4 -4
- package/updates.js +29 -2
- package/utils.d.ts +50 -50
- package/utils.js +1 -1
- package/vertical.toolbar.svelte.d.ts +27 -27
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { SvelteComponentTyped } from "svelte";
|
|
2
|
-
declare const __propDef: {
|
|
3
|
-
props: {
|
|
4
|
-
[x: string]: any;
|
|
5
|
-
self?: null | undefined;
|
|
6
|
-
a?: string | undefined;
|
|
7
|
-
context?: string | undefined;
|
|
8
|
-
typename?: string | undefined;
|
|
9
|
-
date?: Date | undefined;
|
|
10
|
-
onSelect?: undefined;
|
|
11
|
-
type?: string | undefined;
|
|
12
|
-
changed?: undefined;
|
|
13
|
-
s?: string | undefined;
|
|
14
|
-
c?: string | undefined;
|
|
15
|
-
compact?: boolean | undefined;
|
|
16
|
-
inContext?: string | undefined;
|
|
17
|
-
pushChangesImmediately?: boolean | undefined;
|
|
18
|
-
show?: ((event: any, hide_callback: any) => void) | undefined;
|
|
19
|
-
refresh?: (() => void) | undefined;
|
|
20
|
-
};
|
|
21
|
-
events: {
|
|
22
|
-
[evt: string]: CustomEvent<any>;
|
|
23
|
-
};
|
|
24
|
-
slots: {};
|
|
25
|
-
};
|
|
26
|
-
export type DateProps = typeof __propDef.props;
|
|
27
|
-
export type DateEvents = typeof __propDef.events;
|
|
28
|
-
export type DateSlots = typeof __propDef.slots;
|
|
29
|
-
export default class Date extends SvelteComponentTyped<DateProps, DateEvents, DateSlots> {
|
|
30
|
-
get show(): (event: any, hide_callback: any) => void;
|
|
31
|
-
get refresh(): () => void;
|
|
32
|
-
}
|
|
33
|
-
export {};
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
[x: string]: any;
|
|
5
|
+
self?: null | undefined;
|
|
6
|
+
a?: string | undefined;
|
|
7
|
+
context?: string | undefined;
|
|
8
|
+
typename?: string | undefined;
|
|
9
|
+
date?: Date | undefined;
|
|
10
|
+
onSelect?: undefined;
|
|
11
|
+
type?: string | undefined;
|
|
12
|
+
changed?: undefined;
|
|
13
|
+
s?: string | undefined;
|
|
14
|
+
c?: string | undefined;
|
|
15
|
+
compact?: boolean | undefined;
|
|
16
|
+
inContext?: string | undefined;
|
|
17
|
+
pushChangesImmediately?: boolean | undefined;
|
|
18
|
+
show?: ((event: any, hide_callback: any) => void) | undefined;
|
|
19
|
+
refresh?: (() => void) | undefined;
|
|
20
|
+
};
|
|
21
|
+
events: {
|
|
22
|
+
[evt: string]: CustomEvent<any>;
|
|
23
|
+
};
|
|
24
|
+
slots: {};
|
|
25
|
+
};
|
|
26
|
+
export type DateProps = typeof __propDef.props;
|
|
27
|
+
export type DateEvents = typeof __propDef.events;
|
|
28
|
+
export type DateSlots = typeof __propDef.slots;
|
|
29
|
+
export default class Date extends SvelteComponentTyped<DateProps, DateEvents, DateSlots> {
|
|
30
|
+
get show(): (event: any, hide_callback: any) => void;
|
|
31
|
+
get refresh(): () => void;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { SvelteComponentTyped } from "svelte";
|
|
2
|
-
declare const __propDef: {
|
|
3
|
-
props: {
|
|
4
|
-
[x: string]: any;
|
|
5
|
-
color?: string | undefined;
|
|
6
|
-
size?: number | undefined;
|
|
7
|
-
delay?: number | undefined;
|
|
8
|
-
};
|
|
9
|
-
events: {
|
|
10
|
-
[evt: string]: CustomEvent<any>;
|
|
11
|
-
};
|
|
12
|
-
slots: {};
|
|
13
|
-
};
|
|
14
|
-
export type DelayedProps = typeof __propDef.props;
|
|
15
|
-
export type DelayedEvents = typeof __propDef.events;
|
|
16
|
-
export type DelayedSlots = typeof __propDef.slots;
|
|
17
|
-
export default class Delayed extends SvelteComponentTyped<DelayedProps, DelayedEvents, DelayedSlots> {
|
|
18
|
-
}
|
|
19
|
-
export {};
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
[x: string]: any;
|
|
5
|
+
color?: string | undefined;
|
|
6
|
+
size?: number | undefined;
|
|
7
|
+
delay?: number | undefined;
|
|
8
|
+
};
|
|
9
|
+
events: {
|
|
10
|
+
[evt: string]: CustomEvent<any>;
|
|
11
|
+
};
|
|
12
|
+
slots: {};
|
|
13
|
+
};
|
|
14
|
+
export type DelayedProps = typeof __propDef.props;
|
|
15
|
+
export type DelayedEvents = typeof __propDef.events;
|
|
16
|
+
export type DelayedSlots = typeof __propDef.slots;
|
|
17
|
+
export default class Delayed extends SvelteComponentTyped<DelayedProps, DelayedEvents, DelayedSlots> {
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { SvelteComponentTyped } from "svelte";
|
|
2
|
-
declare const __propDef: {
|
|
3
|
-
props: {
|
|
4
|
-
[x: string]: any;
|
|
5
|
-
value?: string | undefined;
|
|
6
|
-
placeholder?: string | undefined;
|
|
7
|
-
self?: null | undefined;
|
|
8
|
-
a?: string | undefined;
|
|
9
|
-
context?: string | undefined;
|
|
10
|
-
typename?: string | undefined;
|
|
11
|
-
compact?: boolean | undefined;
|
|
12
|
-
onFocusCb?: undefined;
|
|
13
|
-
onBlurCb?: undefined;
|
|
14
|
-
onAddImage?: undefined;
|
|
15
|
-
onRemoveImage?: undefined;
|
|
16
|
-
c?: string | undefined;
|
|
17
|
-
pushChangesImmediately?: boolean | undefined;
|
|
18
|
-
run?: ((onStop?: undefined) => void) | undefined;
|
|
19
|
-
getFormattingOperations?: ((withCaptions?: boolean) => any[]) | undefined;
|
|
20
|
-
save?: (() => void) | undefined;
|
|
21
|
-
};
|
|
22
|
-
events: {
|
|
23
|
-
[evt: string]: CustomEvent<any>;
|
|
24
|
-
};
|
|
25
|
-
slots: {};
|
|
26
|
-
};
|
|
27
|
-
export type EditorProps = typeof __propDef.props;
|
|
28
|
-
export type EditorEvents = typeof __propDef.events;
|
|
29
|
-
export type EditorSlots = typeof __propDef.slots;
|
|
30
|
-
export default class Editor extends SvelteComponentTyped<EditorProps, EditorEvents, EditorSlots> {
|
|
31
|
-
get run(): (onStop?: undefined) => void;
|
|
32
|
-
get getFormattingOperations(): (withCaptions?: boolean) => any[];
|
|
33
|
-
get save(): () => void;
|
|
34
|
-
}
|
|
35
|
-
export {};
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
[x: string]: any;
|
|
5
|
+
value?: string | undefined;
|
|
6
|
+
placeholder?: string | undefined;
|
|
7
|
+
self?: null | undefined;
|
|
8
|
+
a?: string | undefined;
|
|
9
|
+
context?: string | undefined;
|
|
10
|
+
typename?: string | undefined;
|
|
11
|
+
compact?: boolean | undefined;
|
|
12
|
+
onFocusCb?: undefined;
|
|
13
|
+
onBlurCb?: undefined;
|
|
14
|
+
onAddImage?: undefined;
|
|
15
|
+
onRemoveImage?: undefined;
|
|
16
|
+
c?: string | undefined;
|
|
17
|
+
pushChangesImmediately?: boolean | undefined;
|
|
18
|
+
run?: ((onStop?: undefined) => void) | undefined;
|
|
19
|
+
getFormattingOperations?: ((withCaptions?: boolean) => any[]) | undefined;
|
|
20
|
+
save?: (() => void) | undefined;
|
|
21
|
+
};
|
|
22
|
+
events: {
|
|
23
|
+
[evt: string]: CustomEvent<any>;
|
|
24
|
+
};
|
|
25
|
+
slots: {};
|
|
26
|
+
};
|
|
27
|
+
export type EditorProps = typeof __propDef.props;
|
|
28
|
+
export type EditorEvents = typeof __propDef.events;
|
|
29
|
+
export type EditorSlots = typeof __propDef.slots;
|
|
30
|
+
export default class Editor extends SvelteComponentTyped<EditorProps, EditorEvents, EditorSlots> {
|
|
31
|
+
get run(): (onStop?: undefined) => void;
|
|
32
|
+
get getFormattingOperations(): (withCaptions?: boolean) => any[];
|
|
33
|
+
get save(): () => void;
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export declare class Document_command {
|
|
2
|
-
caption: string;
|
|
3
|
-
description: string;
|
|
4
|
-
tags?: string;
|
|
5
|
-
shortcut?: string;
|
|
6
|
-
icon: any;
|
|
7
|
-
icon_size?: number;
|
|
8
|
-
on_choice: any;
|
|
9
|
-
is_active: any;
|
|
10
|
-
separator?: boolean;
|
|
11
|
-
}
|
|
1
|
+
export declare class Document_command {
|
|
2
|
+
caption: string;
|
|
3
|
+
description: string;
|
|
4
|
+
tags?: string;
|
|
5
|
+
shortcut?: string;
|
|
6
|
+
icon: any;
|
|
7
|
+
icon_size?: number;
|
|
8
|
+
on_choice: any;
|
|
9
|
+
is_active: any;
|
|
10
|
+
separator?: boolean;
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export class Document_command {
|
|
2
|
-
caption;
|
|
3
|
-
description;
|
|
4
|
-
tags;
|
|
5
|
-
shortcut;
|
|
6
|
-
icon;
|
|
7
|
-
icon_size = 6;
|
|
8
|
-
on_choice;
|
|
9
|
-
is_active;
|
|
10
|
-
separator = false;
|
|
11
|
-
}
|
|
1
|
+
export class Document_command {
|
|
2
|
+
caption;
|
|
3
|
+
description;
|
|
4
|
+
tags;
|
|
5
|
+
shortcut;
|
|
6
|
+
icon;
|
|
7
|
+
icon_size = 6;
|
|
8
|
+
on_choice;
|
|
9
|
+
is_active;
|
|
10
|
+
separator = false;
|
|
11
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Selection_range } from "./Selection_range";
|
|
2
|
-
export declare class Selection_helper {
|
|
3
|
-
private static nodewalk;
|
|
4
|
-
static create_cursor_range(elem: HTMLElement, nrOfChars: number): [Range, Node];
|
|
5
|
-
static create_range(elem: HTMLElement, start: number, end: number): Range;
|
|
6
|
-
static get_selection(elem: HTMLElement): Selection_range;
|
|
7
|
-
}
|
|
1
|
+
import { Selection_range } from "./Selection_range";
|
|
2
|
+
export declare class Selection_helper {
|
|
3
|
+
private static nodewalk;
|
|
4
|
+
static create_cursor_range(elem: HTMLElement, nrOfChars: number): [Range, Node];
|
|
5
|
+
static create_range(elem: HTMLElement, start: number, end: number): Range;
|
|
6
|
+
static get_selection(elem: HTMLElement): Selection_range;
|
|
7
|
+
}
|
|
@@ -1,133 +1,133 @@
|
|
|
1
|
-
import { Selection_edge, Selection_edge_info, Selection_range } from "./Selection_range";
|
|
2
|
-
export class Selection_helper {
|
|
3
|
-
static nodewalk(node, func) {
|
|
4
|
-
let result = func(node);
|
|
5
|
-
for (node = node.firstChild; result !== false && node; node = node.nextSibling)
|
|
6
|
-
result = this.nodewalk(node, func);
|
|
7
|
-
return result;
|
|
8
|
-
}
|
|
9
|
-
static create_cursor_range(elem, nrOfChars) {
|
|
10
|
-
let result = [elem, 0];
|
|
11
|
-
this.nodewalk(elem, (node) => {
|
|
12
|
-
/* if (nrOfChars === 0) {
|
|
13
|
-
result = [node, 0]
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
*/
|
|
17
|
-
if (node.textContent && !node.firstChild && node.nodeType !== node.COMMENT_NODE && node.nodeType === node.TEXT_NODE) {
|
|
18
|
-
if (node.textContent.length < nrOfChars) {
|
|
19
|
-
nrOfChars -= node.textContent.length;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
result = [node, nrOfChars];
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
;
|
|
27
|
-
result = [node, nrOfChars];
|
|
28
|
-
});
|
|
29
|
-
const range = document.createRange();
|
|
30
|
-
range.setStart(result[0], result[1]);
|
|
31
|
-
range.setEnd(result[0], result[1]);
|
|
32
|
-
return [range, result[0]];
|
|
33
|
-
}
|
|
34
|
-
static create_range(elem, start, end) {
|
|
35
|
-
const nodesToFind = [null, null];
|
|
36
|
-
const selPoints = [0, 0];
|
|
37
|
-
let nrOfChars = start;
|
|
38
|
-
let nrOfCharsEnd = end;
|
|
39
|
-
this.nodewalk(elem, (node) => {
|
|
40
|
-
if (nodesToFind.every(v => v)) {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
if (start <= 0) {
|
|
44
|
-
nodesToFind[0] = node;
|
|
45
|
-
selPoints[0] = 0;
|
|
46
|
-
}
|
|
47
|
-
else if (node.textContent && !node.firstChild && node.nodeType !== node.COMMENT_NODE && node.nodeType === node.TEXT_NODE) {
|
|
48
|
-
const nodeLength = node.textContent.length;
|
|
49
|
-
const nrToCompare = (nodesToFind[0] === null) ? nrOfChars : nrOfCharsEnd;
|
|
50
|
-
if (nrToCompare > nodeLength) {
|
|
51
|
-
nrOfChars -= nodeLength;
|
|
52
|
-
nrOfCharsEnd -= nodeLength;
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
if (nodesToFind[0] !== null) {
|
|
56
|
-
nodesToFind[1] = node;
|
|
57
|
-
selPoints[1] = nrOfCharsEnd;
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
nodesToFind[0] = node;
|
|
61
|
-
selPoints[0] = nrOfChars;
|
|
62
|
-
if (nrOfCharsEnd <= nodeLength) {
|
|
63
|
-
nodesToFind[1] = node;
|
|
64
|
-
selPoints[1] = nrOfCharsEnd;
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
nrOfCharsEnd -= nodeLength;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
;
|
|
73
|
-
});
|
|
74
|
-
if (!nodesToFind[0]) {
|
|
75
|
-
nodesToFind[0] = elem;
|
|
76
|
-
}
|
|
77
|
-
if (!nodesToFind[1]) {
|
|
78
|
-
nodesToFind[1] = nodesToFind[0];
|
|
79
|
-
}
|
|
80
|
-
const range = document.createRange();
|
|
81
|
-
range.setStart(nodesToFind[0], selPoints[0]);
|
|
82
|
-
range.setEnd(nodesToFind[1], selPoints[1]);
|
|
83
|
-
return range;
|
|
84
|
-
}
|
|
85
|
-
static get_selection(elem) {
|
|
86
|
-
const sel = window.getSelection();
|
|
87
|
-
if (sel.anchorNode === elem) {
|
|
88
|
-
return new Selection_range(new Selection_edge(sel.anchorOffset, sel.anchorOffset), new Selection_edge(sel.focusOffset, sel.focusOffset));
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
const nodesToFind = [sel.anchorNode, sel.focusNode];
|
|
92
|
-
if (!elem.contains(sel.anchorNode) || !elem.contains(sel.focusNode))
|
|
93
|
-
return undefined;
|
|
94
|
-
const found = [false, false];
|
|
95
|
-
let i;
|
|
96
|
-
let edges_positons = [0, 0];
|
|
97
|
-
this.nodewalk(elem, (node) => {
|
|
98
|
-
for (i = 0; i < 2; i++) {
|
|
99
|
-
if (node === nodesToFind[i]) {
|
|
100
|
-
found[i] = true;
|
|
101
|
-
if (found[i === 0 ? 1 : 0])
|
|
102
|
-
return false; // all done
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
if (node.textContent && !node.firstChild && node.nodeType !== node.COMMENT_NODE) {
|
|
106
|
-
for (i = 0; i < 2; i++) {
|
|
107
|
-
if (!found[i]) {
|
|
108
|
-
edges_positons[i] += node.textContent.length;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
edges_positons[0] += sel.anchorOffset;
|
|
114
|
-
edges_positons[1] += sel.focusOffset;
|
|
115
|
-
let begin = new Selection_edge(edges_positons[0], sel.anchorOffset);
|
|
116
|
-
let end = new Selection_edge(edges_positons[1], sel.focusOffset);
|
|
117
|
-
if (sel.anchorOffset == sel.anchorNode.textContent.length)
|
|
118
|
-
begin.info = Selection_edge_info.Node_end;
|
|
119
|
-
else if (sel.anchorOffset == 0)
|
|
120
|
-
begin.info = Selection_edge_info.Node_start;
|
|
121
|
-
if (sel.focusOffset == sel.focusNode.textContent.length)
|
|
122
|
-
end.info = Selection_edge_info.Node_end;
|
|
123
|
-
else if (sel.focusOffset == 0)
|
|
124
|
-
end.info = Selection_edge_info.Node_start;
|
|
125
|
-
if (begin.absolute_index > end.absolute_index) {
|
|
126
|
-
return new Selection_range(new Selection_edge(end.absolute_index, end.node_index, end.info), new Selection_edge(begin.absolute_index, begin.node_index, begin.info));
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
return new Selection_range(new Selection_edge(begin.absolute_index, begin.node_index, begin.info), new Selection_edge(end.absolute_index, end.node_index, end.info));
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
1
|
+
import { Selection_edge, Selection_edge_info, Selection_range } from "./Selection_range";
|
|
2
|
+
export class Selection_helper {
|
|
3
|
+
static nodewalk(node, func) {
|
|
4
|
+
let result = func(node);
|
|
5
|
+
for (node = node.firstChild; result !== false && node; node = node.nextSibling)
|
|
6
|
+
result = this.nodewalk(node, func);
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
9
|
+
static create_cursor_range(elem, nrOfChars) {
|
|
10
|
+
let result = [elem, 0];
|
|
11
|
+
this.nodewalk(elem, (node) => {
|
|
12
|
+
/* if (nrOfChars === 0) {
|
|
13
|
+
result = [node, 0]
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
*/
|
|
17
|
+
if (node.textContent && !node.firstChild && node.nodeType !== node.COMMENT_NODE && node.nodeType === node.TEXT_NODE) {
|
|
18
|
+
if (node.textContent.length < nrOfChars) {
|
|
19
|
+
nrOfChars -= node.textContent.length;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
result = [node, nrOfChars];
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
;
|
|
27
|
+
result = [node, nrOfChars];
|
|
28
|
+
});
|
|
29
|
+
const range = document.createRange();
|
|
30
|
+
range.setStart(result[0], result[1]);
|
|
31
|
+
range.setEnd(result[0], result[1]);
|
|
32
|
+
return [range, result[0]];
|
|
33
|
+
}
|
|
34
|
+
static create_range(elem, start, end) {
|
|
35
|
+
const nodesToFind = [null, null];
|
|
36
|
+
const selPoints = [0, 0];
|
|
37
|
+
let nrOfChars = start;
|
|
38
|
+
let nrOfCharsEnd = end;
|
|
39
|
+
this.nodewalk(elem, (node) => {
|
|
40
|
+
if (nodesToFind.every(v => v)) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
if (start <= 0) {
|
|
44
|
+
nodesToFind[0] = node;
|
|
45
|
+
selPoints[0] = 0;
|
|
46
|
+
}
|
|
47
|
+
else if (node.textContent && !node.firstChild && node.nodeType !== node.COMMENT_NODE && node.nodeType === node.TEXT_NODE) {
|
|
48
|
+
const nodeLength = node.textContent.length;
|
|
49
|
+
const nrToCompare = (nodesToFind[0] === null) ? nrOfChars : nrOfCharsEnd;
|
|
50
|
+
if (nrToCompare > nodeLength) {
|
|
51
|
+
nrOfChars -= nodeLength;
|
|
52
|
+
nrOfCharsEnd -= nodeLength;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
if (nodesToFind[0] !== null) {
|
|
56
|
+
nodesToFind[1] = node;
|
|
57
|
+
selPoints[1] = nrOfCharsEnd;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
nodesToFind[0] = node;
|
|
61
|
+
selPoints[0] = nrOfChars;
|
|
62
|
+
if (nrOfCharsEnd <= nodeLength) {
|
|
63
|
+
nodesToFind[1] = node;
|
|
64
|
+
selPoints[1] = nrOfCharsEnd;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
nrOfCharsEnd -= nodeLength;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
;
|
|
73
|
+
});
|
|
74
|
+
if (!nodesToFind[0]) {
|
|
75
|
+
nodesToFind[0] = elem;
|
|
76
|
+
}
|
|
77
|
+
if (!nodesToFind[1]) {
|
|
78
|
+
nodesToFind[1] = nodesToFind[0];
|
|
79
|
+
}
|
|
80
|
+
const range = document.createRange();
|
|
81
|
+
range.setStart(nodesToFind[0], selPoints[0]);
|
|
82
|
+
range.setEnd(nodesToFind[1], selPoints[1]);
|
|
83
|
+
return range;
|
|
84
|
+
}
|
|
85
|
+
static get_selection(elem) {
|
|
86
|
+
const sel = window.getSelection();
|
|
87
|
+
if (sel.anchorNode === elem) {
|
|
88
|
+
return new Selection_range(new Selection_edge(sel.anchorOffset, sel.anchorOffset), new Selection_edge(sel.focusOffset, sel.focusOffset));
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
const nodesToFind = [sel.anchorNode, sel.focusNode];
|
|
92
|
+
if (!elem.contains(sel.anchorNode) || !elem.contains(sel.focusNode))
|
|
93
|
+
return undefined;
|
|
94
|
+
const found = [false, false];
|
|
95
|
+
let i;
|
|
96
|
+
let edges_positons = [0, 0];
|
|
97
|
+
this.nodewalk(elem, (node) => {
|
|
98
|
+
for (i = 0; i < 2; i++) {
|
|
99
|
+
if (node === nodesToFind[i]) {
|
|
100
|
+
found[i] = true;
|
|
101
|
+
if (found[i === 0 ? 1 : 0])
|
|
102
|
+
return false; // all done
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (node.textContent && !node.firstChild && node.nodeType !== node.COMMENT_NODE) {
|
|
106
|
+
for (i = 0; i < 2; i++) {
|
|
107
|
+
if (!found[i]) {
|
|
108
|
+
edges_positons[i] += node.textContent.length;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
edges_positons[0] += sel.anchorOffset;
|
|
114
|
+
edges_positons[1] += sel.focusOffset;
|
|
115
|
+
let begin = new Selection_edge(edges_positons[0], sel.anchorOffset);
|
|
116
|
+
let end = new Selection_edge(edges_positons[1], sel.focusOffset);
|
|
117
|
+
if (sel.anchorOffset == sel.anchorNode.textContent.length)
|
|
118
|
+
begin.info = Selection_edge_info.Node_end;
|
|
119
|
+
else if (sel.anchorOffset == 0)
|
|
120
|
+
begin.info = Selection_edge_info.Node_start;
|
|
121
|
+
if (sel.focusOffset == sel.focusNode.textContent.length)
|
|
122
|
+
end.info = Selection_edge_info.Node_end;
|
|
123
|
+
else if (sel.focusOffset == 0)
|
|
124
|
+
end.info = Selection_edge_info.Node_start;
|
|
125
|
+
if (begin.absolute_index > end.absolute_index) {
|
|
126
|
+
return new Selection_range(new Selection_edge(end.absolute_index, end.node_index, end.info), new Selection_edge(begin.absolute_index, begin.node_index, begin.info));
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
return new Selection_range(new Selection_edge(begin.absolute_index, begin.node_index, begin.info), new Selection_edge(end.absolute_index, end.node_index, end.info));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
export declare enum Selection_edge_info {
|
|
2
|
-
None = 0,
|
|
3
|
-
Node_start = 1,
|
|
4
|
-
Node_end = 2
|
|
5
|
-
}
|
|
6
|
-
export declare class Selection_edge {
|
|
7
|
-
absolute_index: number;
|
|
8
|
-
node_index: number;
|
|
9
|
-
info: Selection_edge_info;
|
|
10
|
-
node_left: number;
|
|
11
|
-
node_top: number;
|
|
12
|
-
node_right: number;
|
|
13
|
-
node_bottom: number;
|
|
14
|
-
constructor(abs_index: number, node_index: number, info?: Selection_edge_info);
|
|
15
|
-
is_equal(c: Selection_edge): boolean;
|
|
16
|
-
clone(): Selection_edge;
|
|
17
|
-
}
|
|
18
|
-
export declare class Selection_range {
|
|
19
|
-
begin: Selection_edge;
|
|
20
|
-
end: Selection_edge;
|
|
21
|
-
is_multi: () => void;
|
|
22
|
-
constructor(b: Selection_edge, e: Selection_edge);
|
|
23
|
-
clone(): Selection_range;
|
|
24
|
-
is_equal(c: Selection_range): boolean;
|
|
25
|
-
static unknown: Selection_range;
|
|
26
|
-
}
|
|
1
|
+
export declare enum Selection_edge_info {
|
|
2
|
+
None = 0,
|
|
3
|
+
Node_start = 1,
|
|
4
|
+
Node_end = 2
|
|
5
|
+
}
|
|
6
|
+
export declare class Selection_edge {
|
|
7
|
+
absolute_index: number;
|
|
8
|
+
node_index: number;
|
|
9
|
+
info: Selection_edge_info;
|
|
10
|
+
node_left: number;
|
|
11
|
+
node_top: number;
|
|
12
|
+
node_right: number;
|
|
13
|
+
node_bottom: number;
|
|
14
|
+
constructor(abs_index: number, node_index: number, info?: Selection_edge_info);
|
|
15
|
+
is_equal(c: Selection_edge): boolean;
|
|
16
|
+
clone(): Selection_edge;
|
|
17
|
+
}
|
|
18
|
+
export declare class Selection_range {
|
|
19
|
+
begin: Selection_edge;
|
|
20
|
+
end: Selection_edge;
|
|
21
|
+
is_multi: () => void;
|
|
22
|
+
constructor(b: Selection_edge, e: Selection_edge);
|
|
23
|
+
clone(): Selection_range;
|
|
24
|
+
is_equal(c: Selection_range): boolean;
|
|
25
|
+
static unknown: Selection_range;
|
|
26
|
+
}
|