intable 0.0.6 → 0.0.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.
Files changed (169) hide show
  1. package/README.md +16 -263
  2. package/docs/index-BaMALNy6.css +1 -0
  3. package/docs/index-CDN48t9E.js +3 -0
  4. package/docs/index-Cc4RNkLY.css +1 -0
  5. package/docs/index-MRnbkYmU.js +3 -0
  6. package/docs/index.html +15 -0
  7. package/docs/vite.svg +1 -0
  8. package/index.html +14 -0
  9. package/package.json +30 -38
  10. package/packages/intable/README.md +379 -0
  11. package/packages/intable/package.json +51 -0
  12. package/packages/intable/src/assets/ClearFormat.svg +3 -0
  13. package/packages/intable/src/assets/Forms.svg +4 -0
  14. package/packages/intable/src/assets/MergeCell.svg +4 -0
  15. package/packages/intable/src/assets/SplitCell.svg +4 -0
  16. package/packages/intable/src/assets/gap.svg +3 -0
  17. package/packages/intable/src/assets/loading.svg +12 -0
  18. package/packages/intable/src/assets/paint.svg +9 -0
  19. package/packages/intable/src/assets/solid.svg +1 -0
  20. package/packages/intable/src/components/Columns.tsx +86 -0
  21. package/packages/intable/src/components/DocTree.tsx +36 -0
  22. package/packages/intable/src/components/Menu.tsx +109 -0
  23. package/packages/intable/src/components/Popover.tsx +55 -0
  24. package/packages/intable/src/components/RecycleList.tsx +99 -0
  25. package/packages/intable/src/components/Render.tsx +26 -0
  26. package/packages/intable/src/components/Split.tsx +56 -0
  27. package/packages/intable/src/components/Tree.tsx +115 -0
  28. package/packages/intable/src/components/utils.tsx +12 -0
  29. package/packages/intable/src/hooks/index.ts +200 -0
  30. package/packages/intable/src/hooks/useDir.ts +78 -0
  31. package/packages/intable/src/hooks/useSelector.ts +91 -0
  32. package/packages/intable/src/hooks/useSort.tsx +118 -0
  33. package/packages/intable/src/hooks/useVirtualizer.ts +180 -0
  34. package/packages/intable/src/index.tsx +481 -0
  35. package/packages/intable/src/plugins/CellChangeHighlightPlugin.tsx +5 -0
  36. package/packages/intable/src/plugins/CellMergePlugin.tsx +153 -0
  37. package/packages/intable/src/plugins/CellSelectionPlugin.tsx +175 -0
  38. package/packages/intable/src/plugins/CommandPlugin.tsx +74 -0
  39. package/packages/intable/src/plugins/CopyPastePlugin.tsx +63 -0
  40. package/packages/intable/src/plugins/DiffPlugin.tsx +107 -0
  41. package/packages/intable/src/plugins/DragPlugin.tsx +81 -0
  42. package/packages/intable/src/plugins/EditablePlugin.tsx +252 -0
  43. package/packages/intable/src/plugins/ExpandPlugin.tsx +80 -0
  44. package/packages/intable/src/plugins/HeaderGroup.tsx +289 -0
  45. package/packages/intable/src/plugins/HistoryPlugin.tsx +49 -0
  46. package/packages/intable/src/plugins/MenuPlugin.tsx +195 -0
  47. package/packages/intable/src/plugins/RenderPlugin/components.tsx +51 -0
  48. package/packages/intable/src/plugins/RenderPlugin/index.tsx +81 -0
  49. package/packages/intable/src/plugins/ResizePlugin.tsx +122 -0
  50. package/packages/intable/src/plugins/RowGroupPlugin.tsx +122 -0
  51. package/packages/intable/src/plugins/RowSelectionPlugin.tsx +65 -0
  52. package/packages/intable/src/plugins/TreePlugin.tsx +212 -0
  53. package/packages/intable/src/plugins/VirtualScrollPlugin.tsx +190 -0
  54. package/packages/intable/src/plugins/ZodValidatorPlugin.tsx +61 -0
  55. package/packages/intable/src/style.scss +244 -0
  56. package/{dist → packages/intable/src}/theme/antd.scss +14 -5
  57. package/{dist → packages/intable/src}/theme/element-plus.scss +6 -5
  58. package/packages/intable/src/tree.ts +13 -0
  59. package/packages/intable/src/types/auto-imports.d.ts +13 -0
  60. package/packages/intable/src/utils.ts +122 -0
  61. package/packages/intable/src/wc.tsx +35 -0
  62. package/packages/intable/src/web-component.ts +1 -0
  63. package/packages/react/package.json +31 -0
  64. package/packages/react/src/index.ts +44 -0
  65. package/packages/react/src/plugins/antd.ts +94 -0
  66. package/packages/react/src/style.scss +12 -0
  67. package/packages/react/src/types/auto-imports.d.ts +10 -0
  68. package/packages/vue/package.json +34 -0
  69. package/packages/vue/src/index.ts +63 -0
  70. package/packages/vue/src/plugins/element-plus.ts +69 -0
  71. package/packages/vue/src/style.scss +12 -0
  72. package/packages/vue/src/types/auto-imports.d.ts +10 -0
  73. package/pnpm-workspace.yaml +2 -0
  74. package/public/vite.svg +1 -0
  75. package/scripts/build.js +184 -0
  76. package/scripts/publish.js +95 -0
  77. package/src/assets/ClearFormat.svg +3 -0
  78. package/src/assets/Forms.svg +4 -0
  79. package/src/assets/MergeCell.svg +4 -0
  80. package/src/assets/SplitCell.svg +4 -0
  81. package/src/assets/gap.svg +3 -0
  82. package/src/assets/loading.svg +12 -0
  83. package/src/assets/paint.svg +9 -0
  84. package/src/assets/solid.svg +1 -0
  85. package/src/demo-vue.ts +54 -0
  86. package/src/demo.tsx +107 -0
  87. package/src/index.scss +105 -0
  88. package/src/styles/index.scss +172 -0
  89. package/src/types/auto-imports.d.ts +13 -0
  90. package/stats.html +4949 -0
  91. package/tsconfig.app.json +34 -0
  92. package/tsconfig.json +7 -0
  93. package/tsconfig.node.json +26 -0
  94. package/vite.config.ts +63 -0
  95. package/dist/__uno.css +0 -1
  96. package/dist/chevron-right.js +0 -6
  97. package/dist/components/Columns.d.ts +0 -3
  98. package/dist/components/Columns.js +0 -71
  99. package/dist/components/DocTree.d.ts +0 -4
  100. package/dist/components/DocTree.js +0 -32
  101. package/dist/components/Menu.d.ts +0 -1
  102. package/dist/components/Menu.js +0 -107
  103. package/dist/components/Popover.d.ts +0 -14
  104. package/dist/components/Popover.js +0 -41
  105. package/dist/components/Render.d.ts +0 -4
  106. package/dist/components/Render.js +0 -20
  107. package/dist/components/Split.d.ts +0 -15
  108. package/dist/components/Split.js +0 -76
  109. package/dist/components/Tree.d.ts +0 -37
  110. package/dist/components/Tree.js +0 -82
  111. package/dist/components/utils.d.ts +0 -3
  112. package/dist/components/utils.js +0 -8
  113. package/dist/hooks/index.d.ts +0 -40
  114. package/dist/hooks/index.js +0 -157
  115. package/dist/hooks/useDir.d.ts +0 -11
  116. package/dist/hooks/useDir.js +0 -42
  117. package/dist/hooks/useSelector.d.ts +0 -16
  118. package/dist/hooks/useSelector.js +0 -35
  119. package/dist/hooks/useSort.d.ts +0 -18
  120. package/dist/hooks/useSort.js +0 -83
  121. package/dist/hooks/useVirtualizer.d.ts +0 -25
  122. package/dist/hooks/useVirtualizer.js +0 -67
  123. package/dist/index.d.ts +0 -130
  124. package/dist/index.js +0 -347
  125. package/dist/loading.js +0 -6
  126. package/dist/plugins/CellChangeHighlightPlugin.d.ts +0 -2
  127. package/dist/plugins/CellChangeHighlightPlugin.js +0 -4
  128. package/dist/plugins/CellMergePlugin.d.ts +0 -12
  129. package/dist/plugins/CellMergePlugin.js +0 -2
  130. package/dist/plugins/CellSelectionPlugin.d.ts +0 -15
  131. package/dist/plugins/CellSelectionPlugin.js +0 -115
  132. package/dist/plugins/CommandPlugin.d.ts +0 -14
  133. package/dist/plugins/CommandPlugin.js +0 -12
  134. package/dist/plugins/CopyPastePlugin.d.ts +0 -14
  135. package/dist/plugins/CopyPastePlugin.js +0 -42
  136. package/dist/plugins/DiffPlugin.d.ts +0 -23
  137. package/dist/plugins/DiffPlugin.js +0 -56
  138. package/dist/plugins/DragPlugin.d.ts +0 -14
  139. package/dist/plugins/DragPlugin.js +0 -47
  140. package/dist/plugins/EditablePlugin.d.ts +0 -48
  141. package/dist/plugins/EditablePlugin.js +0 -141
  142. package/dist/plugins/ExpandPlugin.d.ts +0 -18
  143. package/dist/plugins/ExpandPlugin.js +0 -50
  144. package/dist/plugins/HistoryPlugin.d.ts +0 -10
  145. package/dist/plugins/HistoryPlugin.js +0 -30
  146. package/dist/plugins/MenuPlugin.d.ts +0 -18
  147. package/dist/plugins/MenuPlugin.js +0 -107
  148. package/dist/plugins/RenderPlugin/components.d.ts +0 -5
  149. package/dist/plugins/RenderPlugin/components.js +0 -87
  150. package/dist/plugins/RenderPlugin/index.d.ts +0 -30
  151. package/dist/plugins/RenderPlugin/index.js +0 -49
  152. package/dist/plugins/ResizePlugin.d.ts +0 -27
  153. package/dist/plugins/ResizePlugin.js +0 -81
  154. package/dist/plugins/RowGroupPlugin.d.ts +0 -17
  155. package/dist/plugins/RowGroupPlugin.js +0 -83
  156. package/dist/plugins/RowSelectionPlugin.d.ts +0 -20
  157. package/dist/plugins/RowSelectionPlugin.js +0 -42
  158. package/dist/plugins/VirtualScrollPlugin.d.ts +0 -15
  159. package/dist/plugins/VirtualScrollPlugin.js +0 -96
  160. package/dist/plus.js +0 -6
  161. package/dist/style.css +0 -3
  162. package/dist/types/auto-imports.d.js +0 -0
  163. package/dist/utils.d.ts +0 -30
  164. package/dist/utils.js +0 -70
  165. package/dist/wc.d.ts +0 -1
  166. package/dist/wc.js +0 -21
  167. package/dist/web-component.d.ts +0 -1
  168. package/dist/web-component.js +0 -2
  169. package/dist/x.js +0 -6
