@tanstack/pacer-devtools 0.1.0
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/LICENSE +21 -0
- package/dist/cjs/PacerContextProvider.cjs +156 -0
- package/dist/cjs/PacerContextProvider.cjs.map +1 -0
- package/dist/cjs/PacerContextProvider.d.cts +19 -0
- package/dist/cjs/PacerDevtools.cjs +13 -0
- package/dist/cjs/PacerDevtools.cjs.map +1 -0
- package/dist/cjs/PacerDevtools.d.cts +1 -0
- package/dist/cjs/components/ActionButtons.cjs +157 -0
- package/dist/cjs/components/ActionButtons.cjs.map +1 -0
- package/dist/cjs/components/ActionButtons.d.cts +6 -0
- package/dist/cjs/components/DetailsPanel.cjs +80 -0
- package/dist/cjs/components/DetailsPanel.cjs.map +1 -0
- package/dist/cjs/components/DetailsPanel.d.cts +11 -0
- package/dist/cjs/components/Shell.cjs +102 -0
- package/dist/cjs/components/Shell.cjs.map +1 -0
- package/dist/cjs/components/Shell.d.cts +1 -0
- package/dist/cjs/components/StateHeader.cjs +95 -0
- package/dist/cjs/components/StateHeader.cjs.map +1 -0
- package/dist/cjs/components/StateHeader.d.cts +11 -0
- package/dist/cjs/components/UtilList.cjs +70 -0
- package/dist/cjs/components/UtilList.cjs.map +1 -0
- package/dist/cjs/components/UtilList.d.cts +8 -0
- package/dist/cjs/components/util-groups.cjs +40 -0
- package/dist/cjs/components/util-groups.cjs.map +1 -0
- package/dist/cjs/components/util-groups.d.cts +8 -0
- package/dist/cjs/core.cjs +43 -0
- package/dist/cjs/core.cjs.map +1 -0
- package/dist/cjs/core.d.cts +8 -0
- package/dist/cjs/index.cjs +15 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +3 -0
- package/dist/cjs/production.cjs +7 -0
- package/dist/cjs/production.cjs.map +1 -0
- package/dist/cjs/production.d.cts +3 -0
- package/dist/cjs/styles/tokens.cjs +90 -0
- package/dist/cjs/styles/tokens.cjs.map +1 -0
- package/dist/cjs/styles/tokens.d.cts +298 -0
- package/dist/cjs/styles/use-styles.cjs +397 -0
- package/dist/cjs/styles/use-styles.cjs.map +1 -0
- package/dist/cjs/styles/use-styles.d.cts +42 -0
- package/dist/esm/PacerContextProvider.d.ts +19 -0
- package/dist/esm/PacerContextProvider.js +156 -0
- package/dist/esm/PacerContextProvider.js.map +1 -0
- package/dist/esm/PacerDevtools.d.ts +1 -0
- package/dist/esm/PacerDevtools.js +14 -0
- package/dist/esm/PacerDevtools.js.map +1 -0
- package/dist/esm/components/ActionButtons.d.ts +6 -0
- package/dist/esm/components/ActionButtons.js +157 -0
- package/dist/esm/components/ActionButtons.js.map +1 -0
- package/dist/esm/components/DetailsPanel.d.ts +11 -0
- package/dist/esm/components/DetailsPanel.js +80 -0
- package/dist/esm/components/DetailsPanel.js.map +1 -0
- package/dist/esm/components/Shell.d.ts +1 -0
- package/dist/esm/components/Shell.js +102 -0
- package/dist/esm/components/Shell.js.map +1 -0
- package/dist/esm/components/StateHeader.d.ts +11 -0
- package/dist/esm/components/StateHeader.js +95 -0
- package/dist/esm/components/StateHeader.js.map +1 -0
- package/dist/esm/components/UtilList.d.ts +8 -0
- package/dist/esm/components/UtilList.js +70 -0
- package/dist/esm/components/UtilList.js.map +1 -0
- package/dist/esm/components/util-groups.d.ts +8 -0
- package/dist/esm/components/util-groups.js +40 -0
- package/dist/esm/components/util-groups.js.map +1 -0
- package/dist/esm/core.d.ts +8 -0
- package/dist/esm/core.js +42 -0
- package/dist/esm/core.js.map +1 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/production.d.ts +3 -0
- package/dist/esm/production.js +7 -0
- package/dist/esm/production.js.map +1 -0
- package/dist/esm/styles/tokens.d.ts +298 -0
- package/dist/esm/styles/tokens.js +90 -0
- package/dist/esm/styles/tokens.js.map +1 -0
- package/dist/esm/styles/use-styles.d.ts +42 -0
- package/dist/esm/styles/use-styles.js +380 -0
- package/dist/esm/styles/use-styles.js.map +1 -0
- package/package.json +84 -0
- package/src/PacerContextProvider.tsx +203 -0
- package/src/PacerDevtools.tsx +10 -0
- package/src/components/ActionButtons.tsx +143 -0
- package/src/components/DetailsPanel.tsx +61 -0
- package/src/components/Shell.tsx +102 -0
- package/src/components/StateHeader.tsx +106 -0
- package/src/components/UtilList.tsx +62 -0
- package/src/components/util-groups.ts +54 -0
- package/src/core.tsx +41 -0
- package/src/index.ts +17 -0
- package/src/production.ts +7 -0
- package/src/styles/tokens.ts +305 -0
- package/src/styles/use-styles.ts +379 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-styles.cjs","sources":["../../../src/styles/use-styles.ts"],"sourcesContent":["import * as goober from 'goober'\nimport { createSignal } from 'solid-js'\nimport { tokens } from './tokens'\n\nconst stylesFactory = () => {\n const { colors, font, size, alpha, border } = tokens\n const { fontFamily, size: fontSize } = font\n const css = goober.css\n\n return {\n devtoolsPanel: css`\n background: ${colors.darkGray[900]};\n color: ${colors.gray[100]};\n font-family: ${fontFamily.sans};\n font-size: ${fontSize.sm};\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow: hidden;\n `,\n stickyHeader: css`\n position: sticky;\n top: 0;\n z-index: 10;\n background: ${colors.darkGray[900]};\n padding: ${size[2]};\n font-size: ${fontSize.lg};\n font-weight: ${font.weight.bold};\n color: #84cc16;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n border-bottom: 1px solid ${colors.darkGray[700]};\n box-shadow: 0 2px 8px 0 ${colors.black + alpha[40]};\n flex-shrink: 0;\n `,\n mainContainer: css`\n display: flex;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: ${size[2]};\n padding-top: 0;\n `,\n dragHandle: css`\n width: 8px;\n background: ${colors.darkGray[600]};\n cursor: col-resize;\n position: relative;\n transition: all 0.2s ease;\n user-select: none;\n pointer-events: all;\n margin: 0 ${size[1]};\n border-radius: 2px;\n\n &:hover {\n background: ${colors.blue[500]};\n margin: 0 ${size[1]};\n }\n\n &.dragging {\n background: ${colors.blue[600]};\n margin: 0 ${size[1]};\n }\n\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 2px;\n height: 20px;\n background: ${colors.darkGray[400]};\n border-radius: 1px;\n pointer-events: none;\n }\n\n &:hover::after,\n &.dragging::after {\n background: ${colors.blue[300]};\n }\n `,\n leftPanel: css`\n background: ${colors.darkGray[800]};\n border-radius: ${border.radius.lg};\n border: 1px solid ${colors.darkGray[700]};\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n flex-shrink: 0;\n `,\n rightPanel: css`\n background: ${colors.darkGray[800]};\n border-radius: ${border.radius.lg};\n border: 1px solid ${colors.darkGray[700]};\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n flex: 1;\n `,\n panelHeader: css`\n font-size: ${fontSize.md};\n font-weight: ${font.weight.bold};\n color: ${colors.blue[400]};\n padding: ${size[2]};\n border-bottom: 1px solid ${colors.darkGray[700]};\n background: ${colors.darkGray[800]};\n flex-shrink: 0;\n `,\n utilList: css`\n flex: 1;\n overflow-y: auto;\n padding: ${size[1]};\n min-height: 0;\n `,\n utilGroup: css`\n margin-bottom: ${size[2]};\n `,\n utilGroupHeader: css`\n font-size: ${fontSize.xs};\n font-weight: ${font.weight.semibold};\n color: ${colors.gray[400]};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: ${size[1]};\n padding: ${size[1]} ${size[2]};\n background: ${colors.darkGray[700]};\n border-radius: ${border.radius.md};\n `,\n utilRow: css`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: ${size[2]};\n margin-bottom: ${size[1]};\n background: ${colors.darkGray[700]};\n border-radius: ${border.radius.md};\n cursor: pointer;\n transition: all 0.2s ease;\n border: 1px solid transparent;\n\n &:hover {\n background: ${colors.darkGray[600]};\n border-color: ${colors.darkGray[500]};\n }\n `,\n utilRowSelected: css`\n background: ${colors.blue[900] + alpha[20]};\n border-color: ${colors.blue[500]};\n box-shadow: 0 0 0 1px ${colors.blue[500] + alpha[30]};\n `,\n utilKey: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${colors.gray[100]};\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `,\n utilStatus: css`\n font-size: ${fontSize.xs};\n color: ${colors.gray[400]};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: ${size[1]} ${size[1]};\n background: ${colors.darkGray[600]};\n border-radius: ${border.radius.sm};\n margin-left: ${size[1]};\n `,\n stateDetails: css`\n flex: 1;\n overflow-y: auto;\n padding: ${size[2]};\n min-height: 0;\n `,\n stateHeader: css`\n margin-bottom: ${size[2]};\n padding-bottom: ${size[2]};\n border-bottom: 1px solid ${colors.darkGray[700]};\n `,\n stateTitle: css`\n font-size: ${fontSize.md};\n font-weight: ${font.weight.bold};\n color: ${colors.blue[400]};\n margin-bottom: ${size[1]};\n `,\n stateKey: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${colors.gray[400]};\n word-break: break-all;\n `,\n stateContent: css`\n background: ${colors.darkGray[700]};\n border-radius: ${border.radius.md};\n padding: ${size[2]};\n border: 1px solid ${colors.darkGray[600]};\n `,\n detailsGrid: css`\n display: grid;\n grid-template-columns: 1fr;\n gap: ${size[2]};\n align-items: start;\n `,\n detailSection: css`\n background: ${colors.darkGray[700]};\n border: 1px solid ${colors.darkGray[600]};\n border-radius: ${border.radius.md};\n padding: ${size[2]};\n `,\n detailSectionHeader: css`\n font-size: ${fontSize.sm};\n font-weight: ${font.weight.bold};\n color: ${colors.gray[200]};\n margin-bottom: ${size[1]};\n text-transform: uppercase;\n letter-spacing: 0.04em;\n `,\n actionsRow: css`\n display: flex;\n flex-wrap: wrap;\n gap: ${size[2]};\n `,\n actionButton: css`\n display: inline-flex;\n align-items: center;\n gap: ${size[1]};\n padding: ${size[1]} ${size[2]};\n border-radius: ${border.radius.md};\n border: 1px solid ${colors.darkGray[500]};\n background: ${colors.darkGray[600]};\n color: ${colors.gray[100]};\n font-size: ${fontSize.xs};\n cursor: pointer;\n user-select: none;\n transition:\n background 0.15s,\n border-color 0.15s;\n &:hover {\n background: ${colors.darkGray[500]};\n border-color: ${colors.darkGray[400]};\n }\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n &:hover {\n background: ${colors.darkGray[600]};\n border-color: ${colors.darkGray[500]};\n }\n }\n `,\n actionDotBlue: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.blue[400]};\n `,\n actionDotGreen: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.green[400]};\n `,\n actionDotRed: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.red[400]};\n `,\n actionDotYellow: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.yellow[400]};\n `,\n actionDotOrange: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.pink[400]};\n `,\n actionDotPurple: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.purple[400]};\n `,\n infoGrid: css`\n display: grid;\n grid-template-columns: auto 1fr;\n gap: ${size[1]};\n row-gap: ${size[1]};\n align-items: center;\n `,\n infoLabel: css`\n color: ${colors.gray[400]};\n font-size: ${fontSize.xs};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n `,\n infoValueMono: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${colors.gray[100]};\n word-break: break-all;\n `,\n noSelection: css`\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${colors.gray[500]};\n font-style: italic;\n text-align: center;\n padding: ${size[4]};\n `,\n // Keep existing styles for backward compatibility\n sectionContainer: css`\n display: flex;\n flex-wrap: wrap;\n gap: ${size[4]};\n `,\n section: css`\n background: ${colors.darkGray[800]};\n border-radius: ${border.radius.lg};\n box-shadow: ${tokens.shadow.md(colors.black + alpha[80])};\n padding: ${size[4]};\n margin-bottom: ${size[4]};\n border: 1px solid ${colors.darkGray[700]};\n min-width: 0;\n max-width: 33%;\n max-height: fit-content;\n `,\n sectionHeader: css`\n font-size: ${fontSize.lg};\n font-weight: ${font.weight.bold};\n margin-bottom: ${size[2]};\n color: ${colors.blue[400]};\n letter-spacing: 0.01em;\n display: flex;\n align-items: center;\n gap: ${size[2]};\n `,\n sectionEmpty: css`\n color: ${colors.gray[500]};\n font-size: ${fontSize.sm};\n font-style: italic;\n margin: ${size[2]} 0;\n `,\n instanceList: css`\n display: flex;\n flex-direction: column;\n gap: ${size[2]};\n `,\n instanceCard: css`\n background: ${colors.darkGray[700]};\n border-radius: ${border.radius.md};\n padding: ${size[3]};\n border: 1px solid ${colors.darkGray[600]};\n font-size: ${fontSize.sm};\n color: ${colors.gray[100]};\n font-family: ${fontFamily.mono};\n overflow-x: auto;\n transition:\n box-shadow 0.3s,\n background 0.3s;\n `,\n }\n}\n\nexport function useStyles() {\n const [_styles] = createSignal(stylesFactory())\n return _styles\n}\n"],"names":["tokens","goober","createSignal"],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export declare function useStyles(): import('solid-js').Accessor<{
|
|
2
|
+
devtoolsPanel: string;
|
|
3
|
+
stickyHeader: string;
|
|
4
|
+
mainContainer: string;
|
|
5
|
+
dragHandle: string;
|
|
6
|
+
leftPanel: string;
|
|
7
|
+
rightPanel: string;
|
|
8
|
+
panelHeader: string;
|
|
9
|
+
utilList: string;
|
|
10
|
+
utilGroup: string;
|
|
11
|
+
utilGroupHeader: string;
|
|
12
|
+
utilRow: string;
|
|
13
|
+
utilRowSelected: string;
|
|
14
|
+
utilKey: string;
|
|
15
|
+
utilStatus: string;
|
|
16
|
+
stateDetails: string;
|
|
17
|
+
stateHeader: string;
|
|
18
|
+
stateTitle: string;
|
|
19
|
+
stateKey: string;
|
|
20
|
+
stateContent: string;
|
|
21
|
+
detailsGrid: string;
|
|
22
|
+
detailSection: string;
|
|
23
|
+
detailSectionHeader: string;
|
|
24
|
+
actionsRow: string;
|
|
25
|
+
actionButton: string;
|
|
26
|
+
actionDotBlue: string;
|
|
27
|
+
actionDotGreen: string;
|
|
28
|
+
actionDotRed: string;
|
|
29
|
+
actionDotYellow: string;
|
|
30
|
+
actionDotOrange: string;
|
|
31
|
+
actionDotPurple: string;
|
|
32
|
+
infoGrid: string;
|
|
33
|
+
infoLabel: string;
|
|
34
|
+
infoValueMono: string;
|
|
35
|
+
noSelection: string;
|
|
36
|
+
sectionContainer: string;
|
|
37
|
+
section: string;
|
|
38
|
+
sectionHeader: string;
|
|
39
|
+
sectionEmpty: string;
|
|
40
|
+
instanceList: string;
|
|
41
|
+
instanceCard: string;
|
|
42
|
+
}>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AsyncBatcher, AsyncDebouncer, AsyncQueuer, AsyncRateLimiter, AsyncThrottler, Batcher, Debouncer, Queuer, RateLimiter, Throttler } from '@tanstack/pacer';
|
|
2
|
+
interface PacerDevtoolsContextType {
|
|
3
|
+
asyncBatchers: Array<AsyncBatcher<any>>;
|
|
4
|
+
asyncDebouncers: Array<AsyncDebouncer<any>>;
|
|
5
|
+
asyncQueuers: Array<AsyncQueuer<any>>;
|
|
6
|
+
asyncRateLimiters: Array<AsyncRateLimiter<any>>;
|
|
7
|
+
asyncThrottlers: Array<AsyncThrottler<any>>;
|
|
8
|
+
batchers: Array<Batcher<any>>;
|
|
9
|
+
debouncers: Array<Debouncer<any>>;
|
|
10
|
+
queuers: Array<Queuer<any>>;
|
|
11
|
+
rateLimiters: Array<RateLimiter<any>>;
|
|
12
|
+
throttlers: Array<Throttler<any>>;
|
|
13
|
+
lastUpdatedByKey: Record<string, number>;
|
|
14
|
+
}
|
|
15
|
+
export declare function PacerContextProvider(props: {
|
|
16
|
+
children: any;
|
|
17
|
+
}): import("solid-js").JSX.Element;
|
|
18
|
+
export declare const usePacerDevtoolsState: () => PacerDevtoolsContextType;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { createComponent } from "solid-js/web";
|
|
2
|
+
import { createStore } from "solid-js/store";
|
|
3
|
+
import { createEffect, onCleanup, createContext, useContext } from "solid-js";
|
|
4
|
+
import { pacerEventClient } from "@tanstack/pacer/event-client";
|
|
5
|
+
const initialPacerDevtoolsStore = {
|
|
6
|
+
asyncBatchers: [],
|
|
7
|
+
asyncDebouncers: [],
|
|
8
|
+
asyncQueuers: [],
|
|
9
|
+
asyncRateLimiters: [],
|
|
10
|
+
asyncThrottlers: [],
|
|
11
|
+
batchers: [],
|
|
12
|
+
debouncers: [],
|
|
13
|
+
queuers: [],
|
|
14
|
+
rateLimiters: [],
|
|
15
|
+
throttlers: [],
|
|
16
|
+
lastUpdatedByKey: {}
|
|
17
|
+
};
|
|
18
|
+
const PacerDevtoolsContext = createContext([initialPacerDevtoolsStore, () => {
|
|
19
|
+
}]);
|
|
20
|
+
const updateOrAddToArray = (oldArray, newItem) => {
|
|
21
|
+
const index = oldArray.findIndex((item) => item.key === newItem.key);
|
|
22
|
+
if (index !== -1) {
|
|
23
|
+
return oldArray.map((item, i) => i === index ? newItem : item);
|
|
24
|
+
}
|
|
25
|
+
return [...oldArray, newItem];
|
|
26
|
+
};
|
|
27
|
+
function PacerContextProvider(props) {
|
|
28
|
+
const [store, setStore] = createStore(initialPacerDevtoolsStore);
|
|
29
|
+
createEffect(() => {
|
|
30
|
+
const cleanup = pacerEventClient.onAllPluginEvents((_e) => {
|
|
31
|
+
const e = _e;
|
|
32
|
+
switch (e.type) {
|
|
33
|
+
case "pacer:AsyncBatcher": {
|
|
34
|
+
setStore({
|
|
35
|
+
asyncBatchers: updateOrAddToArray(store.asyncBatchers, e.payload),
|
|
36
|
+
lastUpdatedByKey: {
|
|
37
|
+
...store.lastUpdatedByKey,
|
|
38
|
+
[e.payload.key]: Date.now()
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
case "pacer:AsyncDebouncer": {
|
|
44
|
+
setStore({
|
|
45
|
+
asyncDebouncers: updateOrAddToArray(store.asyncDebouncers, e.payload),
|
|
46
|
+
lastUpdatedByKey: {
|
|
47
|
+
...store.lastUpdatedByKey,
|
|
48
|
+
[e.payload.key]: Date.now()
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case "pacer:AsyncQueuer": {
|
|
54
|
+
setStore({
|
|
55
|
+
asyncQueuers: updateOrAddToArray(store.asyncQueuers, e.payload),
|
|
56
|
+
lastUpdatedByKey: {
|
|
57
|
+
...store.lastUpdatedByKey,
|
|
58
|
+
[e.payload.key]: Date.now()
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
case "pacer:AsyncRateLimiter": {
|
|
64
|
+
setStore({
|
|
65
|
+
asyncRateLimiters: updateOrAddToArray(store.asyncRateLimiters, e.payload),
|
|
66
|
+
lastUpdatedByKey: {
|
|
67
|
+
...store.lastUpdatedByKey,
|
|
68
|
+
[e.payload.key]: Date.now()
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
case "pacer:AsyncThrottler": {
|
|
74
|
+
setStore({
|
|
75
|
+
asyncThrottlers: updateOrAddToArray(store.asyncThrottlers, e.payload),
|
|
76
|
+
lastUpdatedByKey: {
|
|
77
|
+
...store.lastUpdatedByKey,
|
|
78
|
+
[e.payload.key]: Date.now()
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
case "pacer:Batcher": {
|
|
84
|
+
setStore({
|
|
85
|
+
batchers: updateOrAddToArray(store.batchers, e.payload),
|
|
86
|
+
lastUpdatedByKey: {
|
|
87
|
+
...store.lastUpdatedByKey,
|
|
88
|
+
[e.payload.key]: Date.now()
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
case "pacer:Debouncer": {
|
|
94
|
+
setStore({
|
|
95
|
+
debouncers: updateOrAddToArray(store.debouncers, e.payload),
|
|
96
|
+
lastUpdatedByKey: {
|
|
97
|
+
...store.lastUpdatedByKey,
|
|
98
|
+
[e.payload.key]: Date.now()
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
case "pacer:Queuer": {
|
|
104
|
+
setStore({
|
|
105
|
+
queuers: updateOrAddToArray(store.queuers, e.payload),
|
|
106
|
+
lastUpdatedByKey: {
|
|
107
|
+
...store.lastUpdatedByKey,
|
|
108
|
+
[e.payload.key]: Date.now()
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
case "pacer:RateLimiter": {
|
|
114
|
+
setStore({
|
|
115
|
+
rateLimiters: updateOrAddToArray(store.rateLimiters, e.payload),
|
|
116
|
+
lastUpdatedByKey: {
|
|
117
|
+
...store.lastUpdatedByKey,
|
|
118
|
+
[e.payload.key]: Date.now()
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
case "pacer:Throttler": {
|
|
124
|
+
setStore({
|
|
125
|
+
throttlers: updateOrAddToArray(store.throttlers, e.payload),
|
|
126
|
+
lastUpdatedByKey: {
|
|
127
|
+
...store.lastUpdatedByKey,
|
|
128
|
+
[e.payload.key]: Date.now()
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
onCleanup(cleanup);
|
|
136
|
+
});
|
|
137
|
+
return createComponent(PacerDevtoolsContext.Provider, {
|
|
138
|
+
value: [store, setStore],
|
|
139
|
+
get children() {
|
|
140
|
+
return props.children;
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
const usePacerDevtoolsContext = () => {
|
|
145
|
+
const context = useContext(PacerDevtoolsContext);
|
|
146
|
+
return context;
|
|
147
|
+
};
|
|
148
|
+
const usePacerDevtoolsState = () => {
|
|
149
|
+
const [state] = usePacerDevtoolsContext();
|
|
150
|
+
return state;
|
|
151
|
+
};
|
|
152
|
+
export {
|
|
153
|
+
PacerContextProvider,
|
|
154
|
+
usePacerDevtoolsState
|
|
155
|
+
};
|
|
156
|
+
//# sourceMappingURL=PacerContextProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PacerContextProvider.js","sources":["../../src/PacerContextProvider.tsx"],"sourcesContent":["import { createStore } from 'solid-js/store'\nimport { createContext, createEffect, onCleanup, useContext } from 'solid-js'\nimport { pacerEventClient } from '@tanstack/pacer/event-client'\nimport type {\n AsyncBatcher,\n AsyncDebouncer,\n AsyncQueuer,\n AsyncRateLimiter,\n AsyncThrottler,\n Batcher,\n Debouncer,\n Queuer,\n RateLimiter,\n Throttler,\n} from '@tanstack/pacer'\n\ninterface PacerDevtoolsContextType {\n asyncBatchers: Array<AsyncBatcher<any>>\n asyncDebouncers: Array<AsyncDebouncer<any>>\n asyncQueuers: Array<AsyncQueuer<any>>\n asyncRateLimiters: Array<AsyncRateLimiter<any>>\n asyncThrottlers: Array<AsyncThrottler<any>>\n batchers: Array<Batcher<any>>\n debouncers: Array<Debouncer<any>>\n queuers: Array<Queuer<any>>\n rateLimiters: Array<RateLimiter<any>>\n throttlers: Array<Throttler<any>>\n lastUpdatedByKey: Record<string, number>\n}\n\nconst initialPacerDevtoolsStore = {\n asyncBatchers: [],\n asyncDebouncers: [],\n asyncQueuers: [],\n asyncRateLimiters: [],\n asyncThrottlers: [],\n batchers: [],\n debouncers: [],\n queuers: [],\n rateLimiters: [],\n throttlers: [],\n lastUpdatedByKey: {},\n}\n\nconst PacerDevtoolsContext = createContext<\n [\n PacerDevtoolsContextType,\n (newState: Partial<PacerDevtoolsContextType>) => void,\n ]\n>([initialPacerDevtoolsStore, () => {}])\n\nconst updateOrAddToArray = <T extends { key: string }>(\n oldArray: Array<T>,\n newItem: T,\n) => {\n const index = oldArray.findIndex((item) => item.key === newItem.key)\n if (index !== -1) {\n // Update existing item\n return oldArray.map((item, i) => (i === index ? newItem : item))\n }\n // Add new item\n return [...oldArray, newItem]\n}\n\nexport function PacerContextProvider(props: { children: any }) {\n const [store, setStore] = createStore<PacerDevtoolsContextType>(\n initialPacerDevtoolsStore,\n )\n\n createEffect(() => {\n const cleanup = pacerEventClient.onAllPluginEvents((_e) => {\n const e = _e as unknown as { type: string; payload: any }\n switch (e.type) {\n case 'pacer:AsyncBatcher': {\n setStore({\n asyncBatchers: updateOrAddToArray(store.asyncBatchers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncDebouncer': {\n setStore({\n asyncDebouncers: updateOrAddToArray(\n store.asyncDebouncers,\n e.payload,\n ),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncQueuer': {\n setStore({\n asyncQueuers: updateOrAddToArray(store.asyncQueuers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncRateLimiter': {\n setStore({\n asyncRateLimiters: updateOrAddToArray(\n store.asyncRateLimiters,\n e.payload,\n ),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncThrottler': {\n setStore({\n asyncThrottlers: updateOrAddToArray(\n store.asyncThrottlers,\n e.payload,\n ),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Batcher': {\n setStore({\n batchers: updateOrAddToArray(store.batchers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Debouncer': {\n setStore({\n debouncers: updateOrAddToArray(store.debouncers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Queuer': {\n setStore({\n queuers: updateOrAddToArray(store.queuers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:RateLimiter': {\n setStore({\n rateLimiters: updateOrAddToArray(store.rateLimiters, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Throttler': {\n setStore({\n throttlers: updateOrAddToArray(store.throttlers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n }\n })\n onCleanup(cleanup)\n })\n return (\n <PacerDevtoolsContext.Provider value={[store, setStore]}>\n {props.children}\n </PacerDevtoolsContext.Provider>\n )\n}\n\nconst usePacerDevtoolsContext = () => {\n const context = useContext(PacerDevtoolsContext)\n\n return context\n}\n\nexport const usePacerDevtoolsState = () => {\n const [state] = usePacerDevtoolsContext()\n return state\n}\n"],"names":["initialPacerDevtoolsStore","asyncBatchers","asyncDebouncers","asyncQueuers","asyncRateLimiters","asyncThrottlers","batchers","debouncers","queuers","rateLimiters","throttlers","lastUpdatedByKey","PacerDevtoolsContext","createContext","updateOrAddToArray","oldArray","newItem","index","findIndex","item","key","map","i","PacerContextProvider","props","store","setStore","createStore","createEffect","cleanup","pacerEventClient","onAllPluginEvents","_e","e","type","payload","Date","now","onCleanup","_$createComponent","Provider","value","children","usePacerDevtoolsContext","context","useContext","usePacerDevtoolsState","state"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function PacerDevtools(): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createComponent } from "solid-js/web";
|
|
2
|
+
import { PacerContextProvider } from "./PacerContextProvider.js";
|
|
3
|
+
import { Shell } from "./components/Shell.js";
|
|
4
|
+
function PacerDevtools() {
|
|
5
|
+
return createComponent(PacerContextProvider, {
|
|
6
|
+
get children() {
|
|
7
|
+
return createComponent(Shell, {});
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
PacerDevtools as default
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=PacerDevtools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PacerDevtools.js","sources":["../../src/PacerDevtools.tsx"],"sourcesContent":["import { PacerContextProvider } from './PacerContextProvider'\nimport { Shell } from './components/Shell'\n\nexport default function PacerDevtools() {\n return (\n <PacerContextProvider>\n <Shell />\n </PacerContextProvider>\n )\n}\n"],"names":["PacerDevtools","_$createComponent","PacerContextProvider","children","Shell"],"mappings":";;;AAGA,SAAwBA,gBAAgB;AACtC,SAAAC,gBACGC,sBAAoB;AAAA,IAAA,IAAAC,WAAA;AAAA,aAAAF,gBAClBG,OAAK,EAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAGZ;"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { template, effect, className, insert, delegateEvents } from "solid-js/web";
|
|
2
|
+
import { pacerEventClient } from "@tanstack/pacer";
|
|
3
|
+
import { useStyles } from "../styles/use-styles.js";
|
|
4
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div>No actions available for this util`), _tmpl$2 = /* @__PURE__ */ template(`<div>`), _tmpl$3 = /* @__PURE__ */ template(`<button><span>`), _tmpl$4 = /* @__PURE__ */ template(`<button><span></span>Flush`), _tmpl$5 = /* @__PURE__ */ template(`<button><span></span>Cancel`), _tmpl$6 = /* @__PURE__ */ template(`<button><span></span>Reset`), _tmpl$7 = /* @__PURE__ */ template(`<button><span></span>Clear`);
|
|
5
|
+
function ActionButtons(props) {
|
|
6
|
+
const styles = useStyles();
|
|
7
|
+
const utilInstance = props.instance;
|
|
8
|
+
const utilState = utilInstance?.store?.state;
|
|
9
|
+
const hasPending = utilState && "isPending" in utilState;
|
|
10
|
+
const hasEmpty = utilState && "isEmpty" in utilState;
|
|
11
|
+
const isPending = hasPending ? !!utilState.isPending : false;
|
|
12
|
+
const isEmpty = hasEmpty ? utilState.isEmpty : void 0;
|
|
13
|
+
const hasFlush = typeof utilInstance.flush === "function";
|
|
14
|
+
const hasCancel = typeof utilInstance.cancel === "function";
|
|
15
|
+
const hasReset = typeof utilInstance.reset === "function";
|
|
16
|
+
const hasClear = typeof utilInstance.clear === "function";
|
|
17
|
+
const hasStart = typeof utilInstance.start === "function";
|
|
18
|
+
const hasStop = typeof utilInstance.stop === "function";
|
|
19
|
+
const hasStartStop = hasStart && hasStop;
|
|
20
|
+
const isRunning = utilState?.isRunning ?? true;
|
|
21
|
+
if (!hasPending && !hasFlush && !hasCancel && !hasReset && !hasClear) {
|
|
22
|
+
return (() => {
|
|
23
|
+
var _el$ = _tmpl$();
|
|
24
|
+
effect(() => className(_el$, styles().sectionEmpty));
|
|
25
|
+
return _el$;
|
|
26
|
+
})();
|
|
27
|
+
}
|
|
28
|
+
const emitName = `d-${props.utilName}`;
|
|
29
|
+
return (() => {
|
|
30
|
+
var _el$2 = _tmpl$2();
|
|
31
|
+
insert(_el$2, hasPending && (() => {
|
|
32
|
+
var _el$3 = _tmpl$3(), _el$4 = _el$3.firstChild;
|
|
33
|
+
_el$3.$$mousedown = () => {
|
|
34
|
+
const next = !isPending;
|
|
35
|
+
utilInstance.store.setState((prev) => ({
|
|
36
|
+
...prev,
|
|
37
|
+
isPending: next
|
|
38
|
+
}));
|
|
39
|
+
pacerEventClient.emit(emitName, utilInstance);
|
|
40
|
+
};
|
|
41
|
+
insert(_el$3, isPending ? "Restore Pending" : "Trigger Pending", null);
|
|
42
|
+
effect((_p$) => {
|
|
43
|
+
var _v$ = styles().actionButton, _v$2 = styles().actionDotBlue;
|
|
44
|
+
_v$ !== _p$.e && className(_el$3, _p$.e = _v$);
|
|
45
|
+
_v$2 !== _p$.t && className(_el$4, _p$.t = _v$2);
|
|
46
|
+
return _p$;
|
|
47
|
+
}, {
|
|
48
|
+
e: void 0,
|
|
49
|
+
t: void 0
|
|
50
|
+
});
|
|
51
|
+
return _el$3;
|
|
52
|
+
})(), null);
|
|
53
|
+
insert(_el$2, hasFlush && (() => {
|
|
54
|
+
var _el$5 = _tmpl$4(), _el$6 = _el$5.firstChild;
|
|
55
|
+
_el$5.$$mousedown = () => {
|
|
56
|
+
utilInstance.flush();
|
|
57
|
+
pacerEventClient.emit(emitName, utilInstance);
|
|
58
|
+
};
|
|
59
|
+
effect((_p$) => {
|
|
60
|
+
var _v$3 = styles().actionButton, _v$4 = props.utilName.toLowerCase().includes("debouncer") && !isPending || props.utilName.toLowerCase().includes("throttler") && !isPending || props.utilName.toLowerCase().includes("batcher") && isEmpty || props.utilName.toLowerCase().includes("queuer") && isEmpty, _v$5 = styles().actionDotGreen;
|
|
61
|
+
_v$3 !== _p$.e && className(_el$5, _p$.e = _v$3);
|
|
62
|
+
_v$4 !== _p$.t && (_el$5.disabled = _p$.t = _v$4);
|
|
63
|
+
_v$5 !== _p$.a && className(_el$6, _p$.a = _v$5);
|
|
64
|
+
return _p$;
|
|
65
|
+
}, {
|
|
66
|
+
e: void 0,
|
|
67
|
+
t: void 0,
|
|
68
|
+
a: void 0
|
|
69
|
+
});
|
|
70
|
+
return _el$5;
|
|
71
|
+
})(), null);
|
|
72
|
+
insert(_el$2, hasCancel && (() => {
|
|
73
|
+
var _el$7 = _tmpl$5(), _el$8 = _el$7.firstChild;
|
|
74
|
+
_el$7.$$mousedown = () => {
|
|
75
|
+
utilInstance.cancel();
|
|
76
|
+
pacerEventClient.emit(emitName, utilInstance);
|
|
77
|
+
};
|
|
78
|
+
effect((_p$) => {
|
|
79
|
+
var _v$6 = styles().actionButton, _v$7 = props.utilName.toLowerCase().includes("debouncer") && !isPending || props.utilName.toLowerCase().includes("throttler") && !isPending || props.utilName.toLowerCase().includes("batcher") && isEmpty || props.utilName.toLowerCase().includes("queuer") && isEmpty, _v$8 = styles().actionDotRed;
|
|
80
|
+
_v$6 !== _p$.e && className(_el$7, _p$.e = _v$6);
|
|
81
|
+
_v$7 !== _p$.t && (_el$7.disabled = _p$.t = _v$7);
|
|
82
|
+
_v$8 !== _p$.a && className(_el$8, _p$.a = _v$8);
|
|
83
|
+
return _p$;
|
|
84
|
+
}, {
|
|
85
|
+
e: void 0,
|
|
86
|
+
t: void 0,
|
|
87
|
+
a: void 0
|
|
88
|
+
});
|
|
89
|
+
return _el$7;
|
|
90
|
+
})(), null);
|
|
91
|
+
insert(_el$2, hasReset && (() => {
|
|
92
|
+
var _el$9 = _tmpl$6(), _el$0 = _el$9.firstChild;
|
|
93
|
+
_el$9.$$mousedown = () => {
|
|
94
|
+
utilInstance.reset();
|
|
95
|
+
pacerEventClient.emit(emitName, utilInstance);
|
|
96
|
+
};
|
|
97
|
+
effect((_p$) => {
|
|
98
|
+
var _v$9 = styles().actionButton, _v$0 = styles().actionDotYellow;
|
|
99
|
+
_v$9 !== _p$.e && className(_el$9, _p$.e = _v$9);
|
|
100
|
+
_v$0 !== _p$.t && className(_el$0, _p$.t = _v$0);
|
|
101
|
+
return _p$;
|
|
102
|
+
}, {
|
|
103
|
+
e: void 0,
|
|
104
|
+
t: void 0
|
|
105
|
+
});
|
|
106
|
+
return _el$9;
|
|
107
|
+
})(), null);
|
|
108
|
+
insert(_el$2, hasClear && (() => {
|
|
109
|
+
var _el$1 = _tmpl$7(), _el$10 = _el$1.firstChild;
|
|
110
|
+
_el$1.$$mousedown = () => {
|
|
111
|
+
utilInstance.clear();
|
|
112
|
+
pacerEventClient.emit(emitName, utilInstance);
|
|
113
|
+
};
|
|
114
|
+
effect((_p$) => {
|
|
115
|
+
var _v$1 = styles().actionButton, _v$10 = props.utilName.toLowerCase().includes("batcher") && isEmpty || props.utilName.toLowerCase().includes("queuer") && isEmpty, _v$11 = styles().actionDotOrange;
|
|
116
|
+
_v$1 !== _p$.e && className(_el$1, _p$.e = _v$1);
|
|
117
|
+
_v$10 !== _p$.t && (_el$1.disabled = _p$.t = _v$10);
|
|
118
|
+
_v$11 !== _p$.a && className(_el$10, _p$.a = _v$11);
|
|
119
|
+
return _p$;
|
|
120
|
+
}, {
|
|
121
|
+
e: void 0,
|
|
122
|
+
t: void 0,
|
|
123
|
+
a: void 0
|
|
124
|
+
});
|
|
125
|
+
return _el$1;
|
|
126
|
+
})(), null);
|
|
127
|
+
insert(_el$2, hasStartStop && (() => {
|
|
128
|
+
var _el$11 = _tmpl$3(), _el$12 = _el$11.firstChild;
|
|
129
|
+
_el$11.$$mousedown = () => {
|
|
130
|
+
if (isRunning) {
|
|
131
|
+
utilInstance.stop();
|
|
132
|
+
} else {
|
|
133
|
+
utilInstance.start();
|
|
134
|
+
}
|
|
135
|
+
pacerEventClient.emit(emitName, utilInstance);
|
|
136
|
+
};
|
|
137
|
+
insert(_el$11, isRunning ? "Stop" : "Start", null);
|
|
138
|
+
effect((_p$) => {
|
|
139
|
+
var _v$12 = styles().actionButton, _v$13 = styles().actionDotPurple;
|
|
140
|
+
_v$12 !== _p$.e && className(_el$11, _p$.e = _v$12);
|
|
141
|
+
_v$13 !== _p$.t && className(_el$12, _p$.t = _v$13);
|
|
142
|
+
return _p$;
|
|
143
|
+
}, {
|
|
144
|
+
e: void 0,
|
|
145
|
+
t: void 0
|
|
146
|
+
});
|
|
147
|
+
return _el$11;
|
|
148
|
+
})(), null);
|
|
149
|
+
effect(() => className(_el$2, styles().actionsRow));
|
|
150
|
+
return _el$2;
|
|
151
|
+
})();
|
|
152
|
+
}
|
|
153
|
+
delegateEvents(["mousedown"]);
|
|
154
|
+
export {
|
|
155
|
+
ActionButtons
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=ActionButtons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionButtons.js","sources":["../../../src/components/ActionButtons.tsx"],"sourcesContent":["import { pacerEventClient } from '@tanstack/pacer'\nimport { useStyles } from '../styles/use-styles'\nimport type { PacerEventName } from '@tanstack/pacer'\n\ntype ActionButtonsProps = {\n instance: any\n utilName: string\n}\n\nexport function ActionButtons(props: ActionButtonsProps) {\n const styles = useStyles()\n const utilInstance = props.instance\n const utilState = utilInstance?.store?.state\n const hasPending = utilState && 'isPending' in utilState\n const hasEmpty = utilState && 'isEmpty' in utilState\n const isPending = hasPending ? !!utilState.isPending : false\n const isEmpty = hasEmpty ? utilState.isEmpty : undefined\n\n const hasFlush = typeof utilInstance.flush === 'function'\n const hasCancel = typeof utilInstance.cancel === 'function'\n const hasReset = typeof utilInstance.reset === 'function'\n const hasClear = typeof utilInstance.clear === 'function'\n const hasStart = typeof utilInstance.start === 'function'\n const hasStop = typeof utilInstance.stop === 'function'\n const hasStartStop = hasStart && hasStop\n\n const isRunning = utilState?.isRunning ?? true\n\n if (!hasPending && !hasFlush && !hasCancel && !hasReset && !hasClear) {\n return (\n <div class={styles().sectionEmpty}>\n No actions available for this util\n </div>\n )\n }\n\n const emitName = `d-${props.utilName}` as PacerEventName\n\n return (\n <div class={styles().actionsRow}>\n {hasPending && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n const next = !isPending\n utilInstance.store.setState((prev: any) => ({\n ...prev,\n isPending: next,\n }))\n pacerEventClient.emit(emitName, utilInstance)\n }}\n >\n <span class={styles().actionDotBlue} />\n {isPending ? 'Restore Pending' : 'Trigger Pending'}\n </button>\n )}\n {hasFlush && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n utilInstance.flush()\n pacerEventClient.emit(emitName, utilInstance)\n }}\n disabled={\n (props.utilName.toLowerCase().includes('debouncer') &&\n !isPending) ||\n (props.utilName.toLowerCase().includes('throttler') &&\n !isPending) ||\n (props.utilName.toLowerCase().includes('batcher') && isEmpty) ||\n (props.utilName.toLowerCase().includes('queuer') && isEmpty)\n }\n >\n <span class={styles().actionDotGreen} />\n Flush\n </button>\n )}\n {hasCancel && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n utilInstance.cancel()\n pacerEventClient.emit(emitName, utilInstance)\n }}\n disabled={\n (props.utilName.toLowerCase().includes('debouncer') &&\n !isPending) ||\n (props.utilName.toLowerCase().includes('throttler') &&\n !isPending) ||\n (props.utilName.toLowerCase().includes('batcher') && isEmpty) ||\n (props.utilName.toLowerCase().includes('queuer') && isEmpty)\n }\n >\n <span class={styles().actionDotRed} />\n Cancel\n </button>\n )}\n {hasReset && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n utilInstance.reset()\n pacerEventClient.emit(emitName, utilInstance)\n }}\n >\n <span class={styles().actionDotYellow} />\n Reset\n </button>\n )}\n {hasClear && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n utilInstance.clear()\n pacerEventClient.emit(emitName, utilInstance)\n }}\n disabled={\n (props.utilName.toLowerCase().includes('batcher') && isEmpty) ||\n (props.utilName.toLowerCase().includes('queuer') && isEmpty)\n }\n >\n <span class={styles().actionDotOrange} />\n Clear\n </button>\n )}\n {hasStartStop && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n if (isRunning) {\n utilInstance.stop()\n } else {\n utilInstance.start()\n }\n pacerEventClient.emit(emitName, utilInstance)\n }}\n >\n <span class={styles().actionDotPurple} />\n {isRunning ? 'Stop' : 'Start'}\n </button>\n )}\n </div>\n )\n}\n"],"names":["ActionButtons","props","styles","useStyles","utilInstance","instance","utilState","store","state","hasPending","hasEmpty","isPending","isEmpty","undefined","hasFlush","flush","hasCancel","cancel","hasReset","reset","hasClear","clear","hasStart","start","hasStop","stop","hasStartStop","isRunning","_el$","_tmpl$","_$effect","_$className","sectionEmpty","emitName","utilName","_el$2","_tmpl$2","_$insert","_el$3","_tmpl$3","_el$4","firstChild","$$mousedown","next","setState","prev","pacerEventClient","emit","_p$","_v$","actionButton","_v$2","actionDotBlue","e","t","_el$5","_tmpl$4","_el$6","_v$3","_v$4","toLowerCase","includes","_v$5","actionDotGreen","disabled","a","_el$7","_tmpl$5","_el$8","_v$6","_v$7","_v$8","actionDotRed","_el$9","_tmpl$6","_el$0","_v$9","_v$0","actionDotYellow","_el$1","_tmpl$7","_el$10","_v$1","_v$10","_v$11","actionDotOrange","_el$11","_el$12","_v$12","_v$13","actionDotPurple","actionsRow","_$delegateEvents"],"mappings":";;;;AASO,SAASA,cAAcC,OAA2B;AACvD,QAAMC,SAASC,UAAAA;AACf,QAAMC,eAAeH,MAAMI;AAC3B,QAAMC,YAAYF,cAAcG,OAAOC;AACvC,QAAMC,aAAaH,aAAa,eAAeA;AAC/C,QAAMI,WAAWJ,aAAa,aAAaA;AAC3C,QAAMK,YAAYF,aAAa,CAAC,CAACH,UAAUK,YAAY;AACvD,QAAMC,UAAUF,WAAWJ,UAAUM,UAAUC;AAE/C,QAAMC,WAAW,OAAOV,aAAaW,UAAU;AAC/C,QAAMC,YAAY,OAAOZ,aAAaa,WAAW;AACjD,QAAMC,WAAW,OAAOd,aAAae,UAAU;AAC/C,QAAMC,WAAW,OAAOhB,aAAaiB,UAAU;AAC/C,QAAMC,WAAW,OAAOlB,aAAamB,UAAU;AAC/C,QAAMC,UAAU,OAAOpB,aAAaqB,SAAS;AAC7C,QAAMC,eAAeJ,YAAYE;AAEjC,QAAMG,YAAYrB,WAAWqB,aAAa;AAE1C,MAAI,CAAClB,cAAc,CAACK,YAAY,CAACE,aAAa,CAACE,YAAY,CAACE,UAAU;AACpE,YAAA,MAAA;AAAA,UAAAQ,OAAAC,OAAAA;AAAAC,aAAA,MAAAC,UAAAH,MACc1B,OAAAA,EAAS8B,YAAY,CAAA;AAAA,aAAAJ;AAAAA,IAAAA,GAAA;AAAA,EAAA;AAMrC,QAAMK,WAAW,KAAKhC,MAAMiC,QAAQ;AAEpC,UAAA,MAAA;AAAA,QAAAC,QAAAC,QAAAA;AAAAC,WAAAF,OAEK1B,eAAU,MAAA;AAAA,UAAA6B,QAAAC,QAAAA,GAAAC,QAAAF,MAAAG;AAAAH,YAAAI,cAGM,MAAM;AACjB,cAAMC,OAAO,CAAChC;AACdP,qBAAaG,MAAMqC,SAAS,CAACC,UAAe;AAAA,UAC1C,GAAGA;AAAAA,UACHlC,WAAWgC;AAAAA,QAAAA,EACX;AACFG,yBAAiBC,KAAKd,UAAU7B,YAAY;AAAA,MAAA;AAC7CiC,aAAAC,OAGA3B,YAAY,oBAAoB,mBAAiB,IAAA;AAAAmB,aAAAkB,CAAAA,QAAA;AAAA,YAAAC,MAX3C/C,OAAAA,EAASgD,cAAYC,OAUfjD,SAASkD;AAAaH,gBAAAD,IAAAK,KAAAtB,UAAAO,OAAAU,IAAAK,IAAAJ,GAAA;AAAAE,iBAAAH,IAAAM,KAAAvB,UAAAS,OAAAQ,IAAAM,IAAAH,IAAA;AAAA,eAAAH;AAAAA,MAAAA,GAAA;AAAA,QAAAK,GAAAxC;AAAAA,QAAAyC,GAAAzC;AAAAA,MAAAA,CAAA;AAAA,aAAAyB;AAAAA,IAAAA,GAAA,GAGtC,IAAA;AAAAD,WAAAF,OACArB,aAAQ,MAAA;AAAA,UAAAyC,QAAAC,QAAAA,GAAAC,QAAAF,MAAAd;AAAAc,YAAAb,cAGQ,MAAM;AACjBtC,qBAAaW,MAAAA;AACb+B,yBAAiBC,KAAKd,UAAU7B,YAAY;AAAA,MAAA;AAC7C0B,aAAAkB,CAAAA,QAAA;AAAA,YAAAU,OAJMxD,SAASgD,cAAYS,OAMzB1D,MAAMiC,SAAS0B,YAAAA,EAAcC,SAAS,WAAW,KAChD,CAAClD,aACFV,MAAMiC,SAAS0B,YAAAA,EAAcC,SAAS,WAAW,KAChD,CAAClD,aACFV,MAAMiC,SAAS0B,cAAcC,SAAS,SAAS,KAAKjD,WACpDX,MAAMiC,SAAS0B,YAAAA,EAAcC,SAAS,QAAQ,KAAKjD,SAAQkD,OAGjD5D,SAAS6D;AAAcL,iBAAAV,IAAAK,KAAAtB,UAAAwB,OAAAP,IAAAK,IAAAK,IAAA;AAAAC,iBAAAX,IAAAM,MAAAC,MAAAS,WAAAhB,IAAAM,IAAAK;AAAAG,iBAAAd,IAAAiB,KAAAlC,UAAA0B,OAAAT,IAAAiB,IAAAH,IAAA;AAAA,eAAAd;AAAAA,MAAAA,GAAA;AAAA,QAAAK,GAAAxC;AAAAA,QAAAyC,GAAAzC;AAAAA,QAAAoD,GAAApD;AAAAA,MAAAA,CAAA;AAAA,aAAA0C;AAAAA,IAAAA,GAAA,GAGvC,IAAA;AAAAlB,WAAAF,OACAnB,cAAS,MAAA;AAAA,UAAAkD,QAAAC,QAAAA,GAAAC,QAAAF,MAAAzB;AAAAyB,YAAAxB,cAGO,MAAM;AACjBtC,qBAAaa,OAAAA;AACb6B,yBAAiBC,KAAKd,UAAU7B,YAAY;AAAA,MAAA;AAC7C0B,aAAAkB,CAAAA,QAAA;AAAA,YAAAqB,OAJMnE,SAASgD,cAAYoB,OAMzBrE,MAAMiC,SAAS0B,YAAAA,EAAcC,SAAS,WAAW,KAChD,CAAClD,aACFV,MAAMiC,SAAS0B,YAAAA,EAAcC,SAAS,WAAW,KAChD,CAAClD,aACFV,MAAMiC,SAAS0B,cAAcC,SAAS,SAAS,KAAKjD,WACpDX,MAAMiC,SAAS0B,YAAAA,EAAcC,SAAS,QAAQ,KAAKjD,SAAQ2D,OAGjDrE,SAASsE;AAAYH,iBAAArB,IAAAK,KAAAtB,UAAAmC,OAAAlB,IAAAK,IAAAgB,IAAA;AAAAC,iBAAAtB,IAAAM,MAAAY,MAAAF,WAAAhB,IAAAM,IAAAgB;AAAAC,iBAAAvB,IAAAiB,KAAAlC,UAAAqC,OAAApB,IAAAiB,IAAAM,IAAA;AAAA,eAAAvB;AAAAA,MAAAA,GAAA;AAAA,QAAAK,GAAAxC;AAAAA,QAAAyC,GAAAzC;AAAAA,QAAAoD,GAAApD;AAAAA,MAAAA,CAAA;AAAA,aAAAqD;AAAAA,IAAAA,GAAA,GAGrC,IAAA;AAAA7B,WAAAF,OACAjB,aAAQ,MAAA;AAAA,UAAAuD,QAAAC,QAAAA,GAAAC,QAAAF,MAAAhC;AAAAgC,YAAA/B,cAGQ,MAAM;AACjBtC,qBAAae,MAAAA;AACb2B,yBAAiBC,KAAKd,UAAU7B,YAAY;AAAA,MAAA;AAC7C0B,aAAAkB,CAAAA,QAAA;AAAA,YAAA4B,OAJM1E,OAAAA,EAASgD,cAAY2B,OAMf3E,SAAS4E;AAAeF,iBAAA5B,IAAAK,KAAAtB,UAAA0C,OAAAzB,IAAAK,IAAAuB,IAAA;AAAAC,iBAAA7B,IAAAM,KAAAvB,UAAA4C,OAAA3B,IAAAM,IAAAuB,IAAA;AAAA,eAAA7B;AAAAA,MAAAA,GAAA;AAAA,QAAAK,GAAAxC;AAAAA,QAAAyC,GAAAzC;AAAAA,MAAAA,CAAA;AAAA,aAAA4D;AAAAA,IAAAA,GAAA,GAGxC,IAAA;AAAApC,WAAAF,OACAf,aAAQ,MAAA;AAAA,UAAA2D,QAAAC,QAAAA,GAAAC,SAAAF,MAAAtC;AAAAsC,YAAArC,cAGQ,MAAM;AACjBtC,qBAAaiB,MAAAA;AACbyB,yBAAiBC,KAAKd,UAAU7B,YAAY;AAAA,MAAA;AAC7C0B,aAAAkB,CAAAA,QAAA;AAAA,YAAAkC,OAJMhF,SAASgD,cAAYiC,QAMzBlF,MAAMiC,SAAS0B,cAAcC,SAAS,SAAS,KAAKjD,WACpDX,MAAMiC,SAAS0B,YAAAA,EAAcC,SAAS,QAAQ,KAAKjD,SAAQwE,QAGjDlF,OAAAA,EAASmF;AAAeH,iBAAAlC,IAAAK,KAAAtB,UAAAgD,OAAA/B,IAAAK,IAAA6B,IAAA;AAAAC,kBAAAnC,IAAAM,MAAAyB,MAAAf,WAAAhB,IAAAM,IAAA6B;AAAAC,kBAAApC,IAAAiB,KAAAlC,UAAAkD,QAAAjC,IAAAiB,IAAAmB,KAAA;AAAA,eAAApC;AAAAA,MAAAA,GAAA;AAAA,QAAAK,GAAAxC;AAAAA,QAAAyC,GAAAzC;AAAAA,QAAAoD,GAAApD;AAAAA,MAAAA,CAAA;AAAA,aAAAkE;AAAAA,IAAAA,GAAA,GAGxC,IAAA;AAAA1C,WAAAF,OACAT,iBAAY,MAAA;AAAA,UAAA4D,SAAA/C,QAAAA,GAAAgD,SAAAD,OAAA7C;AAAA6C,aAAA5C,cAGI,MAAM;AACjB,YAAIf,WAAW;AACbvB,uBAAaqB,KAAAA;AAAAA,QAAK,OACb;AACLrB,uBAAamB,MAAAA;AAAAA,QAAM;AAErBuB,yBAAiBC,KAAKd,UAAU7B,YAAY;AAAA,MAAA;AAC7CiC,aAAAiD,QAGA3D,YAAY,SAAS,SAAO,IAAA;AAAAG,aAAAkB,CAAAA,QAAA;AAAA,YAAAwC,QAXtBtF,OAAAA,EAASgD,cAAYuC,QAUfvF,SAASwF;AAAeF,kBAAAxC,IAAAK,KAAAtB,UAAAuD,QAAAtC,IAAAK,IAAAmC,KAAA;AAAAC,kBAAAzC,IAAAM,KAAAvB,UAAAwD,QAAAvC,IAAAM,IAAAmC,KAAA;AAAA,eAAAzC;AAAAA,MAAAA,GAAA;AAAA,QAAAK,GAAAxC;AAAAA,QAAAyC,GAAAzC;AAAAA,MAAAA,CAAA;AAAA,aAAAyE;AAAAA,IAAAA,GAAA,GAGxC,IAAA;AAAAxD,WAAA,MAAAC,UAAAI,OApGSjC,OAAAA,EAASyF,UAAU,CAAA;AAAA,WAAAxD;AAAAA,EAAAA,GAAA;AAuGnC;AAACyD,eAAA,CAAA,WAAA,CAAA;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type DetailsPanelProps = {
|
|
2
|
+
selectedInstance: () => {
|
|
3
|
+
instance: any;
|
|
4
|
+
type: string;
|
|
5
|
+
} | null;
|
|
6
|
+
utilState: () => {
|
|
7
|
+
lastUpdatedByKey: Record<string, number>;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export declare function DetailsPanel(props: DetailsPanelProps): import("solid-js").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { template, insert, effect, className, createComponent } from "solid-js/web";
|
|
2
|
+
import { JsonTree } from "@tanstack/devtools-ui";
|
|
3
|
+
import { useStyles } from "../styles/use-styles.js";
|
|
4
|
+
import { ActionButtons } from "./ActionButtons.js";
|
|
5
|
+
import { StateHeader } from "./StateHeader.js";
|
|
6
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div>`), _tmpl$2 = /* @__PURE__ */ template(`<div>Select a util from the left panel to view its state`), _tmpl$3 = /* @__PURE__ */ template(`<div><div><div>Actions</div></div><div><div>State</div><div></div></div><div><div>Options</div><div>`);
|
|
7
|
+
function DetailsPanel(props) {
|
|
8
|
+
const styles = useStyles();
|
|
9
|
+
return (() => {
|
|
10
|
+
var _el$ = _tmpl$();
|
|
11
|
+
insert(_el$, () => {
|
|
12
|
+
const entry = props.selectedInstance();
|
|
13
|
+
if (!entry) {
|
|
14
|
+
return (() => {
|
|
15
|
+
var _el$2 = _tmpl$2();
|
|
16
|
+
effect(() => className(_el$2, styles().noSelection));
|
|
17
|
+
return _el$2;
|
|
18
|
+
})();
|
|
19
|
+
}
|
|
20
|
+
return [createComponent(StateHeader, {
|
|
21
|
+
get selectedInstance() {
|
|
22
|
+
return props.selectedInstance;
|
|
23
|
+
},
|
|
24
|
+
get utilState() {
|
|
25
|
+
return props.utilState;
|
|
26
|
+
}
|
|
27
|
+
}), (() => {
|
|
28
|
+
var _el$3 = _tmpl$3(), _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$4.nextSibling, _el$7 = _el$6.firstChild, _el$8 = _el$7.nextSibling, _el$9 = _el$6.nextSibling, _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling;
|
|
29
|
+
insert(_el$4, createComponent(ActionButtons, {
|
|
30
|
+
get instance() {
|
|
31
|
+
return entry.instance;
|
|
32
|
+
},
|
|
33
|
+
get utilName() {
|
|
34
|
+
return entry.type;
|
|
35
|
+
}
|
|
36
|
+
}), null);
|
|
37
|
+
insert(_el$8, createComponent(JsonTree, {
|
|
38
|
+
get value() {
|
|
39
|
+
return entry.instance.store?.state;
|
|
40
|
+
}
|
|
41
|
+
}));
|
|
42
|
+
insert(_el$1, createComponent(JsonTree, {
|
|
43
|
+
get value() {
|
|
44
|
+
return entry.instance.options;
|
|
45
|
+
}
|
|
46
|
+
}));
|
|
47
|
+
effect((_p$) => {
|
|
48
|
+
var _v$ = styles().detailsGrid, _v$2 = styles().detailSection, _v$3 = styles().detailSectionHeader, _v$4 = styles().detailSection, _v$5 = styles().detailSectionHeader, _v$6 = styles().stateContent, _v$7 = styles().detailSection, _v$8 = styles().detailSectionHeader, _v$9 = styles().stateContent;
|
|
49
|
+
_v$ !== _p$.e && className(_el$3, _p$.e = _v$);
|
|
50
|
+
_v$2 !== _p$.t && className(_el$4, _p$.t = _v$2);
|
|
51
|
+
_v$3 !== _p$.a && className(_el$5, _p$.a = _v$3);
|
|
52
|
+
_v$4 !== _p$.o && className(_el$6, _p$.o = _v$4);
|
|
53
|
+
_v$5 !== _p$.i && className(_el$7, _p$.i = _v$5);
|
|
54
|
+
_v$6 !== _p$.n && className(_el$8, _p$.n = _v$6);
|
|
55
|
+
_v$7 !== _p$.s && className(_el$9, _p$.s = _v$7);
|
|
56
|
+
_v$8 !== _p$.h && className(_el$0, _p$.h = _v$8);
|
|
57
|
+
_v$9 !== _p$.r && className(_el$1, _p$.r = _v$9);
|
|
58
|
+
return _p$;
|
|
59
|
+
}, {
|
|
60
|
+
e: void 0,
|
|
61
|
+
t: void 0,
|
|
62
|
+
a: void 0,
|
|
63
|
+
o: void 0,
|
|
64
|
+
i: void 0,
|
|
65
|
+
n: void 0,
|
|
66
|
+
s: void 0,
|
|
67
|
+
h: void 0,
|
|
68
|
+
r: void 0
|
|
69
|
+
});
|
|
70
|
+
return _el$3;
|
|
71
|
+
})()];
|
|
72
|
+
});
|
|
73
|
+
effect(() => className(_el$, styles().stateDetails));
|
|
74
|
+
return _el$;
|
|
75
|
+
})();
|
|
76
|
+
}
|
|
77
|
+
export {
|
|
78
|
+
DetailsPanel
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=DetailsPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailsPanel.js","sources":["../../../src/components/DetailsPanel.tsx"],"sourcesContent":["import { JsonTree } from '@tanstack/devtools-ui'\nimport { useStyles } from '../styles/use-styles'\nimport { ActionButtons } from './ActionButtons'\nimport { StateHeader } from './StateHeader'\n\ntype DetailsPanelProps = {\n selectedInstance: () => { instance: any; type: string } | null\n utilState: () => { lastUpdatedByKey: Record<string, number> }\n}\n\nexport function DetailsPanel(props: DetailsPanelProps) {\n const styles = useStyles()\n\n return (\n <div class={styles().stateDetails}>\n {(() => {\n const entry = props.selectedInstance()\n if (!entry) {\n return (\n <div class={styles().noSelection}>\n Select a util from the left panel to view its state\n </div>\n )\n }\n\n return (\n <>\n <StateHeader\n selectedInstance={props.selectedInstance}\n utilState={props.utilState}\n />\n\n <div class={styles().detailsGrid}>\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Actions</div>\n <ActionButtons\n instance={entry.instance}\n utilName={entry.type}\n />\n </div>\n\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>State</div>\n <div class={styles().stateContent}>\n <JsonTree value={entry.instance.store?.state} />\n </div>\n </div>\n\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Options</div>\n <div class={styles().stateContent}>\n <JsonTree value={entry.instance.options} />\n </div>\n </div>\n </div>\n </>\n )\n })()}\n </div>\n )\n}\n"],"names":["DetailsPanel","props","styles","useStyles","_el$","_tmpl$","_$insert","entry","selectedInstance","_el$2","_tmpl$2","_$effect","_$className","noSelection","_$createComponent","StateHeader","utilState","_el$3","_tmpl$3","_el$4","firstChild","_el$5","_el$6","nextSibling","_el$7","_el$8","_el$9","_el$0","_el$1","ActionButtons","instance","utilName","type","JsonTree","value","store","state","options","_p$","_v$","detailsGrid","_v$2","detailSection","_v$3","detailSectionHeader","_v$4","_v$5","_v$6","stateContent","_v$7","_v$8","_v$9","e","t","a","o","i","n","s","h","r","undefined","stateDetails"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Shell(): import("solid-js").JSX.Element;
|