@marianmeres/stuic 1.125.0 → 2.0.0-next.2
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 +2 -8
- package/dist/_shared.css +2 -0
- package/dist/actions/autogrow.svelte.d.ts +6 -0
- package/dist/actions/autogrow.svelte.js +19 -0
- package/dist/actions/highlight-dragover.svelte.d.ts +7 -0
- package/dist/actions/highlight-dragover.svelte.js +38 -0
- package/dist/actions/index.d.ts +7 -0
- package/dist/actions/index.js +7 -0
- package/dist/actions/on-submit-validity-check.svelte.d.ts +15 -0
- package/dist/actions/on-submit-validity-check.svelte.js +58 -0
- package/dist/actions/tooltip/index.css +34 -0
- package/dist/actions/tooltip/tooltip.svelte.d.ts +13 -0
- package/dist/actions/tooltip/tooltip.svelte.js +203 -0
- package/dist/actions/trim.svelte.d.ts +4 -0
- package/dist/actions/trim.svelte.js +17 -0
- package/dist/actions/{validate.d.ts → validate.svelte.d.ts} +8 -8
- package/dist/actions/validate.svelte.js +90 -0
- package/dist/components/AlertConfirmPrompt/AlertConfirmPrompt.svelte +59 -385
- package/dist/components/AlertConfirmPrompt/AlertConfirmPrompt.svelte.d.ts +9 -101
- package/dist/components/AlertConfirmPrompt/Current.svelte +202 -0
- package/dist/components/AlertConfirmPrompt/Current.svelte.d.ts +22 -0
- package/dist/components/AlertConfirmPrompt/acp-icons.d.ts +7 -2
- package/dist/components/AlertConfirmPrompt/acp-icons.js +8 -8
- package/dist/components/AlertConfirmPrompt/alert-confirm-prompt-stack.svelte.d.ts +63 -0
- package/dist/components/AlertConfirmPrompt/alert-confirm-prompt-stack.svelte.js +144 -0
- package/dist/components/AlertConfirmPrompt/index.d.ts +2 -0
- package/dist/components/AlertConfirmPrompt/index.js +2 -0
- package/dist/components/AnimatedElipsis/AnimatedEllipsis.svelte +47 -0
- package/dist/components/AnimatedElipsis/AnimatedEllipsis.svelte.d.ts +7 -0
- package/dist/components/AnimatedElipsis/index.d.ts +1 -0
- package/dist/components/AnimatedElipsis/index.js +1 -0
- package/dist/components/AppShell/AppShell.svelte +188 -127
- package/dist/components/AppShell/AppShell.svelte.d.ts +62 -43
- package/dist/components/AppShell/index.d.ts +1 -0
- package/dist/components/AppShell/index.js +1 -0
- package/dist/components/Backdrop/Backdrop.svelte +149 -49
- package/dist/components/Backdrop/Backdrop.svelte.d.ts +22 -37
- package/dist/components/Backdrop/index.d.ts +1 -0
- package/dist/components/Backdrop/index.js +1 -0
- package/dist/components/Button/Button.svelte +122 -146
- package/dist/components/Button/Button.svelte.d.ts +22 -80
- package/dist/components/Button/index.css +16 -0
- package/dist/components/Button/index.d.ts +1 -0
- package/dist/components/Button/index.js +1 -0
- package/dist/components/ColResize/ColResize.svelte +0 -0
- package/dist/components/ColResize/ColResize.svelte.d.ts +26 -0
- package/dist/components/ColorScheme/{LocalColorScheme.svelte → ColorSchemeLocal.svelte} +2 -2
- package/dist/components/ColorScheme/ColorSchemeLocal.svelte.d.ts +26 -0
- package/dist/components/ColorScheme/{SystemAwareColorScheme.svelte → ColorSchemeSystemAware.svelte} +4 -4
- package/dist/components/ColorScheme/ColorSchemeSystemAware.svelte.d.ts +26 -0
- package/dist/components/ColorScheme/color-scheme.d.ts +26 -8
- package/dist/components/ColorScheme/color-scheme.js +40 -16
- package/dist/components/ColorScheme/index.d.ts +3 -0
- package/dist/components/ColorScheme/index.js +3 -0
- package/dist/components/DismissibleMessage/DismissibleMessage.svelte +76 -83
- package/dist/components/DismissibleMessage/DismissibleMessage.svelte.d.ts +16 -37
- package/dist/components/DismissibleMessage/index.css +13 -0
- package/dist/components/DismissibleMessage/index.d.ts +1 -0
- package/dist/components/DismissibleMessage/index.js +1 -0
- package/dist/components/Drawer/Drawer.svelte +155 -84
- package/dist/components/Drawer/Drawer.svelte.d.ts +24 -35
- package/dist/components/Drawer/index.d.ts +1 -0
- package/dist/components/Drawer/index.js +1 -0
- package/dist/components/HoverExpandableWidth/HoverExpandableWidth.svelte +150 -111
- package/dist/components/HoverExpandableWidth/HoverExpandableWidth.svelte.d.ts +16 -29
- package/dist/components/HoverExpandableWidth/index.d.ts +1 -0
- package/dist/components/HoverExpandableWidth/index.js +1 -0
- package/dist/components/Input/FieldCheckbox.svelte +174 -132
- package/dist/components/Input/FieldCheckbox.svelte.d.ts +28 -64
- package/dist/components/Input/FieldFile.svelte +166 -0
- package/dist/components/Input/FieldFile.svelte.d.ts +41 -0
- package/dist/components/Input/FieldInput.svelte +143 -0
- package/dist/components/Input/FieldInput.svelte.d.ts +41 -0
- package/dist/components/Input/FieldLikeButton.svelte +206 -0
- package/dist/components/Input/FieldLikeButton.svelte.d.ts +41 -0
- package/dist/components/Input/FieldOptions.svelte +646 -0
- package/dist/components/Input/FieldOptions.svelte.d.ts +58 -0
- package/dist/components/Input/FieldRadios.svelte +126 -77
- package/dist/components/Input/FieldRadios.svelte.d.ts +23 -61
- package/dist/components/Input/FieldSelect.svelte +160 -239
- package/dist/components/Input/FieldSelect.svelte.d.ts +40 -88
- package/dist/components/Input/FieldSwitch.svelte +132 -0
- package/dist/components/Input/FieldSwitch.svelte.d.ts +41 -0
- package/dist/components/Input/FieldTextarea.svelte +146 -0
- package/dist/components/Input/FieldTextarea.svelte.d.ts +44 -0
- package/dist/components/Input/Fieldset.svelte +21 -17
- package/dist/components/Input/Fieldset.svelte.d.ts +10 -27
- package/dist/components/Input/_internal/FieldRadioInternal.svelte +186 -0
- package/dist/components/Input/_internal/FieldRadioInternal.svelte.d.ts +30 -0
- package/dist/components/Input/_internal/InputWrap.svelte +216 -0
- package/dist/components/Input/_internal/InputWrap.svelte.d.ts +36 -0
- package/dist/components/Input/index.css +134 -0
- package/dist/components/Input/index.d.ts +11 -0
- package/dist/components/Input/index.js +11 -0
- package/dist/components/Input/types.d.ts +11 -0
- package/dist/components/KbdShortcut/KbdShortcut.svelte +89 -0
- package/dist/components/KbdShortcut/KbdShortcut.svelte.d.ts +17 -0
- package/dist/components/KbdShortcut/index.d.ts +1 -0
- package/dist/components/KbdShortcut/index.js +1 -0
- package/dist/components/Modal/Modal.svelte +127 -0
- package/dist/components/Modal/Modal.svelte.d.ts +32 -0
- package/dist/components/Modal/index.d.ts +1 -0
- package/dist/components/Modal/index.js +1 -0
- package/dist/components/ModalDialog/ModalDialog.svelte +137 -81
- package/dist/components/ModalDialog/ModalDialog.svelte.d.ts +17 -38
- package/dist/components/ModalDialog/index.d.ts +1 -0
- package/dist/components/ModalDialog/index.js +1 -0
- package/dist/components/Notifications/Notifications.svelte +259 -173
- package/dist/components/Notifications/Notifications.svelte.d.ts +32 -60
- package/dist/components/Notifications/index.css +12 -0
- package/dist/components/Notifications/index.d.ts +2 -0
- package/dist/components/Notifications/index.js +2 -0
- package/dist/components/Notifications/notifications-icons.d.ts +1 -1
- package/dist/components/Notifications/notifications-icons.js +4 -4
- package/dist/components/Notifications/notifications-stack.svelte.d.ts +89 -0
- package/dist/components/Notifications/notifications-stack.svelte.js +161 -0
- package/dist/components/Progress/Progress.svelte +26 -0
- package/dist/components/Progress/Progress.svelte.d.ts +10 -0
- package/dist/components/Progress/_internal/Bar.svelte +31 -0
- package/dist/components/Progress/_internal/Bar.svelte.d.ts +10 -0
- package/dist/components/Progress/_internal/Circle.svelte +10 -0
- package/dist/components/Progress/_internal/Circle.svelte.d.ts +7 -0
- package/dist/components/Progress/index.css +7 -0
- package/dist/components/Progress/index.d.ts +1 -0
- package/dist/components/Progress/index.js +1 -0
- package/dist/components/Spinner/Spinner.svelte +52 -37
- package/dist/components/Spinner/Spinner.svelte.d.ts +10 -22
- package/dist/components/Spinner/index.d.ts +1 -0
- package/dist/components/Spinner/index.js +1 -0
- package/dist/components/Switch/Switch.svelte +158 -118
- package/dist/components/Switch/Switch.svelte.d.ts +25 -66
- package/dist/components/Switch/SwitchButton.svelte +131 -0
- package/dist/components/Switch/SwitchButton.svelte.d.ts +21 -0
- package/dist/components/Switch/index.css +7 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switch/index.js +2 -0
- package/dist/components/Thc/Thc.svelte +67 -10
- package/dist/components/Thc/Thc.svelte.d.ts +18 -22
- package/dist/components/Thc/index.d.ts +1 -0
- package/dist/components/Thc/index.js +1 -0
- package/dist/components/TwCheck/TwCheck.svelte +34 -0
- package/dist/components/TwCheck/TwCheck.svelte.d.ts +10 -0
- package/dist/components/TwCheck/index.css +5 -0
- package/dist/components/TwCheck/index.d.ts +1 -0
- package/dist/components/TwCheck/index.js +1 -0
- package/dist/components/X/X.svelte +12 -5
- package/dist/components/X/X.svelte.d.ts +6 -18
- package/dist/components/X/index.d.ts +1 -0
- package/dist/components/X/index.js +1 -0
- package/dist/index.css +26 -0
- package/dist/index.d.ts +21 -39
- package/dist/index.js +23 -54
- package/dist/types.d.ts +251 -2
- package/dist/types.js +248 -0
- package/dist/utils/breakpoint.svelte.d.ts +19 -0
- package/dist/utils/breakpoint.svelte.js +42 -0
- package/dist/utils/debounce.d.ts +13 -0
- package/dist/utils/debounce.js +22 -0
- package/dist/utils/device-pointer.svelte.d.ts +11 -0
- package/dist/utils/device-pointer.svelte.js +26 -0
- package/dist/utils/event-modifiers.d.ts +4 -0
- package/dist/utils/event-modifiers.js +29 -0
- package/dist/utils/get-id.d.ts +1 -1
- package/dist/utils/get-id.js +3 -1
- package/dist/utils/index.d.ts +21 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/is-browser.d.ts +1 -0
- package/dist/utils/is-browser.js +5 -0
- package/dist/utils/is-mac.d.ts +1 -0
- package/dist/utils/is-mac.js +11 -0
- package/dist/utils/maybe-json-parse.d.ts +1 -0
- package/dist/utils/maybe-json-parse.js +12 -0
- package/dist/utils/maybe-json-stringify.d.ts +1 -0
- package/dist/utils/maybe-json-stringify.js +11 -0
- package/dist/utils/move-array-item.d.ts +4 -0
- package/dist/utils/move-array-item.js +20 -0
- package/dist/utils/omit-pick.d.ts +2 -2
- package/dist/utils/omit-pick.js +10 -8
- package/dist/utils/paint.d.ts +18 -0
- package/dist/utils/paint.js +32 -0
- package/dist/utils/persistent-state.svelte.d.ts +23 -0
- package/dist/utils/persistent-state.svelte.js +48 -0
- package/dist/utils/prefers-reduced-motion.svelte.d.ts +2 -0
- package/dist/utils/prefers-reduced-motion.svelte.js +4 -0
- package/dist/utils/qsa.d.ts +1 -0
- package/dist/utils/qsa.js +3 -0
- package/dist/utils/sleep.d.ts +28 -0
- package/dist/utils/sleep.js +33 -0
- package/dist/utils/storage-abstraction.d.ts +35 -0
- package/dist/utils/storage-abstraction.js +136 -0
- package/dist/utils/str-hash.d.ts +7 -0
- package/dist/utils/str-hash.js +35 -0
- package/dist/utils/throttle.d.ts +1 -0
- package/dist/utils/throttle.js +47 -0
- package/dist/utils/to-integer.d.ts +1 -0
- package/dist/utils/to-integer.js +11 -0
- package/dist/utils/tr.d.ts +5 -0
- package/dist/utils/tr.js +13 -0
- package/dist/utils/tw-merge.d.ts +10 -0
- package/dist/utils/tw-merge.js +16 -0
- package/dist/utils/ucfirst.d.ts +1 -0
- package/dist/utils/ucfirst.js +6 -0
- package/package.json +66 -73
- package/dist/actions/autogrow.d.ts +0 -8
- package/dist/actions/autogrow.js +0 -22
- package/dist/actions/autoscroll.d.ts +0 -21
- package/dist/actions/autoscroll.js +0 -60
- package/dist/actions/drag-drop.d.ts +0 -28
- package/dist/actions/drag-drop.js +0 -152
- package/dist/actions/on-outside.d.ts +0 -9
- package/dist/actions/on-outside.js +0 -27
- package/dist/actions/pre-submit-validity-check.d.ts +0 -3
- package/dist/actions/pre-submit-validity-check.js +0 -21
- package/dist/actions/tooltip/_make-visible.d.ts +0 -3
- package/dist/actions/tooltip/_make-visible.js +0 -25
- package/dist/actions/tooltip/_maybe-pick-safe-placement.d.ts +0 -3
- package/dist/actions/tooltip/_maybe-pick-safe-placement.js +0 -86
- package/dist/actions/tooltip/_set-position.d.ts +0 -2
- package/dist/actions/tooltip/_set-position.js +0 -125
- package/dist/actions/tooltip/tooltip.d.ts +0 -42
- package/dist/actions/tooltip/tooltip.js +0 -299
- package/dist/actions/trim.d.ts +0 -4
- package/dist/actions/trim.js +0 -18
- package/dist/actions/validate.js +0 -80
- package/dist/components/AlertConfirmPrompt/alert-confirm-prompt.d.ts +0 -58
- package/dist/components/AlertConfirmPrompt/alert-confirm-prompt.js +0 -141
- package/dist/components/ColorScheme/LocalColorScheme.svelte.d.ts +0 -25
- package/dist/components/ColorScheme/SystemAwareColorScheme.svelte.d.ts +0 -25
- package/dist/components/Input/Field.svelte +0 -315
- package/dist/components/Input/Field.svelte.d.ts +0 -102
- package/dist/components/Input/PinInput.svelte +0 -151
- package/dist/components/Input/PinInput.svelte.d.ts +0 -51
- package/dist/components/Input/XFieldRadioInternal.svelte +0 -143
- package/dist/components/Input/XFieldRadioInternal.svelte.d.ts +0 -45
- package/dist/components/Notifications/notifications.d.ts +0 -78
- package/dist/components/Notifications/notifications.js +0 -215
- package/dist/components/Popover/Popover.svelte +0 -24
- package/dist/components/Popover/Popover.svelte.d.ts +0 -22
- package/dist/components/Spinner/Spinner.v5.svelte +0 -114
- package/dist/components/Spinner/Spinner.v5.svelte.d.ts +0 -16
- package/dist/utils/calculate-alignment.d.ts +0 -68
- package/dist/utils/calculate-alignment.js +0 -183
- package/dist/utils/device-pointer.d.ts +0 -5
- package/dist/utils/device-pointer.js +0 -10
- package/dist/utils/prefers-reduced-motion.d.ts +0 -6
- package/dist/utils/prefers-reduced-motion.js +0 -26
- package/dist/utils/tw-merge2.d.ts +0 -3
- package/dist/utils/tw-merge2.js +0 -9
- package/dist/utils/tw-types.d.ts +0 -1
- package/dist/utils/window-size.d.ts +0 -22
- package/dist/utils/window-size.js +0 -35
- /package/dist/{utils/tw-types.js → components/Input/types.js} +0 -0
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
declare type Subscribe<T> = (value: T) => void;
|
|
2
|
-
declare type Unsubscribe = () => void;
|
|
3
|
-
declare type Update<T> = (value: T) => T;
|
|
4
|
-
interface StoreReadable<T> {
|
|
5
|
-
subscribe(cb: Subscribe<T>): Unsubscribe;
|
|
6
|
-
}
|
|
7
|
-
interface StoreLike<T> extends StoreReadable<T> {
|
|
8
|
-
set(value: T): void;
|
|
9
|
-
update(cb: Update<T>): void;
|
|
10
|
-
}
|
|
11
|
-
export type AutoscrollOptions = ScrollOptions & {
|
|
12
|
-
dependencies?: StoreReadable<any>[];
|
|
13
|
-
logger?: (...args: any[]) => void;
|
|
14
|
-
newScrollableContentSignal?: StoreLike<boolean>;
|
|
15
|
-
shouldScrollThresholdPx?: number;
|
|
16
|
-
startScrollTimeout?: number;
|
|
17
|
-
};
|
|
18
|
-
export declare function autoscroll(node: HTMLElement, options?: AutoscrollOptions): {
|
|
19
|
-
destroy(): void;
|
|
20
|
-
};
|
|
21
|
-
export {};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
const DEFAULTS = {
|
|
2
|
-
shouldScrollThresholdPx: 100,
|
|
3
|
-
startScrollTimeout: 300,
|
|
4
|
-
};
|
|
5
|
-
export function autoscroll(node, options = {
|
|
6
|
-
shouldScrollThresholdPx: DEFAULTS.shouldScrollThresholdPx,
|
|
7
|
-
startScrollTimeout: DEFAULTS.startScrollTimeout,
|
|
8
|
-
}) {
|
|
9
|
-
// use "smooth" by default
|
|
10
|
-
options.behavior ??= 'smooth';
|
|
11
|
-
options.shouldScrollThresholdPx ??= DEFAULTS.shouldScrollThresholdPx;
|
|
12
|
-
options.startScrollTimeout ??= DEFAULTS.startScrollTimeout;
|
|
13
|
-
const { behavior, shouldScrollThresholdPx, dependencies, logger, newScrollableContentSignal, startScrollTimeout, } = options || {};
|
|
14
|
-
let origScrollHeight = 0;
|
|
15
|
-
const log = (...args) => typeof logger === 'function' && logger.apply(null, [...args]);
|
|
16
|
-
const shouldScroll = () => {
|
|
17
|
-
const { scrollTop, clientHeight } = node;
|
|
18
|
-
const result = origScrollHeight - scrollTop - clientHeight < shouldScrollThresholdPx;
|
|
19
|
-
log('shouldScroll?', result, { scrollTop, origScrollHeight, clientHeight });
|
|
20
|
-
return result;
|
|
21
|
-
};
|
|
22
|
-
const scroll = () => {
|
|
23
|
-
const opts = { top: node.scrollHeight, left: node.scrollWidth, behavior };
|
|
24
|
-
log(`scrollTo(${JSON.stringify(opts)})`);
|
|
25
|
-
node.scrollTo(opts);
|
|
26
|
-
};
|
|
27
|
-
// for when children change sizes
|
|
28
|
-
const resizeObserver = new ResizeObserver(() => {
|
|
29
|
-
log('observed resize...');
|
|
30
|
-
shouldScroll() && scroll();
|
|
31
|
-
});
|
|
32
|
-
// for when children
|
|
33
|
-
const mutationObserver = new MutationObserver(() => {
|
|
34
|
-
log('observed mutation...');
|
|
35
|
-
shouldScroll() ? scroll() : newScrollableContentSignal?.set(true);
|
|
36
|
-
origScrollHeight = node.scrollHeight;
|
|
37
|
-
});
|
|
38
|
-
const unsubs = dependencies?.map((dep) => dep.subscribe((v) => {
|
|
39
|
-
log('dependency update...', v);
|
|
40
|
-
setTimeout(scroll, startScrollTimeout);
|
|
41
|
-
})) ?? [];
|
|
42
|
-
// observe size of all children
|
|
43
|
-
for (const child of node.children) {
|
|
44
|
-
resizeObserver.observe(child);
|
|
45
|
-
}
|
|
46
|
-
mutationObserver.observe(node, { childList: true, subtree: true });
|
|
47
|
-
return {
|
|
48
|
-
destroy() {
|
|
49
|
-
if (mutationObserver) {
|
|
50
|
-
mutationObserver.disconnect();
|
|
51
|
-
}
|
|
52
|
-
if (resizeObserver) {
|
|
53
|
-
resizeObserver.disconnect();
|
|
54
|
-
}
|
|
55
|
-
for (const unsubscribe of unsubs) {
|
|
56
|
-
unsubscribe();
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { Writable } from 'svelte/store';
|
|
2
|
-
export type EffectAllowed = 'copy' | 'none' | 'copyLink' | 'copyMove' | 'link' | 'linkMove' | 'move' | 'all' | 'uninitialized';
|
|
3
|
-
export type DropEffect = 'copy' | 'none' | 'link' | 'move';
|
|
4
|
-
export interface DraggableOptions {
|
|
5
|
-
id?: string;
|
|
6
|
-
enabled?: boolean;
|
|
7
|
-
payload?: any;
|
|
8
|
-
effectAllowed?: EffectAllowed;
|
|
9
|
-
isDragged?: Writable<string | null>;
|
|
10
|
-
logger?: (...args: any[]) => void;
|
|
11
|
-
}
|
|
12
|
-
export declare const draggable: (node: HTMLElement, options: DraggableOptions) => {
|
|
13
|
-
update(newOptions?: DraggableOptions): void;
|
|
14
|
-
destroy(): void;
|
|
15
|
-
};
|
|
16
|
-
export interface DroppableOptions {
|
|
17
|
-
id?: string;
|
|
18
|
-
enabled?: boolean;
|
|
19
|
-
onDrop: (data: any, e: DragEvent) => void;
|
|
20
|
-
onDragover?: (e: DragEvent) => void;
|
|
21
|
-
dropEffect?: DropEffect;
|
|
22
|
-
isDraggedOver?: Writable<string | null>;
|
|
23
|
-
logger?: (...args: any[]) => void;
|
|
24
|
-
}
|
|
25
|
-
export declare const droppable: (node: HTMLElement, options: DroppableOptions) => {
|
|
26
|
-
update(newOptions?: DroppableOptions): void;
|
|
27
|
-
destroy(): void;
|
|
28
|
-
};
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { createClog } from '@marianmeres/clog';
|
|
2
|
-
const clog = createClog('drag-drop');
|
|
3
|
-
const _isFn = (v) => typeof v === 'function';
|
|
4
|
-
export const draggable = (node, options) => {
|
|
5
|
-
const DEFAULT_OPTIONS = {
|
|
6
|
-
id: 'draggable-' + Math.random().toString(36).slice(2),
|
|
7
|
-
enabled: true,
|
|
8
|
-
effectAllowed: 'all',
|
|
9
|
-
};
|
|
10
|
-
options = { ...DEFAULT_OPTIONS, ...options };
|
|
11
|
-
const _log = (...args) => options.logger?.apply(null, args);
|
|
12
|
-
const _payload = () => (_isFn(options?.payload) ? options.payload() : options.payload);
|
|
13
|
-
//
|
|
14
|
-
const onDragstart = (e) => {
|
|
15
|
-
_log('onDragstart', e.dataTransfer);
|
|
16
|
-
const pld = _payload();
|
|
17
|
-
if (pld !== undefined) {
|
|
18
|
-
// add "stuic" as a custom data format
|
|
19
|
-
e.dataTransfer?.setData('stuic', JSON.stringify({ id: options.id, payload: pld }));
|
|
20
|
-
e.dataTransfer.effectAllowed = options.effectAllowed;
|
|
21
|
-
}
|
|
22
|
-
// options?.isDragged?.update((old) => ({ ...old, [options.id!]: true }));
|
|
23
|
-
options?.isDragged?.set(options.id);
|
|
24
|
-
node.setAttribute('aria-grabbed', 'true');
|
|
25
|
-
};
|
|
26
|
-
const onDrag = (e) => {
|
|
27
|
-
// _log('onDrag', e.dataTransfer); // too much spam
|
|
28
|
-
// const el: HTMLElement = e.currentTarget as HTMLElement;
|
|
29
|
-
// clog(el);
|
|
30
|
-
// ?
|
|
31
|
-
};
|
|
32
|
-
const onDragend = (e) => {
|
|
33
|
-
_log('onDragend', e.dataTransfer);
|
|
34
|
-
// e.preventDefault();
|
|
35
|
-
// options?.isDragged?.update((old) => ({ ...old, [options.id!]: false }));
|
|
36
|
-
options?.isDragged?.set(null);
|
|
37
|
-
node.setAttribute('aria-grabbed', 'false');
|
|
38
|
-
};
|
|
39
|
-
const _removeListeners = () => {
|
|
40
|
-
node.removeEventListener('dragstart', onDragstart);
|
|
41
|
-
node.removeEventListener('drag', onDrag);
|
|
42
|
-
node.removeEventListener('dragend', onDragend);
|
|
43
|
-
};
|
|
44
|
-
// initalizer
|
|
45
|
-
const _init = (_opts) => {
|
|
46
|
-
_log('_init', _opts);
|
|
47
|
-
_removeListeners();
|
|
48
|
-
options?.isDragged?.set(null);
|
|
49
|
-
if (_opts.enabled) {
|
|
50
|
-
node.setAttribute('draggable', 'true');
|
|
51
|
-
node.setAttribute('aria-grabbed', 'false');
|
|
52
|
-
node.addEventListener('dragstart', onDragstart);
|
|
53
|
-
node.addEventListener('drag', onDrag);
|
|
54
|
-
node.addEventListener('dragend', onDragend);
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
node.removeAttribute('draggable');
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
// init now
|
|
61
|
-
_init(options);
|
|
62
|
-
return {
|
|
63
|
-
update(newOptions) {
|
|
64
|
-
options = { ...options, ...(newOptions || {}) };
|
|
65
|
-
// reinit maybe
|
|
66
|
-
_init(options);
|
|
67
|
-
},
|
|
68
|
-
destroy() {
|
|
69
|
-
_removeListeners();
|
|
70
|
-
},
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
export const droppable = (node, options) => {
|
|
74
|
-
const DEFAULT_OPTIONS = {
|
|
75
|
-
id: 'droppable-' + Math.random().toString(36).slice(2),
|
|
76
|
-
enabled: true,
|
|
77
|
-
dropEffect: 'move',
|
|
78
|
-
};
|
|
79
|
-
options = { ...DEFAULT_OPTIONS, ...options };
|
|
80
|
-
const _log = (...args) => options.logger?.apply(null, args);
|
|
81
|
-
//
|
|
82
|
-
const onDragenter = (e) => {
|
|
83
|
-
// e.preventDefault();
|
|
84
|
-
_log('onDragenter', e.dataTransfer);
|
|
85
|
-
e.dataTransfer.dropEffect = options.dropEffect;
|
|
86
|
-
// options?.isDraggedOver?.update((old) => ({ ...old, [options.id!]: true }));
|
|
87
|
-
options?.isDraggedOver?.set(options.id);
|
|
88
|
-
};
|
|
89
|
-
const onDragover = (e) => {
|
|
90
|
-
// _log('onDragover', e.dataTransfer); // too much spam
|
|
91
|
-
// this is important, otherwise onDrop will no be fired
|
|
92
|
-
// (so we're preventing default not to prevent future onDrop)
|
|
93
|
-
e.preventDefault();
|
|
94
|
-
options?.isDraggedOver?.set(options.id);
|
|
95
|
-
if (_isFn(options.onDragover)) {
|
|
96
|
-
return options.onDragover(e);
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
const onDragleave = (e) => {
|
|
100
|
-
_log('onDragleave', e.dataTransfer);
|
|
101
|
-
// e.preventDefault();
|
|
102
|
-
// options?.isDraggedOver?.update((old) => ({ ...old, [options.id!]: false }));
|
|
103
|
-
options?.isDraggedOver?.set(null);
|
|
104
|
-
};
|
|
105
|
-
const onDrop = (e) => {
|
|
106
|
-
_log('onDrop', e.dataTransfer);
|
|
107
|
-
e.preventDefault();
|
|
108
|
-
const target = e.target;
|
|
109
|
-
e.dataTransfer.dropEffect = options.dropEffect;
|
|
110
|
-
// options?.isDraggedOver?.update((old) => ({ ...old, [options.id!]: false }));
|
|
111
|
-
options?.isDraggedOver?.set(null);
|
|
112
|
-
if (_isFn(options.onDrop)) {
|
|
113
|
-
let stuicData = e.dataTransfer?.getData('stuic');
|
|
114
|
-
// prettier-ignore
|
|
115
|
-
try {
|
|
116
|
-
stuicData = JSON.parse(stuicData);
|
|
117
|
-
}
|
|
118
|
-
catch (e) { }
|
|
119
|
-
return options.onDrop(stuicData, e);
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
const _removeListeners = () => {
|
|
123
|
-
node.removeEventListener('dragenter', onDragenter);
|
|
124
|
-
node.removeEventListener('dragover', onDragover);
|
|
125
|
-
node.removeEventListener('dragleave', onDragleave);
|
|
126
|
-
node.removeEventListener('drop', onDrop);
|
|
127
|
-
};
|
|
128
|
-
//
|
|
129
|
-
const _init = (_opts) => {
|
|
130
|
-
_log('_init', _opts);
|
|
131
|
-
_removeListeners();
|
|
132
|
-
options?.isDraggedOver?.set(null);
|
|
133
|
-
if (_opts.enabled) {
|
|
134
|
-
node.addEventListener('dragenter', onDragenter);
|
|
135
|
-
node.addEventListener('dragover', onDragover);
|
|
136
|
-
node.addEventListener('dragleave', onDragleave);
|
|
137
|
-
node.addEventListener('drop', onDrop);
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
// init now
|
|
141
|
-
_init(options);
|
|
142
|
-
return {
|
|
143
|
-
update(newOptions) {
|
|
144
|
-
options = { ...options, ...(newOptions || {}) };
|
|
145
|
-
// reinit maybe
|
|
146
|
-
_init(options);
|
|
147
|
-
},
|
|
148
|
-
destroy() {
|
|
149
|
-
_removeListeners();
|
|
150
|
-
},
|
|
151
|
-
};
|
|
152
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
// will notify and (optionally) execute on outside click/focusin/...
|
|
2
|
-
export const onOutside = (node, options) => {
|
|
3
|
-
const DEFAULT_OPTIONS = {
|
|
4
|
-
handler: null,
|
|
5
|
-
events: ['click', 'focusin'],
|
|
6
|
-
};
|
|
7
|
-
const { handler, events } = { ...DEFAULT_OPTIONS, ...(options || {}) };
|
|
8
|
-
const listener = (event) => {
|
|
9
|
-
if (!event?.target)
|
|
10
|
-
return;
|
|
11
|
-
if (node && !node.contains(event.target) && !event.defaultPrevented) {
|
|
12
|
-
node.dispatchEvent(new CustomEvent('outside', { detail: event.target }));
|
|
13
|
-
if (typeof handler === 'function')
|
|
14
|
-
handler(event.target);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
events?.forEach((eventName) => {
|
|
18
|
-
document.addEventListener(eventName, listener, true);
|
|
19
|
-
});
|
|
20
|
-
return {
|
|
21
|
-
destroy() {
|
|
22
|
-
events?.forEach((eventName) => {
|
|
23
|
-
document.removeEventListener(eventName, listener, true);
|
|
24
|
-
});
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// this smells like a hack...
|
|
2
|
-
// The problem: custom validity checks via `validate` action are registered on "input" or "change" events.
|
|
3
|
-
// When a form is submitted without touching those custom validated elements, those will not be
|
|
4
|
-
// validity-checked which is not desired... I'm not able to come up with better solution
|
|
5
|
-
// than to manually trigger events which will then trigger the custom validation...
|
|
6
|
-
export const preSubmitValidityCheck = (node) => {
|
|
7
|
-
const onSubmit = () => {
|
|
8
|
-
for (let i = 0; i < node.elements?.length; i++) {
|
|
9
|
-
let el = node.elements[i];
|
|
10
|
-
el.dispatchEvent(new Event('input', { bubbles: true }));
|
|
11
|
-
el.dispatchEvent(new Event('change', { bubbles: true }));
|
|
12
|
-
typeof el.checkValidity === 'function' && !el.checkValidity();
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
node.addEventListener('submit', onSubmit, true);
|
|
16
|
-
return {
|
|
17
|
-
destroy() {
|
|
18
|
-
node.removeEventListener('submit', onSubmit, true);
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { type TooltipLogger } from './tooltip.js';
|
|
2
|
-
export declare const _makeInVisible: (div: HTMLElement | null, arrow: HTMLElement | null, log: TooltipLogger) => void;
|
|
3
|
-
export declare const _makeVisible: (div: HTMLElement | null, arrow: HTMLElement | null, log: TooltipLogger) => void;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { _TRANSITION_OPACITY_DUR } from './tooltip.js';
|
|
2
|
-
export const _makeInVisible = (div, arrow, log) => {
|
|
3
|
-
(div || arrow) && log('_makeInVisible');
|
|
4
|
-
div && (div.style.opacity = '0');
|
|
5
|
-
arrow && (arrow.style.opacity = '0');
|
|
6
|
-
setTimeout(() => {
|
|
7
|
-
arrow?.classList.add('hidden');
|
|
8
|
-
div?.classList.add('hidden');
|
|
9
|
-
if (div) {
|
|
10
|
-
div.style.left = `auto`;
|
|
11
|
-
div.style.top = `auto`;
|
|
12
|
-
}
|
|
13
|
-
}, _TRANSITION_OPACITY_DUR);
|
|
14
|
-
};
|
|
15
|
-
export const _makeVisible = (div, arrow, log) => {
|
|
16
|
-
(div || arrow) && log('_makeVisible');
|
|
17
|
-
if (div) {
|
|
18
|
-
div.classList.remove('hidden');
|
|
19
|
-
div.style.opacity = '1';
|
|
20
|
-
}
|
|
21
|
-
if (arrow) {
|
|
22
|
-
arrow.classList.remove('hidden');
|
|
23
|
-
arrow.style.opacity = '1';
|
|
24
|
-
}
|
|
25
|
-
};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { Alignment, calculateAlignment } from '../../utils/calculate-alignment.js';
|
|
2
|
-
import type { TooltipLogger, TooltipOptions } from './tooltip.js';
|
|
3
|
-
export declare const _maybePickSafePlacement: (calc: ReturnType<typeof calculateAlignment>, opts: TooltipOptions, log: TooltipLogger) => Alignment | false;
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
export const _maybePickSafePlacement = (calc, opts, log) => {
|
|
2
|
-
let preferred = opts.alignment;
|
|
3
|
-
let picked = preferred;
|
|
4
|
-
const sides = {
|
|
5
|
-
top: ['top', 'topLeft', 'topRight'],
|
|
6
|
-
bottom: ['bottom', 'bottomLeft', 'bottomRight'],
|
|
7
|
-
left: ['left', 'leftTop', 'leftBottom'],
|
|
8
|
-
right: ['right', 'rightTop', 'rightBottom'],
|
|
9
|
-
};
|
|
10
|
-
// try alternatives within same side
|
|
11
|
-
const _trySideVariant = (val) => {
|
|
12
|
-
for (let side of Object.keys(sides)) {
|
|
13
|
-
if (val.startsWith(side)) {
|
|
14
|
-
for (let pos of sides[side]) {
|
|
15
|
-
if (calc.position[pos].safe) {
|
|
16
|
-
log(`_trySideVariant for '${val}', found '${pos}'`);
|
|
17
|
-
return pos;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
log(`_trySideVariant for '${val}', found none (returning orig '${val}')`);
|
|
23
|
-
return val;
|
|
24
|
-
};
|
|
25
|
-
// DRY
|
|
26
|
-
const _trySideOpposite = (val) => {
|
|
27
|
-
const opposites = { top: 'bottom', bottom: 'top', left: 'right', right: 'left' };
|
|
28
|
-
for (let [k, v] of Object.entries(opposites)) {
|
|
29
|
-
if (val.startsWith(k)) {
|
|
30
|
-
const r = val.replace(k, v);
|
|
31
|
-
log(`_trySideOpposite for '${val}', found '${r}'`);
|
|
32
|
-
return r;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
log(`_trySideOpposite for '${val}', found none (returning orig '${val}')`);
|
|
36
|
-
return val;
|
|
37
|
-
};
|
|
38
|
-
const _switchAxis = (val) => {
|
|
39
|
-
const opposites = { top: 'right', bottom: 'right', left: 'top', right: 'top' };
|
|
40
|
-
for (let [k, v] of Object.entries(opposites)) {
|
|
41
|
-
if (val.startsWith(k)) {
|
|
42
|
-
log(`_switchAxis for '${val}', found '${v}'`);
|
|
43
|
-
return v;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
log(`_switchAxis for '${val}', found none (returning orig '${val}')`);
|
|
47
|
-
return val;
|
|
48
|
-
};
|
|
49
|
-
// kind of stupid, brute force approach...
|
|
50
|
-
// same side variant
|
|
51
|
-
if (!calc.position[picked].safe) {
|
|
52
|
-
picked = _trySideVariant(picked);
|
|
53
|
-
}
|
|
54
|
-
// oposite side
|
|
55
|
-
if (!calc.position[picked].safe) {
|
|
56
|
-
picked = _trySideOpposite(picked);
|
|
57
|
-
// oposite side variant
|
|
58
|
-
if (!calc.position[picked].safe) {
|
|
59
|
-
picked = _trySideVariant(picked);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// switch axis
|
|
63
|
-
if (!calc.position[picked].safe) {
|
|
64
|
-
picked = _switchAxis(picked);
|
|
65
|
-
// now second round
|
|
66
|
-
// same side variant
|
|
67
|
-
if (!calc.position[picked].safe) {
|
|
68
|
-
picked = _trySideVariant(picked);
|
|
69
|
-
}
|
|
70
|
-
// oposite side
|
|
71
|
-
if (!calc.position[picked].safe) {
|
|
72
|
-
picked = _trySideOpposite(picked);
|
|
73
|
-
// oposite side variant
|
|
74
|
-
if (!calc.position[picked].safe) {
|
|
75
|
-
picked = _trySideVariant(picked);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// finally, if still no luck, revert to
|
|
80
|
-
// a) either unsafe original (to avoid noise) and do not dance anymore, or
|
|
81
|
-
// b) hide (if configured so)
|
|
82
|
-
if (!calc.position[picked].safe) {
|
|
83
|
-
picked = opts.hideOnInsufficientSpace ? false : preferred;
|
|
84
|
-
}
|
|
85
|
-
return picked;
|
|
86
|
-
};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import type { TooltipLogger, TooltipOptions } from './tooltip.js';
|
|
2
|
-
export declare const _setPosition: (boundaryRoot: HTMLElement | undefined, parent: HTMLElement, div: HTMLElement | null, arrow: HTMLElement | null, opts: TooltipOptions, log: TooltipLogger) => Promise<unknown>;
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { get as storeGet } from 'svelte/store';
|
|
2
|
-
import { calculateAlignment } from '../../utils/calculate-alignment.js';
|
|
3
|
-
import { windowSize } from '../../utils/window-size.js';
|
|
4
|
-
import { _maybePickSafePlacement } from './_maybe-pick-safe-placement.js';
|
|
5
|
-
export const _setPosition = async (boundaryRoot, // will default to window dimensions
|
|
6
|
-
parent, div, arrow, opts, log) => {
|
|
7
|
-
// if (!div || !arrow) return log('_setPosition noop');
|
|
8
|
-
if (!div || !arrow)
|
|
9
|
-
return;
|
|
10
|
-
log('_setPosition');
|
|
11
|
-
const rootRect = boundaryRoot?.getBoundingClientRect() || {
|
|
12
|
-
...storeGet(windowSize),
|
|
13
|
-
x: 0,
|
|
14
|
-
y: 0,
|
|
15
|
-
};
|
|
16
|
-
const boundaryRootRect = {
|
|
17
|
-
x: rootRect.x,
|
|
18
|
-
y: rootRect.y,
|
|
19
|
-
width: rootRect.width,
|
|
20
|
-
height: rootRect.height,
|
|
21
|
-
};
|
|
22
|
-
const parentRect = parent.getBoundingClientRect();
|
|
23
|
-
// IMPORTANT!
|
|
24
|
-
// make sure the div is not hidden, so the rect dimensions will work fine
|
|
25
|
-
div.classList.remove('hidden');
|
|
26
|
-
return new Promise((resolve) => {
|
|
27
|
-
// must wait for the next repaint to have correct dimensions...
|
|
28
|
-
requestAnimationFrame(() => {
|
|
29
|
-
const divRect = div.getBoundingClientRect();
|
|
30
|
-
const r = calculateAlignment(boundaryRootRect, parentRect, divRect, opts.offset);
|
|
31
|
-
log('tooltip rect', divRect);
|
|
32
|
-
log('placements', r);
|
|
33
|
-
// try to pick safe
|
|
34
|
-
const safe = _maybePickSafePlacement(r, opts, log);
|
|
35
|
-
// maybe quit...
|
|
36
|
-
if (safe === false) {
|
|
37
|
-
log('No safe position found...');
|
|
38
|
-
return resolve(false);
|
|
39
|
-
}
|
|
40
|
-
log(`Preferred: '${opts.alignment}', safe: '${safe}'.`);
|
|
41
|
-
// position the actual tooltip/popover
|
|
42
|
-
div.style.left = `${r.position[safe].x}px`;
|
|
43
|
-
div.style.top = `${r.position[safe].y}px`;
|
|
44
|
-
// now dance with the arrow...
|
|
45
|
-
let arrowStyles = {
|
|
46
|
-
borderStyle: 'solid',
|
|
47
|
-
left: 'auto',
|
|
48
|
-
top: 'auto',
|
|
49
|
-
};
|
|
50
|
-
// need to reset all on reposition
|
|
51
|
-
['borderTop', 'borderBottom', 'borderLeft', 'borderRight'].forEach((k) => {
|
|
52
|
-
arrowStyles[`${k}Width`] = '0';
|
|
53
|
-
arrowStyles[`${k}Color`] = null;
|
|
54
|
-
});
|
|
55
|
-
//
|
|
56
|
-
const arrowSize = opts.arrowSize;
|
|
57
|
-
let xOffset = 0;
|
|
58
|
-
let yOffset = 0;
|
|
59
|
-
//
|
|
60
|
-
if (safe.startsWith('top')) {
|
|
61
|
-
arrowStyles = {
|
|
62
|
-
...arrowStyles,
|
|
63
|
-
borderLeftColor: `transparent`,
|
|
64
|
-
borderRightColor: `transparent`,
|
|
65
|
-
borderLeftWidth: `${arrowSize * 0.75}px`,
|
|
66
|
-
borderRightWidth: `${arrowSize * 0.75}px`,
|
|
67
|
-
borderTopWidth: `${arrowSize}px`,
|
|
68
|
-
};
|
|
69
|
-
xOffset -= arrowSize / 2;
|
|
70
|
-
yOffset -= arrowSize * 0.1;
|
|
71
|
-
}
|
|
72
|
-
//
|
|
73
|
-
else if (safe.startsWith('bottom')) {
|
|
74
|
-
arrowStyles = {
|
|
75
|
-
...arrowStyles,
|
|
76
|
-
borderLeftColor: `transparent`,
|
|
77
|
-
borderRightColor: `transparent`,
|
|
78
|
-
borderLeftWidth: `${arrowSize * 0.75}px`,
|
|
79
|
-
borderRightWidth: `${arrowSize * 0.75}px`,
|
|
80
|
-
borderBottomWidth: `${arrowSize}px`,
|
|
81
|
-
};
|
|
82
|
-
xOffset -= arrowSize / 2;
|
|
83
|
-
yOffset -= arrowSize * 0.9;
|
|
84
|
-
}
|
|
85
|
-
//
|
|
86
|
-
else if (safe.startsWith('right')) {
|
|
87
|
-
arrowStyles = {
|
|
88
|
-
...arrowStyles,
|
|
89
|
-
borderTopColor: `transparent`,
|
|
90
|
-
borderBottomColor: `transparent`,
|
|
91
|
-
borderTopWidth: `${arrowSize * 0.75}px`,
|
|
92
|
-
borderBottomWidth: `${arrowSize * 0.75}px`,
|
|
93
|
-
borderRightWidth: `${arrowSize}px`,
|
|
94
|
-
};
|
|
95
|
-
xOffset -= arrowSize * 0.9;
|
|
96
|
-
yOffset -= arrowSize / 2;
|
|
97
|
-
}
|
|
98
|
-
//
|
|
99
|
-
else if (safe.startsWith('left')) {
|
|
100
|
-
arrowStyles = {
|
|
101
|
-
...arrowStyles,
|
|
102
|
-
borderTopColor: `transparent`,
|
|
103
|
-
borderBottomColor: `transparent`,
|
|
104
|
-
borderTopWidth: `${arrowSize * 0.75}px`,
|
|
105
|
-
borderBottomWidth: `${arrowSize * 0.75}px`,
|
|
106
|
-
borderLeftWidth: `${arrowSize}px`,
|
|
107
|
-
};
|
|
108
|
-
xOffset -= arrowSize * 0.1;
|
|
109
|
-
yOffset -= arrowSize / 2;
|
|
110
|
-
}
|
|
111
|
-
arrowStyles = {
|
|
112
|
-
...arrowStyles,
|
|
113
|
-
left: `${r.origin[safe].x + xOffset}px`,
|
|
114
|
-
top: `${r.origin[safe].y + yOffset}px`,
|
|
115
|
-
};
|
|
116
|
-
// log('applying arrowStyles', arrowStyles);
|
|
117
|
-
Object.entries(arrowStyles).forEach(([k, v]) => {
|
|
118
|
-
// @ts-ignore
|
|
119
|
-
arrow.style[k] = v;
|
|
120
|
-
});
|
|
121
|
-
//
|
|
122
|
-
resolve(true);
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { type Readable, type Writable } from 'svelte/store';
|
|
2
|
-
import type { Alignment } from '../../utils/calculate-alignment.js';
|
|
3
|
-
export declare class TooltipConfig {
|
|
4
|
-
static presetBase: string;
|
|
5
|
-
static class: string;
|
|
6
|
-
static arrowPresetBase: string;
|
|
7
|
-
static arrowClass: string;
|
|
8
|
-
static defaultOptions: Partial<TooltipOptions>;
|
|
9
|
-
}
|
|
10
|
-
export declare class PopoverConfig {
|
|
11
|
-
static presetBase: string;
|
|
12
|
-
static class: string;
|
|
13
|
-
static arrowPresetBase: string;
|
|
14
|
-
static arrowClass: string;
|
|
15
|
-
static defaultOptions: Partial<TooltipOptions>;
|
|
16
|
-
}
|
|
17
|
-
export type TooltipLogger = (...args: any[]) => void;
|
|
18
|
-
export type TooltipTrigger = 'hover' | 'focus' | 'click';
|
|
19
|
-
export interface TooltipOptions {
|
|
20
|
-
content: string;
|
|
21
|
-
popover: HTMLElement | null;
|
|
22
|
-
alignment: Alignment;
|
|
23
|
-
allowHtml: boolean;
|
|
24
|
-
delay: number;
|
|
25
|
-
class: string;
|
|
26
|
-
arrowClass: string;
|
|
27
|
-
triggers: TooltipTrigger[];
|
|
28
|
-
logger?: TooltipLogger;
|
|
29
|
-
boundaryRoot?: HTMLElement;
|
|
30
|
-
arrowSize: number;
|
|
31
|
-
offset: number;
|
|
32
|
-
hideOnInsufficientSpace: boolean;
|
|
33
|
-
touch?: Readable<number>;
|
|
34
|
-
trigger?: Readable<boolean>;
|
|
35
|
-
notifier?: Writable<boolean>;
|
|
36
|
-
getAppendChildTarget?: () => HTMLElement;
|
|
37
|
-
}
|
|
38
|
-
export declare const _TRANSITION_OPACITY_DUR = 150;
|
|
39
|
-
export declare function tooltip(node: HTMLElement, initialOptions?: string | Partial<TooltipOptions>): {
|
|
40
|
-
update(newOptions: string | Partial<TooltipOptions>): void;
|
|
41
|
-
destroy(): void;
|
|
42
|
-
};
|