@@ -1,82 +0,0 @@
1
- import { Dynamic, createComponent, insert, mergeProps, spread, template } from "solid-js/web";
2
- import { Index, createEffect, createMemo, createSignal, onCleanup, splitProps } from "solid-js";
3
- import { combineProps } from "@solid-primitives/props";
4
- import { castArray } from "es-toolkit/compat";
5
- import { createLazyMemo } from "@solid-primitives/memo";
6
- var _tmpl$ = /* @__PURE__ */ template("<div>");
7
- function define(e, d) {
8
- let f = createSignal();
9
- return Object.defineProperty(e, d, {
10
- get() {
11
- return f[0]();
12
- },
13
- set(e) {
14
- f[1](e);
15
- }
16
- }), f;
17
- }
18
- function memo$1(e, d, f) {
19
- let p = createLazyMemo(f);
20
- return Object.defineProperty(e, d, { get() {
21
- return p();
22
- } }), p;
23
- }
24
- var $Node = class {
25
- constructor(e) {
26
- this.$children = memo$1(this, "children", () => this.getChildren()), this.$parent = define(this, "parent"), this.$deep = memo$1(this, "deep", () => this.parent ? this.parent.deep + 1 : 0), this.$index = memo$1(this, "index", () => this.parent?.children?.indexOf(this)), this.$prev = memo$1(this, "prev", () => this.parent?.children?.[this.index - 1]), this.$next = memo$1(this, "next", () => this.parent?.children?.[this.index + 1]), this.$root = memo$1(this, "root", () => this.parent ? this.parent.root : this), this.$path = memo$1(this, "path", () => {
27
- let e = [this], d = this;
28
- for (; d.parent;) e.push(d = d.parent);
29
- return e.reverse();
30
- }), this.data = e, createEffect(() => {
31
- let e = this.children;
32
- e?.map((e) => e.parent = this), onCleanup(() => e?.map((e) => e.parent = void 0));
33
- });
34
- }
35
- get label() {
36
- return this.data.label;
37
- }
38
- get descendants() {
39
- return this.children?.flatMap((e) => [e, ...e.descendants]) || [];
40
- }
41
- contains(e) {
42
- return e.path.includes(this);
43
- }
44
- remove() {}
45
- }, $TreeItem = class e extends $Node {
46
- get is() {
47
- return this.data.is;
48
- }
49
- get props() {
50
- return this.data;
51
- }
52
- get id() {
53
- return this.data.id;
54
- }
55
- getChildren() {
56
- return this.data.children?.map((d) => new e(d));
57
- }
58
- };
59
- function Tree(h) {
60
- let [g, _] = splitProps(h, ["data", "Node"]), v = g.Node ?? $TreeItem, y = createMemo(() => new class extends v {
61
- getChildren() {
62
- return castArray(this.data || []).map((e) => new v(e));
63
- }
64
- }(g.data)), b = createMemo(() => y().descendants);
65
- return (() => {
66
- var h = _tmpl$();
67
- return spread(h, mergeProps(() => combineProps({ class: "tt-menu" }, _)), !1, !0), insert(h, createComponent(Index, {
68
- get each() {
69
- return b();
70
- },
71
- children: (f, m) => createComponent(Dynamic, mergeProps({ get component() {
72
- return f().is ?? "div";
73
- } }, () => combineProps({
74
- class: "li py-1 px-4",
75
- style: `padding-left: ${f().deep * 16}px`
76
- }, f().props), { get children() {
77
- return f().label;
78
- } }))
79
- })), h;
80
- })();
81
- }
82
- export { $Node, $TreeItem, Tree };
@@ -1,3 +0,0 @@
1
- import type { JSX } from 'solid-js';
2
- export declare function solidComponent<T extends (...arg: any[]) => JSX.Element>(comp: T): T;
3
- export declare function renderComponent(Comp: any, props: any, renderer: any): JSX.Element;
@@ -1,8 +0,0 @@
1
- import { createComponent } from "solid-js/web";
2
- function solidComponent(e) {
3
- return e.__solid = 1, e;
4
- }
5
- function renderComponent(t, n, r) {
6
- return t.__solid || (t = r(t)), createComponent(t, n);
7
- }
8
- export { renderComponent, solidComponent };
@@ -1,40 +0,0 @@
1
- import { type Signal } from 'solid-js';
2
- import { type Many, type MaybeAccessor } from '@solid-primitives/utils';
3
- interface UseMoveOptions {
4
- preventDefault?: boolean;
5
- start?(e: PointerEvent, move: (cb: MoveCB) => void, end: (cb: EndCb) => void): void;
6
- }
7
- type MoveCB = (e: PointerEvent, o: {
8
- sx: number;
9
- sy: number;
10
- ox: number;
11
- oy: number;
12
- }) => void;
13
- type EndCb = (e: PointerEvent) => void;
14
- export declare function usePointerDrag(el: MaybeAccessor<HTMLElement | undefined>, options: UseMoveOptions): void;
15
- export declare function model(el: any, value: () => [() => string, (v: string) => any]): void;
16
- export declare function toSignle<T extends Record<string, any>>(state: T, k: keyof T): ((v: any) => any)[];
17
- export declare function useDark(): [get: import("solid-js").Accessor<boolean>, set: import("solid-js").Setter<boolean>, init: string | Promise<string>];
18
- export declare function useMemoAsync<T>(fn: (prev?: T) => Promise<T> | T, init?: Awaited<T>): import("solid-js").Accessor<Awaited<T>>;
19
- export declare function useSignle2<T>(v: T | (() => T), opt?: {
20
- before?: (v: T) => Promise<T | void> | T;
21
- }): Signal<T>;
22
- type Reactive<T extends object> = {
23
- [K in keyof T]: T[K] extends () => infer V ? V : T[K];
24
- };
25
- export declare function toReactive<T extends object>(fn: (() => T) | T): Reactive<T>;
26
- export declare function useMemo<T>(fn: () => T): import("solid-js").Accessor<T>;
27
- export declare function useHover(el: MaybeAccessor<Many<HTMLElement | undefined>>): import("solid-js").Accessor<boolean>;
28
- export declare function useMouseDown(el: MaybeAccessor<Many<HTMLElement | undefined>>): import("solid-js").Accessor<boolean>;
29
- export declare function useClicked(el: MaybeAccessor<Many<HTMLElement | undefined>>): import("solid-js").Accessor<boolean>;
30
- export declare function useMutation<T>(initial: MaybeAccessor<Node | Node[]>, options: MutationObserverInit, cb: () => T): import("solid-js").Accessor<T>;
31
- export declare function useTinykeys(el: MaybeAccessor<HTMLElement | undefined>, handlers: any): void;
32
- export declare function useHistory([val, setVal]: [any, any]): {
33
- undo: () => any;
34
- redo: () => any;
35
- clear: () => any[];
36
- readonly index: number;
37
- readonly history: any[];
38
- };
39
- export declare function useMemoState(fn: any): {};
40
- export {};
@@ -1,157 +0,0 @@
1
- import { unFn } from "../utils.js";
2
- import { $PROXY, batch, createComputed, createEffect, createMemo, createRenderEffect, createRoot, createSignal, mergeProps, on, onCleanup, untrack } from "solid-js";
3
- import { $RAW, createMutable } from "solid-js/store";
4
- import { isFunction, isPromise, mapValues } from "es-toolkit";
5
- import { createEventListener, createEventListenerMap } from "@solid-primitives/event-listener";
6
- import { createPointerListeners } from "@solid-primitives/pointer";
7
- import { access } from "@solid-primitives/utils";
8
- import { makePersisted, storageSync } from "@solid-primitives/storage";
9
- import { createMutationObserver } from "@solid-primitives/mutation-observer";
10
- import { castArray } from "es-toolkit/compat";
11
- import { createKeybindingsHandler } from "tinykeys";
12
- function usePointerDrag(h, L) {
13
- L = mergeProps({ preventDefault: !0 }, L), createPointerListeners({
14
- target: h,
15
- passive: !1,
16
- onDown(h) {
17
- L.preventDefault && h.preventDefault();
18
- let [R, z] = [h.x, h.y], B, V;
19
- L.start?.(h, (h) => B = h, (h) => V = h), createRoot((L) => {
20
- createPointerListeners({
21
- target: document,
22
- onMove(h) {
23
- let [L, V] = [h.x - R, h.y - z];
24
- B?.(h, {
25
- sx: R,
26
- sy: z,
27
- ox: L,
28
- oy: V
29
- });
30
- },
31
- onUp() {
32
- V?.(h), L(), B = void 0, V = void 0;
33
- }
34
- }), createEventListenerMap(document, { drop: L });
35
- });
36
- }
37
- });
38
- }
39
- function model(h, L) {
40
- let [R, z] = L();
41
- createRenderEffect(() => h.value = R()), h.addEventListener("input", (h) => z(h.target.value));
42
- }
43
- function toSignle(h, L) {
44
- return [() => h[L], (R) => h[L] = R];
45
- }
46
- function useDark() {
47
- let h = (h) => h == "dark" || R() && !h, L = (h) => h ? "dark" : "light", R = () => window.matchMedia("(prefers-color-scheme: dark)").matches, z = makePersisted(createSignal(R()), {
48
- name: "color-schema",
49
- storage: localStorage,
50
- sync: storageSync,
51
- serialize: L,
52
- deserialize: h
53
- });
54
- return createEffect(() => document.documentElement.classList[z[0]() ? "add" : "remove"]("dark")), createEffect(() => window.dispatchEvent(new StorageEvent("storage", {
55
- key: "color-schema",
56
- newValue: L(z[0]())
57
- }))), z;
58
- }
59
- function useMemoAsync(h, L) {
60
- let R = Symbol(), [B, V] = createSignal(L);
61
- return createComputed(async () => {
62
- let L = h(untrack(B)), z = L instanceof Promise ? await new Promise((h) => {
63
- L.then(h), onCleanup(() => h(R));
64
- }) : L;
65
- z == R || V(() => z);
66
- }), B;
67
- }
68
- function useSignle2(h, L) {
69
- let R = createSignal(isFunction(h) ? void 0 : h), B = (h) => {
70
- let R = L?.before?.(h);
71
- return isPromise(R) ? R.then((L) => L === void 0 ? h : L) : R ?? h;
72
- }, V = useMemoAsync(() => B(R[0]()));
73
- if (isFunction(h)) {
74
- let L = useMemoAsync(() => B(h()));
75
- createComputed(() => R[1](L()));
76
- }
77
- return [V, R[1]];
78
- }
79
- var $MEMO = Symbol();
80
- function toReactive(R) {
81
- let z = () => unFn(R), B = () => !0, V = (h) => ((h) => typeof h == "function" && $MEMO in h ? h() : h)(z()[h]);
82
- return new Proxy(Object.create(null), {
83
- get: (h, R, B) => R == $PROXY || R == $RAW ? B : ((h) => typeof h == "function" && $MEMO in h ? h() : h)(z()[R]),
84
- set: B,
85
- defineProperty: (h, L, R) => Object.defineProperty(z(), L, R),
86
- deleteProperty: B,
87
- getPrototypeOf: () => Object.getPrototypeOf(z()),
88
- has: (h, R) => R == $PROXY || R in z(),
89
- ownKeys: (h) => Object.keys(z()),
90
- getOwnPropertyDescriptor: (h, L) => ({
91
- enumerable: !0,
92
- configurable: !0,
93
- get() {
94
- return V(L);
95
- },
96
- set: B
97
- })
98
- });
99
- }
100
- function useMemo(h) {
101
- let L = createMemo(h);
102
- return L[$MEMO] = 1, L;
103
- }
104
- function useHover(h) {
105
- let [L, R] = createSignal(!1);
106
- return createEventListener(h, "pointerenter", () => R(!0)), createEventListener(h, "pointerleave", () => R(!1)), L;
107
- }
108
- function useMouseDown(h) {
109
- let [L, R] = createSignal(!1);
110
- return createEventListener(h, "pointerdown", () => R(!0)), createEventListener(document.body, "pointerup", () => R(!1)), L;
111
- }
112
- function useClicked(h) {
113
- let [L, R] = createSignal(!1), z = () => castArray(access(h));
114
- return createEventListener(() => z().map((h) => h?.getRootNode()), "click", (h) => R(z().some((L) => L?.contains(h.target)))), L;
115
- }
116
- function useMutation(h, L, R) {
117
- let z = createSignal(R());
118
- return createMutationObserver(h, L, (h) => z[1](R())), z[0];
119
- }
120
- function useTinykeys(h, L) {
121
- createEventListener(h, "keydown", createKeybindingsHandler({ ...mapValues(L, (h) => (L) => {
122
- L.preventDefault(), h(L);
123
- }) }));
124
- }
125
- function useHistory([h, L]) {
126
- let R = 1, z = createMutable({
127
- index: -1,
128
- history: []
129
- }), B = () => (z.index = 0, z.history = [h()]), V = () => z.index > 0, H = () => z.index < z.history.length - 1;
130
- return createRenderEffect(on(h, (h) => {
131
- if (h != null) {
132
- if (!R) return R = 1;
133
- H() && (z.history = z.history.slice(0, z.index + 1)), z.history[++z.index] = h;
134
- }
135
- })), {
136
- undo: () => V() && ((R = 0) || L(z.history[--z.index])),
137
- redo: () => H() && ((R = 0) || L(z.history[++z.index])),
138
- clear: B,
139
- get index() {
140
- return z.index;
141
- },
142
- get history() {
143
- return z.history;
144
- }
145
- };
146
- }
147
- function useMemoState(h) {
148
- let L = createMutable({});
149
- return createComputed(() => {
150
- let z = h();
151
- untrack(() => batch(() => {
152
- for (let h in L) h in z || delete L[h];
153
- Object.assign(L, z);
154
- }));
155
- }), L;
156
- }
157
- export { model, toReactive, toSignle, useClicked, useDark, useHistory, useHover, useMemo, useMemoAsync, useMemoState, useMouseDown, useMutation, usePointerDrag, useSignle2, useTinykeys };
@@ -1,11 +0,0 @@
1
- import { type MaybeAccessor } from '@solid-primitives/utils';
2
- interface UseDirOptions {
3
- ref: MaybeAccessor<HTMLElement | undefined>;
4
- list?: MaybeAccessor<HTMLElement | undefined>;
5
- loop?: boolean;
6
- options?: EventListenerOptions;
7
- defaultFirst?: boolean;
8
- }
9
- export declare function useDir(options: UseDirOptions): void;
10
- export declare function VDir(el: HTMLElement, options: any): void;
11
- export {};
@@ -1,42 +0,0 @@
1
- import { createEffect, mergeProps } from "solid-js";
2
- import { createEventListener } from "@solid-primitives/event-listener";
3
- import { access } from "@solid-primitives/utils";
4
- import { createMutationObserver } from "@solid-primitives/mutation-observer";
5
- function useDir(a) {
6
- a = mergeProps({ loop: !0 }, a);
7
- let o = () => access(a.list) ?? access(a.ref), s = () => access(a.ref) ?? access(a.list);
8
- createEffect(() => {
9
- s().tabIndex > -1 || (s().tabIndex = 0);
10
- }), createEventListener(s, "keydown", (e) => {
11
- if (![
12
- "ArrowDown",
13
- "ArrowUp",
14
- "Enter"
15
- ].includes(e.key)) return;
16
- e.stopPropagation(), e.preventDefault();
17
- let n = o()?.querySelector(".hover");
18
- if (e.key == "Enter") {
19
- n?.click();
20
- return;
21
- }
22
- let r = e.key == "ArrowDown" ? n ? +n?.getAttribute("data-index") + 1 : 0 : e.key == "ArrowUp" ? n ? n?.getAttribute("data-index") - 1 : -1 : 0, i = o()?.querySelector(`[data-index='${r}']`);
23
- i ? (n?.classList.remove("hover"), i.classList.add("hover")) : a.loop && (n?.classList.remove("hover"), r >= 0 ? o()?.querySelector("[data-index='0']")?.classList.add("hover") : [...o()?.querySelectorAll("[data-index]")].at(-1)?.classList.add("hover"));
24
- }, a.options), createEffect(() => {
25
- if (!a.defaultFirst) return;
26
- let e = o();
27
- if (!e) return;
28
- let n = () => {
29
- e.querySelector(".hover") || e.querySelector("[data-index]")?.classList.add("hover");
30
- };
31
- createMutationObserver(e, { childList: !0 }, n), n();
32
- }), createEventListener(o, "mouseover", () => {
33
- o()?.querySelector(".hover")?.classList.remove("hover");
34
- });
35
- }
36
- function VDir(e, n) {
37
- useDir({
38
- ...n(),
39
- list: e
40
- });
41
- }
42
- export { VDir, useDir };
@@ -1,16 +0,0 @@
1
- interface UseSelectorOpt<T> {
2
- value?: T;
3
- onChange?: (v: T) => void;
4
- multiple?: boolean;
5
- selectable?: (v: any) => boolean;
6
- }
7
- export declare function useSelector<T = any>(opt: UseSelectorOpt<T>): {
8
- clear: () => void;
9
- set: (v: T) => void;
10
- has: (key: T | Set<T>) => boolean;
11
- add: (v: T) => void;
12
- del: (v: T) => void;
13
- toggle: (v: T) => void;
14
- readonly value: any;
15
- };
16
- export {};
@@ -1,35 +0,0 @@
1
- import { createMemo, createSelector, createSignal } from "solid-js";
2
- function useSelector(r) {
3
- let { value: i, onChange: a, multiple: o = !1, selectable: s } = r, [c, l] = createSignal((() => o ? i ? new Set(Array.isArray(i) ? i : [i]) : /* @__PURE__ */ new Set() : i)()), u = (e) => s ? s(e) : !0, d = () => {
4
- o ? (l(/* @__PURE__ */ new Set()), a?.([])) : (l(void 0), a?.(void 0));
5
- }, f = (e) => {
6
- if (u(e)) if (o) {
7
- let n = new Set(Array.isArray(e) ? e : [e]);
8
- l(n), a?.(Array.from(n));
9
- } else l(e), a?.(e);
10
- }, p = createSelector(c, (e, n) => o ? n.has(e) : e === n), m = (e) => {
11
- if (u(e)) if (o) {
12
- let n = new Set(c());
13
- n.add(e), l(n), a?.(Array.from(n));
14
- } else l(e), a?.(e);
15
- }, h = (e) => {
16
- if (o) {
17
- let n = new Set(c());
18
- n.delete(e), l(n), a?.(Array.from(n));
19
- } else c() === e && (l(void 0), a?.(void 0));
20
- }, g = (e) => {
21
- p(e) ? h(e) : m(e);
22
- }, _ = createMemo(() => o ? Array.from(c()) : c());
23
- return {
24
- clear: d,
25
- set: f,
26
- has: p,
27
- add: m,
28
- del: h,
29
- toggle: g,
30
- get value() {
31
- return _();
32
- }
33
- };
34
- }
35
- export { useSelector };
@@ -1,18 +0,0 @@
1
- import { type MaybeAccessor } from '@solid-primitives/utils';
2
- type Awaitable<T> = T | Promise<T>;
3
- interface UseSortOption {
4
- enable?: boolean;
5
- guideLine: any;
6
- draggable: (el: HTMLElement) => Awaitable<boolean>;
7
- dragover: (el: HTMLElement) => boolean;
8
- children: (el: HTMLElement) => HTMLElement[];
9
- dragend: () => void;
10
- }
11
- export declare const useSort: (el: MaybeAccessor<HTMLElement | undefined>, opt: UseSortOption) => {
12
- style: any;
13
- drag: any;
14
- over: any;
15
- rel: any;
16
- type: string;
17
- };
18
- export {};
@@ -1,83 +0,0 @@
1
- import { findAsync } from "../utils.js";
2
- import { Portal, createComponent, memo, mergeProps, spread, template } from "solid-js/web";
3
- import { createMutable, reconcile } from "solid-js/store";
4
- import { createEventListenerMap } from "@solid-primitives/event-listener";
5
- import { access } from "@solid-primitives/utils";
6
- var _tmpl$ = /* @__PURE__ */ template("<div>");
7
- const useSort = (l, f) => {
8
- f = mergeProps({ enable: !0 }, f);
9
- let p = 0;
10
- createEventListenerMap(() => f.enable ? access(l) : void 0, {
11
- async pointerdown(i) {
12
- let a = p, o = await findAsync(i.composedPath(), (e) => e instanceof HTMLElement && f.draggable(e));
13
- a == p && o && (i.stopPropagation(), h.drag = o, h.drag?.setAttribute("draggable", "true"));
14
- },
15
- pointerup() {
16
- p++, m();
17
- },
18
- pointermove() {
19
- p++;
20
- },
21
- dragstart(e) {
22
- e.dataTransfer.setDragImage(document.createElement("img"), 0, 0);
23
- },
24
- dragover(e) {
25
- if (!h.drag) return;
26
- let i = h.over = e.composedPath().filter((e) => e instanceof HTMLElement).find((e) => f.dragover(e)) ?? h.over;
27
- if (!i) return;
28
- e.preventDefault(), e.stopPropagation();
29
- let a = f.children(i);
30
- if (a) {
31
- let i = 0, o = Infinity, s = "";
32
- a.forEach((a, c) => {
33
- let l = getComputedStyle(a).display, u = ["table-cell", "inline"].some((e) => l.includes(e)), d = a.getBoundingClientRect();
34
- if (u) {
35
- let a = Math.sqrt((e.clientX - d.x) ** 2 + (e.clientY - d.y + d.height / 2) ** 2);
36
- a < o && (i = c, o = a, s = "l"), a = Math.sqrt((e.clientX - d.right) ** 2 + (e.clientY - d.y + d.height / 2) ** 2), a < o && (i = c, o = a, s = "r");
37
- } else {
38
- let a = Math.sqrt((e.clientY - d.y) ** 2 + (e.clientX - d.x + d.width / 2) ** 2);
39
- a < o && (i = c, o = a, s = "t"), a = Math.sqrt((e.clientY - d.bottom) ** 2 + (e.clientX - d.x + d.width / 2) ** 2), a < o && (i = c, o = a, s = "b");
40
- }
41
- });
42
- let c = a[i].getBoundingClientRect(), l = s == "l" || s == "r", u = s == "t" || s == "b";
43
- h.style = {
44
- width: `${u ? c.width : 3}px`,
45
- height: `${u ? 3 : c.height}px`,
46
- translate: `${u ? c.x : (s == "l" ? c.x : c.right) - 3 / 2}px ${l ? c.y : (s == "t" ? c.y : c.bottom) - 3 / 2}px`
47
- }, h.rel = a[i], h.type = s == "l" || s == "t" ? "before" : "after";
48
- } else {
49
- let e = i.getBoundingClientRect();
50
- h.style = {
51
- width: e.width,
52
- height: e.height,
53
- translate: `${e.x}px ${e.y}px`
54
- }, h.rel = i, h.type = "inner";
55
- }
56
- },
57
- dragend() {
58
- m();
59
- }
60
- });
61
- function m() {
62
- h.drag?.removeAttribute("draggable"), h.drag && h.rel && f.dragend?.(), reconcile({})(h);
63
- }
64
- let h = createMutable({
65
- style: void 0,
66
- drag: void 0,
67
- over: void 0,
68
- rel: void 0,
69
- type: ""
70
- });
71
- return memo(() => memo(() => !!h.style)() && createComponent(Portal, {
72
- get mount() {
73
- return access(l);
74
- },
75
- get children() {
76
- var e = _tmpl$();
77
- return spread(e, mergeProps(() => f.guideLine, { get style() {
78
- return h.style;
79
- } }), !1, !1), e;
80
- }
81
- })), h;
82
- };
83
- export { useSort };
@@ -1,25 +0,0 @@
1
- interface VirtualizerOptions {
2
- enable?: boolean;
3
- overscan?: number;
4
- batch?: number;
5
- getScrollElement: () => Element;
6
- horizontal?: boolean;
7
- count: number;
8
- estimateSize: (i: number) => number;
9
- }
10
- export declare function useVirtualizer(opt: VirtualizerOptions): {
11
- options: VirtualizerOptions;
12
- getTotalSize: () => number;
13
- resizeItem: (i: any, size: any) => void;
14
- getVirtualItems: import("solid-js").Accessor<{
15
- start: number;
16
- end: number;
17
- index: number;
18
- }[]>;
19
- getVirtualItem: (i: any) => {
20
- start: number;
21
- end: number;
22
- index: number;
23
- };
24
- };
25
- export {};
@@ -1,67 +0,0 @@
1
- import { createComputed, createMemo, createRenderEffect, createSignal, mergeProps, untrack } from "solid-js";
2
- import { createMutable } from "solid-js/store";
3
- import { keyBy, uniqBy } from "es-toolkit";
4
- import { createElementSize } from "@solid-primitives/resize-observer";
5
- import { createScrollPosition } from "@solid-primitives/scroll";
6
- function useVirtualizer(d) {
7
- d = mergeProps({
8
- overscan: 0,
9
- batch: 0,
10
- enable: !0
11
- }, d);
12
- let f = createElementSize(d.getScrollElement), p = createScrollPosition(d.getScrollElement), m = createMemo(() => d.horizontal ? p.x : p.y), h = createMemo(() => d.horizontal ? f.width : f.height), g = createMemo(() => m() + h()), _ = createMutable(Array(d.count));
13
- createComputed(() => {
14
- let { count: e } = d;
15
- untrack(() => {
16
- for (let o = 0; o < e; o++) _[o] ||= d.estimateSize(o);
17
- });
18
- });
19
- let [v, y] = createSignal([]);
20
- createRenderEffect(() => {
21
- let { count: e } = d, o = Array(e), s = 0;
22
- for (let c = 0; c < e; c++) o[c] = {
23
- start: s,
24
- end: s + _[c],
25
- index: c
26
- }, s = o[c].end;
27
- y(o);
28
- });
29
- let b = createMemo((e) => {
30
- let { batch: o, overscan: s = 0 } = d, c = C(v(), (e) => e.start > m() ? -1 : e.end < m() ? 1 : 0);
31
- return c -= s, o && (c > e ? c = c <= e + o ? e : c > e + o * 2 ? c : e + o : c -= o), Math.max(c, 0);
32
- }, 0), x = createMemo((e) => {
33
- let { batch: o, overscan: s = 0 } = d, c = C(v(), (e) => e.start > g() ? -1 : e.end < g() ? 1 : 0);
34
- return c += s, o && (c < e ? c = c >= e - o ? e : c < e - o * 2 ? c : e - o : c += o), Math.min(c, d.count - 1);
35
- }, 0), S = createMemo(() => {
36
- if (!d.enable) return v();
37
- let e = v().slice(b(), x() + 1);
38
- return d.extras && (e.push(...d.extras()?.map((e) => v()[e]) || []), e = uniqBy(e, (e) => e.index).sort((e, o) => e.index - o.index)), e;
39
- });
40
- function C(e, o) {
41
- let s = 0, c = e.length - 1;
42
- for (; s < c;) {
43
- let l = s + Math.floor((c - s) / 2), u = o(e[l]);
44
- if (u < 0 && c != l) c = l;
45
- else if (u > 0 && s != l) s = l;
46
- else return l;
47
- }
48
- return s;
49
- }
50
- return {
51
- options: d,
52
- getTotalSize: () => v()[v().length - 1]?.end || 0,
53
- resizeItem: (e, o) => {
54
- if (e <= b() && o != _[e]) {
55
- let s = d.getScrollElement();
56
- (d.horizontal ? s.scrollLeft : s.scrollTop) != 0 && (d.horizontal ? s.scrollLeft += o - _[e] : s.scrollTop += o - _[e]);
57
- }
58
- _[e] = o;
59
- },
60
- getVirtualItems: S,
61
- getVirtualItem: (() => {
62
- let e = createMemo(() => keyBy(S(), (e) => e.index));
63
- return (o) => e()[o];
64
- })()
65
- };
66
- }
67
- export { useVirtualizer };